映射过来的硬盘,SQL SERVER一般是不能备份到这个盘的.参考下例:
SQL2000自动备份数据库到远程机器数据对于企业来说及其重要,像前几天的一个晚上,我们公司突然断电,CRM服务器没有UPS电源,所以造成两块硬盘出现Media Error,我们的磁盘采用RAID5的方式,将其中一块Force Online后,还是不能Rebuild,进不了操作系统. 幸亏装了双系统,从另外一个OS启动将数据全部取出来了.算是有惊无险的一次吧.现在我将其进行自动备份到其他机器上去,作一个双保险.1. 在Master数据库中建一个格式化时间的函数
Create function FormatDate(
@date smalldatetime
)
returns nvarchar(10)
begin
declare @dt nvarchar(10);
set @dt = SubString(Convert(nvarchar(20),@date,120),1,10); --格式化为yyyy-MM-dd HH:mm:ss格式,与后面的批处理日期格式保持一致
return @dt
end2. 创建一个备份数据库的存储过程
/*
* 在磁盘上根据日期创建一个文件夹,并将数据库备份到文件夹内
*/
Create Proc BackupCRM
as
begindeclare @path nvarchar(200);
declare @crmfilename nvarchar(200);
declare @metafilename nvarchar(200);
declare @cmd nvarchar(1000);set @path = 'E:\Backup\' + dbo.formatdate(getdate()) + '\';
set @crmfilename = @path + 'CRM.bak';
set @metafilename = @path + 'Meta.bak';
set @cmd = 'md ' + @path;--为了安全,建议还是将xp_cmdshell改名exec xp_cmdshell @cmd,NO_OUTPUTbackup database _0105237670_MSCRM to disk = @crmfilename;
backup database _0105237670_METABASE to disk = @metafilename
end3. 创建清空文件和复制文件的批处理命令
a.用于备份数据库前清空文件的批处理文件clearfiles.bat
del E:\Backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\CRM.bak
del E:\Backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\Meta.bak说明: %date%可以获得日期的字符串,但我们需要用~ index,len来截断并组合成yyyy-MM-dd格式的字符串,这和SubString函数类似,index表示字符串的起始索引位置,len表示要截取的长度.
如果想看到自己Server的%date%输出格式是什么,可以输入 echo %date%,我们的Server输出是Wed 02/14/2007
b. 复制文件至远程机器批处理文件copyfiles.batmd \\10.89.53.250\e$\backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\
del \\10.89.53.250\e$\backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\CRM.bak
del \\10.89.53.250\e$\backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\Meta.bakcopy E:\Backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\CRM.bak \\10.89.53.250\e$\backup\%date:~10,4%-%date:~4,2%-%date:~7,2%
copy E:\Backup\%date:~10,4%-%date:~4,2%-%date:~7,2%\Meta.bak \\10.89.53.250\e$\backup\%date:~10,4%-%date:~4,2%-%date:~7,2%
4. 启动SQL Agent服务,并设为开机自动运行,然后新建一个备份的Job0082-1.bmp注意将批处理执行失败后的动作设为"执行下一步操作",否则如果文件不存在等可能会导致Job不能正常运行0082-2.bmp
0082-3.bmp最后在Schedules中新建一个Schedule,当然选择的运行的时间点就是那种风高月黑夜深人静的时候罗

解决方案 »

  1.   

    瀟洒大哥:
         偶來初學者啊,太有點復雜,能講解一下嗎?
         第二步中:存儲過程應該放在哪個數據庫里?好像下面都沒有用到!另外下面2句中那database后面的是哪個數據庫:
    backup database _0105237670_MSCRM to disk = @crmfilename;
    backup database _0105237670_METABASE to disk = @metafilename
        其他的步驟也有一些不清楚的地方。能不能講詳細點?謝謝!