SQL Server 2005数据库异地自动备份研究与实现
2015-06-07池兴颖
池兴颖,袁 勇
(遵义师范学院计算机与信息科学学院,贵州遵义563000)
实现SQL Server 2005数据库异地备份的方法很多,可以先在本地备份,然后再将本地备份通过FTP软件定时传送到异地硬盘[1];也可用编程的方式实现异地备份[2],但操作方式相对复杂。本文通过维护计划的方式,利用SQL自带的xp_cmdshell外围命令,先实现本机服务器与异地服务器的连接,在异地服务器上建立一个用于存放备份数据的共享文件夹,文件夹设置具有存取权限,之后利用维护计划中的T-SQL任务和备份数据库任务来实现SQLServer 2005数据库的异地自动备份,为数据库系统管理维护提供可靠保障。
通过此方法实现异地自动备份的优势是操作简单、便捷、易于实现,并且不用借助第三方软件;不足的地方是xp_cmdshell外围命令功能太强大,容易被黑客利用攻击。但对于安全性要求不是太高的数据库管理维护,也是一种可供参考的自动远程备份方法。
1 SQLServer2005相关服务及xp_cmdshell命令的开启
1.1 SQL Server 2005服务的开启
为了能够使用SQLServer2005数据库,需要开启 SQL Server(MSSQLSERVER) 和 Server Agent(MSSQLSERVER)服务,具体操作步骤:
(1)Microsoft SQL Server 2005→ 配置工具 →SQL Server Configuration Manager→SQL Server 2005服务;
(2)分别进入SQLServer和ServerAgent两个服务属性中的服务,将启动模式修改为自动模式,确定后启动服务即可。
1.2 xp_cmdshell命令的开启
(1)MicrosoftSQLServer2005→配置工具→外围应用配置器→功能的外围应用配置器,进入外围应用配置器;
(2)在外围应用配置器中,依次点击 MSSQLSERVER→Database Engine → xp_cmdshell,勾选启用xp_cmdshell,确定即可。
2 SQL Server 2005与异地共享文件夹的连接建立与删除
本地SQLServer2005服务器IP地址为10.0.192.189,需要将数据自动存储到IP地址为10.0.192.77的主机上。
(1)异地共享文件夹的建立与访问权限分配
在异地主机上(IP:10.0.192.77)建立一个用于存放备份数据的共享文件夹(名为:backup),共享文件夹设置访问权限为具有存取权限。
(2)SQL Server 2005与共享文件夹的连接建立
exec master..xp_cmdshell'net usez:\10.0.192.77ackup"123654"/user:10.0.192.189administrator'
123654为10.0.192.77的系统管理员账号密码。
(3)将数据库备份到共享文件夹
backup database test to disk='D:BACKUP.bak'with init
将数据库test先备份到 D盘根目录,命名为“BACKUP.bak”。
exec master..xp_cmdshell'copy D:BACKUP.bak z:'
将备份文件复制到共享文件夹。
exec master..xp_cmdshell'del D:BACKUP.bak'
删除本地备份文件。
(4)连接删除
exec master..xp_cmdshell'net use z:/delete'
这样就完成了数据库文件备份到异地共享文件夹,接下来通过维护计划的方式,实现数据库与共享文件夹的连接、数据库备份到共享文件夹、连接删除,从而实现异地自动备份。以上命令可以修改参数后在SQL Server2005中进行测试,测试成功后方可进行下面的操作。
3 数据库维护计划实现自动备份
在异地主机上建立一个用于存放备份数据的共享文件夹,将文件夹设置为具有存取权限,然后利用维护计划实现数据库的自动备份。
(1)新建维护计划,命名为“remote_backup”,并将“执行T-SQL语句”任务、“备份数据库”任务拖动到该维护计划中。并做好连接顺序,参见图1。
图1 维护计划任务设置图
(2)设置remote_backup维护计划的属性为每天执行一次,具体见图2。
图2 维护计划属性设置图
(3)将建立与异地文件夹的连接和删除连接命令分别写在“执行T-SQL语句”任务、“执行T-SQL语句”任务1中,以达到每天执行计划时,先与异地共享文件夹建立连接,然后执行备份、备份完成后删除连接。因此,将第2部分SQLServer2005与异地共享文件夹的连接建立与删除中第二步和第四步的代码分别录入到“执行T-SQL语句”任务、“执行TSQL语句”任务1中并确定,见图3。
图3 “执行T-SQL语句”任务设置图
(4)在“备份数据库”任务中设置需要备份的数据库,并设置备份的具体目录,这里是指远程共享文件夹的路径和文件名,见图4。
图4 “备份数据库”任务设置图
(5)以上设置完成后,保存维护计划并执行,则弹出成功执行维护计划对话框,见图5。
图5 成功执行维护计划图
到此,数据库远程自动备份设置基本完成,但是为了万无一失,应该修改执行维护计划的执行时间,再检查主机10.0.192.77的共享文件夹“backup”是否执行了远程备份,以检验操作是否成功。
4 总结
通过在异地服务器上建立一个用于存放备份数据的共享文件夹,将文件夹设置为具有存取权限,然后利用维护计划建立连接异地主机的T-SQL任务、备份数据库任务、删除连接的T-SQL任务实现了数据库的自动远程备份。该方法比利用编程和一些FTP软件来实现自动远程备份更简单和专业,可为SQL Server 2005数据库管理人员提供管理参考。
[1]于泽德.SQL Server数据库的自动化远程备份[J].实验科学与技术,2008,5(6):71-73.
[2]张顺吉,董婧.VB实现SQLServer数据库远程备份/还原一法[J].中国科技信息,2009,(8):121-122.
[3]闪四清.SQL Server 2005基础教程[M].北京:清华大学出版社,2007.