数据备份 订阅
数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。传统的数据备份主要是采用内置或外置的磁带机进行冷备份。但是这种方式只能防止操作失误等人为故障,而且其恢复时间也很长。随着技术的不断发展,数据的海量增加,不少的企业开始采用网络备份。网络备份一般通过专业的数据存储管理软件结合相应的硬件和存储设备来实现。 [1] 展开全文
数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。传统的数据备份主要是采用内置或外置的磁带机进行冷备份。但是这种方式只能防止操作失误等人为故障,而且其恢复时间也很长。随着技术的不断发展,数据的海量增加,不少的企业开始采用网络备份。网络备份一般通过专业的数据存储管理软件结合相应的硬件和存储设备来实现。 [1]
信息
主要技术
LAN 备份
说    明
防止系统故障导致数据丢失
中文名
数据备份
备份方式
定期磁带
数据备份备份方式
远程磁带库、光盘库备份。即将数据传送到远程备份中心制作完整的备份磁带或光盘。远程关键数据+磁带备份。采用磁带备份数据,生产机实时向备份机发送关键数据。就是在与主数据库所在生产机相分离的备份机上建立主数据库的一个拷贝。这种方式是对生产系统的数据库数据和所需跟踪的重要目标文件的更新进行监控与跟踪,并将更新日志实时通过网络传送到备份系统,备份系统则根据日志对磁盘进行更新。 [2]  通过高速光纤通道线路和磁盘控制技术将镜像磁盘延伸到远离生产机的地方,镜像磁盘数据与主磁盘数据完全一致,更新方式为同步或异步。数据备份必须要考虑到数据恢复的问题,包括采用双机热备、磁盘镜像或容错、备份磁带异地存放、关键部件冗余等多种灾难预防措施。这些措施能够在系统发生故障后进行系统恢复。但是这些措施一般只能处理计算机单点故障,对区域性、毁灭性灾难则束手无策,也不具备灾难恢复能力。
收起全文
精华内容
下载资源
问答
  • 数据备份
    千次阅读
    2021-05-15 20:11:18

    Linux系统下常用的数据备份方法

    发布时间:2009-10-28 15:11:36来源:红联作者:szlfeng

    Linux系统下常用的数据备份方法

    1、本机上数据的手工备份

    Linux系统上配有功能强大的tar命令,可以灵活地备份数据。tar最初是为了制作磁带备份而设计的把文件和目录备份到磁带中,然后从磁带中提取或恢复文件。当然,现在我们可以使用tar来备份数据到任何存储介质上。tar非常易于使用稳定可靠,而且在任何 Linux系统上都有这个命令。因此是最经常使用的备份工具。

    (1)使用tar命令备份数据的格式如下:

    $ tar cvf backup.tar /home/html

    上述命令是将/home/html 目录下的所有文件打包成tar文件backup.tar。

    cvf是tar的命令参数。

    c代表创建一个档案文件,

    v代表显示每个备份的文件名字,

    f表示tar创建的档案文件名是后面的backup.tar,

    /home/html 代表tar要备份的文件或和目录名。

    (2)使用tar命令恢复数据的格式如下:

    $ tar xvf backup.tar

    上述命令将备份文件backup.tar恢复到当前目录下。

    通常情况下,tar对文件进行备份的时候并不对文件进行压缩,因此备份文件的尺寸非常大。使用如下的命令,将使tar在备份结束以后,自动使用gzip命令对备份文件进行压缩,得到一个相应的gz文件。

    $ tar zcvf backup.tar.gz /home/html

    这样,我们可以得到压缩文件backup.tar.gz。

    backup.tar.gz是压缩的备份文件。

    2、本机数据的自动备份

    使用上述命令,我们可以手工备份数据,但是每天定时做这些操作可能比较繁琐。当然,Linux为我们提供了强大的工具来进行自动备份。这就是cron。

    cron是一个后台进程,一旦启动,将根据自己的配置文件定时地执行任务。我们可以编写一个shell脚本文件来进行文件备份,然后让cron定时地启动这个脚本文件来对数据进行备份。

    例如,我们每天备份/home/html目录下的所有的文件到/home/admin/backup/backup_xxxx目录下,xxxx代表备份的日期。这个工作,可以编写一个如下的shell脚本backup.sh来进行:

    #!/bin/sh

    cd /home/admin/backup

    year=`date +%Y`

    month=`date +%m`

    day=`date +%d`

    now=$year-$month-$day

    mkdir backup_$now

    tar zcvf backup_$now/backup.tar.gz /home/html

    这个脚本在备份数据的时候,自动读取系统日期,然后以系统当前的日期建立一个新的目录,将备份的数据打包压缩放在这个目录中。我们可以在系统中通过执行:$sh backup.sh ,完成备份工作。如果键入:$chmod +x backup.sh ,可以将backup.sh设置为可运行。这样,我们就可以直接通过键入$./backup.sh来运行备份脚本文件了。一般情况下,我们希望在系统负载不是最大的时候来进行数据备份。通常,我们可以选择每天的凌晨3:00来进行数据备份(这段时间,你的服务器访问的人数应该最少吧?)。把一切工作交给 cron吧。 cron启动以后,它检查/var/spool/cron/目录中的配置文件来找到所要执行的任务和执行任务的时间,依据这些设定在规定的时间执行规定的任务。

    这个任务配置文件可以由crontab -e 命令来编辑。

    其格式为每行代表一个任务和规定的执行时间。

    每行由6个域组成:

    分钟小时每月的天月星期命令

    上述6个域之间用空格或Tab分开,其中:

    分钟:分钟域,值的范围是0到59

    小时:小时域,值的范围是0到23

    每月的天:日期,值的范围是1到31

    月份:月份,值的范围是1到12

    星期:星期,值的范围是0到6,星期日值为0 命令。

    所要运行的命令特别的,如果一个域是‘*’,表明命令可以在该域所有可能的取值范围内执行。如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括起止两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。现在,我们编写一个文件,用以在每天的凌晨3:00启动备份shell程序。

    键入:crontab -e 命令,

    然后输入: 0 3 * * * backup.sh 输入完成后,存盘退出。

    键入crontab -l 来检查刚才的输入是否正确。好了,这样只要Linux服务器不关机,每天凌晨3:00cron都会自动启动backup.sh脚本来对数据进行备份的。你就可以高枕无忧了。

    FMS的备份方法

    一、备份数据说明:

    Foxmail Server系统的数据分为以下几种:

    邮件数据:存在于系统相应目录中。这是比较重要的数据,主要是存放所有用户的邮件内容,邮件信息,邮箱信息,过滤器信息。

    目录结构为:[邮件数据存放根目录]/[服务域名]/[用户帐号第一个字母小写]/[用户帐号]/[邮箱结构]。例如,在默认安装的情况下一个在bodachina.com域中的admin用户他的邮箱目录为:/home/webmail/bodachina.com/a/admin用户信息数据:存在于数据库中。存放的是用户的个人信息,如用户名,密码等。

    用户地址本数据:存在与OPENLDAP中。主要是用来存放用户的地址本信息。在默认安装的情况下,数据存放在/usr/local/var/openldap-ldbm日志文件:包括邮件服务器日志文件,WEB服务器日志文件等,存在于各个服务器相关目录中。在默认安装的情况下,WEB服务器的日志文件会存放在/usr/local/resin/log;邮件服务器的日志文件回存放在/var/log/qmail的目录中。

    临时数据:存放在系统临时目录中,通常是/tmp/webuser目录,用来存放系统的临时数据。

    二、数据备份方法说明

    数据备份分为以下步骤:

    建立备份数据存放目录、日志存放目录。用户可以把备份数据存放在/home/foxmail/backup;对邮件数据进行打包。根据不同的系统安装情况,邮件数据目录可能不同。默认情况下,邮件数据目录被定在/home/webmail/下。具体情况请查阅系统安装手册。打包命令:

    cd /home/

    tar vcvf maildata.tar.gz webmail mv maildata.tar.gz /home/foxmail/backup/xxx_maildata.tar.gz其中xxx是一个事件注释。

    对用户信息从数据库中倒出,备份。具体命令是:mysqldump -u[数据库用户名] -p[数据库密码] [数据库名] > userdata.sql

    默认情况下,系统安装的数据库用户名,密码和数据库名都是:qmail

    导出后,请把userdata.sql移动到备份数据存放目录中。具体命令:

    cd /home/foxmail/backup

    mysqldump -uqmail -pqmail qmail >xxx_userdata.sql

    或者直接把数据库目录打包备份,在mysql数据库存放数据的目录下可以看到一个名叫qmail的数据库,用户可以用上面的打包方式对qmail数据库进行数据备份。

    对地址本数据进行备份。对OPENLDAP的数据目录进行打包。默认情况下是 /usr/local/var/目录,具体命令:tar zcvf addrdata.tar.gz [LDAP数据目录名],并把数据包移动到备份数据存放目录下,方法与上面类似。或者用户可以使用OPENLDAP的命令进行备份:ldapsearch -b ‘o=FOXMAIL’ objectclass=* -x -H ldap://192.168.1.227:1212 >ldapdata.ldif如果用户地址本数据太多能会出现搜索上限问题,可以修改OPENLDAP的配置文件来解决这个问题。修改方法是:在/usr/local/etc/openldap/slapd.conf文件中插入:

    sizelimit 50000

    对日志文件进行备份。通常是备份邮件服务器日志和WEB服务器日志。默认情况下,邮件服务器日志目录为/var/log/qmail/,而WEB服务器日志存放于/usr/local/resin/log/目录下。请把相关文件打包,移动到日志存放目录中。

    对临时数据进行删除。在系统运行了一段时间后,系统数据目录中,会积累了一定容量的临时数据。为了提高系统的效率和空余系统磁盘空间,请把临时数据删除。具体方法是:把FoxmailServer停掉,命令FoxmailServer stop;把临时目录中的所有目录删除(默认在/tmp/webuser/下),进入/tmp/webuser/,把这个目录中的所有目录和文件,一并删除。

    三、用cron对FMS进行数据备份

    1、增加cron纪录:

    crontab-e

    增加纪录行:0 3 * * * /home/foxmail/bin/backup.sh

    2、创建脚本:/home/foxmail/bin/backup.sh

    #!/bin/sh

    year=`date +%Y`

    month=`date +%m`

    day=`date +%d`

    now=$year-$month-$day

    mkdir /home/foxmail/backup/$now

    cd /home/mysql/data/

    tar zcvf /home/foxmail/backup/$now/mysql_qmail.tar.gz qmail

    cd /usr/local/var/

    tar zcvf /home/foxmail/backup/$now/openldap-ldbm.tar.gz openldap-ldbm

    tar zcvf /home/foxmail/backup/$now/openldap-slurp.tar.gz openldap-slurp

    cd /home/

    tar zcvf /home/foxmail/backup/$now/webmail.tar.gz webmail

    通过以上两个步骤就可以在每天三时对系统数据做一个备份,不过在大用户量的情况下,就不必对webmail做每天的备份,因为这样很快就会占满所有硬盘空间。可以backup.sh中把相应的行注释掉。

    数据备份方法说明:

    当系统出现灾难性故障,可以通过恢复备份数据来恢复系统,步骤如下:

    把邮件数据备份包maildata.tar恢复到系统的邮件数据存放目录中;把用户信息备份文件userdata.sql恢复到数据库中,具体方法是:用数据库帐号进入数据库(默认为qmail);通过命令show tables获取所有表信息;通过命令drop table [表名],把所有表删除;退出数据库;通过命令mysql -u[用户名] -p[用户密码] [数据库名] < userdata.sql,重新把备份数据导入数据库。

    把地址本备份信息覆盖原来的数据文件,默认情况是/usr/local/var下的openldap的相关文件。

    小结

    实际备份脚本backup.sh:

    #!/bin/sh

    year=`date +%y`

    month=`da

    te +%m`

    day=`date +%d`

    now=$year-$month-$day

    exp tbpf/tbpf@ora9i file=/home2/tbpf_backup/TbpfDB$now.dmp owner=tbpf

    cd /home2/tbpf_backup/

    tar zcvf /home2/tbpf_backup/tbpf_backup_tar/TbpfDB$now.tar.gz TbpfDB$now.dmp

    rm -rf TbpfDB$now.dmp

    te +%m`

    day=`date +%d`

    now=$year-$month-$day

    exp tbpf/tbpf@ora9i file=/home2/tbpf_backup/TbpfDB$now.dmp owner=tbpf

    cd /home2/tbpf_backup/

    tar zcvf /home2/tbpf_backup/tbpf_backup_tar/TbpfDB$now.tar.gz TbpfDB$now.dmp

    rm -rf TbpfDB$now.dmp

    更多相关内容
  • Linux系统管理---数据备份

    万次阅读 2022-03-03 10:50:48
    1、数据备份简介 1.Linux服务器中哪些数据需要备份 1)Linux系统重要数据 2)安装服务的数据 配置文件: 网页主目录: 日志文件: 二、备份策略(方式) 1.完全备份 2.增量备份 3.差异备份 三、备份工具...

    目录

    1、数据备份简介

    1.Linux服务器中哪些数据需要备份

    1)Linux系统重要数据

    2)安装服务的数据

    配置文件:

    网页主目录:

    日志文件:

    二、备份策略(方式)

    1.完全备份

    2.增量备份

    3.差异备份

    三、备份工具dd

    1.命令格式:

    2.列题

    例1:只备份文件

    例2:备份分区为一个文件:

    例3:备份分区到另一个新分区

    例4:整盘备份:

    3.dd缺点

    四、XFS文件系统备份

    XFSdump使用注意事项:

    选项:

    1、备份整个分区。

    2、 指定备份时免交互操作,方便后期做定时备份

    3、指定只备份分区中某个目录

    4、查看备份信息与内容

    xfsrestore文件系统恢复

    五、增量备份

    1、对上面的内容进行第一次全备

    2、增加一些内容,然后进行第1次增量备份

    3、再次增加内容,然后进行level 2级别的增量备


    1、数据备份简介

    1.Linux服务器中哪些数据需要备份

    1)Linux系统重要数据

    /root/目录:

            /root目录是管理员的家目录,很多管理员会习惯于在这个目录中保存一些相关数据,那么当进行数据备份时,需要备份此目录。

    /home/目录:

            /home目录是普通用户家目录,如果是生产环境的服务器,这个目录中也会保存大量的重要数据,应该备份。

    /etc/目录:

            系统重要的配置文件保存目录。

    2)安装服务的数据

            我们的Linux服务器中会安装各种各样的应用程序,这些程序当然也有重要数据需要备份。不过应用程序是多种多样的,每种应用程序到底应该备份什么数据,也不尽相同,要具体情况具体对待。我们这里拿最常见的apache服务和mysql服务举例:

    apache需要备份如下内容:

    配置文件:

            RPM包安装了apache,需要备份/etc/httpd/conf/httpd.conf。源码包安装的apache则备份/usr/local/apache2/conf/httpd.conf。

    网页主目录:

            RPM包安装的apache需要备份/var/www/html/目录中所有数据。源码包安装的apache需要备份/usr/local/apache2/htdocs/目录中所有数据。

    日志文件:

            RPM包安装的apache需要备份/var/log/httpd/目录中所有日志。源码包安装的apache需要备份/usr/local/apache2/logs/目录中所有日志。

    二、备份策略(方式)

    1.完全备份

            完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。完全备份的好处就是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复完全备份,所有的数据就会被恢复。如果完全备份的是整块硬盘,那么甚至都不需要数据恢复,只要把备份硬盘安装上,服务器就会恢复正常。可是完全备份的缺点也很明显,那就是需要备份的数据量较大,备份时间较长,占用的空间较多,所以完全备份不可能每天执行。

            我们一般会对关键的服务器进行整盘完全备份,如果出现问题,可以很快的使用备份硬盘进行替换,从而减少损失。甚至会对关键服务器搭设一台一模一样的服务器,这样只要远程几个命令(或使用shell脚本自动检测,自动进行服务器替换。)备份服务器就会解体原本的服务器,使我们的故障响应时间缩短为最短。

    2.增量备份

            完全备份随着数据量的加大,备份耗费的时间和占用的空间会越来越多,所以完全备份不会也不能每天进行。这时增量备份的作用就体现出来了。增量备份是指先进行一次完全备份服务器运行一段时间之后,比较当前系统和完全备份数据之间的差异,只备份有差异的数据而已。服务器继续运行,再经过一段时间运行之后,进行第二次增量备份,第二次增量备份时,当前系统是和第一次增量备份的数据进行比较,也是只备份有差异的数据。而第三次增量备份是和第二次增量备份的数据进行比较,以此类推。

            假设我们第一天时,进行一次完全备份。第二天增量备份时,只会备份第二天和第一天之间的差异数据,但是第二天的总备份数据是完全备份+第一次增量备份的数据。第三天增量备份,只会备份第三天和第二天之间的差异数据,第三天的总备份数据是完全备份+第一次备份数据+第二次备份数据。当然第四天增量备份时,只会备份第四天和第三天的差异数据,数据是完全备份+第一次增量备份+第二次增量备份+第三次增量备份数据。

            这种备份的好处是每次备份需要备份的数据较少,耗时较少,占用的空间较少坏处是数据恢复比较麻烦,如上图,那么当数据恢复时,就要先恢复完全备份的数据,再依次恢复第一次增量备份的数据,第二次增量备份的数据和第三次增量备份的数据,最终才能恢复所有的数据。

    3.差异备份

            差异备份也要先进行依次完全备份,但是和增量备份不同的地方是,每次差异备份都是备份和原始的完全备份不同的数据,也就是说差异备份每次备份的参照物是原始的完全备份,而不是上一次的差异备份。

            假设我们第一天时,也进行一次完全备份。第二天差异备份时,会备份第二天和第一天之间的差异数据,而第二天备份的数据是:完全备份+第一次差异备份的数据。第三天进行差异备份时,还是会和第一天的原始数据进行对比,把第二天和第三天所有的数据都备份在第二次差异备份数据中,第三天的备份数据是:完全备份+第二次差异备份的数据。第四天进行差异备份时,也是会和第一天的原始数据对比,把第二天、第三天和第四天所有的差异数据都备份到第三次差异备份数据中,第四天的备份数据是:完全备份+第三次差异备份的数据。

            差异备份相比较而言,即不要像完全备份一样把所有数据都进行备份,也不像增量备份数据恢复时那么麻烦。只要先恢复完全备份的数据,再恢复差异备份的数据即可。不过随着时间的增加,和完全备份相比,差异的数据越来越多,那么差异备份也可能变得数据庞大,备份缓慢,占用空间较大。(兼顾)

    三、备份工具dd

    1.命令格式:

    dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”

    参数:

    if:定义输入数据的文件,也可以是输入设备。

    of:定义输出数据的文件,也可以是输出设备。

    bs:指定数据块的大小,也就是定义一次性读取或写入多少字节。默认数据块大小是512字节。

    count:指定bs的数量。

    2.列题

    例1:只备份文件

    命令如下:

    【】# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak

    记录了67+1 的读入  #数据占了写满的67个数据块,及1个没有写满的数据块。

    记录了67+1 的写出   #默认数据块大小是512字节。

    34418字节(34 kB)已复制,0.0368821 秒,933 kB/秒

            dd命令还可以用来直接备份某个分区,当然可以把分区备份成为一个备份文件,也可以直接备份成另一个新的分区。先来看看如何把分区备份成文件:

    例2:备份分区为一个文件:

    【】# dd if=/dev/sda1 of=/tmp/boot.bak

    记录了409600+0 的读入

    记录了409600+0 的写出

    209715200字节(210 MB)已复制,9.46323 秒,22.2 MB/秒   #备份完成。

    【】# ll -h /tmp/boot.bak #查看。

    -rw-r--r-- 1 root root 200M 11月 17 15:40 /tmp/boot.bak

    【】# dd if=/tmp/boot.bak of=/dev/sda1

    #如果需要进行恢复,执行此命令即可。

            如果想要把分区直接备份成为另外一个分区,就需要生成一个新的分区,这个分区的大小不能比源分区小,只能和源分区一大小一致或比源分区大。

    例3:备份分区到另一个新分区

    【】# dd if=/dev/sda1 of=/dev/sdb1

    #如果需要恢复,只要把输入项和输出项反过来即可,命令如下:

    【】# dd if=/dev/sdb1 of=/dev/sda1

    既然可以备份分区,当然也可以整盘备份:

    例4:整盘备份:

    【】# dd if=/dev/sda of=/dev/sdb #把磁盘a备份到磁盘b。[root@localhost ~]# dd if=/dev/sda of=/tmp/disk.bak

    #把磁盘a备份成disk.bak。

    恢复命令如下:

    【】# dd if=/tmp/disk.bak of=/dev/sdb

    3.dd缺点

            虽然dd命令功能强大,不过也有个明显的缺点,就是复制的时间比较长(根据服务器性能变化而变化)

    至于网络复制工具,如rsync和scp等,需要较为完善的网络知识才能学习。

    xfs文件系统的备份与恢复:

            xfs文件系统支持备份功能,使用xfsdump命令和xfsrestore可以完成备份与恢复。xfsdump实现了针对文件系统进行备份的功能centos7中默认选用的文件系统为xfs。

    四、XFS文件系统备份

    xfs文件系统的备份不光通过xfsdump可以进行完整备份。而且还可以进行增量备份。

    XFSdump使用注意事项:

    xfsdump不支持对没有挂载的文件系统进行备份,需要备份请挂载之后备份。

    xfsdump必须使用root身份才能够有权限执行。

    xfsdump只能备份xfs文件系统。

    xfsdump备份过的数据只能被xfsrestore解析。

    xfsdump默认只支持备份文件系统,并不支持特定某个目录的备份。

    xfsdump是通过文件系统的UUID来辨别各个备份文件,因此不能备份两个具有相同UUID 的文件系统(UUID重复的概率无限接近于0,可以忽略不记)。

    xfsdump:对xfs文件系统进行备份。

    选项:

    -L:xfsdump会记录每次备份的说明标签。

    -M:指定存储媒介的说明标签。

    -l:指定备份的级别(0-9),0级别是完整备份。1-9是增量备份。

    -f:指定转储的目的地。转储的目的地可以是路径设备、常规文件等。

    -I:从/var/lib/xfsdump/inventory列出目前备份的信息状态(没有备份过没有此路径)。

    使用新的分区,格式化分区,并进行挂载

    【】# mkfs.xfs /dev/sdb1

    【】#mkdir /test #创建挂载点

    【】#mount /dev/sdb1 /test #挂载

    准备备份测试文件

    【】# cd /test/

    【】# cp /etc/passwd ./[root@localhost test]# mkdir ./linux

    【】# touch ./linux/a

    【】# tree /test/

    /test/

    ├── passwd

    └── linux

    └── a

    备份

    1、备份整个分区。

    (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)

    xfsdump -f 备份文件存放位置 被备份路径或设备文件

    注意:被备份的路径可以写/dev/sdb1 或/test ,但是不能写成/test/ ,即test后不能有/

    【】# xfsdump -f /opt/dump_sdb1 /dev/sdb1

    xfsdump: using file dump (drive_simple) strategy

    xfsdump: version 3.1.8 (dump format 3.0) - type ^C for status and control

    =============================dumplabeldialog===========================

    please enter label for this dump session (timeout in 300 sec)

    -> dump_sdb1 #指定备份标签.

    session label entered: "dump_sdb1"

    --------------------------------- end dialog -----------------------

    ----------

    xfsdump: level 0 dump of xuegod63.cn:/test

    xfsdump: dump date: Tue Mar 10 16:03:07 2020

    xfsdump: session id: e7d1aab1-dfbd-4b77-9379-56d63828a013

    xfsdump: session label: "dump_sdb1"

    xfsdump: ino map phase 1: constructing initial dump list

    xfsdump: ino map phase 2: skipping (no pruning necessary)

    xfsdump: ino map phase 3: skipping (only one dump stream)

    xfsdump: ino map construction completexfsdump: estimated dump size: 25856 bytes

    ============== media label dialog =============================

    please enter label for media in drive 0 (timeout in 300 sec)

    -> sdb1 #指定设备标签,就是对要备份的设备做一个描述

    media label entered: "n21"

    --------------------------------- end dialog -----------------------

    ---------

    xfsdump: creating dump session media file 0 (media 0, file 0)

    xfsdump: dumping ino map

    xfsdump: dumping directories

    xfsdump: dumping non-directory files

    xfsdump: ending media file

    xfsdump: media file size 26072 bytes

    xfsdump: dump size (non-dir files) : 3104 bytes

    xfsdump: dump complete: 27 seconds elapsed

    xfsdump: Dump Summary:

    xfsdump: stream 0 /opt/dump_sdb1 OK (success)

    xfsdump: Dump Status: SUCCESS

    2、 指定备份时免交互操作,方便后期做定时备份

    【】# xfsdump -f /opt/dump_2 /test -L dump_2 -M sdb1

    -L :<session label> #每次备份的 session 标签,这里写此次备份的描述

    -M :<media label> #媒体标签,这里写对哪个设备进行备份

    排错:

    改:xfsdump -f /opt/dump_2 /test/ -L dump_2 -M sdb1

    为:xfsdump -f /opt/dump_2 /test -L dump_2 -M sdb1 #test后,不要有/

    3、指定只备份分区中某个目录

    参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)例:对/test/xuegod目录进行备份

    【】# xfsdump -f /opt/dump_linux -s linux /test -L

    dump_linux -M sdb1

    4、查看备份信息与内容

    备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息

    【】# xfsdump -I(字母大写i)

    测试恢复:先删除之前创建的内容

    【】# cd /test/

    【】# ls

    passwd   linux

    【】# rm -rf ./*

    xfsrestore文件系统恢复

    语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径

    【】# xfsrestore -f /opt/dump_sdb1 /test/

    【】# ls /test/ #查看恢复情况

    恢复单个文件如下:

    【】# mkdir /tmp/test

    【】# xfsrestore -f /opt/dump_sdb1 -s passwd /tmp/test/ #恢复单个文件

    恢复目录

    【】# xfsrestore -f /opt/dump_sdb1 -s linux /tmp/test/ #恢复目录

    五、增量备份

    实战: 增量备份文件系统

    准备一个备份目录进行备份

    [root@localhost test]# tree /test/

    /test/

    ├── passwd└── linux

    └── a

    1、对上面的内容进行第一次全备

    【】# xfsdump -f /opt/test-full /test -L test-full -M sdb1

    2、增加一些内容,然后进行第1次增量备份

    【】# touch /test/1.txt /test/2.txt

    【】# xfsdump -l 1 -f /opt/test-back1 /test -L test-bak1

    -M sdb1

    -l <level> 做一个等级为1的备份

    3、再次增加内容,然后进行level 2级别的增量备

    【】# touch /test/linux/a.txt /test/xuegod/b.txt

    【】# xfsdump -l 2 -f /opt/test-back2 /test -L test-bak2 -M sdb1

    [root@localhost ~]# rm -rf /test/* #删除所有数据

    现在进行恢复,要想恢复全部全部数据,包括新添加的文件,如何恢复?

    恢复步骤:

    1、先恢复完全备份

    2、情况1: 恢复最后一次增量备份(如果两次增量备份都是1级的,所以只需要恢复最后一个增量就可以了。

    3、情况2:如果你做的是第一次是1级备份,第二次是2级备份。在恢复时,需要先恢复完全备份,然后是1级备,最后是2级备)

    例:对做了完全备份,1级备份,2级备份的数据时行恢复

    【】# xfsrestore -f /opt/test-full /test/

    【】# xfsrestore -f /opt/test-back2 /test/ #故意先恢复back2,可以恢复成功,但是数据不全

    【】# tree /test/ #查看,发现没有1.txt ,2.txt

    /sdb1/

    ├── passwd

    └── test

    ├── a├── a.txt

    └── b.txt

    [root@localhost ~]# xfsrestore -f /opt/test-back1 /test/

    [root@localhost ~]# tree /test/ #到此,数据恢复成功了

    /test/

    ├── 1.txt

    ├── 2.txt

    ├── passwd

    └── xuegod

    ├── a

    ├── a.txt

    └── b.txt

    展开全文
  • 数据备份技术知识梳理(建议收藏)

    千次阅读 2020-10-31 11:40:00
    所谓数据保护技术是指对当前时间点上的数据进行备份,如果说原始数据被误删除了,可以通过备份数据找回或恢复数据。从底层来分,数据保护可以分为文件级保护和块级保护。文件级备份文件级备份:将磁盘...

    所谓数据保护技术是指对当前时间点上的数据进行备份,如果说原始数据被误删除了,可以通过备份数据找回或恢复数据。从底层来分,数据保护可以分为文件级保护和块级保护。

    文件级备份

    文件级备份:将磁盘上所有文件通过调用文件系统接口备份到另一个介质上。也就是把数据以文件形式读出,然后存储在另一个介质上面。此时备份软件只能感知到文件这一层。

    我们知道一般来说,文件在原来的介质上,可以是不连续存放的,通过文件系统来管理和访问。当备份到新的介质上以后,文件完全可以连续存放。正因为如此,没有必要备份元数据,因为利用新介质进行恢复的时候,反正会重构文件系统。

    块级备份

    块级备份:就是不管块上是否有数据,不考虑文件系统的逻辑,备份块设备上的每个块。

    这样好处是不通过调用文件系统接口,速度更快,缺点的是备份的时候会把所有的块复制一遍,但是实际上很多扇区的数据是不对应真实文件的,也就是会备份很多僵尸扇区。而且备份之后,原来不连续的文件一样是不连续的文件,有很多的碎片。

    远程文件复制

    远程文件复制:通过网络传输到异地容灾点。典型的代表是rsync异步远程文件同步软件。可以监视文件系统的动作,将文件的变化,同步到异地站点。增量复制。


    远程卷镜像

    这是基于的远程备份。与远程文件复制不同的地方在于,是把块数据备份到异地站点。又可以分为同步和异步复制。

    • 同步复制:必须等数据复制到异地站点以后,才通报上层IO成功消息

    • 异步复制:写入成功即可回复成功,然后通过网络传输到异地。不能保证一致性,但是上层响应快。

    基于块的备份措施,一般都是在底层设备上进行,不耗费主机资源。


    快照技术

    远程镜像确实是对生产数据一种非常好的保护,但是需要镜像卷一直在线,主卷有写IO,那么镜像卷也需要有写IO。

    如果想对镜像卷进行备份,需要将停止主卷的读写,然后将两个卷的镜像关系分离。所以当恢复主卷的IO的时候,镜像卷不会再被读写。然后才可以备份镜像卷的数据。

    这样会存在一个问题,主卷上还继续有IO,将会导致数据与备份的镜像不一致。所以主卷上所有的写IO动作,会以位图BitMap方式记录下来,BitMap上的每个位表示卷上的一个块,0表示未写入,1表示已写入,所以当拆分镜像以后,被写入了数据,程序将BitMap文件对应位从0变为1。备份完成以后,再做数据同步即可。

    可以看出上述过程比较的繁琐,而且需要占用一块和主卷一样大小的镜像卷。

    快照技术就是为了解决这种问题,其基本思想是抓取某一时间点磁盘卷上的所有数据。

    快照分为:基于文件系统的快照和基于物理卷的快照,下面介绍一下快照的底层原理。

    基于文件系统的快照

    文件系统管理的精髓:链表、B树、位图,也就是元数据。

    文件系统

    • 将扇区组合成更大的逻辑块来降低管理规模。NTFS最大块可以到4KB,也就是8个扇区一组一个簇(Block),这样可以减少管理成本。

    • 文件系统会创建所管理存储空间上所有簇的位图文件。每个位代表卷上的簇(或者物理扇区)是否被使用,如果被使用,则置1。

    • 文件系统保存一份文件和其对应簇号的映射链。因为映射链本身和簇位图也是文件,也有自己的映射链,所以针对重要的元数据,有一个固定的入口: root inode

    写入新数据

    • 查找簇位图,找位值为0的簇号

    • 计算所需空间, 分配簇号给文件

    • 将数据写入簇,再去文件——簇号映射图更新

    • 将对应的簇映射关系记录下来,到簇位图将对应位置改为1。

    删除数据

    • 直接在簇号映射链中抹掉

    • 簇位图对应簇改为0。

    可以看出删除数据实际上不会抹掉实际的数据。所以,最重要的不是数据,而是文件——簇号映射链和位图等元数据。

    也就是说我们要做备份,只需要把某时刻的文件系统中的映射图表保存下来。但是必须保证卷上的数据不被IO写入了,同时又要不应用还不能中断。既然原来的空间不能再写了,我们可以写到其他的空闲区域。

    • 思路一:Copy on First Write (CoFW),在覆盖数据块之前,需要将被覆盖的数据块内容复制出来,放到空闲的空间。

    • 系统中将有两套元数据链,原来的元数据指向当前,快照的元数据链指向历史。原来的存储空间永远是最新的数据,历史数据会逐渐搬出到空闲空间里面。

    • 思路二:Redirect on First Write (RoFW)。先复制元数据,然后将针对源文件的更改都重定向到空余空间,同时更新元数据

    • CoFW不同的是,原来的数据块不会被覆盖。同样的,系统也有两套元数据,一套是快照保存下来的,永远不更新,一套是源文件系统的,不断的更新。

    其实只有首次覆盖的时候,才重定向,因为重定向以后的数据块,哪怕被覆盖了,也不影响之前快照保存的数据了。

    到这一步,看上去挺完美,实际上存在一个问题: 如果元数据特别大怎么办?对于海量庞大的文件系统,元数据量可能到GB级别。如果复制的话,时间上仍然太多。

    我们可以回头想想,实际上元数据可以看做指针,指向具体存储的位置。我们复制到元数据,相当于复制了一堆指针。现在元数据太多了,我们能不能把这个元数据链的指针给复制了?当然可以,元数据有个根入口块,或者称为Super Block,这个块是固定不变的,里面存放有指向下一级元数据链块的指针。

    那么操作系统每次载入元数据的时候,都需要从这个地址读入Super Block,从而一层一层的遍历。

    基于物理卷的快照

    基于物理卷的快照比文件系统快照要简单得多。因为LUN一般在底层磁盘上是恒定的,不像文件系统一样可以随机细粒度的分布。所以可以认为LUN的元数据就是在底层磁盘的起始和结束地址。这样在快照的时候,需要复制的元数据就更少了,但是完成了以后,需要按照一定粒度来做CoFW或者RoFW,还需要记录更多数据映射指针,就比较难受了。

    对于实现了块级虚拟化的系统如NetApp、XIV、3PAR等,它们的LUN在底层位置是不固定的,LUN就相当于一个文件,存在元数据链来进行映射管理的维护,所以这些系统实现快照的原理与文件系统快照类似。

    基于物理卷的快照,相当于给物理卷增加了“卷扇区映射管理系统”。在底层卷实现快照,可以减轻文件系统的负担。

    卷扇区方都是用LBA来编号的,实现快照的时候,程序首先保留一张初始LBA表,每当有新的写入请求的时候,重定向到另一个地方,并在初始的LBA表中做好记录,比如:

    原始LBA:卷A的10000号,映射到LBA:卷B的100号。

    值得说明的是,文件系统无法感知重定向,文件系统在它的映射图里面还是记录了原始的LBA地址。此时如果来了新的写IO,有两种方式一种是Write Redirect,另外一种是Copy on Write

    所谓Write Redirect就是将文件系统的读写请求,重定向到卷B,这样每次IO其实都会查找快照映射表,降低了性能。所以引入了Copy on Write。

    所谓Copy on write,就是当写请求来的时候,先把原来的扇区的数据复制一份到空闲卷,然后将新数据写入原卷。不过这种复制操作只发生在原卷某个或者快照之后从未更新过的块上面,若是某个块在快照之后更新过了,说明之前的数据已经转移走了,可以放心的覆盖。

    所以Copy on Write实际上是让旧数据先占着位置,等新数据来了以后先把原来的数据复制走,再更新,而且一旦更新了一次,可以直接覆盖。

    带来的好处是 ,原卷上的数据随时是最新的状态,每个IO可以直接访问原卷的地址,而不需要遍历映射表。


    RoFW方式与CoFW方式比较

    不管是RoFW还是CoFW,只要上层向快照后没有更新过的数据块进行写,都需要占用一个新的块。所以如果将所有扇区块都更新了,新卷的容量和原来的容量应该一样大,但是通常不会覆盖百分之百,所以只要预设原容量的30%即可。

    IO资源消耗:

    • CoFW方式下,如果要更新一个从未更新的块,需要复制出来,写到新卷,然后覆盖原来的块,需要一次读,2写

    • RoFW方式下,只需要一次写即可,也就是直接重定向到新卷上,然后更新映射图中的指(在内存中进行)。

    所以RoFW相对CoFW方式在IO资源消耗与IO延迟上有优势。

    由于只有首次覆盖才会Copy或者Redirect,那么如何区分是否是首次覆盖呢?可以使用记录表(文件级快照)或者位图(卷快照)来记录每个块是否被覆盖过。

    对于读IO:

    • CoFW:因为总是更新的源卷,所以源卷总是代表最新的状态,所以任何读IO都会发到源来执行。

    • RoFW:需要首先查询位图来确定目标地址是否被处理过,如果是,则转向重定向后的地址。

    RoFW会影响读性能,因为重定向出去以后,数据块排布都是乱的,如果把快照删除后,不好清理战场,严重影响后续的读写性能。

    综合来说,RoFW比较吃计算资源,而CoFW比较耗费IO资源。我们知道其实一般来说读比写多,当覆盖第二次以后:

    • CoFW不会发生IO惩罚,读IO一直没有惩罚

    • 对于RoFW,就算完全被Redirect过了,对于读或者写IO,均需要遍历位图,永远无法摆脱对计算资源的消耗。

    尤其在LUN卷级快照下,原本卷在底层磁盘分布式是定死的,寻址非常迅速。但是RoFW引入了,LUN的块随机定向到其他的空间的,所以需要记录新的指针链,而且被写出的块不是连续排列的。对性能影响非常明显的。

    绝大多数的厂商使用的还是CoFW,但是一些本来就使用LUN随机分块分布模式的存储系统比如XIV、NetApp等,都使用RoFW,因为原本其LUN的元数据链就很复杂,而且原来就是随机分布的,RoFW的后遗症对它们反而是正常的。


    快照的意义

    快照所保存下来的卷数据,相当于一次意外掉电之后卷上的数据。怎么理解?

    上层应用和文件系统都有缓存,文件系统缓存的是文件系统的元数据和文件的实体数据。每隔一段时间(Linux一般是30s)批量Flush到磁盘上。而且不是只做一次IO,有可能会对磁盘做多次IO。如果快照生成的时间恰恰在这连续的IO之间,那么此时卷上的数据实际上有可能不一致。

    文件系统的机制是先写入数据到磁盘,元数据保存在缓存里面,最后再写元数据。因为如果先写元数据,突然断电了,那么元数据对应的僵尸扇区的数据会被认为是文件的,显然后果不堪设想。

    总之,快照极可能生成不一致的数据。

    那么为什么还要用快照呢?

    • 因为快照可以任意生成,而且占用的空间又不大,更重要的是可以在线恢复,不用停机只需要在内存中做IO重定向,那么上层访问就变成以前时间点的数据了。

    但是快照会存在不一致的问题,如何解决?既然快照无异于一次磁盘掉电,那么利用快照恢复数据之后,文件系统可以进行一致性检查,数据库也会利用日志来使数据文件处于一致。

    另外,现在主流的快照解决方案是在主机上安装一个代理执行快照前,先通知文件系统将缓存中的数据全部Flush到磁盘,然后立即生成快照。

    • 快照还可以预防数据逻辑损坏,也就是比如T1时刻,做了快照,T2时刻,因为管理员操作不当,误删了一个文件,T3的时候,进行了全备份操作。此时,这个文件看似永久丢失了,其实,此时还可以通过快照恢复这个文件。

    • 快照还可以降低一致性备份的窗口。如果没有快照,要对某个卷进行一致性备份,需要暂停写IO,所以备份窗口比较长,需要等待备份停止以后才能继续写IO。使用快照的话,只需要复制元数据,然后在后台进行备份,降低了影响。

    • 备份完毕以后,如何能检测数据是否是真一致的?若没有快照,需要将备份数据恢复到独立的物理空间里面,挂载到另一台机器上。有了快照,可以将快照直接挂载到另一台主机,避免了数据物理恢复导入的过程。

    卷Clone技术

    快照类似于某时刻的影子,而克隆则是某时刻的实体。每时刻生成了一份可写的快照,就叫对卷某时刻的一份Clone。然后这份Clone内容每被修改的部分是与源卷共享的,所以源卷没了,则Clone就没了,所以叫虚拟Clone。如果把数据复制出来,生成一个独立的卷,则就叫Split Clone,也就是可以得到实Clone

    卷Clone最大的好处在于可以瞬间生成针对某个卷可写的镜像,而不管卷的数据量有多大。数据备份系统的基本要件:

    • 备份对象:需要进行备份的备份源。

    • 备份目的:磁盘、磁带等介质

    • 备份通路:网络

    • 备份执行引擎:备份软件

    • 备份策略

    下面重点介绍一下备份目的、备份通路、备份引擎等技术细节。

    备份目的地

    备份到本地磁盘

    备份目的地是在本地的磁盘,则只需要将数据备份到本地磁盘的另外分区中或者目录中。这样不需要网络,缺点是对备份对象自己的性能影响大。还会对其他的IO密集型程序造成影响。

    这种方式一般用于不关键的应用和非IO密集型应用。比如E-mail,对转发实时性要求不高。

    备份到SAN上的磁盘

    备份到SAN上的磁盘,就是将需要备份的数据,从本次磁盘读入内存,再写入HBA卡缓冲区,然后再通过线缆传送到磁盘阵列上。

    • 优点:只耗费SAN公用网络带宽,对主体影响小。

    • 缺点:对公共网络资源和出口带宽有影响。


    备份到NAS目录

    备份到NAS目录就是将数据备份到远程共享目录中。比如window中常用的文件夹共享。因为数据一般是通过以太网进行传递的,占用了前端的网络带宽,但是相对廉价,不需要部署SAN。

    备份到磁带库

    现在出现一种虚拟磁带库,即用磁盘来模拟磁带,对主机来说看到的是一台磁带库,实际上是一台磁盘阵列,主机照样使用磁带库一样来使用虚拟磁带库。要做到这点,就必须在磁盘阵列的控制器上做虚拟化操作,也就是实现协议转换器的作用。可以带来了的好处是:

    • 速度提升

    • 避免机械手这种复杂的机械装置

    • 管理方便


    信息生命周期管理

    将使用不频繁的数据移动到低速、低成本的设备上。比如只给视频应用分配20GB的空间,但是报告有500GB的空间,剩下的空间是在在磁带库上。

    分级存储

    1. 一线磁盘阵列

    2. 二线虚拟磁带库:近期不会被频繁调度。利用大容量SATA盘,性能适中的控制器。

    3. 带库或者光盘库:几年甚至几十年都不访问到。

    备份通路

    本地备份

    数据流向:本地磁盘—>总线—>磁盘控制器—>总线—>内存—>总线—>磁盘控制器—>总线—>本地磁盘。

    也即数据从本地磁盘出发,经过本地的总线 和内存,经过CPU少量控制逻辑代码之后,流回本地磁盘。

    通过前端网络备份

    经过前端网络备份的数据流向是:本地磁盘—>总线—>磁盘控制器—>总线—>内存—>总线—>以太网卡—>网线—>以太网—>网线—>目标计算机的网卡—>总线—>内存—>总线—>目标计算机的磁盘。

    数据从本地磁盘出发,流经本地总线和内存,然后流到本地网卡,通过网络传送到目标计算机磁盘。

    • 前端网络:服务器接受客户端连接的网络,也就是服务网络,是服务器和客户端连接的必经之路。

    • 后端网络:对客户封闭,客户的连接不用经过这个网络,用与服务器和存储、应用服务器、数据库服务器的连接。可以是SAN,以太网


    通过后端网络备份

    通过后端网络备份的数据流向是:本地磁盘—>总线—>控制器—>总线—>内存—>总线—>后端HBA卡—>线缆—>后端交换设备—>线缆—>备份目的的后端网卡—>总线—>内存—>磁盘。

    LAN Free备份

    备份的时候不经过LAN,也就是不流经前端网络,也叫Frontend Free。这样的好处是不耗费前端网络的带宽,对客户终端接受服务器的数据不影响。

    因为前端网络一般是是慢速网络 ,资源非常珍贵。无论是本地、还是网络,都需要待备份的服务器付出代价,即需要读取备份源数据到自身的内存,然后从内存写入备份的目的地。对主机CPU、内存都有浪费。能否不消耗服务器的性能呢?可以,使用Server Free备份。

    Server Free备份

    Server Free备份的时候,数据不用流经服务器的总线和内存,消耗极少,甚至不消耗主机资源。备份源和备份目标都不会在服务器上,因为如果在服务器上,数据从磁盘读出,要流将总线,然后到内存,这就不是Server Free?那怎么做呢?

    • SCSI的扩展复制命令,将这些命令发送给支持Server Free的存储设备,然后这些设备会提取自身的数据写入备份目的设备,而不是发送给主机。

    • 使用另一台专门做数据移动的新服务器,来代替原来服务器移动备份数据。释放运算压力很大的生产服务器。


    备份策略

    备份引擎:决定整个数据备份系统应该怎么运作,备份那些内容,什么时候开始备份,备份时间有没有限制等的策略。


    备份服务器

    备份引擎以什么形式体现呢?当然是运行在主机上的程序,所以需要一台计算机来做引擎的执行者。

    那么备份服务器的备份策略和规则,怎么传给整个数据备份系统中的服务器?通过以太网,因为以太网扩展性好,适合节点间通信。相对于以太网,SAN更适合传送大量的数据。所以常用前端网络来连接待备份的服务器和备份服务器,因为备份策略的数据包不多。

    备份服务器如何与每个待备份的服务器建立通话?怎么通话?规则怎么定?需要待备份服务器上运行一个代理程序,专门解释备份服务器发来的命令,根据命令作出动作。

    这个运行在待备份服务器上的程序,就叫备份代理,监听端口,接收备份服务器发来的命令。

    介质服务器

    若数据备份系统中有一台SCSI磁带机,且多台主机想备份到这台磁带机上。而SCSI磁带机只能同时接到一台主机上。

    那么怎么办呢?可以引入一台专门的计算机,只能由这台计算机来操作磁带机。

    需要备份的计算机通过以太网将数据发给这台掌管磁带机的计算机,然后写给磁带机。

    这样磁带机成为了公用设备,而在整个系统中,只有一台计算机能掌管备份目标,它就类似于一个代理,代理其他服务器执行备份。我们把它称为介质服务器。还有一个问题,如果有多台服务器向介质服务器发出请求,怎么办?当然需要一个协调员,也就是备份服务器,它可以指挥安装在待备份服务器的代理,让每台服务器按照顺序有条理的使用介质服务器提供的备份介质进行备份。

    三种备份方式

    完全备份:不管文件多大,只要要备份,都需要将文件都备份下来。

    差量备份:只备份从上次完全备份以来发生变化的数据。差量备份要求必须做一次完全备份,作为差量的基准点

    增量备份:只备份从上次备份以来这份文件中变化过的数据。不管是全备、差备,还是增量备份。

    对于数据库的备份,备份软件想知道每个数据文件的变化是不可能的,因为数据库文件内部格式非常复杂,只有自己才能分析和检测出来。所以数据库管理软件有自己的备份工具。第三方备份软件只能调用数据库软件自身提供的命令。

    • 链接:

      https://www.jianshu.com/p/b14ece444676

    • 版权由原作者所有,转载请注明来源和出处

    --end--
    
    扫描下方二维码
    
    添加好友,备注【交流】
    可私聊交流,也可进资源丰富学习群
    
    
    展开全文
  • docker 容器数据备份

    千次阅读 2021-10-18 14:30:07
    之前部署了一个项目,showdoc ,用来记录一些文档和数据。但是由于服务器地址ip的更换,我也是对showdoc 进行的容器的备份。这次因为申请了新的服务器ip地址,所以我就想着将上次备份的容器还原到新服务器,但是往往...

    之前部署了一个项目,showdoc ,用来记录一些文档和数据。但是由于服务器地址ip的更换,我也是对showdoc 进行的容器的备份。这次因为申请了新的服务器ip地址,所以我就想着将上次备份的容器还原到新服务器,但是往往事情并不是那样的顺利。我费劲将项目还原,发现数据都没有了,是一个新的showdoc 项目。就是说数据全部都丢了。那么我到底是备份了什么。镜像 images 还是容器 container ,因为之前的服务器已经完全的重置,时光已经不能倒流。为了弄清楚到底是什么原因,我打算这个这个新的showdoc 进行容器备份,然后再还原,看看数据是否会丢了。

    为了证明我的数据,再整个过程中没有被丢,我在新的showdoc 上,创建了一个谁也想不到项目:

     小明爱着小红,这个是我创建的一个项目,现在将这个容器备份:

     

     就是这样的容器,我先停止容器:

     

     备份容器:

    创建容器快照

    docker commit -p 容器id 镜像快照名称

    查看创建的快照名称:docker images

     保存快照:

        docker save -o 备份文件路径 备份的镜像名称(刚刚创建的快照)

     

     

     

    上面的showdoc-backup 就是我们刚刚备份的容器了,那么下面我们就将这个容器还原,我们把docker 之前的镜像,容器都删除了

     上面我们看到,不仅容器被删除了,而且镜像也被删除了,是一个干净的docker
     

    还原容器

         docker load -i showdoc-backup.tar

     

     还原之后的,我们看现在的镜像:

    容器:

     我们运行这个镜像:

     我们通过浏览器来访问该项目:

     发现小明依然爱着小红,说明我们上上面的操作是备份和还原,都是备份的容器,数据在容器中没有改动,

    当然也证明之前我们的备份方式存在问题,我备份的是镜像,是原始的镜像,而不是commit之后产生的镜像。

    希望对你有所帮助!

     

     

     

     

     

    展开全文
  • 数据备份和容灾技术

    千次阅读 2022-02-04 11:08:26
    数据备份和容灾基础知识点
  • mongodb数据备份与恢复

    万次阅读 2022-02-20 11:08:27
    mongodb数据备份与恢复
  • 数据备份的几种类型

    千次阅读 2021-07-01 17:06:48
    最近,尽管数据备份软件厂商已经推出了一些新类型的备份方式,但是你可能对此不熟悉。尽管如此,在采取行动之前,我要给你们上一堂关于全备份、增量备份和差异备份的速成课。 全备份(Full Backup) 所谓全备份...
  • ‍如果你是一个喜欢刷机的机友,如果你是个经常换手机的主儿,那么备份手机数据是十分必要的一个步骤。就拿刷机来说吧,刷机中会将手机上的资料和文件全部清理,所以在刷机前做好备份是非常重要的,手机中重要的...
  • Elasticsearch的数据备份与恢复

    千次阅读 2021-10-29 16:32:22
    固然,除了数据持久化外,咱们也是得作到数据备份的,防止出现数据损坏时没法恢复数据的状况。 下面开始介绍ES的数据备份和恢复。 2、ES环境 在开始ES的数据备份和恢复以前,咱们得确保服务器的ES环境时搭建好的,...
  • 三大方法教你搞定电脑数据备份现在生活中,大家基本上都离不开电脑及手机了,而且电脑或手机上,会存储一些重要的数据。那这些数据要是丢失的话,给我们带来的损失是无法估计的。那电脑以及手机上的数据,怎么做好...
  • redis数据备份

    千次阅读 2020-12-18 15:47:42
    以上就是900秒内写操作执行了1次 300秒/10次 60秒/10000次都会进行数据备份。 触发RDB快照: 1 在指定的时间间隔内,执行指定次数的写操作(根据配置文件中设置的来执行) 2、执行save(阻塞, 只管保存快照,其他的...
  • Zookeeper节点数据备份与恢复

    千次阅读 2021-11-23 13:34:12
    zookeeper数据备份分为热备份和冷备份 冷备份: 准备一套安装了zk集群部署的环境和一台zk单节点部署的环境,保证zk单节点部署的环境没有数据 zk集群部署环境规划 hadoop01:192.168.76.111 网关:192.168.76.2 ...
  • mongodb数据备份

    千次阅读 2020-11-23 16:42:21
    mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 一、mongodump备份数据库 命令参数: mongodump -h IP --port 端口 -u 用户名 -p 密码...
  • 收藏: 最全数据备份技术梳理

    千次阅读 2019-07-03 00:00:00
    编者注:备份是为了增强企业关键数据可靠性和数据冗余性,备份的必要性不言而喻。今天我们来探讨下备份常用的技术和分类。开始内容之前,先介绍下整理的备份专题总结:<数据备...
  • gitLab数据备份和迁移

    千次阅读 2022-02-17 20:25:48
    备份、迁移、恢复、升级过程如下 一、gitlab备份 备份前gitlab的项目如图所示 1.1 修改仓库存储位置 gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-data/repositories,通常需要更改此路径到单独...
  • 谈及备份,首先要了解iOS 备份资料恢复机制 1.「新」版iOS备份的资料「无法」恢复到旧版的iOS系统上; 2.「旧」版iOS备份的资料「能够」恢复到新版iOS系统上。 (注:「新」版指升级后的新版本号;「旧」版指升级...
  • es数据备份与恢复

    千次阅读 2021-12-01 12:03:12
    创建快照 //异步备份所有打开的索引 PUT _snapshot/my_backup/snapshot_1 ​ //同步备份部分索引 PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true { "indices": "index_1,index_2" } ​ //查看单个...
  • 数据备份与恢复、系统备份与恢复

    万次阅读 2018-04-17 22:56:58
    数据备份与恢复、系统备份与恢复一、数据备份与恢复1、什么是备份备份,即另外准备一– 为应付文件、数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到大容量存储设备中2、备份对象的类别...
  • 数据备份、数据快照的异同

    千次阅读 2021-03-29 11:14:08
    数据备份、数据快照的异同 备份的例子: 手机的备份、云盘备份、电脑系统备份。。。。 快照的例子: vmware VM快照 1、数据备份位置(磁盘的物理空间位置): 快照:同一磁盘空间 备份:通常为不同磁盘空间...
  • 摘要:随着云计算、大数据、物联网、移动互联网和工业控制信息系统等新兴技术的发展,网络安全需求变得更加繁杂,因此,等保制度应势升级至2.0时代。 ...等保2.0的技术要求中对数据备份与恢复提
  • 使用DBeaver进行mysql数据备份与恢复

    千次阅读 2022-05-23 14:44:51
    项目迭代、版本升级的过程中,有时候会涉及到数据库表结构的更改,因而,数据库的数据备份与数据恢复是我们经常要解决的问题。本文将简要介绍如何利用DBeaver工具进行数据库的数据备份与数据恢复 一、Dbeaver是什么...
  • 四种方法搞定电脑数据备份

    千次阅读 2021-03-30 10:10:22
    1、最简单的方法就是把文件拷贝下来,存在硬盘或者U盘中保存,只要复制粘贴过来就可以了,做个备份以后,如果意外丢失的话,把移动备份上面的数据粘贴回来就好了。 2、我们有很多的网盘工具,我们可以直接将电脑...
  • GreenPlum数据备份与恢复

    千次阅读 2018-10-18 20:15:52
    GreenPlum数据备份与恢复 gp_dump是GP并行备份的备份工具,在运行gp_dump的时候master与所有的segment节点都开始备份(standby节点和segment节点中的mirror实例不参加备份),数据文件都是放在各个的节点服务器上,...
  • 数据库中表数据备份

    千次阅读 2020-11-03 16:53:47
    在所有的数据仓库类项目中几乎都会涉及到数据库中表数据备份的操作,主要是为了对一些结果数据进行备份,防止误操作。 过程 一、背景 本次我们用的方法是通过在数据库中建立一个备份用户进行数据备份的操作,原因是...
  • 随时随地,想看就看。可以说,现在手机的江湖地位已经是如日中天...1.系统备份与恢复小米拥有自带的数据备份功能,这种备份方式操作简便,速度快捷,对网络的依赖程度比较小,但是本地空间有限,数据还是有遗失的风...
  • 满意答案vivis10102013.06.14采纳率:42%等级:12已帮助:14963人注意:数据备份是一种非常重要的工作,我们应该养成经常备份的习惯,并即时检查备份文件,将备份文件转移到安全地方。■ 直接备份数据备份是备份从期初...
  • 用友T+数据备份与恢复方法汇总

    千次阅读 2021-06-25 20:41:24
    用友T+数据备份与恢复方法汇总 前言:由于不可预知的原因(计算机病毒、硬件损坏、人为原因等等),造成用友数据丢失或者损坏,所以定时定期对用友数据进行备份,可以备份到本机硬盘,同时也建议再备份到移动硬盘、...
  • 常见的数据库都会提供备份机制,以解决在数据库无法使用的情况下通过备份来恢复数据减少损失。 Elasticsearch 虽然有良好的容灾性,但以下原因,其依然需要备份机制: 1) 数据灾备:在整个集群无法正常工作时,可以...
  • es数据备份和恢复

    万次阅读 2019-02-21 11:11:50
    Elasticsearch 5.x 数据备份和恢复可由 snapshot 模块来完成,snapshot模块可以通过文件共享系统为单个索引或整个集群远程创建快照和进行数据恢复。 数据备份 索引快照时增量的。在创建快照前es会分析已有快照...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 881,895
精华内容 352,758
关键字:

数据备份

友情链接: Linfcom_sqv1.1.zip