如何用SQL2000实现数据库的异地备份

如何用SQL2000实现数据库的异地备份,第1张

在本机上装一个SQL2000,然后新建SQL SERVER 注册,输入远程主机的IP,用户名密码,登录到远程SQL,备份步骤和在本机上的一样

或者将远程的数据库导到本地然后在本地备份

手头上只有C#的代码,不知道对你有没有帮助

远程备份要注意权限的问题,普通的访问帐户没有备份和还原的权限,最好用sa的帐户,并且程序访问的帐户必须添加到远程机器的系统内

你说的远程备份到本地是不可能的,你只有开放远程某个文件夹加入你的特殊访问帐户权限

最好直接用远程桌面,这样最方便

方法一(不使用SQLDMO):

///

///备份方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();

cmdBKCommandType = CommandTypeText;

cmdBKConnection = conn;

cmdBKCommandText = @"backup database test to disk='C:\ba' with init";

try

{

connOpen();

cmdBKExecuteNonQuery();

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

connDispose();

}

///

///还原方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

//KILL DataBase Process

SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

SqlCommand cmdRT = new SqlCommand();

cmdRTCommandType = CommandTypeText;

cmdRTConnection = conn;

cmdRTCommandText = @"restore database test from disk='C:\ba'";

try

{

cmdRTExecuteNonQuery();

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

}

方法二(使用SQLDMO):

///

///备份方法

///

SQLDMOBackup backup = new SQLDMOBackupClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMOBackupSink_PercentCompleteEventHandler progress = new SQLDMOBackupSink_PercentCompleteEventHandler(Step);

backupPercentComplete += progress;

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

backupAction = SQLDMOSQLDMO_BACKUP_TYPESQLDMOBackup_Database;

backupDatabase = "test";

backupFiles = @"D:\test\myProg\backupTest";

backupBackupSetName = "test";

backupBackupSetDescription = "Backup the database of test";

backupInitialize = true;

backupSQLBackup(server);

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

///

///还原方法

///

SQLDMORestore restore = new SQLDMORestoreClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMORestoreSink_PercentCompleteEventHandler progress = new SQLDMORestoreSink_PercentCompleteEventHandler(Step);

restorePercentComplete += progress;

//KILL DataBase Process

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

connClose();

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

restoreAction = SQLDMOSQLDMO_RESTORE_TYPESQLDMORestore_Database;

restoreDatabase = "test";

restoreFiles = @"D:\test\myProg\backupTest";

restoreFileNumber = 1;

restoreReplaceDatabase = true;

restoreSQLRestore(server);

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

异地容灾,顾名思义就是在不同的地方(异地:可以是同城的两个不同的机房或者是两座不同的城市),构建一套或者多套相同的应用或者数据库,进一步提高了数据抵抗各种可能安全因素的容灾能力,可以对企业应用和数据库起到安全性、连续性等方面的作用。

两大分类

考虑到不同企事业单位对数据安全和业务连续性的要求不尽相同,我们将异地容灾分为两大类:数据级容灾和应用级容灾。

数据级容灾:就是指建立一个异地的数据系统,该系统是本地关键应用数据的一个可用复制。在本地数据及整个应用系统出现灾难时,至少在异地保存有一份可用的关键业务的数据。该数据可以是与本地生产数据的完全实时复制,也可以比本地数据略微落后,但一定是可用的。

应用级容灾:在数据级容灾基础上,在异地建立一套与本地生产系统相当的备份环境,包括主机、网络、应用、IP等资源均有配套,当本地系统发生灾难时,异地系统可以提供完全可用的生产环境。

CDP异地容灾VS传统异地容灾

传统的异地容灾方案大多基于远程复制技术。远程复制是指运用复制技术将数据以同步或者异步的方式存储到异地灾备中心中,其主要实现方式有三种:1利用主机远程复制软件或硬件 。2利用存储自身的复制软件。3利用数据库软件产品。远程复制的方式可以实现数据级的容灾,但是一旦发生灾难,无法保证业务的连续性。此外,一旦出现数据库逻辑错误或人为误删除的情况,远程复制不能修复数据错误,也不能找回误删除的数据,更谈不上100%恢复数据并保障数据的可用性了。

和力记易的异地容灾方案以CDP持续数据保护技术为核心,可以构建异地桌面端或服务器端的文件、数据库和应用的全需求平台,能够防范数据丢失、修复数据错误,还能保障业务连续,全方位满足客户不同的数据安全和业务连续性要求。

1、你公司的这台服务器应该和其他服务器是同一个域里面的吧,这样可以把你服务器里面的一个文件夹设置成可读写共享,然后在其他服务器上设置维护计划,目标盘就设置到你的这台服务器的共享目录下(注意权限一定要设置好)。这样就跟普通的维护计划一样了,只不过目录设置到网络上的共享盘而已

2、在你这台服务器上建立没个客户的数据库。使用数据库复制(发布、订阅)将客户服务器上的数据库定时的同步到你这台服务器上建立的数据库中。

原始的备份肯定是要备份在本地的,本地的备份好后再通过ftp等方式发把备份文件传到其他电脑上;

可以用pb调用命令行语句执行相关的ftp语句,或者调用其他的文件传输程序来达到传输的目的。

以上就是关于如何用SQL2000实现数据库的异地备份全部的内容,包括:如何用SQL2000实现数据库的异地备份、如何用 FileZilla Server 异地备份数据库数据,要详细过程谢谢啦、如何实现数据中心异地容灾备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9416647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存