一.备份和还原的概述
1.备份的原因:程序错误;认为错误;计算机失败;磁盘失败;灾难和偷窃
2.备份的类型
(1)完整备份
完整备份包括对整个数据库,部分事务日志数据结构和文件结构的备份.完整备份代表的是备份完成时刻的数据库.完整备份是备份的基础,提供了任何其他备份的基准.其他备份只有在执行了完整备份之后才能被执行
在执行数据库完整备份期间,SQL Server将做一下工作:备份(数据及数据库中所有表的架构和相关的文件结构/在备份期间发生的所有活动/备份在事物日志中未确认的事务)
(2)差异备份
差异备份时指对上一次完整备份之后所有更改的数据作备份备份过程中能够识别数据库中哪一部分被修改过了,并只对这一部分备份.差异备份的优势是速度快,时间短.但差异备份要求事先已执行过一次完整备份
在执行数据库差异备份期间,SQL Server将做一下工作:备份(自上一次完整备份以来数据库改变的部分\在备份期间发生的所有活动\在事务日志中未确定的事务)
(3)事务日志备份
事务日志备份记录了数据库的所有改变,事务日志备份主要是T-SQL语句,而不是整个数据库结构,文件结构或是数据.在备份事务日志时需要考虑一下因素:(在执行了至少一次完整备份后,才能备份事务日志\在简单恢复模式下不能备份事务日志\如果没有与其一致的数据备份,则不能恢复事务日志)
在执行数据库事务日志备份期间,SQL Server将做一下工作:备份事务日志(从上一次成功的事务日志备份到当前事务日志的尾部);截断事务日志(到事务日志活动部分的开始,丢弃不活动的部分)
3.恢复模式
不管是备份还是还原,都是在一定的恢复模式中进行的,恢复模式是数据的一种特性,它控制着数据库备份和还原的基本行为.右击某个数据库,在数据库‘属性’中的‘选项’可以更改恢复模式
SQL提供了一下三种恢复模式
(1)简单恢复模式
简单恢复模式主要用于小型数据库和不经常更改的数据库.在简单恢复模式下,不活动的日志将被删除,所以不需要事务日志备份.在简单恢复模式下,不支持还原单个数据页简单恢复模式不适合生产系统
(2)完整恢复模式
完整恢复模式可在最大范围内防止出现故障时丢失数据,它包括数据库备份和事务日志备份,并提供全面保护,是数据库免受媒体故障的影响.这个模式使用数据库和所有日志的备份去恢复数据库,如果日志没有损坏,SQL Server可以恢复所有数据,除了在失败那一刻得事务.由于备份了所有的日志,可以将数据恢复到某一个指定的时间点
(3)大容量日志恢复模式
大容量日志恢复模式是完整恢复模式的补充,提供了良好的性能,且占用较少的日志空间,只有日志备份包含大容量操作,数据库就只能恢复到日志备份的结尾,而不能恢复到某个时间点或日志备份中某个标记的事务
4.备份设备
(1)SQL Server支持的媒体
在SQL Server中,要备份数据库就要考虑用于存储备份的媒体类型,SQL Server支持的媒体类型有磁盘和磁带.磁带和磁盘存在的差异如:磁带设备必须物理连接到运行SQL Server实例的计算机上,不支持备份到远程磁带/磁带设备在备份过程中已满,但还需要写入数据,SQL Server将提示更换新磁带并继续备份操作/磁带的可用性与耐久性高于磁盘,但价格高,还有一个好处是可以把它放在一个远离服务器且安全的地方,以防灾难的发生
(2)备份设备
在进行备份时,首先需要建立一个文件来存储备份的数据,这个备份文件也叫备份设备.如果想重复使用,必须建立一个永久的备份设备
可以使用SQL Server Management来建立备份设备
SQL Server使用物理设备名称或逻辑设备设备名称标识备份设备,物理备份设备操作系统用来标识备份设备的名称(如C:\Backups\accounting\Full.bak)
逻辑备份设备是用户定义的别名,用来标识物理备份设备,逻辑设备名称永久性地存储在SQL Server内的系统表中,使用逻辑备份设备的优点是引用他比引用物理设备名称简单(如accounting_backup)
二.备份和还原策略
1.完整备份与还原
1.备份的原因:程序错误;认为错误;计算机失败;磁盘失败;灾难和偷窃
2.备份的类型
(1)完整备份
完整备份包括对整个数据库,部分事务日志数据结构和文件结构的备份.完整备份代表的是备份完成时刻的数据库.完整备份是备份的基础,提供了任何其他备份的基准.其他备份只有在执行了完整备份之后才能被执行
在执行数据库完整备份期间,SQL Server将做一下工作:备份(数据及数据库中所有表的架构和相关的文件结构/在备份期间发生的所有活动/备份在事物日志中未确认的事务)
(2)差异备份
差异备份时指对上一次完整备份之后所有更改的数据作备份备份过程中能够识别数据库中哪一部分被修改过了,并只对这一部分备份.差异备份的优势是速度快,时间短.但差异备份要求事先已执行过一次完整备份
在执行数据库差异备份期间,SQL Server将做一下工作:备份(自上一次完整备份以来数据库改变的部分\在备份期间发生的所有活动\在事务日志中未确定的事务)
(3)事务日志备份
事务日志备份记录了数据库的所有改变,事务日志备份主要是T-SQL语句,而不是整个数据库结构,文件结构或是数据.在备份事务日志时需要考虑一下因素:(在执行了至少一次完整备份后,才能备份事务日志\在简单恢复模式下不能备份事务日志\如果没有与其一致的数据备份,则不能恢复事务日志)
在执行数据库事务日志备份期间,SQL Server将做一下工作:备份事务日志(从上一次成功的事务日志备份到当前事务日志的尾部);截断事务日志(到事务日志活动部分的开始,丢弃不活动的部分)
3.恢复模式
不管是备份还是还原,都是在一定的恢复模式中进行的,恢复模式是数据的一种特性,它控制着数据库备份和还原的基本行为.右击某个数据库,在数据库‘属性’中的‘选项’可以更改恢复模式
SQL提供了一下三种恢复模式
(1)简单恢复模式
简单恢复模式主要用于小型数据库和不经常更改的数据库.在简单恢复模式下,不活动的日志将被删除,所以不需要事务日志备份.在简单恢复模式下,不支持还原单个数据页简单恢复模式不适合生产系统
(2)完整恢复模式
完整恢复模式可在最大范围内防止出现故障时丢失数据,它包括数据库备份和事务日志备份,并提供全面保护,是数据库免受媒体故障的影响.这个模式使用数据库和所有日志的备份去恢复数据库,如果日志没有损坏,SQL Server可以恢复所有数据,除了在失败那一刻得事务.由于备份了所有的日志,可以将数据恢复到某一个指定的时间点
(3)大容量日志恢复模式
大容量日志恢复模式是完整恢复模式的补充,提供了良好的性能,且占用较少的日志空间,只有日志备份包含大容量操作,数据库就只能恢复到日志备份的结尾,而不能恢复到某个时间点或日志备份中某个标记的事务
4.备份设备
(1)SQL Server支持的媒体
在SQL Server中,要备份数据库就要考虑用于存储备份的媒体类型,SQL Server支持的媒体类型有磁盘和磁带.磁带和磁盘存在的差异如:磁带设备必须物理连接到运行SQL Server实例的计算机上,不支持备份到远程磁带/磁带设备在备份过程中已满,但还需要写入数据,SQL Server将提示更换新磁带并继续备份操作/磁带的可用性与耐久性高于磁盘,但价格高,还有一个好处是可以把它放在一个远离服务器且安全的地方,以防灾难的发生
(2)备份设备
在进行备份时,首先需要建立一个文件来存储备份的数据,这个备份文件也叫备份设备.如果想重复使用,必须建立一个永久的备份设备
可以使用SQL Server Management来建立备份设备
SQL Server使用物理设备名称或逻辑设备设备名称标识备份设备,物理备份设备操作系统用来标识备份设备的名称(如C:\Backups\accounting\Full.bak)
逻辑备份设备是用户定义的别名,用来标识物理备份设备,逻辑设备名称永久性地存储在SQL Server内的系统表中,使用逻辑备份设备的优点是引用他比引用物理设备名称简单(如accounting_backup)
二.备份和还原策略
1.完整备份与还原

