02-03-周二_19-57-24
This commit is contained in:
@@ -3391,9 +3391,9 @@ xtrabackup --version
|
||||
- 全量备份
|
||||
|
||||
```shell
|
||||
[root@db01 data]# innobackupex --user=root --password=123 /backup
|
||||
[root@db01 data]# innobackupex --user=root --password=123456 -S /tmp/mysql.sock /backup
|
||||
#全备
|
||||
[root@db01 ~]# innobackupex --user=root --password=123 --no-timestamp /backup/full
|
||||
[root@db01 ~]# innobackupex --user=root --password=123456 --no-timestamp -S /tmp/mysql.sock /backup/full
|
||||
#避免时间戳,自定义路径名
|
||||
[root@db01 backup]# ll /backup/full
|
||||
#查看备份路径中的内容
|
||||
@@ -3409,7 +3409,7 @@ xtrabackup --version
|
||||
#备份的redo文件
|
||||
* 准备备份
|
||||
* 将redo进行重做,已提交的写到数据文件,未提交的使用undo回滚,模拟CSR的过程
|
||||
[root@db01 full]# innobackupex --user=root --password=123 --apply-log /backup/full
|
||||
[root@db01 full]# innobackupex --user=root --password=123456 --apply-log -S /tmp/mysql.sock /backup/full
|
||||
```
|
||||
|
||||
- 恢复备份
|
||||
@@ -3437,7 +3437,7 @@ xtrabackup --version
|
||||
- 所有增量必须要按顺序合并到全备当中
|
||||
|
||||
```shell
|
||||
[root@mysql-db01 ~]# innobackupex --user=root --password=123 --no-timestamp /backup/full
|
||||
[root@mysql-db01 ~]# innobackupex --user=root --password=123456 --no-timestamp -S /tmp/mysql.sock /backup/full
|
||||
#不使用之前的全备,执行一次全备
|
||||
```
|
||||
|
||||
@@ -3455,7 +3455,7 @@ mysql> select * from inc1_tab;
|
||||
- 第一次增量备份
|
||||
|
||||
```shell
|
||||
[root@db01 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/backup/full/ /backup/inc1
|
||||
[root@db01 ~]# innobackupex --user=root --password=123456 --no-timestamp --incremental -S /tmp/mysql.sock --incremental-basedir=/backup/full/ /backup/inc1
|
||||
参数说明:
|
||||
--incremental:开启增量备份功能
|
||||
--incremental-basedir:上一次备份的路径
|
||||
@@ -3474,7 +3474,7 @@ mysql> commit;
|
||||
- 第二次增量备份
|
||||
|
||||
```shell
|
||||
[root@db01 ~]# innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/backup/inc1/ /backup/inc2
|
||||
[root@db01 ~]# innobackupex --user=root --password=123456 --no-timestamp --incremental -S /tmp/mysql.sock --incremental-basedir=/backup/inc1/ /backup/inc2
|
||||
```
|
||||
|
||||
- 增量恢复
|
||||
@@ -3510,10 +3510,10 @@ mysql> commit;
|
||||
|
||||
```shell
|
||||
[root@db01 mysql]# innobackupex --apply-log /backup/full/
|
||||
copy-back
|
||||
[root@db01 ~]# innobackupex --copy-back /backup/full/
|
||||
[root@db01 ~]# chown -R mysql.mysql /application/mysql/data/
|
||||
[root@db01 ~]# /etc/init.d/mysqld start
|
||||
[root@db01 mysql]# systemctl stop mysqld
|
||||
[root@db01 mysql]# innobackupex --copy-back /backup/full/
|
||||
[root@db01 mysql]# chown -R mysql.mysql /application/mysql/data/
|
||||
[root@db01 mysql]# systemctl start mysqld
|
||||
```
|
||||
|
||||
# 16. MySQL的主从复制
|
||||
@@ -3590,6 +3590,7 @@ log_bin=mysql-bin
|
||||
[root@db01 ~]# mysql -uroot -p123456
|
||||
#登录数据库
|
||||
mysql> grant replication slave on *.* to slave@'192.168.88.%' identified by '123456';
|
||||
mysql> flush privileges;
|
||||
#创建slave用户
|
||||
```
|
||||
|
||||
@@ -3686,10 +3687,13 @@ slave-skip-errors=1032,1062,1007
|
||||
### 16.3.3 处理方法三
|
||||
|
||||
```sql
|
||||
set global read_only=1;
|
||||
#在命令行临时设置,在从库设置
|
||||
-- 临时开启(从库)
|
||||
SET GLOBAL read_only=1;
|
||||
SET GLOBAL super_read_only=1; -- MySQL5.7+,禁止super权限用户写(包括root)
|
||||
-- 永久开启(修改从库my.cnf,重启生效)
|
||||
[mysqld]
|
||||
read_only=1
|
||||
#在配置文件中永久生效[mysqld]
|
||||
super_read_only=1 -- 关键:彻底禁止所有用户写从库
|
||||
```
|
||||
|
||||
## 16.4 延时从库
|
||||
@@ -3891,7 +3895,16 @@ mysql> show global status like 'rpl_semi%';
|
||||
注:不难发现,在查询半同步状态是,开启半同步,查询会有延迟时间,关闭之后则没有
|
||||
```
|
||||
|
||||

|
||||
- 某公司程序员不小心删除了核心业务数据,已知公司没有全量备份,但是有延时从库(1个小时)。现在要求恢复数据库
|
||||
思路:
|
||||
1. 停止业务数据库
|
||||
2. 停止延时从库的slave
|
||||
3. 检查业务数据库bin_log,找到slave上最新的pos和删除前的pos
|
||||
4. 导入从库,检查数据是否完整
|
||||
5. 恢复业务数据
|
||||
- 模拟故障:配置延时从库,然后主库随便增删改,然后删除表,尝试恢复
|
||||
|
||||
|
||||
|
||||
## 16.6 过滤复制
|
||||
|
||||
@@ -3915,7 +3928,7 @@ mysql> show global status like 'rpl_semi%';
|
||||
[root@db01 data]# vim /data/3307/my.cnf
|
||||
replicate-do-db=world
|
||||
#在[mysqld]标签下添加
|
||||
mysqladmin -S /data/3307/mysql.sock shutdown
|
||||
mysqladmin -S /data/3307/mysql.sock -p123456 shutdown
|
||||
#关闭MySQL
|
||||
mysqld_safe --defaults-file=/data/3307/my.cnf &
|
||||
#启动MySQL
|
||||
|
||||
Reference in New Issue
Block a user