1)如果是用的操作系统用户administrator登陆的系统,需要在“管理工具--〉服务”里把
MSSQLSERVER的启动账户改为administrator
2)在要存放数据库备份文件的机器上建立一个共享目录,然后在Sql Server所在的机器上映射成一个驱动器,比如F
3)在数据库里建立一个登录,选择windows身份验证,选择administrator,使之具有系统管理的服务器角色,并且可以访问要备份的数据库
4)这时只要用Windows身份验证进入查询分析器,执行
backup database enjoy_shq to disk= 'f:\enjoy_shq_bak.bak'
就可以了
备份数据库到另外一台机器的潜在问题
1)网络不稳定,导致备份失败
2)修改操作系统administator的密码后,启动MSSQLSERVER 服务的地方也要更改密码
3)还没有仔细想怎么让机器自动执行备份到别的服务器,并且自动保留几个备份。
我们是做一个批处理文件执行的,,
就可以在WINDOWS下的计划任务里执行的, 时间和次数都可以选的,,
如要把本机E盘DATA目录下的BAK.DAT拷到计算机名为WORK1下的D盘下的DATABAK目录下,WORK1的当前操作系统下有个用户名为user,密码为user
命令为: @echo off
net use \\work1\ipc$ /user:user user
net use x:=\\work1\d\databak\ /user:user user
copy e:\data\bak.dat x:\ /y
net use x: /dele
net use \\work1\ipc$ /dele
关于NET USE 命令的格式,,可以参考一些文档,,并且记住用户名和密码之间有个空格的。
并且WIN98下的这个命令格式有些不一样的。
当然也可以建一个存储过程,,调用SQL的CMDSHELL,,再运行那个文件就行了。
大家一定要重视备份的问题,千万别侥幸。
下面是网上的一个例子,不过好象成功与否是跟连接的用户权限有关的
SQLServer中网络备份一例 | ||
/**************************************************************************************** use master declare @dir varchar(256),@dir_db varchar(256), --建立网络连接
set @dir='K:\'+@dynamic_name
--set @cmd=@verb+@dir set @cmd=@verb+@dir_db --DgLifeng EXEC sp_addumpdevice 'disk',@backup_name, @disk_name exec sp_dropdevice @backup_name --lifeng EXEC sp_addumpdevice 'disk',@backup_name, @disk_name
EXEC sp_addumpdevice 'disk',@backup_name, @disk_name --mytopship
EXEC sp_addumpdevice 'disk',@backup_name,@disk_name
|