<>完整备份

提示:因为所有类型的备份都是基于完整备份的,如果没有至少一次的完整备份,其他的备份都是多余
的,所以一定要在建完数据库后做一次完整备份。
提示:在生产环境中,都强烈建议使用【完整恢复模式】,即使说相对于其他两中恢复模式,完整恢复
模式产生的日志会很大,但是在出现问题的时候,这都不算什么了。

2022-10-10 凌晨 做了完整备份
2022-10-14 15:00 误删除一个表。
引入这个区别: 数据备份 是备份数据的, 日志备份: 是记录操作的,说白也是备份数据的,只是有类似时间轴的特点,可以恢复任何时间的数据【日志备份之前】
如果操作 才能把数据损失降到最低

<>操作方法

1.做日志备份,记住一定要选择【备份日志尾部】。

压缩备份 不是必须的,

然后在【选项】中,严格按照红色框中的选择项进行勾选,否则,达不到效果设置不能恢复。并且保证数据库不要
有连接,因为有链接,日志备份是备份不了的

经过上面的备份日志尾部,则数据库会变成如下 【正在还原状态…】

经过上面几步,日志备份 完成后 就可以进行数据还原了

<>还原

注意 先要还原完整备份,注意一定要选择最后那一次的完整备份,否则是还原不了的

注意 一定要 选择 restore with norecovery ,这样才能继续还原数据

最后一步就是还原日志备份了,选择恢复的时间点不必太在意,只要填写你误操作之前的时间点,就
可以了

注意 一定要选择 restore with recovery 就是数据库可以正常使用了,

<>全备份【完整备份】

创建备份完成时数据库内存在的数据的副本

<>差异备份

只记录自上次数据库备份【最近一次全备份】后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。
还原步骤:①完整备份②还原最后一次差异备份

<>日志备份

是自上次备份事物日志后对数据库执行的所有事物的一些列记录。可以使用事物日志备份将数据库恢复到特点的时间点(如输入多余数据前的那一刻)或恢复到故障点
还原步骤:①还原完整备份②依次还原每个事物日志备份,而不是还原最后一次事物日志备份。

<>文件组备份

可以备份和还原数据库中的个别文件。可以只还原已还原损坏的文件,而不用还原数据库的其余部分,从而加快恢复速度。

不同的备份类型适应的范围也不同。
全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。
差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。
文件备份必须与事物日志备份一起使用,所以文件备份只适应用于完全恢复模型和大容量日志记录恢复模型

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方法的配合来完成数据库的备份

经常使用备份方式组合有以下几种

* 全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份
* 全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份
* 文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。
<>使用T-SQL脚本备份数据库事务日志

备份语法:backup log 数据库名 to disk=文件完整路径;

<>使用T-SQL脚本还原数据库事务日志

<>如果要还原的数据库不存在

还原语法:
第一步还原数据库: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’
–删除刚才创建的映射

方法2:利用维护计划

T_SQL 数据库备份 数据库还原
--创建备份设备 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之后,

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信