sqlserver 2005 数据库异机备份

sqlserver 2005 数据库异机备份,第1张

概述思路 :在数据库上创建存储过程,然后 建立作业定时备份。        为了防止直接向远程备份数据库网络中断,还是先备份到本地,再拷到远程硬盘的好,用SQL的脚本可以调用master..cmdshell \'copy...\'实现。 存储过程代码如下: use mastergocreate proc bakup_DataBaseas Declare @strPsw varchar(50)
思路 :在数据库上创建存储过程,然后 建立作业定时备份。        为了防止直接向远程备份数据库网络中断,还是先备份到本地,再拷到远程硬盘的好,用sql的脚本可以调用master..cmdshell \'copy...\'实现。
存储过程代码如下:
use mastergocreate proc bakup_DataBaseas 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 @Tofilename varchar(200) Declare @sqlStr varchar(500)Declare @sqlStr2 varchar(500)Declare @FlagDel varchar(20)Set @fileFlag=replace(replace(convert(char(20),getdate(),20),':','-'),' ','-')     --备份的文件命名规则:日期-时间.bakSet @strUsr='192.168.1.102\administrator' --目标机器域名\目标机器windows用户名Set @strPsw='sdjz'--目标机器windows登陆密码Set @strCmdshell= 'net use \\192.168.1.102\ipc$ ' + @strPsw + ' /user:' +@strUsr --需填写IP(目标机器的IP地址,如:192.168.2.178)Set @strDataBasename='strs'--填写数据库名称(如:Soondy)Set @Fullfilename='E:\mq\'+@fileFlag+'.BAK'--需填写本地备份临时文件的目录,因为需要先备份到本地再copy到目标机器(如:保存目录为E:\SoondyTest\)Set @Tofilename='\\192.168.1.102\97sqlserver_bak\' --需填写IP(目标机器的IP地址)以及保存的目录(如:\\192.168.1.140\db\)Set @FlagDel='True'--填写True表示删除本地的备份临时文件,填写False或其他字符表示保留该文件Set @sqlStr='copy '+@Fullfilename+' '+@Tofilename Set @sqlStr2='del ' +@Fullfilename--备份;with init覆盖 |noinit添加 BackUp DataBase @strDataBasename To disk= @Fullfilename   with initPRINT @strCmdshellPRINT @sqlStrexec master..xp_cmdshell @strCmdshell--尝试连接到目标机器exec Master..xp_cmdshell @sqlStr --拷贝到目标机器上 if (@FlagDel ='True') exec master.. xp_cmdshell @sqlStr2--删除本地的备份临时文件GO	

出现的错误 和解决办法 1、 sql Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用'xp_cmdshell'。有关启用'xp_cmdshell' 的详细信息,请参阅sql Server 联机丛书中的"外围应用配置器"。
启动外围应用配置器工具 开始 菜单中,依次指向 程序 、“ Microsoft sql Server 2005 配置工具 ,再单击 “sql Server  外围应用配置器 。单击 配置外围应用 旁边的链接。默认值为  localhost 。如果您以前选择的是一个命名服务器,则将会看到该服务器名称。选择“ 功能的外围应用配置器 ”,启用'xp_cmdshell'选项打勾即可。 如果是sqlserver2008 运行以下sql代码  由默认的0变成1 
EXEC sp_configure 'show advanced options',1GORECONfigUREGOEXEC sp_configure 'xp_cmdshell',1GORECONfigUREGO


2、net use ipc$错误解决(发生系统错误 67) 2009-06-25 14:31

net use ipc$错误解决

发生系统错误 67。

找不到网络名

===============

解决:运行serivces.msc(即服务管理)

开启:

1.Server服务(显示名称)(对应名称为:lanmanserver)

2.Workstation服务(显示名称)(对应名称为:lanmanWorkstation)


*************************************补充 远程和本地只保留7天内的备份数据 存储过程如下*******************************

set ANSI_NulLS ONset QUOTED_IDENTIFIER ONgocreate proc [dbo].[bakup_DataBase1]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 @Tofilename varchar(200) Declare @sqlStr varchar(500)Declare @sqlStr2 varchar(500)Declare @FlagDel varchar(20)Declare @sqlStr3 varchar(500)--同机备份如下--填写数据库名称(如:Soondy)Set @strDataBasename='strsbak'--备份的文件命名规则:数据库名20131213.bakSet @fileFlag=@strDataBasename+rtrim(convert(varchar,112))  Set @Fullfilename='E:\mq\'+@fileFlag+'.BAK'--需填写本地备份临时文件的目录,因为需要先备份到本地再copy到目标机器(如:保存目录为E:\SoondyTest\)   ---异机备份如下Set @strUsr='192.168.1.102\administrator' --目标机器域名\目标机器windows用户名Set @strPsw='sdjz'--目标机器windows登陆密码Set @strCmdshell= 'net use \192.168.1.102\ipc$ ' + @strPsw + ' /user:' +@strUsr --需填写IP(目标机器的IP地址,如:192.168.2.178)Set @Tofilename='\192.168.1.102sqlserver_bak\' --需填写IP(目标机器的IP地址)以及保存的目录(如:\192.168.1.140\db\)Set @sqlStr='copy '+@Fullfilename+' '+@Tofilename ---向异机copySet @FlagDel='True'--填写True表示删除本地的备份临时文件,填写False或其他字符表示保留该文件--保留7天以内的备份Set @sqlStr2='del '+'e:\mq\'+@strDataBasename+rtrim(convert(varchar,getdate()-7,112))+'.BAK'Set @sqlStr3='del '+@Tofilename+@strDataBasename+rtrim(convert(varchar,112))+'.BAK'BackUp DataBase @strDataBasename To disk= @Fullfilename   with initPRINT @strCmdshellPRINT @sqlStrexec master..xp_cmdshell @strCmdshell--尝试连接到目标机器exec Master..xp_cmdshell @sqlStr --拷贝到目标机器上 if @FlagDel ='True'beginPRINT @sqlStr2exec master.. xp_cmdshell @sqlStr2--删除本地的备份7天以外的备份文件exec master.. xp_cmdshell @sqlStr3--删除远程的备份7天以外的备份文件PRINT @sqlStr3end
总结

以上是内存溢出为你收集整理的sqlserver 2005 数据库异机备份全部内容,希望文章能够帮你解决sqlserver 2005 数据库异机备份所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存