惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

博客园 - Phoenix

Server Explorer disappeared in VS 2008 如何在外部得到一个event是否已被注册 FlashGet的堕落 画一个立体的柱图 - Phoenix - 博客园 Vista: user does not have administrative privileges in command prompt mode. 将一个域中的MS CRM数据库部署到另外一个域中 求救手工设置笔记本IRQ的方法 用纯API写的窗体 Windows下安装SQLPlus的帮助 Oracle Listener报“TNSLSNR.exe 应用程序错误” 正则表达式超时 [导入]不使用COM组件弹出数据库连接对话框 [导入]C#: 通过动态编译获取字符串所表达的值 [导入]Asp.Net中连接Oracle [导入]全角字符的匹配 [导入]使用.Net获取OLEDB数据库的架构. [导入]使用C#在进度条中显示复制文件的进度 [导入]在SQL Server2000中修改系统表 [导入]已经毕业3个月了,怀念大学生活啊。。。
SQL2000自动备份数据库到远程机器
Phoenix · 2007-02-14 · via 博客园 - Phoenix

数据对于企业来说及其重要,像前几天的一个晚上,我们公司突然断电,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
end

2. 创建一个备份数据库的存储过程
/*
* 在磁盘上根据日期创建一个文件夹,并将数据库备份到文件夹内
*/

Create Proc BackupCRM
as
begin

declare @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_OUTPUT

backup database _0105237670_MSCRM to disk = @crmfilename;
backup database _0105237670_METABASE to disk = @metafilename
end

3. 创建清空文件和复制文件的批处理命令
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.bat

md \\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.bak

copy 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服务,并设为开机自动运行,然后新建一个备份的Job

注意将批处理执行失败后的动作设为"执行下一步操作",否则如果文件不存在等可能会导致Job不能正常运行


最后在Schedules中新建一个Schedule,当然选择的运行的时间点就是那种风高月黑夜深人静的时候罗:)