Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6914974
  • 博文数量: 1956
  • 博客积分: 10648
  • 博客等级: 上将
  • 技术积分: 23794
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-22 09:38
个人简介

HI,movno1

文章分类

全部博文(1956)

文章存档

2022年(1)

2021年(8)

2020年(2)

2019年(12)

2018年(2)

2016年(2)

2015年(1)

2014年(2)

2013年(19)

2012年(8)

2011年(41)

2010年(388)

2009年(122)

2008年(385)

2007年(259)

2006年(704)

我的朋友

分类:

2006-09-01 00:36:16

MSSQL2000数据库自动备份简易贴

情形一:异地备份

运行环境分析:
现有两台机器具体配置如下:
操作系统:两台都是Windows 2000 Advanced Server
数据库: Sql Server 2000
IP: 一台是192.168.0.1,另一台是192.168.0.100
要求:定期自动实现将192.168.0.1中数据库中bbsbak数据库备份到192.168.0.100的机器上,并删除15天以前对192.168.0.100中自动备份的bbsbak数据库。
注:本操作涉及到Ms Sql Server2000数据库数据转换服务中包的高级设置、数据库存储过程、作业的添加及简单Transact_SQL语句的操作等内容,在此不再详述,请参考相关资料及微软官方网站。
操作步骤:
1. 在本机(win2000)中打开SQL数据库――-数据转换服务――本地包(如图)



2. 右键――新建包,出现如图画面



A:首先建立Microsoft OLE DB Provider for SQL Server(如图)



在此注意两点:
第一指定的服务器应是192.168.0.100;
第二192.168.0.100数据库的选择(在此我用master数据库)。
B:下面建立执行 SQL 任务: 未定义如图



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)对参数进行相关设置,出现如上图界面


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


选输出参数,如上图
输出参数类型为行值,点击创建全局变量,出现如图界面


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


全局变量的名称为:bbsbak_crt,确定后返回参数映射界面
选择输出全局变量为: bbsbak_crt
OK,第一个SQL任务建立成功!
C:下面建立另外一个执行 SQL 任务: 未定义 如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


其中SQL语句为:exec crtdatabase_bbsbak.
OK,继续!
D:建立复制 SQL Server 对象任务: 未定义,如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


注意:此时源服务器为:192.168.0.1,选择要备份的数据库(bbsbak)
下面转到目的服务中:参数如图设置


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


OK!继续
E:建立动态属性任务: 未定义,如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


OK!
F:下面设置工作流状态如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


保存为bbsbak_DTS,如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


下面调度包
调度前保证SQL agent server启动


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


到此本机中(192.168.0.1)上的操作完成。
3. 打开192.168.0.100机器中的sql数据库――-Master数据库――存储过程,如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


存储过程如下:


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


文本语法为:
CREATE proc crtdatabase_bbsbak
as
declare @sql varchar(120)
declare @sql2 varchar(120)
declare @sql3 varchar(260)
declare @nalja varchar(12)
set @nalja=convert(varchar(4), datepart(yyyy, getdate())) + convert(varchar(4), datepart(mm, getdate())) + convert(varchar(4), datepart(dd, getdate()))
set @sql = 'create database bbsbak'+@nalja+' on ( name='+'''backup_mdf'+@nalja+''', filename= ''E:\ bbsbak\backup_mdf\bbsbak'+@nalja+'.mdf'')'
set @sql2=' Log on ( 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盘上建立好
同样再建立一个存储过程,语法为
CREATE proc deldatabase_bbsbak
as
declare @nalja varchar(12)
declare @sql varchar(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='drop database nage'+@nalja
exec (@sql)
GO
最后再agent server 中建立一个作业调度存储过程,其中作业中的步骤命令为:exec deldatabase_bbsbak
注意调度时的日期应当推迟15天
OK了!!!
情形二:本地备份
若是在本机(192.168.0.1)中实现自动备份?
操作如下:sql agent中直接添加作业bbsbak_full_backup
如图


点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小


其中:作业中的步骤命令为:
BACKUP DATABASE bbsbak TO DISK = 'F:\DB_backup\Full_backup\bbsbak.bak' WITH INIT, NOUNLOAD, NAME=N'bbsbak Full backup', SKIP, STATS = 10, NOFORMAT
注意:F:\DB_backup\Full_backup\此路径中的DB_backup和Full_backup文件夹应当事先在本机上建立好
日志文件的步骤同样添加作业:bbsbak_log_backup



其中:作业中的步骤命令为:
BACKUP LOG [bbsbak] TO DISK = N'F:\DB_backup\Log_backup\bbsbak_log.bak' WITH INIT , NOUNLOAD , NAME = N'bbsbak log backup', NOSKIP , STATS = 10, NOFORMAT
注意:F:\DB_backup\Log_backup \此路径中的DB_backup和Log_backup文件夹应当事先在本机上建立好
好,到此所有的操作已完成,望各位继续讨论
阅读(1490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~