-
2021-01-18 17:30:26
什么是备份?
备份指的是将文件系统或者数据库中的数据进行复制,一旦发生错误或者灾难时,能及时方便地恢复系统的有效数据和正常运作。备份的方式有哪些?
全部备份(也称完整备份):指把硬盘或数据库内的所有文件、文件夹或数据作一次性的复制。(优点:最好,能更快的恢复数据。缺点:占用较大的硬盘空间。)
增量备份:指对上一次全部备份或增量备份后更新的数据进行备份。过程是这样的,比如第一天进行一次全部备份;第二天进行一次新增数据的备份,相对于全部备份来说;第三天在第二天的基础上再进行一次新增数据的备份,相对于第二天来说。以此类推。(优点:占用空间较少。缺点:恢复数据麻烦,有多少增量备份就必须恢复多少次。)
差异备份 :指完整备份后变更的文件的备份。比如第一天全部备份;第二天备份新增数据;第三天备份第二天与第三天的新增数据;第四天备份第二天到第四天所有的新增数据。以此类推。(优点:比全部备份占用空间少一些,恢复起来相比增量备份好些。缺点:时间越长,文件占用量越大。)
选择性备份:指对系统的一部分进行备份。
冷备份:指系统处于停机或维护状态下的备份。备份的数据与系统中此时段的数据完全一致。
热备份: 指系统处于正常运转状态下的备份。由于系统中的数据随时在更新,备份的数据相对于系统的真实数据有一定的滞后。
异地备份:指在另外一个位置备份数据,避免因为火灾、自然灾害、盗窃等造成数据丢失与服务中断。例如银行主要机房或资料中心位于甲地,而在乙地建有同样的资料中心,平时会通过网络传输同步资料。当甲地因为各种原因无法运行时,乙地可接手运行。linux系统中哪些文件或者目录需要备份?
①、/boot/ 启动目录
②、/etc/ 配置文件目录
③、/var/spool/mail 邮件目录
④、/home/ 家目录
⑤、/root/ 家目录
⑥、/usr/local/ 源码包安装目录
⑦、其他目录,如var/log日志目录
如果是自己安装的服务,则也需要备份。常见的如:网页主目录、apache日志与配置文件、mysql数据库的数据、邮件的服务等。备份有哪些因素需要考虑?
备份哪些文件。
备份的存储介质,是光盘还是移动硬盘?还是直接放在另外一台机器的硬盘上?
备份的方式,完全备份?增量备份?或者差异备份?
备份的频率,是一天一备份还是一周一备份?
备份的工具等,是利用 tar 、 cpio 、 dd 还是 dump 等等的备份工具?部分内容参考《鸟哥的Linux私房菜》、维基百科。
更多相关内容 -
DB2 备份常见错误代码及含义.doc
2020-05-28 21:43:53DB2 常见错误代码 DB2 的错误信息分为4类: 1: DB2错误信息: --> SQL<XXXX>N 例如: SQL2062N 该类错误信息可以通过DB2 命令查看详细描述: $db2 ? <SQLXXXXN> 2: Error Code: ? -XXX 可以参考附件DB2_Code.PDF 查找.... -
ORACLE 数据库还原备份 命令 参数 实例大全及参数含义 详解
2018-05-21 15:31:04导出数据 1)按用户导 2)并行进程parallel 3)按表名导 4)按查询条件导 5)按表空间导 6)导整个数据库 还原数据 1)导到指定用户下 2)改变表的owner 3)导入表空间 4)导入数据库 ... 5)追加数据 -
数据库压缩备份提高备份效率
2020-12-14 23:47:53为了更好地了解数据库备份,我们首先要知道代码以及参数的含义。 普通代码: BACKUP DATABASE ‘备份数据库名称’ TO DISK = '地址+bak文件名称' ; 加快备份进度的几个关键参数: 1.BUFFERCOUNT–... -
MySQL定时备份数据库(全库备份)
2021-02-07 16:52:13一、MySQL数据备份1.1、 mysqldump命令备份数据在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:#...一、MySQL数据备份
1.1、 mysqldump命令备份数据
在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump-u root -p --databases 数据库1 数据库2 > xxx.sql
1.2、 mysqldump常用操作示例
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
2.备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
3.备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
4.备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
5.备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
6.备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
8.一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql
1.3、 还原mysql备份内容
有两种方式还原,第一种是在MySQL命令行中,第二种是使用SHELL行完成还原
1.在系统命令行中,输入如下实现还原:
mysql -uroot -p123456 < /data/mysqlDump/mydb.sql
2.在登录进入mysql系统中,通过source指令找到对应系统中的文件进行还原:
mysql> source /data/mysqlDump/mydb.sql
二、 编写脚本维护备份的数据库文件
在linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。
以下代码功能就是针对mysql进行备份,配合crontab,实现备份的内容为近一个月(31天)内的每天的mysql数据库记录。
2.1、 编写BASH维护固定数量备份文件
在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh
#!/bin/bash
#保存备份个数,备份31天数据
number=31#备份保存路径
backup_dir=/root/mysqlbackup
#日期dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
password=TankB214
#将要备份的数据库
database_name=edoctor
#如果文件夹不存在则创建if [ ! -d $backup_dir ];then
mkdir -p $backup_dir;fi#简单写法 mysqldump-u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool-u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql
#写创建备份日志echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi
如上代码主要含义如下:
1.首先设置各项参数,例如number最多需要备份的数目,备份路径,用户名,密码等。
2.执行mysqldump命令保存备份文件,并将操作打印至同目录下的log.txt中标记操作日志。
3.定义需要删除的文件:通过ls命令获取第九列,即文件名列,再通过
head -1
实现定义操作时间最晚的那个需要删除的文件。
4.定义备份数量:通过ls命令加上
wc -l
统计以sql结尾的文件的行数。
5.如果文件超出限制大小,就删除最早创建的sql文件
2.2、 使用crontab定期执行备份脚本
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
一、cron服务
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
二、crontab语法
crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的。
在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分隔。格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
-l 在标准输出上显示当前的crontab。
-r 删除当前的crontab文件。
-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。
三、创建cron脚本
第一步:写cron脚本文件,命名为mysqlRollBack.cron。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令
第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本
注意:这操作是直接替换该用户下的crontab,而不是新增
定期执行编写的定时任务脚本(记得先给shell脚本执行权限)
0 2 * * * /root/mysql_backup_script.sh
随后使用crontab命令定期指令编写的定时脚本
crontab mysqlRollback.cron
再通过命令检查定时任务是否已创建:
crontab -l
附crontab的使用示例:
1.每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
2.每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
3.晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
4.每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
5.1月1日早上4点
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
6.每小时执行/etc/cron.hourly内的脚本
01 * * * * root run-parts /etc/cron.hourly
7.每天执行/etc/cron.daily内的脚本
02 4 * * * root run-parts /etc/cron.daily
8.每星期执行/etc/cron.weekly内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly
9.每月去执行/etc/cron.monthly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly
注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。
10.每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
5,15,25,35,45,55 16,17,18 * * * command
11.每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
00 15 * * 1,3,5 shutdown -r +5
12.每小时的10分,40分执行用户目录下的innd/bbslin这个指令:
10,40 * * * * innd/bbslink
13.每小时的1分执行用户目录下的bin/account这个指令:
1 * * * * bin/account
三、执行效果截图
以下是我的测试每分钟的截图效果,其对应代码如下:
* * * * * /root/mysql_backup_script.sh
效果截图:
其中的log.txt记录备份的操作详细日志:
本文参考:
-------------------------------------------
个性签名:编程水太深,先会造轮子!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
-
SQL Server 2008/2012 完整数据库备份+差异备份+事务日志备份 数据库备份
2018-09-27 15:21:04备份概述数据备份分类完整数据库备份文件备份部分备份差异备份日志备份事务日志备份最常用的备份方法选择备份策略和恢复模式备份策略简单恢复模式下的备份简单恢复模式下的完整数据库备份+差异数据库备份完整恢复...
文章目录
数据备份分类
根据备份目标分类
- 数据备份
- 日志备份
根据备份数据文件的范围进行分类
- 完整数据库备份
- 文件备份
- 部分备份
完整数据库备份
原理
复制数据库里的所有信息,通过一个单个完整备份可将数据库恢复到某个时间点的状态。但由于数据库备份是一个在线的操作,一个大的完整数据库备份需要一段时间,数据库在该段时间内还会发生变化。所以完整数据库备份还要对部分事务日志进行备份,以使恢复数据库到一个事务一致的状态。适用场景:小数据库
- 简单易用
- 速度快
不适用场景:大数据库
- 耗时
- 占用大量存储空间
从是否复制所有的数据分类
- 完整备份
- 差异备份
差异备份
差异备份原理
差异备份基于差异,备份要求数据库之前做过一次完整备份。差异备份仅捕获自该次完整备份后发生更改的数据,这个完整备份被称为差异备份的“基准”。差异备份仅仅包括建立差异基准后更改的数据。差异备份相对完整备份的优点
- 占用少量存储空间
- 备份速度快
- 便于频繁执行,从而降低数据丢失风险
日志备份
事务日志备份
每个日志备份都包括创建备份时处于活动状态的部分事务日志以及先前日志备份中未备份的所有日志记录。不间断的日志备份序列包含数据库的完整日志链。在完整恢复模式下,连续不断的日志链可以将数据库还原到任意时间点。
最常用的备份方法
分级 完整备份 差异备份 日志备份 数据库级 完整数据库备份 差异数据库备份 (一般)日志备份 文件级 完整文件备份 差异文件备份 (一般)日志备份
选择备份策略和恢复模式
SQL Server 数据丢失的最大时间段
利用数据备份恢复机制保护数据,是不可能保证数据一点都不丢失的,SQL Server 不可能时时刻刻做数据库备份,每次备份之间总要有一定的时间间隔。此时间间隔之间的数据变化在下一次备份之前,是没有保护的。因此,数据丢失的最大时间段就是两次备份之间的时间间隔。
频繁备份是否合适?
既然数据丢失的最大时间段为两次备份之间的时间间隔,提高备份频率,降低备份间隔,从而减少数据丢失量。但是,备份越频繁,需要的投入也越多。
- 备份越多,要管理的备份文件也越多,即数据库恢复时要恢复的文件也越多。要建立一个合适的备份管理制度
- 备份虽不会阻塞数据库的正常操作,但会占用磁盘IO。若服务器本身IO就比较繁忙,频繁的备份会降低数据库的IO性能。
- 备份难免会因为种种因素失败,备份越频繁,遇到失败的几率越大。因此 DBA 需要及时处理错误,将备份任务恢复常态。
日志备份的局限性
使用日志备份,可将数据库恢复到故障点或特定的时间点。因此日志备份在备份策略中具有很重要的角色。但日志备份只能在完整恢复模式和有些大容量日志恢复模式的数据库上进行。制定备份策略,首先要决定是否需要日志备份,若需要,则数据库恢复模式就要选成完整模式,若不需要做日志备份,则数据库模式就要设置简单,否则会遇到日志文件无线增长问题。简单恢复模式下的备份
简单恢复模式下,不能做日志备份,所以它只支持最简单的备份和还原方式,很容易管理。如果没有日志备份,则只能将数据库恢复到最后一次备份的结尾。若发生灾难,数据库最后一次备份之后所做的数据修改将全部丢失。
如下图所示,数据库有5个备份,灾难发生在 t6 时间点,因此只有在时间 t5 进行的最新的一份数据库备份需要被还原。还原此备份会将数据库恢复到 t5 这个时间点,t5 时间点之后的数据更新都会丢失。
优点
- 容易管理
- 恢复简单
缺点
- 无日志备份,只能将数据库恢复到最后一次备份的结尾
- 数据丢失风险会随时间增长和增加,直到进行下一个完整备份或差异备份为止。
建议
限定充足的备份频率,以避免遗失大量数据。同时,频率也不能太高而让备份变得难以管理。
使用场景
只适合于可频繁备份的小型数据库
简单恢复模式下的完整数据库备份+差异数据库备份
为降低风险,可引入差异备份,使用差异数据库备份补充数据库完整备份,从而降低工作损失风险的一种备份策略。
如下图所示,在第一次数据库完整备份后,连续建立了三次差异备份。第三次差异备份后,进行第二次数据库完整备份,建立新的差异基准。
差异备份相对完整备份的优点
- 开销低
- 可频繁执行
适用场景
数据库数据量稍大,能够容忍较长时间数据丢失的。
简单恢复模式总结
不管是数据库完整备份和数据库差异备份,都不可能以比较频繁的频率进行,一般都只能在晚间进行。若数据库比较庞大,或者不允许比较长时间的数据丢失,这样的备份策略是不能满足要求的,必须引入日志备份,建立更为复杂,但是也更强大的恢复策略。
完整恢复模式下的备份
选取完整恢复模式可以使用日志备份。由于日志备份只复制上次日志备份以来的所有日志记录,所以开销会比数据库备份小很多,可以定义一种很频繁的频率(5分钟甚至更短)来做备份,以达到在最大限度内防止出现故障时丢失数据的目的。
使用日志备份的优点
- 允许将数据库还原到日志备份内包含的任何时间点(时点恢复)
- 假定可以在发生严重故障后备份活动日志,则可将数据库一直还原到没有发生数据丢失的故障点处
使用日志备份的缺点
- 日志备份文件数量多
- 恢复备份时,需要严格按照备份产生的顺序依次恢复。中间不能有任何备份缺失或跳跃。所以日志备份做的越多,还原时间越长,管理复杂性也越高
下图所示为完整恢复模式下的最简单备份策略,在此图中,已完成了数据库备份 Db_1 及两个例行日志备份 Log_1 和 Log_2。在 Log_2 日志备份后的某个时间,数据库出现故障。在还原这三个备份前,DBA 必须首先备份活动日志(日志尾部),然后还原 Db_1 、Log_1 、Log_2,并且不恢复数据库,接着 DBA 还原并恢复尾(Tail)日志文件。这一步可以把数据库恢复到故障点,从而恢复所有数据。如果尾日志能够成功地备份和恢复,这次灾难可能甚至不会带来任何数据丢失。如果灾难毁坏的时日志文件,使得尾日志不能成功备份和恢复,这次灾难造成的数据丢失就是从 Log_2 以后的所有修改。
数据丢失最大时间段
在第一个完整数据库备份完成,并且常规日志备份开始之后,潜在的工作丢失风险存在事件仅为数据库损坏时间点,即到上一次常规日志备份的那一段时间。
建议
建议经常执行日志备份,以将工作丢失的风险限定在业务要求所允许的范围内。
缺点
- 灾难发生后,需要恢复的日志文件数量太多。
每1小时做一次日志备份。每周在周日做一次数据库完整备份。若灾难在周5发生,则不得不恢复 5*24=120个日志备份。恢复日志文件过多其花费的时间成本较大。
模拟场景
为了最大程度地缩短还原时间,可对相同数据进行一系列差异备份做补充。完整数据库备份 + 差异数据库备份+日志备份
下图所示为使用差异数据库备份及一系列例行日志备份来补充完整数据库备份。使用事务日志备份可缩短潜在的工作丢失风险的存在时间,使该风险仅在最新日志备份之后存在。在第一个数据库备份完成后,每天做一个差异数据库备份,而在工作时间进行若干日志备份。
上图中第一个数据库备份创建之前,数据库存在潜在的工作丢失风险(从时间 t0 到时间 t1)。该备份建立之后,例行日志备份将工作丢失的风险降为丢失自最近日志备份之后所做的修改(最近备份的时间为 t14)。如果发生故障,则应立即尝试备份活动日志(尾部日志),若此“尾部日志备份”成功,则数据库可还原到故障点。
下面以 AdventureWorksDW2018 数据库为例,来了解完整恢复模式下的数据库备份
AdventureWorksDW 数据库的安装请参考 SQL SERVER 自带数据库下载安装实践前准备
清空表
msdb..backupset 上 2018/09/28
之前的记录,注意时间USE msdb; GO EXEC sp_delete_backuphistory @oldest_date = '09/28/2018';
将
AdventureWorksDW2018
库的恢复模式修改为完整恢复模式,否则会报4208
错误USE master ; ALTER DATABASE AdventureWorksDW2018 SET RECOVERY FULL ;
显示 AdventureWorksDW2018 这个数据库历史上曾经的备份信息。
use msdb; select distinct s.first_lsn, s.last_lsn, s.database_backup_lsn, s.backup_start_date, s.backup_finish_date, s.type, y.physical_device_name from msdb..backupset s inner join msdb..backupfile f on f.backup_set_id = s.backup_set_id inner join msdb..backupmediaset m on s.media_set_id = m.media_set_id inner join msdb..backupmediafamily y on m.media_set_id = y.media_set_id where (s.database_name = 'AdventureWorksDW2018') order by s.backup_finish_date desc;
备份信息字段含义
对于日志备份来讲字段 含义 first_lsn 标识备份集中第一个日志记录的日志序列号 last_lsn 标识备份集之后的下一条日志记录的日志序列号 (fisrt_lsn, last_lsn-1) 标识此日志备份所包含的所有日志序列 last_lsn-1 表示前面一条日志序列号,而不表示日志序列号减 1,因为日志序列号虽然是递增的,但并不表示一定以 1 为单位递增 (fisrt_lsn, last_lsn) 表示做数据恢复时,在做 roll forward(前滚)动作时,一定要遍历的 LSN,不然的话数据库在做恢复的时候,数据会不一致 database_backup_lsn 标识上一次数据库做全备份的起始 LSN TYPE
标识数据库备份的类型类型 含义 D 数据库 L 日志 I 差异数据库 F 文件或文件组 1. 对数据库做一个全备份
BACKUP DATABASE [AdventureWorksDW2018] TO DISK='F:\backup\AdvFull1.bak'
查询数据库的历史备份记录,显式一个全备份
2. 对数据库做一个操作,然后做一个日志备份
--drop table t1; use AdventureWorksDW2018; create table t1(number int, name nvarchar(50)); insert into t1 values(1, 'a'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog2.bak'
再次执行查询,可看到又添加了一条新的记录如下图所示。此备份时日志备份,LSN 是从
57000000028800001
到57000000039200001
3. 对数据库做一个操作,再做一个日志备份
use AdventureWorksDW2018; insert into t1 values(2, 'b'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog3.bak'
再次执行查询,可看到又添加了一条新的记录如下图所示。这个备份日志备份,LSN 是从
57000000039200001
到57000000040800001
,可观察到这个日志备份的first_lsn
和上一次日志备份的last_lsn
一定是一样的。这是因为数据库在做日志备份的时候,LSN 要求是连续的。4.对数据库做一个操作,再做一个差异备份
use AdventureWorksDW2018; insert into t1 values(3, 'c'); go BACKUP DATABASE [AdventureWorksDW2018] TO DISK='F:\backup\AdvDiff4.bak' WITH DIFFERENTIAL;
再次执行查询,可看到又添加了一条新的记录,这个备份时差异备份,如下图所示
5. 一直这样操作,最后对数据库做一次日志操作,如下图所示
-- 插入一条数据,再做一个差异备份 use AdventureWorksDW2018; insert into t1 values(4, 'd'); go BACKUP DATABASE [AdventureWorksDW2018] TO DISK='F:\backup\AdvDiff5.bak' WITH DIFFERENTIAL; -- 插入一条数据,再做一个日志备份 use AdventureWorksDW2018; insert into t1 values(6, 'f'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog7.bak' -- 插入一条数据,再做一个日志备份 use AdventureWorksDW2018; insert into t1 values(8, '8'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog8.bak' -- 插入一条数据,再做一个差异备份 use AdventureWorksDW2018; insert into t1 values(9, '9'); go BACKUP DATABASE [AdventureWorksDW2018] TO DISK='F:\backup\AdvDiff9.bak' WITH DIFFERENTIAL; -- 插入一条数据,再做一个日志备份 use AdventureWorksDW2018; insert into t1 values(10, '10'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog10.bak' -- 插入一条数据,再做一个日志备份 use AdventureWorksDW2018; insert into t1 values(11, '11'); go BACKUP LOG [AdventureWorksDW2018] TO DISK='F:\backup\AdvLog11.bak'
总结
first
不管是全备份还是差异备份,都不会影响 LSN 的序列。因此,即使最近的几个全备份或差异备份受损,只要有一个全备份,以及该全备份后所有的日志备份,我们也是能够完整无缺地把数据恢复出来,只是恢复的时间会稍微长一点。中间的差异备份或其他全备份只是减少了需要恢复的日志备份数目。这进一步说明了日志备份的重要性。
second
日志备份的 LSN 是连续的。否则在恢复的时候,会碰到日志链断裂的问题,恢复时不能继续下去的。参考资料
<<SQL Server 2012 实施与管理实战指南>>
查看或更改数据库的恢复模式 (SQL Server)
维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份 -
Linux文件备份
2021-05-10 01:35:23一个应用中有很多的重要数据,为了在数据灾难发生后我们能够及时、迅速、准确的恢复我们的应用到一个比较合适的位置,我们必须定期的对我们的数据资料进行备份,今天给大家分享的就是Linux文件备份的方法。...一个应用中有很多的重要数据,为了在数据灾难发生后我们能够及时、迅速、准确的恢复我们的应用到一个比较合适的位置,我们必须定期的对我们的数据资料进行备份,今天给大家分享的就是Linux文件备份的方法。
1、本机数据手工备份
Linux上有功能强大的tar命令,tar最初是为了制作磁带备份而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件。现在我们可以使用tar来备份数据到任何存储介质上。
tar命令备份数据的格式如下:
tar cvf backup.tar /home/www 这个命令的含义就是将 /home/www/ 打包为 backup.tar
文件,如果我们需要压缩,则需要加上 z 命令。
使用这个命令,我们可以手工备份服务器上的数据,但是要做到定时自动备份,我们还需要借助下一个技巧。
2、本机数据自动备份
要实现自动备份,我们首先需要将 tar 命令写在脚本里。比如下面这样一个脚本:
#!/bin/sh
tar zcvf test.tar /home/www/
保存为 test.sh 并添加可执行权限,执行后,发现提示:tar: Removing leading `/' from member
names
这个问题是由于脚本执行的时候默认是在用户目录下的。这样就选成了问题的存在,解决办法就是在执行 tar 之前 cd 切换到要打包的目录就可以了。
有了可以执行命令的脚本,还要能够让他定时执行,这个就要借助于计划任务了。
Linux 为我们提供了 cron 这个强大的工具,我们可以用它来实现几乎任何类型的定时触发。每个用户都有自己的 cron
配置文件,一般来说,我们都是通过 root 用户来运行 cron 任务,以保证我们能够获得足够的权限。
如果我们希望每天凌晨四点定时运行我们之前写好的脚本,我们可以通过 crontab -e 来编辑配置文件,并加入:
0 4 * * * /home/test.sh
这样,每天凌晨4点系统会自动运行这个备份脚本。
3.借助数据备份软件-多备份
关于多备份:
多备份企业文件自动备份软件是一款电脑和服务器文件自动定时备份和恢复的数据保护软件,它能实现混合备份,既把数据备份在本地,也能将数据备份到云端;兼容windows、Linux等主流平台。对比传统文件备份软件,多备份提供多种灵活的部署和使用方式,企业既可以在单台设备上使用多备份客户端保护数据;也可以在web控制台集中管理名下的所有设备数据,最多可同时管理数万台设备的数据保护工作。
那么就来讲下如何使用客户端进行备份
1.下载Linux版安装包:登录到主机上(root权限登录),输入命令:wget
http://www.dbfen.com/tools/dbfen_install.sh回车
2.输入ls回车,有一个dbfen_install.sh的文件显示
3.输入bash dbfen_install.sh回车,提示安装成功,并且有相关提示
4.启动服务,输入命令:/usr/local/services/dbfen/startdbfen回车,OK,启动成功了。重启服务命令:/usr/local/services/dbfen/startdbfen
restart
如果你是本机访问,直接打开浏览器输入127.0.0.1:40000/view/index.html即可。
如果是其它电脑访问,输入http://安装Linux客户端机器的IP:40000/view/index.html。OK,现在一起来看看如何进行备份
(1)、打开MySQL数据库备份,填写数据库相关参数。
IP:默认127.0.0.1;域名:localhost
用户名:登录数据库的账号名
密码:登录数据库的密码
端口号:默认3306,或者找到mysql.ext并打开,输入密码后按回车键,在mysql>后输入“show global variables
like ‘port’;”回车
(2)、填写完参数后,点击“下一步”,勾选需要备份的数据库,点击“完成”,任务就创建完成了(文件开始自动备份了)
(3)、点击“操作”下的“设置频率”,设置任务备份频率;”编辑参数”设置连接数库的用户名、密码、端口号; “备份内容”重新选择需要备份的数据库。
提示:如果需要再创建一个数据库备份任务,点击“操作”下的“备份内容”,点击“添加数据库”,然后与创建第一个数据库任务时的步骤一样。
(如果提示任务数不够,请到官网上兑换任务数;相同的数据库只能创建一个)
-
oracle RMAN备份
2021-02-19 15:35:07文章目录RMAN备份备份查看备份进度还原相关查看备份集信息rman常用操作rman 中的MAXSETSIZE和MAXPIECESIZE的用法备份格式的定义启用控制文件自动备份特性RMAN备份FORMAT格式中%的含义 RMAN备份 它能够备份整个数据库... -
Postgresql的三种备份方式
2021-03-09 08:56:02按照备份后的文件类型,可以分为物理备份(文件系统级别的备份)和逻辑备份(备份后的文件是sql文件或特定格式的导出文件);按照备份过程中是否停止数据库服务,可分为冷备份(备份过程中停止数据库服务)和热备份(备份... -
数据库备份方案及容灾备份(Mysql,SqlServer,Oracle)
2020-01-15 12:10:44备份文件目录结构 备份文件总目录databak: databak/Installation environment--环境备份目录 databak/project/package--项目部署包备份目录 databak/project/logs--项目日志备份目录 databak/file--文件备份... -
归档和备份
2020-10-23 08:48:52计算机系统管理员的一个主要任务就是保护系统的数据安全,其中一种方法是通过时时备份系统文件,来保护 数据。即使你不是一名系统管理员,像做做拷贝或者在各个位置和设备之间移动大量的文件,通常也是很有帮助的。 ... -
oracle exp备份数据库
2021-05-04 09:52:37通过exp命令对Oracle数据库进行备份操作(提供两种情况的备份:备份本地,备份远程的数据库)通过exp命令可以对Oracle数据库进行备份操作,其命令含义是:exp 用户名/密码@数据库所在ip地址:数据库端口号/数据库的... -
服务器自动备份上传
2018-07-25 15:38:30服务器端定时自动备份上传工具。支持服务器端自动压缩、上传并发邮件提醒。可以定时上传、下载、压缩文件,并进行邮件提配。 -
win10使用注册表备份的系统配置
2018-11-25 18:52:08这个reg文件是个人使用windows过程中收集的可以利用注册表备份和一键还原的部分win10 1089系统配置, 这些配置部分收集自网络, 部分为自己总结得出(互联网上找不到, 独家呦), 其中每个注册表配置的功能和含义都已经... -
MySQL数据库备份方法说明
2021-01-20 01:52:31MySQL数据库备份方法说明更新时间:2007年07月29日 17:52:57 作者:在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态... -
Linux-备份与恢复
2022-04-06 19:26:31如何通过Linux内置的命令去管理数据、文件或目录的备份、恢复,而省去写脚本的时间 -
如何在Windows 10 上定时备份线上Minio 资源
2022-04-02 14:09:36如何在Windows 10 上定时备份线上Minio 资源 -
备份容灾技术基础
2018-05-17 13:11:34备份概念及结构 备份的基本概念: 备份:指将文件系统或数据库系统中的数据加以复制;一旦发生灾难或错误操作时,得以方便而及时地恢复系统的有效数据和正常运作。 备份系统的组成: 备份服务器 备份软件 ... -
MySQL数据库(2):常见的三种备份方式
2019-11-03 15:13:28一,常见的备份方式。 1)冷备份。 tar cp 2)备份工具。 mysqldump mysqlhostcopy 3)第三方工具。 xtrabackup innodbackupxe xbstream 二,备份还原数据库。 1,使用冷备份方式备份。 1)停止MySQL数据库的服务。 ... -
数据安全和数据备份精选.ppt
2020-09-07 05:38:37牛第5章数据安全与数据备份 数据安全与数据备份 数据安全,包括数据的物理安全和逻辑安全数据安 仝是一个内涵非常广博,外延非常大的概念,涵盖 计算机科学的方方面瓦以及相关的密码学编码解码 心理学等方面这里不对... -
使用contab定时从主服务器备份到从服务器备份JIRA数据
2022-02-14 11:29:461.jira数据备份 jira的数据是自动备份的,备份的时间间隔默认是0 5 10/12 * * ?,在设置–>系统–>服务–>备份服务中可以进行修改 也可以进行手动备份,点击设置–>系统–>导入与导出–>备份系统... -
容灾备份概念及实现方式
2020-09-16 12:17:02一、容灾与备份的概念 1、容灾 容灾主要是针对火灾、地震等灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生存系统的业务不间断地运行。容灾系统不仅保护数据,更重要的目的在于保证业务的连续性。 2... -
达梦数据库笔记之数据库备份(BACKUP DATABASE)
2020-12-08 16:28:55达梦数据库(DM8)支持通过联机执行SQL语句方式对数据库执行备份还原操作。联机方式支持数据库、用户表空间、用户表和归档的备份,用户表的还原。在进行联机库级备份、归档备份和表空间备份时,必须保证系统处于归档... -
MySQL 定时备份数据库(非常全)
2021-11-16 17:50:45mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: #MySQLdump常用 ... -
MySQL如何备份整个数据库
2022-03-02 10:33:21MySQL如何备份整个数据库 一.场景 最近申请了新的生产环境。其中包括MySQL的数据库环境。 代码完成后,需要在MySQL环境上: 创用户 创库 创表 加记录 忙活了一下午。 第二天,我收到紧急邮件: 新申请的数据库... -
mysql数据库备份
2021-01-19 02:56:30匿名用户1级2010-12-19 回答在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理... -
备份中的RTO和RPO
2020-11-13 00:02:19要实现 RPO 目标,只需要以正确的时间间隔执行数据备份,数据备份可以很容易地自动化实现,因此自动化的 RPO 策略很容易实现。另一方面,由于 RTO 涉及恢复所有 IT 操作,因此完全自动化的 RTO 策略实现更复杂。 ... -
FusionCompute云计算平台备份与恢复指南.pdf
2020-09-22 19:52:52前 言 概述 本文档介绍了FusionCompute在运营维护阶段的数据备份和恢复方法 读者对象 本文档主要适用于以下工程师 技术支持工程师 维护工程师 符号约定 在本文中可能出现下列标志它们所代表的含义如下 符号 说明 以... -
FusionCompute云计算平台备份与恢复指南.docx
2020-09-01 22:54:56前 言 概述 本文档介绍了FusionCompute在运营维护阶段的数据备份和恢复方法 读者对象 本文档主要适用于以下工程师 技术支持工程师 维护工程师 符号约定 在本文中可能出现下列标志它们所代表的含义如下 符号 说明 以...