标签:lib sel db2 常见 备份文件 logs 内容 ast 记录
MariaDB数据库的备份与恢复开启二进制日志:二进制日志可用于数据库恢复时使用,建议二进制日志与数据库数据分开存放。
开启二进制日志的方法:
[ root@Centos~]# vim /etc/my.cnf [mysqld] log_bin=/data/binary-log/mariadb-bin
注:日志会存放在/data/binary-log目录下,文件名为mariadb-bin.000001下
逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份;对InnoDB存储引擎支持热备,结合binlog的增量备份
用法1:
mysqldump [OPTIONS] database [tables]:默认只将查询结果打印到屏幕
- 备份
mysqldump -uroot -ppasswd database > database.sql- 还原
mysql database [table] < database.sql- 注:还原的时候,直接重定向执行,但是前提是database数据库存在,如果不存在择不能还原
mysqldump [OPTIONS] –B DB1 [DB2 DB3...] (会备份数据库的定义)
- 备份:
mysqldump -B database > database.sql- 还原:
mysql [table] < database.sql
mysqldump [OPTIONS] –A [OPTIONS](备份所有数据库不包括performance_schema和information_schema库)
- 备份
mysqldump -A > alltabase.sql- 还原:
mysql> set sql_log_bin=OFF; 临时关闭二进制日志
mysql> reset master; 清除所有二进制日志
mysql> source ~/alltabase.sql
mysql> set sql_log_bin=ON; 开启二进制日志
注意:在还原数据库时,都应该临时关闭二进制日志,因为还原数据库的操作,没有必要记录到二进制日志
通常数据库的备份都发生在凌晨用户访问量较少的时候进行,例如我们在凌晨3点对数据库进行了完全备份,但是在上午11点的时候,因为管理员的误操作,到时候数据库某张表被删除,如果我们用数据库的完整备份的话,就只能恢复到凌晨3点,那么要恢复3点到11点这段时间的数据,就需要用到二进制日志
前提:在进行数据库备份的时候加了--master-data=[1|2]选项,记录了数据库备份时,日志的位置
[ root@Centos~]# mysqldump -A --master-data=2 > database.sql
[ root@Centos~]# less database.sql
-- CHANGE MASTER TO MASTER_LOG_FILE=‘mariadb-bin.000007‘, MASTER_LOG_POS=8134;
这条记录了当前的备份所在的日志位置,为mariadb-bin.000007的8134
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 5 | weiying | 25 | NULL |
+-----+---------------+-----+--------+
MariaDB [hellodb]> insert teachers(name,age) value("xiao ming",20);
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 5 | weiying | 25 | NULL |
| 6 | xiao ming | 20 | NULL |
+-----+---------------+-----+--------+
MariaDB [hellodb]> show master logs;
+--------------------+-----------+
| Log_name | File_size |
+--------------------+-----------+
| mariadb-bin.000001 | 15763 |
| mariadb-bin.000002 | 30376 |
| mariadb-bin.000003 | 1038814 |
| mariadb-bin.000004 | 8153 |
| mariadb-bin.000005 | 30376 |
| mariadb-bin.000006 | 1038814 |
| mariadb-bin.000007 | 8373 |
+--------------------+-----------+
之前数据库备份时二进制的位置为8134
[ root@Centos~]# systemctl stop mariadb
[ root@Centos~]# rm -rf /var/lib/mysql/*
[ root@Centos~]# systemctl start mariadb
[ root@Centos~]# mysqlbinlog --start-position=8134 /data/binary-log/mariadb-bin.000007 > binary.sql
导入备份和二进制日志恢复:
MariaDB [(none)] set sql_log_bin=OFF; 临时关闭二进制日志
MariaDB [(none)] reset master; 清除所有二进制日志
MariaDB [(none)] source database.sql
MariaDB [(none)] source binary.sql
MariaDB [(none)] mysql> set sql_log_bin=ON; 开启二进制日志
标签:lib sel db2 常见 备份文件 logs 内容 ast 记录
原文地址:https://blog.51cto.com/13408885/2392206