在还原时只能选择任意的一个完整数据库的备份进行还原’也就是说要么还原到10:00
要么还原到11:00,要么还原到12:00,其他的任何时刻都不可以
(1)完整备份
打开SQL ServerManagement Studio,在对象管理器中,展开‘SQL Server实例’—‘服务器对象’---‘备份设备’节点,右击选择‘新建备份设备’
在‘备份设备’窗口中输入名称,单击‘确定’
在对象管理器中,右击要备份的数据库,选择‘任务’--‘备份’,出现‘备份数据库’窗口.也可直接右击刚建好的备份设备,选择‘备份数据库’即可出项‘备份数据库’窗口
在‘备份数据库’窗口,选择‘常规’,根据需要进行设置
在‘备份数据库’窗口,选择‘选项’, 选中‘覆盖媒体’栏下的‘覆盖所有现有的备份集’.{注意: 覆盖媒体’栏下有‘覆盖所有现有的备份集’(表示SQL Server将追加一个备份到现有的备份集后面)和‘追加到现有的备份集’(表示SQL Server将覆盖备份集上所有已存在的数据,只保留背负集的头部信息)}
在‘备份数据库’窗口,选择‘选项’, 选中‘可靠性’栏中‘完成验证备份’.{注意: 可靠性’栏中有‘完成验证备份’(用来检查备份集是否完整和整个备份是否可靠)和‘写于媒体前检查校验和’(是一个重要的错误检查机制,通过校验和检查操作中的错误,并决定在遇到错误时时停止还是继续)}
单击‘确定’完成备份
(2)还原完整数据库备份
通常在遇到以下情况需要还原如(数据库物理磁盘损坏\数据库被破坏或删除\将数据库还原到另一个SQL Server实例),还原步骤如下
在对象管理器中,右击要还原的数据库,选择‘任务’--‘还原’--‘数据库’,出现‘还原数据库’窗口
在‘还原数据库’窗口中,在‘常规’中进行相应的设置
在‘还原数据库’窗口中,在‘选项’,选择‘还原选项’中的‘覆盖现有的数据库’{注意: ‘还原选项’中有‘覆盖现有的数据库’(指定还原操作应覆盖所有现有数据库及其相关文件,即使已存在同名的其它数据库或文件); ‘保留复制设置’(将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置); ‘还原每个备份之前进行提示’(还原初始备份之后,此选项会在还原每个附加备份集之前打开‘继续还原’对话框,该对话框将要求指示是否继续进行还原);‘限制访问还原的数据库’(使用还原的数据库仅供db_owner,dbcreator,sysadmin的成员使用)}
在‘还原数据库’窗口中,在‘选项’,选择‘恢复状态’,选择第一个{注意: ‘恢复状态’中有‘RESTORE WITH RECOVERY’(默认的方式,指示还原操作回滚任何未提交的事务,在恢复进程后即可随时使用数据库); ‘RESTORE WITH NORECOVERY’(指示还原操作不回滚任何提交的事务);‘RESTORE WITH STANDBY’(使数据处于备用状态,选择此选项需要指定一个备用文件)
单击‘确定’即可
2.完整备份+差异备份与还原

如果需要还原到11:00,则应使用完整数据库备份1+差异数据库备份2
如果需要还原到12:30时地数据库状态,则应使用完整数据库备份2+差异数据库备份3
完整在还原差异之前,必须先还原完整备份
3.完整备份+事务日志备份与还原

如果需要还原到11:00时的数据库状态,则应使用完整数据库备份1+日志数据库备份1+日志数据库备份2
如果需要还原到12:30时的数据库状态,则有以下两种选择
完整数据库备份2+日志数据库备份3
完整数据库备份1+日志数据库备份1+日志数据库备份2+日志数据库备份3
如果需要恢复到10:45时的状态,则应使用
完整数据库备份1+日志数据库备份1+日志数据库备份2(10:30---11:00之间的事物必要做完,而是指定做到10:45的恢复即时点)
假如数据库文件损坏或不可用,而日志文件没有损坏,管理员可以执行尾部日志备份,获取自上一次备份以来的数据库活动并以此来恢复数据库到失败的时间点
还原事务日志时在还原数据库完整备份和差异备份之后进行的
三.备份系统数据库
1.系统数据库的概述
MASTER:从整体上控制SQL Server方面的所有信息,它包括所有的配置信息.用户登录信息,当前正在服务器中运行的信息等,是系统中重要的数据库,SQL Server在运行时所做的第一件事就是寻找MASTER数据库并打开它,所以在创建任何用户定义对象后,都要备份它
MODEL:为新数据库提供模板和原型,当用户建立一个新数据库时,SQL Server会把MODEL数据库中的所有对象建立一份拷贝并转移到新数据库中,然后把新数据库的所有多余空间有空页填满
TEMPDB:是一个特殊的数据库,它供所有访问SQL Server的用户使用,这个数据库用来保存所有的临时表,存储过程和其它SQL Server建立的临时对象呢,每次SQL Server重新启动,都会清空TEMPDB数据库并重建,因此永远不要在TEMPDB数据库中建立需要永久保存的表
MSDB:式SQL Server中的一个用户数据库的特例,所有的任务调度,报警操作都存储在MADB数据库中,该库的另一个功能是存储所有备份历史
注意系统数据库除了TEMPDB不需要备份外,其它数据库都应该及时备份
2.备份和恢复MASTER数据库
导致MASTER更新并需要执行备份数据库的操作类型包括(创建或删除用户数据库\如果用户数据库自动增长以便容纳新数据,这个不会影响MASTER数据库,删除文件和文件组不影响MASTER数据库\添加登录或执行其他与登录安全有关的操作\数据库安全操作(如向数据库中添加用户)对MASTER数据库没有影响\更改任何服务器范围的配置选项或数据库配置选项\创建或删除逻辑备份设备\建服务器配置为分布式查询和远程过程调用,如添加链接服务器或远程服务器或远程登录)
首先要完整备份MASTER数据库,还原的过程如下:
停止SQL Server服务如: NET STOP MSSQLSERVER
重新生成MASTER数据库,插入SQL光盘,在命令行下输入如下代码
Start /wait e:setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=123.com
解释说明:REINSTALL:指定引擎,如果是SQL Server服务,侧输入SQL_Engine
SAPWD:是SA口令,必须使用强密码
Vsetup.exe:指定光盘1中跟目录下的文件
/qn:开关用于取消所有安装程序对话和错误消息,如果指定/qn开关,则所有安装程序消息(包括错误消息)都将写入安装程序日志文件.如果指定/qn开关将显示基本的安装程序对话框,还会显示错误消息
重建成功后,启动服务,登录服务器,还原时出现错误提示,必须在单用户模式下启动信息
停止服务,启动单用户模式,在命令行中键入目录,运行命令sqlservr.exe –c –m
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr.exe –c –m
停止服务
断开连接,在新建查询,执行以下命令
USE MASTER
GO
RESTORE DATABASE master FROM disk=’c:\program files\microsoft SQL Server\MSSQL.1\MSSQL\backup\master.bak
WITH REPLACE(表示覆盖现有文件,否则恢复的时候系统提示错误)
执行成功后,重启服务
注意:其他系统数据库可以直接从完整备份中恢复,MASTER数据库必须在单用户模式恢复
转载于:https://blog.51cto.com/zhangshuxing/458623