logo资料库

两台服务器之间同步备份与还原解决方案.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
SQL 技术分享 两台服务器自动备份与还原解决方案 本机自动备份计划 1. 本机数据库服务器(如服务器名为 dbserver)中的数据库建立定期备份作业, 完全备份=>删除早于此时间(30 分钟)的文件(只保留一个备份文件)。 2. 将数据服务器存放数据库备文份件的文件夹(如 D:\autobackupdata)置成共享。 目标机器拷贝计划任务 1. 在另外一台机器(目标机 dbserverback)上建立目录(如 d:\autobackupdata\) 2. 目标机(dbserverback)上写一个批处理文件(打开记事本,按下面格式录入DOS 命 令,保存为 DBAutoBackup.bat。 格式: a) Del d:\autobackupdata \*.* b) XCOPY \\ 数据服务器名\数据服务器共享的备份文件文件夹\库名.* 本机硬盘\*.* /s /q (先删除文件) /m 举例: Del d:\autobackupdata\*.* /s /q XCOPY \\dbserver\autobackupdata\tempdb*.* d:\autobackupdata\*.* /m 3. 重命名备份的数据库文件(为固定名称 tempdb.bak) Rename d:\autobackupdata\tempdb*.bak tempdb.bak 目标机自动还原作业 1. 利用存储过程处理 use master go create proc sp_killspid (@dbname varchar(20)) as begin declare @sql nvarchar(500),@temp varchar(1000) declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql) open getspid Author: hongbo Liu Date: 2009-9-8 msn: itlhb@hotmail.com 第 1 页(共 2 页)
SQL 技术分享 fetch next from getspid into @spid while @@fetch_status<>-1 begin set @temp='kill '+rtrim(@spid) exec(@temp) fetch next from getspid into @spid end close getspid deallocate getspid end 2. 目标机建立恢复作业(job_DBAuotRestore) l 常规=>作业名称:job_DBAuotRestore l 步聚=>命令中键入 use master exec sp_killspid ' tempdb' go restore database REPLACE tempdb from disk='D:\ autobackupdata\tempdb.bak' with 附录(所用到的文件及脚本范例) l DBAutoBackup.bat l l sp_killspid.sql job_DBAuotRestore.sql Author: hongbo Liu Date: 2009-9-8 msn: itlhb@hotmail.com 第 2 页(共 2 页)
分享到:
收藏