[问题]
一个客户的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。在数据库服务器上
1。设定一个备份任务,备份的脚本如下:
/********
--任务执行的脚本
********/
具体命令见window帮助:
语法
net use
[{
DeviceName |
* }]
[
//
ComputerName
/
ShareName [
/
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 }]
*/
备份方法有两种:
一。直接备份在本地硬盘,然后将备份文件压缩,然后将压缩后的文件直接移动到备份服务器上
,适用于本地硬盘空间充裕的情况下
--备份完成后,将备份文件压缩,压缩完成后,删除原文件
C:/Progra~1/Winrar/Rar A -Df -Ep Log2006.rar Y:/log/*.*
若在sql中执行见:
declare @sql varchar(100)
declare @Filepath varchar(50)
set @filePath ='D/backup/test'
Set @Sql = 'C:/Progra~1/Winrar/Rar 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.3/backup
12345 /user:192.168.1.3/DBBak' '
Exec Xp_Cmdshell 'Move /Y d:/dbbak/*.rar Y:/'
Exec Xp_Cmdshell 'Net Use z: /delete'
二。直接将备份文件放到备份服务器上,
exec s_Sys_Backup 'Y:/log','log',2