Mysqldump logical backup recovery and binglog log recovery

Preface

Environment : cetos7
database : Mysql7.4

Introduction to Mysqldump :

  1. mysqldump is a logical backup tool that comes with MySQL.
    Its backup principle is to connect to the MySQL database through the protocol, query the data that needs to be backed up, and convert the queried data into the corresponding insert statement. When we need to restore the data, we only need to execute these insert statements to change the corresponding Data restoration.
  2. Syntax:
    Remote database: mysqldump -hServer -udatabase user name -pdatabase name database password to backup> backup files .sql
    local library: mysqldump -udatabase user name -pdatabase name> database backup files to be backed up password .sql
  3. Command parameters:
-A, --all-databases #备份所有库

-B, --databases  #备份多个数据库

-F, --flush-logs #备份之前刷新binlog日志

-set, --default-character #指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。

-d, --no-data, #不导出任何数据,只导出数据库表结构。

-f, --force #即使在一个表导出期间得到一个SQL错误,继续。

--lock-tables #备份前,锁定所有数据库表 #此项默认数据库是开启的,备份时默认锁表。

--single-transaction # 此项解锁 ,数据库备份时不锁表,保证数据的一致性和服务的可用性 


backup database

1. 备份所有库
mysqldump -u数据库用户名 -p'数据库密码' -A > /opt/$(date +%F).sql # 设置备份文件名为当前系统时间

2. 备份指定库
mysqldump -u数据库用户名 -p'数据库密码' -B 库名1 库名2 库名3.... > /opt/$(date +%F).sql 

Restore the backup library

恢复停止binlog日志,应为这等于是在执行sql语句,无需记录日志
1. 恢复所有库
mysql -u数据库名称 -p'数据库密码'  < /备份的库文件.sql
2. 恢复指定库
步骤一.
创建一个新库,create database new; 假设创建一个new的新库。
步骤二.
mysql -u数据库名称 -p'数据库密码' new < /备份的库文件.sql

Backup data table

1. 备份指定表
mysqldump -u数据库用户名 -p'数据库密码'  库名 表名 > /备份文件.sql

2. 备份多个表
mysqldump -u数据库用户名 -p'数据库密码'  库名 表名1 表名2...  > /备份文件.sql

3. 只备份表结构
mysqldump -u数据库用户名 -p'数据库密码' -d 库名 表名 > /备份文件.sql

4. 只导出表数据
步骤一.
 mysql> show variables like "secure_file_priv";  ----查询导入导出的目录,可修改。修改完要在
 /etc/my.cnf 里[mysqld] 追加secure_file_priv=/新的路径,然后重启。
步骤二.
登陆数据查看数据
mysql> show databases;    #找到test库
mysql> use test    #进入test库
mysql> select * from t3 into outfile '/sql/test.t3.bak'; #导出t3表的数据
步骤三.
数据的导入
mysql> delete from t3;   #先将原来表里面的数据清除掉,保证是空表,只保留表结构
mysql> load data infile '/sql/test.t3.bak' into table t3;
如果将数据导入别的表,需要创建这个表并创建相应的表结构。

Restore data table

方法一. 
mysql -u数据库用户名 -p'数据库密码'  新建一个库  < 备份的库.sql

方法二.
创建一个库
create table nwe;
进入库
use nwe;
执行
mysql> source 备份的库;  -------加路径和备份的文件 

Through binlog log recovery

vim /etc/my.cnf                   #修改配置文件,开启数据库binlog日志
log-bin=/var/log/sql-bin/mylog
server-id=1

[root@mysql-server ~]# mkdir /var/log/sql-bin    #创建日志目录
[root@mysql-server ~]# chown mysql.mysql /var/log/sql-bin  #给予日志目录mysql权限
[root@mysql-server ~]# systemctl restart mysqld     # 重启数据库开启日志
   mysql> flush logs;                          # 刷新binlog日志会截断产生新的日志文件

[root@mysql-server sql-bin]# mysqlbinlog mylog.000001  #查看日志文件 at1  log_pos 20 为结束

恢复 日志中at1 到log_pos 20 的操作
[root@mysql-server sql-bin]# mysqlbinlog --start-position 1 --stop-position 20 mylog.000001 | mysql -u数据库用户名 -p'数据库密码'


在数据库中 binlog日志的其他操作:
 1.查看所有binlog日志列表
mysql> show master logs;

2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
mysql> show master status;

3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件
mysql> flush logs;
注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;

4.重置(清空)所有binlog日志
mysql> reset master;

5.查询第一个(最早)的binlog日志:
mysql> show binlog events;

6.指定查询 mysql-bin.000002 这个文件:
mysql> show binlog events in 'mysql-bin.000002';

7.指定查询 mysql-bin.000002 这个文件,从pos点:8224开始查起:
mysql> show binlog events in 'mysql-bin.000002' from 8224;

8.指定查询 mysql-bin.000002 这个文件,从pos点:8224开始查起,查询10条
mysql> show binlog events in 'mysql-bin.000002' from 8224 limit 10;

9.指定查询 mysql-bin.000002 这个文件,从pos点:8224开始查起,偏移2行,查询10条
mysql> show binlog events in 'mysql-bin.000002' from 8224 limit 2,10\G;

================================================= ================================================= ================================================= ================================================= ================================================= =============================================
Hard browsing and watching, if right You are helpful, please like it (σ゚∀゚)σ…:*☆

Guess you like

Origin blog.csdn.net/qq_26129413/article/details/111697281