2、二台机子通过远程方式执行同步(B机器每天还原,A机器每天备份)。
例子如下:
SQLSERVER服务实例名称(B机器): 192.168.0.29
A备份的数据库名称: aDB
A备份机器名称(Client端): 192.168.0.30
A备份机用户: administrator 密码: 666
A备份机电脑名称: farcn
备份机提供备份需求的文件夹:D:\backup
set @pathname='D:\sqldatabankup\everydayforABC'+convert(varchar(10),getdate(),112)
BACKUP DATABASE [My_db] TO DISK = @pathname WITH NOINIT , NOUNLOAD , NAME = N'dbnameinfo backup',
NOSKIP , STATS = 10, NOFORMAT
备份数据库
第一步: 在A备份机建立共享文件夹(此文件夹设置当前用户可读写操作)
在程序代码中调用(或者CMD窗口)
net share sqlbakup=D:\backup 或者用NetShareAdd这个API
简要说明:
net share:是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
第二步: 建立共享信用关系
exec master..xp_cmdshell 'net use \\192.168.0.30\backup 666 /user:farcn\Administrator'
若报错提示这个:“SQL Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
系统管理员可以通过使用sp_configure 启用'xp_cmdshell'。有关启用'xp_cmdshell' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。”
启用’xp_cmdshell’:
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
关闭’xp_cmdshell’:
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
开启’xp_cmdshell’后再执行建立信用关系:
exec master..xp_cmdshell 'net use \\192.168.0.30\backup 666 /user:farcn\Administrator'
在B机子上执行还原备份库A的备份文件:
declare @pathname varchar(500)
declare @netinfo varchar(500)
set @pathname='\\192.168.0.30\bankup\dbname'+convert(varchar(10),getdate(),112)
USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
set @netinfo='net use \\192.168.0.30\backup 666 /user:farcn\Administrator'
exec master..xp_cmdshell @netinfo
restore database mydbbackup from disk=@pathname
简要说明:
1:xp_cmdshell :是SQLSERVER的扩展存储过程。
作用:以操作系统命令行解释器的方式执行给定的命令字符串, 并以文本行方式返回任何输出。
语法:参见SQLSERVER联机帮助
2:net use : 是WINDOWS内部的网络命令。
作用:将计算机与共享资源连接或断开,或者显示关于计算机连接的信息。
该命令还控制持久网络连接。
3:备份数据库
backup database a to disk='\\192.168.12.30\sqlbak\a.bak'
backup database a to disk='\\192.168.12.30\sqlbak\a1.bak' WITH DIFFERENTIAL (差异备份)
4: 删除共享文件夹
在程序代码中调用(或者CMD窗口) net share sqlbakup/delete
或者用NetShareDel这个API
恢复数据库
restore database a from disk='\\192.168.12.30\backup\a.bak'
以下是差异还原
restore database scs from disk='\\192.168.12.30\backup\a.bak' WITH NORECOVERY
restore database scs from disk='\\192.168.12.30\backup\a1.bak' WITH NORECOVERY
restore database scs from disk='\\192.168.12.30\backup\a2.bak'