之前的帖子:http://topic.csdn.net/u/20100423/14/79c89533-e9ce-491d-865d-faaeaa50b421.html近期由于电压不稳,造成服务器损坏。新购的服务器,但是系统构成跟原来一样-win2008x86+sql2008现在想做a服务器的数据库自动定时备份到c机器,c机器是xp系统,共享文件夹名:dba服务器已经将db做了映射,按照之前的方法步骤,都提示成功,但是db里没有备份的文件,也就是说实际上备份文件没有成功的复制到db请各位大大们一解迷团。本人超级菜鸟,急需帮助。
----------------------------------------------------------------------------------------------------要用远程数据库可以备份本地。
本地数据库也可以备份到远程。 --备份环境:把数据库服务器(192.168.1.8)的数据库(TEST)备份到(192.168.1.145)的C$下 --首先,做一个与客户端的映射
exec master..xp_cmdshell
'net use z: \\192.168.1.145\c$ "密码" /user:192.168.1.145\administrator'
/*--说明:
z: 是映射网络路径对应本机的盘符,与下面的备份对应
\\192.168.1.145\c$ 是要映射的网络路径
192.168.1.145\administrator
192.168.1.145是远程的计算机名,administrator是登陆的用户名
密码 上面指定的administrator用户的密码
--*/
--其次,进行数据库备份
backup database TEST to disk='z:\Test.bak' --最后.备份完成后删除映射
exec master..xp_cmdshell 'net use z: /delete'
--来自网络--以下代码放在作业里做调度,自动备份、自动删除4天前备份--创建映射
exec master..xp_cmdshell 'net use w: \DatabaseBackup$ "password"/user:Roy',NO_OUTPUT
go
-----2000用游标:
declare @s nvarchar(200),@del nvarchar(200)
select @s='',@del=''declare datebak cursor for
select
[bak]='backup database '+quotename(Name)+' to disk =''w:'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak'' with init',
[del]='exec master..xp_cmdshell '' del w:'+Name+'_'+convert(varchar(8),getdate()-4,112)+'.bak'', no_output'
from master..sysdatabases where dbid>4 --不备份系统数据库
open datebakfetch next from datebak into @s,@del
while @@fetch_status=0
begin
exec (@del)
exec(@s)
fetch next from datebak into @s,@del
end
close datebak
deallocate datebak
go
--删除映射
exec master..xp_cmdshell 'net use w: /delete'go
--用JOB.
--SQL SERVER2000为例 企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>作业—>右键 选—>新建 常规选项页—>输入作业名称—>选中所有者。 步骤选项页—>新建—>输入步骤名—>类型 TSQL脚本—>选择需要执行的数据库—>在命令框里输入你的SQL 脚本: 如:update tb set 状态= ... where 日期........... 你可以点左下角的【分析】按钮,分析一下语法,分析无误,按确定。 调度选项页—>新建调度—>输入调度名称—>调度类型 你可以选择也可以点右下角的【更改】按钮进行更改,确定。 任务栏 SQL SERVER服务器的小图标 双击 服务 选中 SQL SERVER AGENT,点【开始/继续】,选中当启动OS时,自动启动服务,就可以了。 到你定的那个时间点,SQL SERVER会自动去执行你的脚本的。 如果需要生成脚本的话,企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>作业—>右键你刚完成的作业—>所有任务 —>生成SQL脚本,即可生成你需要的脚本
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名 ... --该存储过程用于创建表 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定. --SQL如何备份到异机写成存储过程,建立作业定时备份~~~
--在sql中映射一下就可以了
exec master..xp_cmdshell 'net use z: \\yizhi\D$ "密码" /user:yizhi\administrator'/*--说明:
exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'z:是映射网络路径对应本机的盘符,与下面的备份对应
\\xz\c$是要映射的网络路径xz\administrator
xz是远程的计算机名,
administrator是登陆的用户名
密码 面指定的administrator用户的密码
--*/--备份;with init覆盖|noinit添加
backup database 库名 to disk='E:\H_BACKUP.bak' with init--COPY
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:'--删除(这句可以去掉)
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak'--完成后删除映射
exec master..xp_cmdshell 'net use z: /delete'
'net use z: \\192.168.0.41\d$ "3920880"/user:192.168.0.41\wanghua'3-exec master..xp_cmdshell 'copy d:\ms2011_1158.bak z:'
开始作业步骤提示成功,但是z:里边没有ms2011_1158.bak。第2步在查询分析器里执行后提示已有z:的记录链接,
是否覆盖N Y
没有提供有效响应
NULL老大们帮我看看