当前位置:首页 > 网络编程 > 数据库 > SQL Server > SQL Server 2000非域环境下数据库异机备份

SQL Server 2000非域环境下数据库异机备份

点击次数:32 次 发布日期:2008-11-22 13:31:53 作者:源代码网
源代码网推荐

问题:

一个客户的sql server 2k数据库想备份到另外一台服务器上,SQL Server 中可以将sql server及代理服务 的服务帐户设置为域用户,就可以在备份时将备份文件写入指定的网络路径下。但用户在使用域用户运行SQL Server时,反映系统运行不稳定,还是用系统帐户,这样网络备份就无法实现了。

方案:

以前有同事试验用在本机指定网络驱动器,然后将备份文件写入网络驱动器,实现了异机备份。

环境说明:

硬件环境:数据库服务器 192.168.1.5;备份服务器 192.168.1.3

操作系统:都是Win 2k ad +sp4

其他:备份服务器 192.168.1.3,有c:;d:;E:三个硬盘

具体做法:

1、在备份服务器的设置备份目录及共享该目录

1.1 备份服务器上创建了一个本地用户:DBBak ,密码:12345

1.2 在备份服务器的E:下创建一个目录backup ,下有子目录 complete ;log;dif

1.3 共享 backup目录,共享名为backup,权限只有用户DBBak可以完全控制,everyone只读

2、在数据库服务器上

设定一个备份任务,备份的脚本如下:

/********

--任务执行的脚本

********/

/* --在数据库服务器上将\192.168.1.3ackup 映射为本地驱动器 Y:

具体命令见window帮助:

语法:

net use [{DeviceName | *}] [\ComputerNameShareName[volume]] [{Password | *}]] [/user:[DomainName]UserName] [/user:[DottedDomainName]UserName] [/user:[UserName@DottedDomainName] [/savecred] [/smartcard] [{/delete | /persistent:{yes | no}}]

net use [DeviceName [/home[{Password | *}] [/delete:{yes | no}]]

net use [/persistent:{yes | no}]

*/

Exec Xp_Cmdshell "net use Y: \192.168.1.3ackup 12345 /user:192.168.1.3DBBak"

备份方法有两种:

一、直接备份在本地硬盘,然后将备份文件压缩,然后将压缩后的文件直接移动到备份服务器上,适用于本地硬盘空间充裕的情况下

--备份完成后,将备份文件压缩,压缩完成后,删除原文件

C:Progra~1WinrarRar A -Df -Ep Log2006.rar Y:log*.*

若在sql中执行见:

declare @sql varchar(100)

declare @Filepath varchar(50)

set @filePath ="Dackup est"

backup database pubs to disk =@filePath+"pubs.bak"

Set @Sql = "C:Progra~1WinrarRar A -Df -Ep " + @Filepath + " " + @Filepath + "*.*"

Exec Xp_Cmdshell @Sql,No_Output

Set @Sql = "rd /S /Q " + @Filepath

Exec Xp_Cmdshell @Sql

Exec Xp_Cmdshell net use Y: \192.168.1.3ackup 12345 /user:192.168.1.3DBBak""

Exec Xp_Cmdshell "Move /Y d:dbbak*.rar Y:"

Exec Xp_Cmdshell "Net Use z: /delete"

二、直接将备份文件放到备份服务器上

--执行如下存储过程,以备份开始日期为目录,将数据库日志的备份文件放到备份服务器上,如:\192.168.1.3e$ackupservernamelog200601091200 *.trn

exec s_Sys_Backup "Y:log","log",2

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华