Database auto backup

情形一:异地备份
运行环境分析:
现有两台机器具体配置如下:
操作系统:两台都是Windows2000AdvancedServer
数据库:SqlServer2000
IP:一台是192.168.0.1,另一台是192.168.0.100
要求:定期自动实现将192.168.0.1中数据库中bbsbak数据库备份到192.168.0.100的机器上,并删除15天以前对192.168.0.100中自动备份的bbsbak数据库。

注:本操作涉及到MsSqlServer2000数据库数据转换服务中包的高级设置、数据库存储过程、作业的添加及简单Transact_SQL语句的操作等内容,在此不再详述,请参考相关资料及微软官方网站。

操作步骤:
1.在本机(win2000)中打开SQL数据库――-数据转换服务――本地包(如图)
showimg.asp?ID=10766500)this.width=500" border=0>
2.右键――新建包,出现如图画面
showimg.asp?ID=10750500)this.width=500" border=0>
A:首先建立MicrosoftOLEDBProviderforSQLServer(如图)
showimg.asp?ID=10751500)this.width=500" border=0>
在此注意两点:第一指定的服务器应是192.168.0.100;
第二192.168.0.100数据库的选择(在此我用master数据库)。
B:下面建立执行SQL任务:未定义如图

showimg.asp?ID=10752500)this.width=500" border=0>
a.命令超时项设置为:300;
b.SQL语句为:
select'bbsbak'+convert(varchar(4),datepart(yyyy,getdate()))+convert
(varchar(4),datepart(mm,getdate()))+convert(varchar(4),datepart
(dd,getdate()))
注释:红色标记是实现备份后的数据库在bbsbak后加上年月日,如bbsbak20031023.
c.点击参数(A)对参数进行相关设置,出现如上图界面
showimg.asp?ID=10753500)this.width=500" border=0>
选输出参数,如上图

输出参数类型为行值,点击创建全局变量,出现如图界面
showimg.asp?ID=10754500)this.width=500" border=0>
全局变量的名称为:bbsbak_crt,确定后返回参数映射界面
选择输出全局变量为:bbsbak_crt
OK,第一个SQL任务建立成功!

C:下面建立另外一个执行SQL任务:未定义如图
showimg.asp?ID=10755500)this.width=500" border=0>
其中SQL语句为:execcrtdatabase_bbsbak.
OK,继续!
D:建立复制SQLServer对象任务:未定义,如图
showimg.asp?ID=10756500)this.width=500" border=0>
注意:此时源服务器为:192.168.0.1,选择要备份的数据库(bbsbak)
下面转到目的服务中:参数如图设置
showimg.asp?ID=10757500)this.width=500" border=0>
OK!继续
E:建立动态属性任务:未定义,如图
showimg.asp?ID=10758500)this.width=500" border=0>
OK!
F:下面设置工作流状态如图
showimg.asp?ID=10759500)this.width=500" border=0>
保存为bbsbak_DTS,如图
showimg.asp?ID=10760500)this.width=500" border=0>
下面调度包
调度前保证SQLagentserver启动
showimg.asp?ID=10761500)this.width=500" border=0>
到此本机中(192.168.0.1)上的操作完成。

3.打开192.168.0.100机器中的sql数据库――-Master数据库――存储过程,
如图
showimg.asp?ID=10762500)this.width=500" border=0>
存储过程如下:
showimg.asp?ID=10763500)this.width=500" border=0>
文本语法为:
CREATEproccrtdatabase_bbsbak
as
declare@sqlvarchar(120)
declare@sql2varchar(120)
declare@sql3varchar(260)
declare@naljavarchar(12)
set@nalja=convert(varchar(4),datepart(yyyy,getdate()))+convert
(varchar(4),datepart(mm,getdate()))+convert(varchar(4),datepart
(dd,getdate()))

set@sql='createdatabasebbsbak'+@nalja+'on(name='+'''backup_mdf'+@nalja+''',filename=''E:\bbsbak
\backup_mdf\bbsbak'+@nalja+'.mdf'')'
set@sql2='Logon(name='+'backup_ldf'+@nalja+',filename=''E:\bbsbak
\backup_ldf\bbsbak'+@nalja+'.ldf'')'
set@sql3=@sql+@sql2
--select@sql3
exec(@sql3)
GO
注意:E:\DB_backup\Full_backup\此路径中的DB_backup和Full_backup文件夹应当事先在本机E盘上建立好

同样再建立一个存储过程,语法为
CREATEprocdeldatabase_bbsbak
as
declare@naljavarchar(12)
declare@sqlvarchar(120)
set@nalja=convert(varchar(4),datepart(yyyy,getdate()-15))+convert
(varchar(4),datepart(mm,getdate()-15))
+convert(varchar(4),datepart(dd,getdate()-15))
set@sql='dropdatabasebbsbak'+@nalja
exec(@sql)
GO

最后再agentserver中建立一个作业调度存储过程,其中作业中的步骤命令为:execdeldatabase_bbsbak

注意调度时的日期应当推迟15天
OK了!!!


情形二:本地备份
若是在本机(192.168.0.1)中实现自动备份?
操作如下:sqlagent中直接添加作业bbsbak_full_backup
如图showimg.asp?ID=10764500)this.width=500" border=0>
其中:作业中的步骤命令为:
BACKUPDATABASEbbsbakTODISK='F:\DB_backup\Full_backup\bbsbak.bak'
WITHINIT,NOUNLOAD,NAME=N'bbsbakFullbackup',SKIP,STATS=10,NOFORMAT
注意:F:\DB_backup\Full_backup\此路径中的DB_backup和Full_backup文件夹应当事先在本机上建立好
日志文件的步骤同样添加作业:bbsbak_log_backup
showimg.asp?ID=10765500)this.width=500" border=0>
其中:作业中的步骤命令为:
BACKUPLOG[bbsbak]TODISK=N'F:\DB_backup\Log_backup\bbsbak_log.bak'
WITHINIT,NOUNLOAD,NAME=N'bbsbaklogbackup',NOSKIP,STATS=10,NOFORMAT
注意:F:\DB_backup\Log_backup\此路径中的DB_backup和Log_backup文件夹应当事
先在本机上建立好

好,到此所有的操作已完成,望各位继续讨论。
Mailbox:longrujun@msn.com
QQ:4048398

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值