MYSQL备份还原工具、主从复制、高可用

本文介绍了MySQL的多种备份策略,包括mysqldump和xtrabackup,并详细阐述了MySQL复制的工作原理,实现主从、主主、主从级联和半同步复制。此外,还讨论了MySQL Proxy的读写分离功能以及MHA和Galera集群在实现高可用性方面的应用。
摘要由CSDN通过智能技术生成

1、使用mysqldump备份数据库并通过备份及二进制日志还原数据(备份完后再写入数据,然后再删库)

环境 InnoDB备份

  1. 确定使用的字符集后做完全备份,若有二进制数据建议加上–hex-blob
[root@centos7 ~]#mysql -e "status"
--------------
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          4
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.60-MariaDB MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 19 min 24 sec

Threads: 1  Questions: 115  Slow queries: 0  Opens: 8  Flush tables: 2  Open tables: 27  Queries per second avg: 0.098
--------------

[root@centos7 ~]#mysqldump -A -F --single-transaction --master-data=2 --default-character=utf8mb4 > /data/backup/all_bak_`date +%F`.sql
  1. 完全备份完成后,在表中添加记录,后添加的记录应该记录在二进制日志中
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      |
+-----+---------------+-----+--------+
4 rows in set (0.01 sec)

MariaDB [hellodb]> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     26792 |
| mysql-bin.000002 |    921736 |
| mysql-bin.000003 |      7270 |
| mysql-bin.000004 |       245 |
+------------------+-----------+
4 rows in set (0.00 sec)

MariaDB [hellodb]> insert teachers(name)value('g');
Query OK, 1 row affected, 1 warning (0.00 sec)

MariaDB [hellodb]> insert teachers(name)value('h');
Query OK, 1 row affected, 1 warning (0.01 sec)

MariaDB [hellodb]> show master logs;               
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     26792 |
| mysql-bin.000002 |    921736 |
| mysql-bin.000003 |      7270 |
| mysql-bin.000004 |       627 |
+------------------+-----------+
4 rows in set (0.00 sec)

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 | g             |   0 | NULL   |
|   6 | h             |   0 | NULL   |
+-----+---------------+-----+--------+
6 rows in set (0.01 sec)
  1. 删库重启服务
[root@centos7 mysql]#rm -rf /var/lib/mysql/*
[root@centos7 mysql]#systemctl restart mariadb
  1. 恢复前先临时禁用二进制日志记录,禁止用户访问,再恢复数据库
MariaDB [(none)]> set sql_log_bin=off;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> show variables like 'sql_log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sql_log_bin   | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [hellodb]> source /data/backup/all_bak_2019-08-11.sql

MariaDB [test]> use hellodb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
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      |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
  1. 还原二进制日志
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=245;

[root@centos7 ~]#ll
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值