您的位置:首页 > 数据库 > SQL

SQL Server 2005维护文档

2011-02-24 15:21 204 查看
1,

SQL Server 2005
备份策略数据库的备份对数据的完全是至关重要的,所以要利用多种方法对数据库进行备份,确保数据能够恢复,将损失降到最低。SQL Server 2005
的备份方法有多种,如利用SQL Server
的代理自动备份、手动分离后复制备份。在工作生产中,要将各方法结合在一起使用,以保证数据的万无一失。

1.1
利用SQL Server
代理自动备份以Demo
数据库为例,做一个利用SQL Server
代理自动备份的策略,每周执行一次完整备份,每天执行一次差异备份,每小时执行一次日志备份。备份策略操作步骤如下:

1.设置数据库为“完全”模型

为了保证数据日志的完整性,防止数据丢失,首先需要将备份数据库的故障还原模型设置为“完全”,方法为:在数据库上点鼠标右键选择“属性”,打开到“选项”页进行更改,如下图:

2
.开启SQL Server Agent
服务

SQL Server Agent
代理服务是完成自动执行任务的关键服务,它能够在指定的时间,自动运行用户设计的作业,所以要必须保证此服务永远处于开启状态。打开SQL Server 2005
的SQL Server Configuration Manager
,在SQL Server Agent
服务上鼠标右键单击选择“启动”菜单即可启动服务。在SQL Server Agent
服务上鼠标右键单击选择“属性”菜单,切换到“服务”标签页,将“启动模式”设置为“自动”,这样SQL Server Agent
服务就可以在操作系统启动时自动启动了。如下图:

3
.创建一个备份设备

创建备份设备的方法为:打开Microsoft SQL Server Management Studio
,依次打开“数据库服务器—服务器对象—备份设备”,右键单击“备份设备”选择“新建备份设备”菜单,输入备份设备名“D_bak
”,并指定文件存放路径即可。如下图:

4
.创建完整备份维护计划

创建维护计划方法为:在Microsoft SQL Server Management Studio
中,依次打开到“管理—维护计划”,鼠标右键单击“维护计划”选择“新建维护计划”菜单,输入计划名称,确定后即可在打开的维护计划编辑窗口中进行编辑了。选择窗口左下角“工具箱”中的“执行T-SQL
语句任务”项拖曳到右边的空白处,这样就建立了一个步骤,双击此编辑框,输入如下代码:

--
完整备份Demo
数据库追加到备份设备"D_Bak",
备份文件5
天有效期,
验证备份文件

USE Master

GO

BACKUP DATABASE [demo] TO [D_Bak] WITH RETAINDAYS = 5,

NOFORMAT, NOINIT, NAME = N'demo-
完整数据库备份', SKIP,

NOREWIND, NOUNLOAD, STATS = 10

GO

代码功能为:完整备份Demo
数据库到D_Bak
备份设备中,完整备份文件保存期为5
天。如下图:

“计划”设置为:在每周星期日的 0:00:00
执行。将从 2008-6-10
开始使用计划。

保存即可。

5
.创建差异备份维护计划

为了能够减少维护工作,所以将日志清除的功能加入到了差异备份步骤前,但经过多次及多版本的测试,发现SQL Server 2005
在没打补丁或者打上SP1
补丁时差异备份计划还能够正常运行,而在打上SP2
补丁后差异备份中的日志清除功能会出错。由于SP1
版本之前的维护计划中与SP2
版本的功能不一样,所以就对这两个版本进行介绍。建议安装SP2
补丁后再按照SP2
创建差异备份维护计划进行操作。

SP1
版本之前创建带日志清除功能的差异备份步骤
在Microsoft SQL Server Management Studio
中,依次打开到“管理—维护计划”,鼠标右键单击“维护计划”选择“新建维护计划”菜单,输入计划名称,确定后即可在打开的维护计划编辑窗口中进行编辑了。选择窗口左下角“工具箱”中的“执行T-SQL
语句任务”项拖曳到右边的空白处,这样就建立了一个步骤,双击此编辑框,输入如下代码:

USE Demo

GO

--
清除Demo
数据库中不活动的日志

BACKUP LOG Demo WITH NO_LOG

GO

--
收缩日志文件

DBCC SHRINKFILE (N'Demo_log ',0,TRUNCATEONLY)

GO

--
差异备份Demo
数据库追加到备份设备"D_Bak",
备份文件5
天有效期,
验证备份文件

USE Master

GO

BACKUP DATABASE [demo] TO [D_Bak] WITH DIFFERENTIAL ,

RETAINDAYS = 5, NOFORMAT, NOINIT, NAME = N'demo-
差异数据库备份',

SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

代码功能为:清除不活动的日志,并收缩日志文件;差异备份Demo
数据库到D_Bak
备份设备中,完整备份文件保存期为5
天。如下图:

SP2
版本之后创建带日志清除功能的差异备份步骤
在Microsoft SQL Server Management Studio
中,依次打开到“管理—维护计划”,鼠标右键单击“维护计划”选择“新建维护计划”菜单,输入计划名称,确定后即可在打开的维护计划编辑窗口中进行编辑了。选择窗口左下角“工具箱”中的“执行T-SQL
语句任务”项拖曳到右边的空白处,创建一个“执行T-SQL
语句任务”步骤,输入如下代码:

--
截断日志

USE Master

GO

BACKUP LOG demo WITH NO_LOG

GO

代码功能为:截断不活动的日志。如下图:

再选择窗口左下角“工具箱”中的“收缩数据库任务”项拖曳到右边的空白处,创建一个“收缩数据库任务”步骤,双击进行设置,其中数据库选择“Demo
”数据库即可,指定数据库大小超过2MB
时收缩数据库,能够保证每次都能执行收缩任务,收缩后保留的可用空间设置为1%
,并选择将彩旗的空间归还给操作系统,确定。如下图:

再选择窗口左下角“工具箱”中的“执行T-SQL
语句任务”项拖曳到右边的空白处,创建一个“执行T-SQL
语句任务”步骤,输入如下代码:

--
差异备份

USE Master

GO

BACKUP DATABASE [Demo] TO [d_bak]

WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,

NAME=N'Demo
差异备份',SKIP,NOREWIND,

NOUNLOAD,STATS=10

GO

代码功能为:差异备份Demo
数据库到备份设备中。如下图:

最后将上边的三个步骤指定执行次序,方法为:单击“截断日志”的SQL
步骤,将下边的绿色连接线拽到“收缩数据库”步骤上,然后再单击“收缩数据库”步骤,将下边的绿色连接线拽到“差异备份”的SQL
步骤上。效果如图:

“计划”设置为:在每天的 1:00:00
执行。将从 2008-6-10
开始使用计划。

保存即可。

6
.创建日志备份维护计划

在Microsoft SQL Server Management Studio
中,依次打开到“管理—维护计划”,鼠标右键单击“维护计划”选择“新建维护计划”菜单,输入计划名称,确定后即可在打开的维护计划编辑窗口中进行编辑了。选择窗口左下角“工具箱”中的“执行T-SQL
语句任务”项拖曳到右边的空白处,这样就建立了一个步骤,双击此编辑框,输入如下代码:

--
日志备份Demo
数据库追加到备份设备"D_Bak",
备份文件5
天有效期,
验证备份文件

USE Demo

GO

BACKUP LOG [demo] TO [D_Bak] WITH RETAINDAYS = 5, NOFORMAT, NOINIT,

NAME = N'demo-
事务日志备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10

GO

代码功能为:日志备份Demo
数据库到D_Bak
备份设备中,日志备份文件保存期为5
天。如下图:

“调度”设置为:每天在 0:00:00
和 23:59:59
之间、每 1
小时执行。将从 2008-6-10
开始使用计划。

保存即可。

至此,利用SQL Server
代理自动备份的策略设置完毕。为了确保备份文件的可用性,请参见后边介绍的恢复方法进行验证。

1.2
手动备份SQL Server 2005
数据库由于手动备份SQL Server 2005
数据库需要对数据库进行脱机或者分离,所以以本机上的Demo
数据库为例进行操作,此备份方法相关于利用SQL Server
备份工具中的完整备份,通俗的讲就是对数据库文件及日志文件进行拷贝。步骤如下:

1
.查看Demo
数据库文件存放位置

打开Microsoft SQL Server Management Studio
,找到Demo
数据库,鼠标右键单击选择“属性”菜单,再选择左侧的“文件”项,记下右边的“数据库文件”中列出的所有文件的路径。

2
.分离数据库备份方法

数据库分离后,数据库在Microsoft SQL Server Management Studio
已经删除,但数据文件还存储在磁盘中。

鼠标右键单击Demo
数据库,选择“任务—分离”菜单,默认下单击“确定”按钮即可分离。将记录下来路径的文件拷贝到备份的磁盘即可,数据文件扩展名为.mdf
,日志文件扩展名为.ldf
。分离后只需要备份.mdf
文件即可。

完成以上步骤后,还需要将数据库附加到SQL Server
中,方法为:在Microsoft SQL Server Management Studio
的“数据库”上单击鼠标右键,选择“附加”菜单,在弹出的附加数据库窗口中选择“添加”按钮,指定要附加的数据库MDF
文件,确定即可。如下图:

