备份恢复与数据迁移
DBA 在数据库备份恢复方面的职责
全备
增量
定期恢复演练
故障恢复
迁移(停机时间、回退方案)
备份类型
- 热备:在数据库正常业务时,备份数据,并且能够一致性恢复(只能是 innodb)
- 稳备:锁表备份,只能查询修改,不能修改(myisam)
- 冷备:关闭数据库业务,数据库没有任何变更的情况下,进行备份数据。
备份方式及工具
-
逻辑备份:基于 SQL 语句进行备份
1mysqldump 2mysqlbinlog
-
物理备份:基于磁盘数据文件备份
1xtrabackup(XBK):percona 第三方(推荐使用) 2Mysql Enterprise Backup (MEB)
逻辑备份 VS 物理备份
- mysqldump(MDP)
1# 优点 21.不需要下载安装 32.备份出来的是SQL,文本格式,可读性高,便于备份处理 43.压缩比较高,介绍备份的磁盘空间 5 6# 缺点 71.依赖于数据库引擎,需要从磁盘把数据读出,然后转换成SQL进行存储,比较耗费资源,数据量大的话效率较低 82.100G以内的数据量级,可以使用mysqldump,也可以使用xtrabackup 93.超过TB以上,也可以选择mysqldump,配合分布式的系统
- xtrabackup(XBK)
1# 优点 21.类似于直接cp数据文件,不需要管理逻辑结构,相对来说性能较高 3 4# 缺点 51.可读性差 62.压缩比低,需要更多磁盘空间 73.建议大于100G且小于1TB的时候使用 8
备份策略
全备:全库备份,备份所有数据。
增量:备份变化数据。
1逻辑备份 = mysqldump(全备) + mysqlbinlog(增量)
2物理备份 = xtrabackup_full + xtrabackup_incr + mysqlbinlog 或者 xtrabackup_full + mysqlbinlog
根据数据量设计备份周期,比如:周日全备,周 1-周 6 增量。
逻辑备份工具-mysqldump
连接方式
1# 本地备份的连接方式
2mysqldump -uroot -pxxx -S /tmp/mysql.sock
3
4# 远程备份的连接方式
5mysqldump -uroot -pxxx -h 192.168.31.210 -P 3306
基本备份参数
1-A # 全库备份
2-B # 备份单个库或多个库
3库名 表名
4
5# 备份全库
6mkdir -p /data/backup
7mysqldump -uroot -p123 -A -S /tmp/mysql.sock > /data/backup/full.sql
8
9# 备份oldboy和world库
10mysqldump -uroot -p123 -B world oldboy -S /tmp/mysql.sock > /data/backup/db.sql
11
12# 备份某个库下的一张或多张表:别分world数据库下的city和country表(恢复数据的时候需要提前建库并且use database,只会备份表)
13mysqldump -uroot -p123 world city country -S /tmp/mysql.sock > /data/backup/tab.sql
备份必加参数
1-R # 在备份时,同时备份存储过程和函数,如果没有会自动忽略
2-E # 在备份时,同时备份event,如果没有会自动忽略
3--triggers # 在备份时,同时备份触发器,如果没有会自动忽略
4--master-data=2 #记录备份时候记录当前position号,作为将来日志截取的起点,自动锁表,配合 --single-transaction,减少锁表(innodb引擎)
5--single-transaction # 对于innodb的表,实现快照备份,不锁表
6--set-gtid-purged=auto # 默认是auto,on
7使用场景:
81. --set-gtid-purged=OFF,可以使用在日常备份参数中
9mysqldump -uroot -p -A -R -E --triggers --master-data=2 --single-transaction --set-gtid-purged=OFF > /data/backup/full.sql
102.auto , on :在构建主从复制环境时需要的参数配置
11mysqldump -uroot -p -A -R -E --triggers --master-data=2 --single-transaction --set-gtid-purged=ON > /data/backup/full.sql
12
13--max-allowed-packet=128M #避免由于备份大表产生的数据包报错问题
14
恢复思路
11.全备的时候自动记录日志当前的position号
22.全部的时候自动滚动生成新的bin_log日志
3
4mysql> source /data/backup/full.sql
备份恢复案例(mysqldump+binlog)
数据量 80G,每日数据增长 5-6M
备份策略:每天 mysqldump 全备 + binlog 备份
故障描述:周三下午 2 点,数据路径由于某原因数据损坏
处理思路:
1.挂出维护页。
2.评估数据损坏状态(全部丢失【直接生产恢复】 or 部分丢失【从备份中导出单表数据,或者测试库进行全部恢复,再把单表导回生产库中】)
3.恢复全部,将数据追溯到周二晚上 23:00 状态,
4.截取并恢复从备份时刻到周三下午 2 点误删除之前 binlog
5.校验数据的一致性(测试人员会校验)
6.撤除维护页,恢复生产
1
处理结果:经过 30~40 分钟处理,业务恢复,评估此次故障的处理的合理性和实用性。
案例模拟
1、进行周二晚上 23:00 的全备
1[root@localhost backup]# mysqldump -uroot -p123 -A -R --triggers -E --master-data=2 --single-transaction > /data/backup/full.sql
2[root@localhost backup]# ll -h
3total 49M
4-rw-r--r--. 1 root root 49M May 9 09:22 full.sql
5
6# 记录备份时候记录当前position号,作为将来日志截取的起点,起点就是MASTER_LOG_POS=22108059;
7[root@localhost backup]# vim full.sql
8-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000007', MASTER_LOG_POS=22108059;
9
10# 如果使用GTID来恢复,下面代表从285开始
11[root@localhost backup]# vim full.sql
12SET @@GLOBAL.GTID_PURGED='f98d1e0b-a7e4-11eb-8259-080027fb878b:1-284';
2、模拟周二晚上 23:00 之后到周三下午 2 点误删除之前的业务操作
1mysql> create database mdp charset utf8mb4;
2mysql> use mdp;
3mysql> create table t1(id int);
4mysql> insert into t1 values(1),(2),(3);
5mysql> commit;
6mysql> select * from t1;
7+------+
8| id |
9+------+
10| 1 |
11| 2 |
12| 3 |
13+------+
3.模拟数据损坏(真刺激)
1[root@localhost data]# pwd
2/data/mysql/data
3[root@localhost data]# /etc/init.d/mysqld stop
4Shutting down MySQL.... SUCCESS!
5[root@localhost data]# rm -rf *
6[root@localhost data]# ll
7total 0
4.初始化数据库
1[root@localhost data]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql/ --datadir=/data/mysql/data
2[root@localhost data]# ll
3total 110636
4-rw-r-----. 1 mysql mysql 56 May 9 09:44 auto.cnf
5-rw-r-----. 1 mysql mysql 419 May 9 09:44 ib_buffer_pool
6-rw-r-----. 1 mysql mysql 12582912 May 9 09:44 ibdata1
7-rw-r-----. 1 mysql mysql 50331648 May 9 09:44 ib_logfile0
8-rw-r-----. 1 mysql mysql 50331648 May 9 09:44 ib_logfile1
9drwxr-x---. 2 mysql mysql 4096 May 9 09:44 mysql
10-rw-r-----. 1 mysql mysql 975 May 9 09:44 mysql.log
11drwxr-x---. 2 mysql mysql 8192 May 9 09:44 performance_schema
12-rw-r-----. 1 mysql mysql 163 May 9 09:44 slow.log
13drwxr-x---. 2 mysql mysql 8192 May 9 09:44 sys
14
15# 启动数据库
16[root@localhost data]# /etc/init.d/mysqld start
17Starting MySQL. SUCCESS!
18
5.进行全备恢复(没有 mdp 库)
1mysql> set sql_log_bin=0;
2mysql> source /data/backup/full.sql
3mysql> show databases;
4+--------------------+
5| Database |
6+--------------------+
7| information_schema |
8| gg |
9| mysql |
10| oldboy |
11| oldboy2 |
12| performance_schema |
13| school |
14| sys |
15| test |
16| world |
17| zrblog |
18+--------------------+
1911 rows in set (0.00 sec)
20
21mysql> flush privileges;
6.截取 binlog 日志,完成增量恢复,需要找起点和终点,终点不需要找,起点的话都可以 position 活着 gtid 都可以。
1# 分析000007日志
2mysql> show binlog events in 'mysql-bin.000007';
3285~287
4
5# 截取日志
6[root@localhost ~]# mysqlbinlog --skip-gtids --include-gtids="f98d1e0b-a7e4-11eb-8259-080027fb878b:285-287" /data/binlog/mysql-bin.000007 > /data/backup/bin.sql
7
8或者这里没有写--stop-position 就代表一直截取到最后
9[root@localhost ~]# mysqlbinlog --skip-gtids --start-position=22108059 /data/binlog/mysql-bin.000007 > /data/backup/bin.sql
10
11
12# 恢复数据
13mysql> set sql_log_bin=0;
14mysql> source /data/backup/bin.sql
15mysql> show databases;
16+--------------------+
17| Database |
18+--------------------+
19| information_schema |
20| gg |
21| mdp |
22| mysql |
23| oldboy |
24| oldboy2 |
25| performance_schema |
26| school |
27| sys |
28| test |
29| world |
30| zrblog |
31+--------------------+
32
33mysql> use mdp;
34Database changed
35mysql> select * from t1;
36+------+
37| id |
38+------+
39| 1 |
40| 2 |
41| 3 |
42+------+
mysqldump 备份命令
1# 仿照如下命令编写备份脚本
2mysql -uroot -p123 -A -R --triggers --master-data=2 max_allowed_packet=128M --single-transaction|gzip > /backup/full_$(date +%F).sql.gz
XBK
1# 安装依赖包
2yum install -y perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev
3
4# 下载地址
5wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.22/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
6
7# 安装软件包
8[root@localhost software]# yum -y install percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
9[root@localhost software]# innobackupex --version
10xtrabackup: recognized server arguments: --datadir=/data/mysql/data --server-id=6 --log_bin=/data/binlog/mysql-bin --server-id=6
11innobackupex version 2.4.22 Linux (x86_64) (revision id: c99a781)
12
备份命令介绍
1xtrabackup
2innobackupex ******
备份方式:物理备份
11.对于非Innodb表,锁表cp数据文件,数据一种温备份。
22.对于Innodb的表(支持事务的),不锁表,拷贝数据页,最终于数据文件的方式保存下来,把一部分redo和undo一并备走,数据热备份方式。
XBK 全备
1# 新建备份目录
2[root@localhost software]# mkdir -p /data/bak
3
4# 修改配置文件,将[mysql]改为[client]
5[root@localhost software]# cat /etc/my.cnf
6[mysqld]
7user=mysql
8basedir=/application/mysql
9datadir=/data/mysql/data
10socket=/tmp/mysql.sock
11server_id=6
12port=3306
13log_error=/data/mysql/data/mysql.log
14log_bin=/data/binlog/mysql-bin
15server_id=6
16secure-file-priv=/tmp
17gtid-mode=on
18enforce-gtid-consistency=true
19slow_query_log=1 #开关
20slow_query_log_file=/data/mysql/data/slow.log #位置
21long_query_time=0.1 #设定慢查询时间
22log_queries_not_using_indexes #没走索引的语句也记录
23[client] # innobackupex需要使用socket
24socket=/tmp/mysql.sock
25
26# 重启服务
27[root@localhost software]# /etc/init.d/mysqld restart
28Shutting down MySQL.... SUCCESS!
29Starting MySQL. SUCCESS!
30
31# 全备:备份工具依赖于/etc/my.cnf文件,会读取[mysqld][client]标签下的信息
32[root@localhost software]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 /data/bak
33或者自主定制备份路径名(目录名)
34[root@localhost software]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --no-timestamp /data/bak/full_$(date +%F)
35
36
37# 以目录的形式保存
38[root@localhost software]# ls /data/bak/
392021-05-09_11-10-54
xtrabackup_binlog_info:记录 position 和 GTID
1[root@localhost 2021-05-09_11-10-54]# cat xtrabackup_binlog_info
2mysql-bin.000010 234 1839d529-b068-11eb-8f64-080027fb878b:1,
3f98d1e0b-a7e4-11eb-8259-080027fb878b:1-287
4
xtrabackup_checkpoints:lsn 号
1[root@localhost 2021-05-09_11-10-54]# cat xtrabackup_checkpoints
2backup_type = full-backuped
3from_lsn = 0
4to_lsn = 105394732
5last_lsn = 105394741
6compact = 0
7recover_binlog_info = 0
8flushed_lsn = 105394741
xtrabackup_info:备份的总体信息
xtrabackup_logfile:备份过程中产生的新的数据变化
恢复数据
1# 模拟数据丢失
2[root@localhost 2021-05-09_11-10-54]# cd /data/mysql/data/
3[root@localhost data]# ls
4auto.cnf ib_buffer_pool ib_logfile0 mdp mysql.log oldboy2 school sys world
5gg ibdata1 ib_logfile1 mysql oldboy performance_schema slow.log test zrblog
6# 回复备份的前提是数据目录必须是空的,恢复的数据实例是关闭的
7[root@localhost data]# rm -rf *
8[root@localhost 2021-05-09_11-10-54]# /etc/init.d/mysqld stop
9Shutting down MySQL.. SUCCESS!
10
11# 准备恢复数据
12[root@localhost data]# innobackupex --apply-log /data/bak/2021-05-09_11-10-54/
13InnoDB: Shutdown completed; log sequence number 105395240
14210509 11:36:49 completed OK!
15
16# 恢复数据
17[root@localhost data]# cd /data/bak/2021-05-09_11-10-54/
18[root@localhost 2021-05-09_11-10-54]# cp -a /backup/bak/2021-05-09_11-10-54/* /data/mysql/data/
19[root@localhost 2021-05-09_11-10-54]# cd /data/mysql/data/
20[root@localhost data]# ll
21total 196672
22-rw-r-----. 1 root root 487 May 9 11:10 backup-my.cnf
23drwxr-x---. 2 root root 48 May 9 11:10 gg
24-rw-r-----. 1 root root 10254 May 9 11:10 ib_buffer_pool
25-rw-r-----. 1 root root 79691776 May 9 11:36 ibdata1
26-rw-r-----. 1 root root 50331648 May 9 11:36 ib_logfile0
27-rw-r-----. 1 root root 50331648 May 9 11:36 ib_logfile1
28-rw-r-----. 1 root root 12582912 May 9 11:36 ibtmp1
29drwxr-x---. 2 root root 48 May 9 11:10 mdp
30drwxr-x---. 2 root root 4096 May 9 11:10 mysql
31drwxr-x---. 2 root root 54 May 9 11:10 oldboy
32drwxr-x---. 2 root root 20 May 9 11:10 oldboy2
33drwxr-x---. 2 root root 8192 May 9 11:10 performance_schema
34drwxr-x---. 2 root root 160 May 9 11:10 school
35drwxr-x---. 2 root root 8192 May 9 11:10 sys
36drwxr-x---. 2 root root 48 May 9 11:10 test
37drwxr-x---. 2 root root 174 May 9 11:10 world
38-rw-r-----. 1 root root 104 May 9 11:10 xtrabackup_binlog_info
39-rw-r-----. 1 root root 141 May 9 11:36 xtrabackup_checkpoints
40-rw-r-----. 1 root root 607 May 9 11:10 xtrabackup_info
41-rw-r-----. 1 root root 8388608 May 9 11:36 xtrabackup_logfile
42-rw-r--r--. 1 root root 1 May 9 11:36 xtrabackup_master_key_id
43drwxr-x---. 2 root root 4096 May 9 11:10 zrblog
44[root@localhost data]# chown -R mysql.mysql *
45[root@localhost data]# /etc/init.d/mysqld start
46Starting MySQL.Logging to '/data/mysql/data/mysql.log'.
47 SUCCESS!
XBK 增量备份
备份方式:基于上次的备份的增量
增量备份不能单独恢复,必须合并到全备中,一起恢复。
1# 全备
2[root@localhost bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --no-timestamp /data/bak/full_$(date +%F)
3[root@localhost bak]# ll
4total 4
5drwxr-x---. 13 root root 4096 May 9 12:06 full_2021-05-09
6
7# 模拟周一的数据变化
8mysql> create database xbk charset utf8mb4;
9mysql> use xbk;
10mysql> create table t1(id int);
11mysql> insert into t1 values(1),(2),(3);
12mysql> commit;
13
14# 周一晚上的增量备份
15[root@localhost bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/data/bak/full_2021-05-09 /data/bak/inc1_$(date +%F)
16
17# 模拟周二的数据变化
18mysql> use xbk;
19mysql> create table t2(id int);
20mysql> insert into t2 values(1),(2),(3);
21mysql> commit;
22
23# 周二晚上的增量备份
24[root@localhost bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/data/bak/inc1_2021-05-09 /data/bak/inc2_$(date +%F)
XBK 增量恢复
1、合并所有增量到全备
2、每个 XB 备份都需要恢复准备(prepare)
--apply-log --redo-only
11.整理全备
2innobackupex --apply-log --redo-only /data/bak/full_2021-05-09
3
42.整理并合并周一增量到全备
5innobackupex --apply-log --redo-only --incremental-dir=/data/bak/inc1_2021-05-09 /data/bak/full_2021-05-09
6
73.整理并合并周二的增量到全备
8innobackupex --apply-log --redo-only --incremental-dir=/data/bak/inc2_2021-05-09 /data/bak/full_2021-05-09
9
104.再次整理全备
11innobackupex --apply-log /data/bak/full_2021-05-09
12
135.停止Mysql实例,并且删除数据目录下的所有文件
14[root@localhost bak]# /etc/init.d/mysqld stop
15[root@localhost bak]# rm -rf /data/mysql/data/*
16
176.恢复数据
18[root@localhost bak]# innobackupex --copy-back /data/bak/full_2021-05-09
19[root@localhost data]# chown -R mysql.mysql /data/mysql/data/*
20
217.验证数据完整性
22[root@localhost data]# /etc/init.d/mysqld start
23Starting MySQL.Logging to '/data/mysql/data/mysql.log'.
24 SUCCESS!
25mysql> show databases;
26+--------------------+
27| Database |
28+--------------------+
29| information_schema |
30| gg |
31| mdp |
32| mysql |
33| oldboy |
34| oldboy2 |
35| performance_schema |
36| school |
37| sys |
38| test |
39| world |
40| xbk |
41| zrblog |
42+--------------------+
4313 rows in set (0.01 sec)
44
45mysql> use xbk;
46mysql> show tables;
47+---------------+
48| Tables_in_xbk |
49+---------------+
50| t1 |
51| t2 |
52+---------------+
53
54mysql> select * from t2;
55+------+
56| id |
57+------+
58| 1 |
59| 2 |
60| 3 |
61+------+
623 rows in set (0.00 sec)
XBK full+inc+binlog 案例
某中型互联网公司,数据量级 600G,每日数据量 15-50M
备份策略:周日 XBK 全备 + 周一到周六 inc 增量备份 +binlog 备份。每天 23:00 进行。
故障描述:周三下午 2 点,数据由于某原因数据损坏。
处理思路:
11.整理合并所有备份 full + inc1 + inc2
22.截取周二晚上到周三下午故障之间的binlog日志
33.恢复全备,恢复binlog
44.验证数据完整性
处理结果:
1经过70-80分钟处理,业务恢复
模拟环境:数据 + 故障
1# 周日全备
2[root@localhost bak]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --no-timestamp /data/bak/full
3
4# 模拟周一的数据变化
5mysql> create database oss charset utf8mb4;
6mysql> use oss;
7mysql> create table t1(id int);
8mysql> insert into t1 values(1),(2),(3);
9mysql> commit;
10
11# 模拟周一晚上的增量备份
12[root@localhost bak]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/data/bak/full /data/bak/inc1
13
14# 模拟周二的数据变化
15mysql> insert into t1 values(11),(22),(33);
16mysql> commit;
17
18# 模拟周二晚上的增量备份
19[root@localhost bak]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/data/bak/inc1 /data/bak/inc2
20
21# 模拟周三的数据变化
22mysql> insert into t1 values(111),(222),(333);
23mysql> commit;
24
25# 有个员工把数据库data目录下的数据全部都给删掉了
26[root@localhost bak]# /etc/init.d/mysqld stop
27Shutting down MySQL.. SUCCESS!
28[root@localhost data]# rm -rf /data/mysql/data/*
数据恢复
1# 整理全备
2[root@localhost data]# innobackupex --apply-log --redo-only /data/bak/full
3
4# 合并inc1到full
5[root@localhost data]# innobackupex --apply-log --redo-only --incremental-dir=/data/bak/inc1 /data/bak/full
6
7# 合并inc2到full
8[root@localhost data]# innobackupex --apply-log --redo-only --incremental-dir=/data/bak/inc2 /data/bak/full
9
10# 整体整理
11[root@localhost data]# innobackupex --apply-log /data/bak/full
12
13# 恢复整理好的全备数据到数据库
14[root@localhost bak]# innobackupex --copy-back /data/bak/full
15[root@localhost bak]# chown -R mysql.mysql /data/mysql/data/*
16[root@localhost bak]# /etc/init.d/mysqld start
17Starting MySQL.Logging to '/data/mysql/data/mysql.log'.
18 SUCCESS!
19
20# 查看inc2中的xtrabackup_binlog_info信息
21[root@localhost bak]# cat /data/bak/inc2/xtrabackup_binlog_info
22mysql-bin.000018 1288 1839d529-b068-11eb-8f64-080027fb878b:1,
2342725169-b078-11eb-ba4c-080027fb878b:1-5,
2449fa3c6a-b081-11eb-ab05-080027fb878b:1-5,
257a9f76ed-b08d-11eb-a5ac-080027fb878b:1-4, ******
26a6927d77-b08a-11eb-b910-080027fb878b:1-5,
27b9462caa-b08c-11eb-bbb4-080027fb878b:1-9,
28d0b3b659-b088-11eb-9d15-080027fb878b:1-7,
29f98d1e0b-a7e4-11eb-8259-080027fb878b:1-287
30
31# 发现当前使用的是 7a9f76ed-b08d-11eb-a5ac-080027fb878b GTID
32# 根据分析,7a9f76ed-b08d-11eb-a5ac-080027fb878b:1-4,已经包含 1-4,那么就从第五的事务开始截取到最后
33mysql> show binlog events in 'mysql-bin.000018';
34SET @@SESSION.GTID_NEXT= '7a9f76ed-b08d-11eb-a5ac-080027fb878b:5'
35
36# 截取日志
37[root@localhost bak]# mysqlbinlog --skip-gtids --include-gtids='7a9f76ed-b08d-11eb-a5ac-080027fb878b:5' /data/binlog/mysql-bin.000018 >/data/bak/bin.sql
38
39# 恢复数据
40mysql> set sql_log_bin=0;
41mysql> source /data/bak/bin.sql
42
43# 验证数据一致性
44mysql> select * from t1;
45+------+
46| id |
47+------+
48| 1 |
49| 2 |
50| 3 |
51| 11 |
52| 22 |
53| 33 |
54| 111 |
55| 222 |
56| 333 |
57+------+
589 rows in set (0.00 sec)
59
远程推送备份
1# 备份完并使用ssh推送到指定服务器的目录下命名为/data/full.tgz
2innobackupex --user-root --password=123 --defaults-file=/etc/my.cnf --no-timestamp --stream=tar --use-memory=256M --parallel=8 /data/bak/full | gzip | ssh root@10.1.1.1" cat - > /data/full.tgz"
MySQL 数据迁移
-
换主机(性能更强的硬件主机):
11.在线 MDP XBK 备份出来,scp到目标主机恢复 22.追加所有备份后的日志 33.申请停机5分钟 44.剩余的binlog继续恢复(搭建主从的方式来代替) 55.校验数据 66.进行业务切换 77.数据量大用主从架构
-
换版本升级:
1# 方法一 2新机器安装5.7,5.6使用逻辑备份mysqldump按业务库做备份,排除掉information_schema,performance_schema,sys, 在5.7中恢复,之后升级数据字典。 3 4# 方法二 5主从进行过滤复制,排除掉information_schema,performance_schema,sys
-
异构迁移(系统不一样):
1只能用逻辑备份 mysqldump
-
异构迁移(数据库产品不同):
1Oracle -- OGG -- MYSQL 2MYSQL -- CSV(格式) -- MongoDB 3MYSQL8.0 -- JSON -- MongoDB