SqlServer2000双机异步备份.docx_第1页
SqlServer2000双机异步备份.docx_第2页
SqlServer2000双机异步备份.docx_第3页
SqlServer2000双机异步备份.docx_第4页
SqlServer2000双机异步备份.docx_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

sqlserver2000双机异步备份sqlserver2000双机异步备份1、目的为了实现sqlserver2000数据库服务器与备份机之间的异步定时备份,同时在备份机定时恢复,特做此实际操作。2、环境数据库服务器系统:windows server 2003 enterprise edition 机器名称:qasoftoaip:192.168.1.236以下简称236数据库:sqlserver 2000 sp4备份机系统:windows server 2003 enterprise edition机器名称:qianerpip:192.168.1.243以下简称243数据库:sqlserver 2000 sp43、工具使用系统自带的计划任务和sqlserver 2000的企业管理器中的工具即可。4、具体操作4.1、配置用户名和共享文件夹首先,分别在两台机器上安装sqlserver2000数据库,并打过sp4补丁,然后分别在两台机器上建立相同用户名和密码的用户,我这里建立的用户为sqlserver密码也是sqlserver,步骤如下,打开计算机管理界面:展开本地用户和组选项,在用户上右键:选择新用户,输入用户名和密码勾掉“用户下次登录时须更改密码”,勾选“用户不能更改密码”和“密码永不过期”:最后点击“创建”:然后点击“关闭”,在右侧的用户列表用就可以看到刚建的sqlserver用户:然后将该用户分到administrators组中,在左侧点击“组”,然后在右侧的administrators组上右键:选择“添加到组”:然后点击“添加”:然后点击“高级”来查找刚才添加的用户:然后点击“对象类型”,在这里面勾掉除了用户以外的其他选项:点击“确定”后,点击“立即查找”:选中刚建的“sqlserver”用户,然后点击“确定”:点击“确定”:点击“应用”和“确定”。最后再确定即可。记住,两台机器需要做上面相同的操作。然后在236上的管理里,点击左侧的“服务”选项,在右侧服务列表中找到mssqlserver服务,右键-属性:选择“登录”选项卡:选中“此账户”,然后点击“浏览”,然后和添加到组时的操作相同,选择sqlserver用户,并输入密码:最后点击“应用”和“确定”。还需要找到服务名为sqlserveragent服务,做同上面一样的操作,将登录账户改为sqlserver,然后重启下mssqlserver服务。然后在246机器上建立两个文件夹,fullbak和diffbak,fullbak文件夹用于存放完全备份的文件,diffbak存放差异备份的文件。我的在e盘下:然后右键其中一个文件夹选择“共享和安全”,勾选“共享此文件夹”,共享名为“fullbak”:然后点击“权限”:删除“everyone”用户,点击添加:同样的点击“高级”查找sqlserver用户,选中确定:在下面的权限中,为“完全控制”勾选允许,然后“应用”和“确定”即可:对另一个文件夹也进行相同的操作,完成后如下:到此,用户的配置和共享文件夹就完成了。4.2、编写备份和恢复存储过程首先,在236机器上使用sqlserver的查询分析器编写完全备份和差异备份的存储过程。完全备份的为:create proc bakup_as declare strpsw varchar(50)declare strusr varchar(50)declare strcmdshell varchar(300)declare strdatabasename varchar(20)declare fullfilename varchar(200) declare fileflag varchar(50) declare strdelete varchar(200) set fileflag=substring(convert(varchar(20),getdate(),20),0,11)+full -备份的文件命名规则:日期full.bakset strusr=sqlserver -需填写用户名(目标机器的windows登陆名)set strpsw=sqlserver-需填写windows登陆密码(如:soondy)set strcmdshell= net use z: 192.168.1.243fullbak + strpsw + /user: +strusr -需填写ip(目标机器的ip地址,如:192.168.1.243)set strdatabasename=baktest-填写数据库名称(如:soondy)set fullfilename=z:+fileflag+.bak-需填写本地备份临时文件的目录,因为需要先备份到本地再copy到目标机器(如:保存目录为e:soondytest)set strdelete=net use z: /delete -取消映射exec master.xp_cmdshell strcmdshell-尝试连接到目标机器backup database strdatabasename to disk= fullfilenameexec master.xp_cmdshell strdelete差异备份的为:create proc bakup_cyas declare strpsw varchar(50)declare strusr varchar(50)declare strcmdshell varchar(300)declare strdatabasename varchar(20)declare fullfilename varchar(200) declare fileflag varchar(50) declare strdelete varchar(200) set fileflag=substring(convert(varchar(20),getdate(),20),0,11)+diff -备份的文件命名规则:日期diff.bakset strusr=sqlserver -需填写用户名(目标机器的windows登陆名)set strpsw=sqlserver-需填写windows登陆密码(如:soondy)set strcmdshell= net use x: 192.168.1.243diffbak + strpsw + /user: +strusr -需填写ip(目标机器的ip地址,如:192.168.1.243)set strdatabasename=baktest-填写数据库名称(如:soondy)set fullfilename=x:+fileflag+.bak-需填写本地备份临时文件的目录,因为需要先备份到本地再copy到目标机器(如:保存目录为e:soondytest)set strdelete=net use x: /delete -取消映射exec master.xp_cmdshell strcmdshell-尝试连接到目标机器backup database strdatabasename to disk= fullfilename with differentialexec master.xp_cmdshell strdelete这个存储过程和完全备份的只要备份语句和目标位置不一样。然后在243机器上编写恢复的存储过程,同样也分为完全恢复和差异恢复,完全恢复的如下:create proc restroe_fullasdeclare fullfilename varchar(200) set fullfilename=e:fullbak+substring(convert(varchar(20),getdate(),20),0,11)+full.bakrestore database baktest from disk= fullfilename with replace上面的fullfilename为备份文件的所在位置和名称,这在备份时都是定义好的,在这里按照上面的写即可。然后还需要编写差异恢复的存储过程:create proc restroe_diffasdeclare fullfilename varchar(200)declare difffilename varchar(200)set fullfilename=e:fullbak+substring(convert(varchar(20),getdate(),20),0,11)+full.bakset difffilename=e:diffbak+substring(convert(varchar(20),getdate(),20),0,11)+diff.bakrestore database baktest from disk= fullfilename with norecoveryrestore database baktest from disk= difffilename with file=1,recovery如上所示,在执行差异恢复之前必须执行完全恢复一次,然后将数据库设为 norecovery状态,最后才能进行差异恢复。到此备份和恢复的存储过程就完成了。4.3、定时执行备份和恢复编写完上述的存储过程,还需要定时执行,比如每周日00:01执行一次完全备份,每天1:00执行一次差异备份,每周日2:00执行一次完全恢复,每天3:00执行一次差异恢复,这都需要定时,sqlserver 2000中支持定时作业功能,具体设置步骤如下:首先打开企业管理器,展开如下所示的界面:在管理目录下,有个sql server 代理,有的机器可能已经运行,有的没有运行,首先启动它,右键启动,启动后的界面如下:然后在下面或右侧会有“作业”图标,在上面右键,-新建作业,如下:这名称里输入一个有意义的名称,然后点击“步骤”选项卡点击“新建”按钮,然后输入如下信息:步骤名称随便写,命令里为执行的存储过程名称,数据库是该存储过程所在的数据库,选好,然后点击“确定”然后选择“调度”选项卡,然后点击“新建调度”,输入下面的信息:由于是每周或每天都执行,所以是“反复出现”,然后具体日期和时间点击“更改”,在下面的窗口中选择:其他的备份和恢复作业也都这么设置,一路确定后,如下:我这是恢复的作业,备份的也一样,在236上设置备份作业,在243上设置恢复作业。到此,定时作业就完成了。4.4、定时删除和重命名备份文件上面我们把定时备份和恢复做完了,对于现在的备份和恢复脚本,还有一个问题,由于完全备份的文件的名称是按系统日期命名的,而且是每周才执行一次,而差异恢复时必须要先执行一次完全备份,取的完全备份文件名也是按系统日期获取的,而完全备份文件名每周才变一次,所以在执行差异恢复时会出现找不到完全备份文件的错误,这时就需要每天都按系统日期重命名完全备份文件,还有,重名时由于不知道之前的文件叫什么名,所以只能指定文件夹,这样重命名会把整个文件夹的文件进行重命名,所以还需要每周把完全备份文件夹里的文件,在备份新的文件之前将其删除。所以这里是需要两个windows下的任务计划支持。需要两个 bat文件,具体内容如下:这两个任务计划和bat需要在243机器上,ren.bat为重命名脚本,del.bat为删除脚本,内容如下:ren.batd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论