仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1044|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL教程之怎样远程备份sql server数据库

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。server|备份|数据|数据库办法一(不利用SQLDMO):
///
///备份办法
///
SqlConnectionconn=newSqlConnection("Server=.;Database=master;UserID=sa;Password=sa;");

SqlCommandcmdBK=newSqlCommand();
cmdBK.CommandType=CommandType.Text;
cmdBK.Connection=conn;
cmdBK.CommandText=@"backupdatabasetesttodisk=C:awithinit";

try
{
conn.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("Backupsuccessed.");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}


///
///复原办法
///
SqlConnectionconn=newSqlConnection("Server=.;Database=master;UserID=sa;Password=sa;Trusted_Connection=False");
conn.Open();
//KILLDataBaseProcess
SqlCommandcmd=newSqlCommand("SELECTspidFROMsysprocesses,sysdatabasesWHEREsysprocesses.dbid=sysdatabases.dbidANDsysdatabases.Name=test",conn);
SqlDataReaderdr;
dr=cmd.ExecuteReader();
ArrayListlist=newArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(inti=0;i<list.Count;i++)
{
cmd=newSqlCommand(string.Format("KILL{0}",list),conn);
cmd.ExecuteNonQuery();
}
SqlCommandcmdRT=newSqlCommand();
cmdRT.CommandType=CommandType.Text;
cmdRT.Connection=conn;
cmdRT.CommandText=@"restoredatabasetestfromdisk=C:a";
try
{
cmdRT.ExecuteNonQuery();
MessageBox.Show("Restoresuccessed.");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
办法二(利用SQLDMO):
///
///备份办法
///
SQLDMO.Backupbackup=newSQLDMO.BackupClass();
SQLDMO.SQLServerserver=newSQLDMO.SQLServerClass();
//显现进度条
SQLDMO.BackupSink_PercentCompleteEventHandlerprogress=newSQLDMO.BackupSink_PercentCompleteEventHandler(Step);
backup.PercentComplete+=progress;
try
{
server.LoginSecure=false;
server.Connect(".","sa","sa");
backup.Action=SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database="test";
backup.Files=@"D:        estmyProgackupTest";
backup.BackupSetName="test";
backup.BackupSetDescription="Backupthedatabaseoftest";
backup.Initialize=true;
backup.SQLBackup(server);
MessageBox.Show("Backupsuccessed.");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value=0;
///
///复原办法
///
SQLDMO.Restorerestore=newSQLDMO.RestoreClass();
SQLDMO.SQLServerserver=newSQLDMO.SQLServerClass();
//显现进度条
SQLDMO.RestoreSink_PercentCompleteEventHandlerprogress=newSQLDMO.RestoreSink_PercentCompleteEventHandler(Step);
restore.PercentComplete+=progress;
//KILLDataBaseProcess
SqlConnectionconn=newSqlConnection("Server=.;Database=master;UserID=sa;Password=sa;Trusted_Connection=False");
conn.Open();
SqlCommandcmd=newSqlCommand("SELECTspidFROMsysprocesses,sysdatabasesWHEREsysprocesses.dbid=sysdatabases.dbidANDsysdatabases.Name=test",conn);
SqlDataReaderdr;
dr=cmd.ExecuteReader();
ArrayListlist=newArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(inti=0;i<list.Count;i++)
{
cmd=newSqlCommand(string.Format("KILL{0}",list),conn);
cmd.ExecuteNonQuery();
}
conn.Close();
try
{
server.LoginSecure=false;
server.Connect(".","sa","sa");
restore.Action=SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
restore.Database="test";
restore.Files=@"D:        estmyProgackupTest";
restore.FileNumber=1;
restore.ReplaceDatabase=true;
restore.SQLRestore(server);
MessageBox.Show("Restoresuccessed.");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value=0;

导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 10:18:24 来自手机 | 只看该作者
我个人认为就是孜孜不懈的学习
爱飞 该用户已被删除
板凳
发表于 2015-1-19 10:18:24 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
蒙在股里 该用户已被删除
地板
发表于 2015-1-24 14:16:06 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-1 16:49:07 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
小女巫 该用户已被删除
6#
发表于 2015-2-7 10:01:13 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
再见西城 该用户已被删除
7#
发表于 2015-3-6 20:30:36 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-13 08:27:48 | 只看该作者
这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 18:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表