提示:因为所有类型的备份都是基于完整备份的,如果没有至少一次的完整备份,其他的备份都是多余
的,所以一定要在建完数据库后做一次完整备份。
提示:在生产环境中,都强烈建议使用【完整恢复模式】,即使说相对于其他两中恢复模式,完整恢复
模式产生的日志会很大,但是在出现问题的时候,这都不算什么了。
2022-10-10 凌晨 做了完整备份
2022-10-14 15:00 误删除一个表。
引入这个区别: 数据备份 是备份数据的, 日志备份: 是记录操作的,说白也是备份数据的,只是有类似时间轴的特点,可以恢复任何时间的数据【日志备份之前】
如果操作 才能把数据损失降到最低
1.做日志备份,记住一定要选择【备份日志尾部】。
压缩备份 不是必须的,
然后在【选项】中,严格按照红色框中的选择项进行勾选,否则,达不到效果设置不能恢复。并且保证数据库不要
有连接,因为有链接,日志备份是备份不了的
经过上面的备份日志尾部,则数据库会变成如下 【正在还原状态…】
经过上面几步,日志备份 完成后 就可以进行数据还原了
注意 先要还原完整备份,注意一定要选择最后那一次的完整备份,否则是还原不了的
注意 一定要 选择 restore with norecovery ,这样才能继续还原数据
最后一步就是还原日志备份了,选择恢复的时间点不必太在意,只要填写你误操作之前的时间点,就
可以了
注意 一定要选择 restore with recovery 就是数据库可以正常使用了,
创建备份完成时数据库内存在的数据的副本
只记录自上次数据库备份【最近一次全备份】后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。
还原步骤:①完整备份②还原最后一次差异备份
是自上次备份事物日志后对数据库执行的所有事物的一些列记录。可以使用事物日志备份将数据库恢复到特点的时间点(如输入多余数据前的那一刻)或恢复到故障点
还原步骤:①还原完整备份②依次还原每个事物日志备份,而不是还原最后一次事物日志备份。
可以备份和还原数据库中的个别文件。可以只还原已还原损坏的文件,而不用还原数据库的其余部分,从而加快恢复速度。
不同的备份类型适应的范围也不同。
全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。
差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。
文件备份必须与事物日志备份一起使用,所以文件备份只适应用于完全恢复模型和大容量日志记录恢复模型
每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方法的配合来完成数据库的备份
经常使用备份方式组合有以下几种
备份语法:backup log 数据库名 to disk=文件完整路径;
还原语法:
第一步还原数据库:restore database 数据库名 from disk=文件完整路径 with norecovery;
第二步还原事务日志:restore log 数据库名 from disk=文件完整路径 with recovery;
还原语法:
第一步还原数据库:restore database 数据库名 from disk=文件完整路径 with norecovery,replace;
第二步还原事务日志:restore log 数据库名 from disk=文件完整路径 with recovery
1、日志备份会节约更多的时间,恢复起来也更快可以及时恢复,数据丢失少。
2、在SQL Server中,事务日志备份是增量备份,它捕获的是自上一次事务日志备份以来的变化,而差异备份则包
含了自上一次完整备份以来所有变化的页。
3、日志备份可以恢复到相应的时间点。
恢复过程比较慢,需要恢复多个备份包括完整备份和日志备份。
方法1: 利用作业
解释: 利用xp_cmdshell创建一个网络映射, 把备份好的数据库, 远程存入到映射盘符中,data是112.118.0.2服务器的一个允许读写的共享文件夹,执行完成后,把映射删除掉,释放资源.
在使用cp_cmdshell创建网络映射时, 先要开启, 否则会有报错, 如下命令:
EXEC sp_configure ‘show advanced options’, 1;-- 允许配置高级选项
–配置选项’show advanced options’ 已从1 更改为1。请运行RECONFIGURE 语句进行安装。
RECONFIGURE;-- 重新配置
–命令已成功完成。
EXEC sp_configure ‘xp_cmdshell’, 1;-- 开启xp_cmdshell
–配置选项’xp_cmdshell’ 已从1 更改为1。请运行RECONFIGURE 语句进行安装。
RECONFIGURE;-- 重新配置
–命令已成功完成。
exec master…xp_cmdshell ‘net use \IP\data 密码 /user: IP\administrator’
– net use \IP\data 允许网络读写的共享文件路径
– 密码 : IP服务器的登录密码
–/user:: IP\administrator IP的登录名
declare @ss varchar(50) --声明变量
set @ss = convert(varchar(100),GetDate(),112)
-–赋值当前日期, 我这里没有使用
set @ss =‘\IP\data\MSGC.bak’
–最好是使用同名的备份, 否则还原的时候可能会有问题
backup database MSGC to disk=@ss WITH FORMAT
–WITH FORMAT可以做到覆盖任何现有备份和创建新媒体集
exec master…xp_cmdshell’net use \IP\data /delete’
–删除刚才创建的映射
--创建备份设备
exec sp_addumpdevice 'disk','Back1','d:\backup\backData.bak'
---创建完整备份
backup database 数据库名称 to Back1
with init ;--覆盖
--备份事务日志
backup log 数据库名称 to Back1
----数据库还原指定时间点
---首先要完整还原数据库 NORECOVERY
RESTOre Database 数据库名称
from Back1
with File=1,---备份集为1,这个在前面完整备份的时候从message中得到
Replace,
NORECOVERY;
----根据日志信息以及备份恢复日志至某一点
restore log 数据库名称
from Back1
with Recovery,
file =2,---备份集2
stopAt='指定时间点';
--是在执行上述操作以后,TESTDB2往往处于restoring状态,使用此语句使数据库可用
RESTORE DATABASE 数据库名称 WITH RECOVERY;
---stopAt:必须在备份备份log,的start time之后,