SQL Server 2005维护文档

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 2005SQL 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 数据库上单击鼠标右键,选择“任务—联机”即可恢复数据库的使用。
分离或脱机备份只选其一即可,备份时间可在业务比较少的时间进行,由于这两种备份为完全备份,所以可以根据数据量等因素,自行选择备份时间。

2SQL 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 的数据服务和代理服务是否运行正常
¨
          作业是否运行正常
¨
          磁盘剩余空间,清理没用的数据
¨
          日志文件大小

周检查的内容有:
¨
          数据索引碎片
¨
          磁盘碎片
¨
          服务器杀毒

月检查的内容有:
¨
          备份文件的有效性

你可能感兴趣的:(sql,数据库,server,Microsoft,database,任务,磁盘)