3
.脱机数据库备份方法

脱机数据库备份,首先需要将Demo
数据库脱机,方法为鼠标右键单击Demo
数据库选择“任务—脱机”菜单即可,Demo
数据库会显示“脱机”字样。

复制记录下来路径的文件拷贝到备份的磁盘即可,此备份方法必须保证数据库文件的完整性,缺一不可。

完成以上步骤后,在Demo
数据库上单击鼠标右键,选择“任务—联机”即可恢复数据库的使用。

分离或脱机备份只选其一即可,备份时间可在业务比较少的时间进行,由于这两种备份为完全备份,所以可以根据数据量等因素,自行选择备份时间。

2
、SQL Server 2005
数据库恢复前面所做的一系列数据库的备份,就是为了在数据库灾难(误操作、误删除、数据文件损坏等)发生后,能够将数据库恢复到灾难发生前的那一刻。下面介绍如何恢复数据库。

2.1
还原数据库备份如果SQL Server 2005
是重装的,首先按照备份时的方法将原来备份设备添加上,添加备份设备的方法请参见利用SQL Server
代理自动备份单节。

如果SQL Server 2005
是重装的,可以在“数据库”上单击鼠标右键选择“还原数据库”菜单,打开还原数据库窗口,在“常规”标签页,输入还原数据库名称,“还原的源”选择“源设备”,并加入设备。选择最近的完整备份,最近的差异备份和最近差异备份还还源点的日志备份,“确定”即可还原。如下图:

如果SQL Server
不是重新安装的,那么还原数据库就轻松多了。只需要选择“任务—还原—数据库”菜单,然后选择或者输入还原数据库的名称,在“参数”中选择数据库备份,要还原的第一个备份,在下边的备份中选择所有要还原的备份即可。默认设置为当前数据库还原到最近时间点。如下图:

2.2
手动附加数据库还原手动附加数据库还原,是与手动备份SQL Server 2005
数据库相对应的。其还原方法为:在Microsoft SQL Server Management Studio
的“数据库”上单击鼠标右键,选择“附加”菜单,在弹出的附加数据库窗口中选择“添加”按钮,指定要附加的数据库MDF
文件,确定即可。如下图:

2.3
利用SQL
语句还原利用SQL
语句还原数据库也是维护人员经常用到的恢复方法,下面为各种恢复的代码,并加入了相应的注释。

--[db]
数据数据库名,[db_bak]
为备份设备名

--
完整恢复,更改存放路径,NORECOVERY
参数使恢复的数据库继续能够恢复差异或日志

USE Master

GO

RESTORE DATABASE [db] FROM [db_bak]

WITH FILE = 1,

MOVE N'db' TO N'd:/db.mdf',

MOVE N'db_log' TO N'd:/db_log.LDF',

NORECOVERY, NOUNLOAD, STATS = 10

GO

--
差异恢复,
更改存放路径

USE Master

GO

RESTORE DATABASE [db] FROM [db_bak]

WITH FILE = 2,

MOVE N'db' TO N'd:/db.mdf',

MOVE N'db_log' TO N'd:/db_log.LDF',

NORECOVERY, NOUNLOAD, STATS = 10

GO

--
日志恢复

RESTORE LOG [db] FROM [db_bak]

WITH FILE = 3,

NORECOVERY, NOUNLOAD, STATS = 10

GO --
还能继续恢复

--
恢复日志到可以使用数据库

RESTORE LOG [db] FROM [db_bak]

WITH FILE = 4,

NOUNLOAD, STATS = 10

GO

3
、操作系统维护SQL Server 2005
数据库服务器是必须运行在Windows
操作系统中的,所以操作系统的健康与稳定是决定SQL Server
服务正常运行的关键。

操作系统维护包括定时杀毒、安全管理、软件管理、磁盘空间管理等。

经常进行磁盘碎片整理,特别是存放数据库文件的磁盘。分析磁盘后,红色为碎片数据,经过碎片整理能使分散的数据变得连继存放,使I/O
速度得到提升。如下图:

4
、经常检验健康性经常检查服务器各项是否正常运行,能够急时发现问题,提前进行解决。

日检查的内容有:

¨

SQL Server 2005
的数据服务和代理服务是否运行正常

¨

作业是否运行正常

¨

磁盘剩余空间,清理没用的数据

¨

日志文件大小

周检查的内容有:

¨

数据索引碎片

¨

磁盘碎片

¨

服务器杀毒

月检查的内容有:

¨

备份文件的有效性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: