应该如何备份及还原mysql数据

下面一起来了解下应该如何备份及还原mysql数据,相信大家看完肯定会受益匪浅,文字在精不在多,希望应该如何备份及还原MysqL数据这篇短内容是你想要的。

备份的不同分类

                热备份、温备份和冷备份

                        热备份:读、写不受影响;

                        温备份:仅可以执行读操作;

                        冷备份:离线备份;读、写操作均中止;

                物理备份和逻辑备份

                        物理备份:复制数据文件;原始数据在操作系统上呈什么样,备份出来也是什么样,适用

                                          于比较大型、重要、出现故障时要快速恢复的场景

                        逻辑备份:备份sql语句,恢复的时候执行一遍备份的sql语句,较为灵活,但恢复速度较

                                          慢,适用于小型、便于在其他云服务器上进行恢复的场景                       

                完全备份、增量备份和差异备份;

                        完全备份:备份全部数据;

                        增量备份:仅备份上次完全备份或增量备份以后变化的数据;

                        差异备份:仅备份上次完全备份以来变化的数据;

备份工具:

    1、通过复制对象相关文件的方式创建备份

        一般适用于myisam引擎表,只要将.frm、.MYD、.MYI这些文件复制保存就相当于进行了备份

        步骤:

    MysqL>FLUSH TABLES tb_name WITH READ LOCK    #备份前对表进行只读锁定
    [root@localhost /]cp /the/path/to/data /the/path/to/backup
    MysqL>UNLOCK TABLES         #释放锁

        这种备份方法不适用于Innodb表,当innodb_file_per_table设置为1时,复制表对象的相关文件.ibd不能达到备份的目的,因为表结构、所属数据库等信息仍存在于Innodb的系统表空间中。

    2、使用sql语句进行备份

MysqL>SELECT * INTO OUTFILE '/path/to/somefile.txt' FROM tb_name [WHERE clause];

    3、使用MysqLdump进行逻辑备份

        备份单个数据库/表

MysqLdump -uUSERNAME -p PASSWORD db_name [tb_name]> /path/to/backup/db_name.sql

        备份多个数据库

MysqLdump -uUSERNAME -p PASSWORD --databases db1 db2 > /path/to/backup/db1_db2.sql

        使用--tab输出txt文件sql文件,将数据和建表语句分开

MysqLdump -uUSERNAME -p PASSWORD --tab=/path/to/backup db_name [tb_name]    #将数据库的全部对象或特定的表导出到backup目录下

    例1:备份数据库jiaowu下的tutors表

应该如何备份及还原mysql数据

    查看/tmp/test2目录

应该如何备份及还原mysql数据

    例2:备份整个数据库

应该如何备份及还原mysql数据

    然后查看/tmp/test目录

应该如何备份及还原mysql数据

    可以发现,数据库中的每张表都生成两个同名文件,.txt存储表中的实际数据,.sql存储的是sql语句(建表语句)

    查看一下tutors.txt这个文件

应该如何备份及还原mysql数据

可以看到,每条记录输出到一行上,列值之间用tab符隔开,如果希望自己能自定义输出的格式,可以使用下面的选项

--fields-terminated-by=','

列值之间用逗号隔开

--fields-enclosed-by='"' 列值使用双引号引起来
--lines-terminated-by=‘\' 指定\为行结束符,认为换行符

应该如何备份及还原mysql数据

应该如何备份及还原mysql数据

可以看到,导出的tutors.txt列值之间以逗号分开,并使用双引号引住,这样可以方便以后数据导入回数据库

注意要点:

    当MysqLdump没有使用--tab时,其导出的sql文件中既有操作语句又有建表语句;当使用--tab时,其中txt文件保存数据,sql文件仅有建表语句。

数据库的还原

  1、MysqLdump没使用--tab选项    

MysqL>use db_name
MysqL>source /path/to/backup/tb.sql     #这样即可导入

   2、MysqLdump使用--tab选项    

    1、使用.sql文件将表创建好

    MysqL -uUSERNAME -p PASSWORD db_name < /path/to/backup/tb.sql

应该如何备份及还原mysql数据

    2、在数据库中通过LOAD DATA INFILE语句来导入.txt文件到表中

MysqL>LOAD DATA INFILE '/path/to/tb.txt' INTO TABLE tb_name [参数]

应该如何备份及还原mysql数据

创建冷备份

    1、查看正在使用的二进制日志

MysqL>show master status;

应该如何备份及还原mysql数据

    2、进行二进制日志滚动

MysqL>flush logs

   

应该如何备份及还原mysql数据

 3、关闭MysqL,备份数据目录,开启MysqL即可

创建增量备份

    1、进行二进制日志滚动

    2、使用MysqLbinlog进行备份

MysqLbinlog /path/to/binlog/MysqL-bin.0000xx > /path/to/backup/0000xx.sql

    (恢复时可以直接source或MySQL命令(上面还原时有讲到))

    说白了增量备份就是使用MysqLbinlog将上次备份后新生成的二进制日志备份到指定目录

看完应该如何备份及还原MysqL数据这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

相关文章

优化MySQL数据库发布系统存储的方法有:1.mysql库主从读写分...
使用mysql的方法:在“我的电脑”→右键→“管理”→“服务”...
在mysql中查看root用户权限的方法:1.命令行启动mysql服务;...
MySQL主从复制是用来备份一个与主数据库一样环境的从数据库,...
运行mysql的方法1.启动mysql服务,在“我的电脑”→右键→“...
开启mysql的方法1.可以通过快捷键win+r,输入cmd,打开窗口,...