Week 12 Homework

1、主从复制及主主复制的实现

1、主从复制实现

实验环境:
在这里插入图片描述
1)主节点配置
Step1:安装数据库mysql8.0

1)主节点配置
Step1:安装数据库mysql8.0

Step2:创建存放二进制日志目录并设置相关权限

[root@master ~]# mkdir -p /data/mysql
[root@master ~]# chown mysql:mysql /data/mysql

Step3:修改配置文件

[root@master ~]# vim /etc/my.cnf
[mysqld]
server_id=80
log-bin=/data/mysql/mysql-bin

Step4:启动服务

[root@master ~]# systemctl enable --now mysqld

Step5:查询二进制日志位置

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 |       179 | No        |
| mysql-bin.000002 |       156 | No        |
+------------------+-----------+-----------+
2 rows in set (0.00 sec)

Step6:创建复制账号并授权

mysql> create user repluser@'10.0.101.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to repluser@'10.0.101.%';
Query OK, 0 rows affected (0.00 sec)

2)从节点配置
Step1:安装mysql8.0

[root@slave ~]# dnf -y install mysql-server

Step2:创建存放二进制日志目录并设置相关权限

[root@slave ~]# mkdir -p /data/mysql
[root@slave ~]# chown mysql:mysql /data/mysql

Step3:修改配置文件

[root@slave ~]# vim /etc/my.cnf
[mysqld]
server_id=81
log-bin=/data/mysql/mysql-bin
read-only

Step4:启动服务

[root@slave ~]# systemctl enable --now mysqld

Step5:设置CHANGE MASTER TO操作

mysql> CHANGE MASTER TO 
    -> MASTER_HOST='10.0.101.80',
    -> MASTER_USER='repluser',
    -> MASTER_PASSWORD='123456',        
    -> MASTER_PORT=3306,
    -> MASTER_LOG_FILE='mysql-bin.000002', 
    -> MASTER_LOG_POS=156;
Query OK, 0 rows affected, 9 warnings (0.02 sec)

Step6:启动复制线程

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)

Step7:查看线程信息

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 10.0.101.80
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 685
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 853
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 685
              Relay_Log_Space: 1062
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 80
                  Master_UUID: 8dd69111-5e2b-11ec-b941-000c2953dccd
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

3)测试
Step1:在主节点上创建数据库

mysql> create database db1;
Query OK, 1 row affected (0.01 sec)

Step2:在从节点上查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
2、主主复制实现

实验环境:
在这里插入图片描述
1)主节点1配置
Step1:安装数据库mysql8.0

[root@master1 ~]# dnf -y install mysql-server

Step2:创建存放二进制日志目录并设置相关权限

[root@master1 ~]# mkdir -p /data/mysql
[root@master1 ~]# chown mysql:mysql /data/mysql

Step3:修改配置文件

[root@master1 ~]# vim /etc/my.cnf
[mysqld]
server_id=80
log-bin=/data/mysql/mysql-bin

Step4:启动服务

[root@master1 ~]# systemctl enable --now mysqld

Step5:查看二进制日志位置

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 |       179 | No        |
| mysql-bin.000002 |       156 | No        |
+------------------+-----------+-----------+
2 rows in set (0.00 sec)

Step6:创建复制账号并授权

mysql> create user repluser@'10.0.101.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to repluser@'10.0.101.%';
Query OK, 0 rows affected (0.01 sec)

2)主节点2配置
Step1:安装数据库mysql8.0

[root@master2 ~]# dnf -y install mysql-server

Step2:创建存放二进制日志目录并设置相关权限

[root@master2 ~]# mkdir -p /data/mysql
[root@master2 ~]# chown mysql:mysql /data/mysql

Step3:修改配置文件

[root@master2 ~]# vim /etc/my.cnf
[mysqld]
server_id=81
log-bin=/data/mysql/mysql-bin

Step4:启动服务

[root@master2 ~]# systemctl enable --now mysqld

Step5:设置CHANGE MASTER TO操作

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='10.0.101.80',
    ->     MASTER_USER='repluser',
    ->     MASTER_PASSWORD='123456',
    ->     MASTER_PORT=3306,
    ->     MASTER_LOG_FILE='mysql-bin.000002',
    ->     MASTER_CONNECT_RETRY=156;
Query OK, 0 rows affected, 10 warnings (0.01 sec)

Step6:启动复制线程

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Step7:查看线程状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 10.0.101.80
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 156
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 685
               Relay_Log_File: master2-relay-bin.000002
                Relay_Log_Pos: 900
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 685
              Relay_Log_Space: 1111
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 80
                  Master_UUID: d432619c-5ef1-11ec-9741-000c2953dccd
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

3)主节点1上配置
Step1:查看主节点2上二进制日志位置

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 |       179 | No        |
| mysql-bin.000002 |       156 | No        |
+------------------+-----------+-----------+
2 rows in set (0.00 sec)

Step2:设置CHANGE MASTER TO操作

mysql> CHANGE MASTER TO
    ->     MASTER_HOST='10.0.101.81',
    ->     MASTER_USER='repluser',
    ->     MASTER_PASSWORD='123456',
    ->     MASTER_PORT=3306,
    ->     MASTER_LOG_FILE='mysql-bin.000002',
    ->     MASTER_CONNECT_RETRY=156;
Query OK, 0 rows affected, 10 warnings (0.02 sec)

Step3:启动复制线程

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Step4:查看线程状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 10.0.101.81
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 156
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 1076
               Relay_Log_File: master1-relay-bin.000002
                Relay_Log_Pos: 556
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1076
              Relay_Log_Space: 767
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 81
                  Master_UUID: f425a744-5ef3-11ec-b54b-000c29fc0e53
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.00 sec)

4)测试双向复制数据
Step1:在主节点1上创建数据库

mysql> create database db80;
Query OK, 1 row affected (0.00 sec)

Step2:在主节点2上查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db80               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

Step3:在主节点2上创建数据库

mysql> create database db81;
Query OK, 1 row affected (0.00 sec)

Step4:在主节点1上查看数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db80               |
| db81               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

2、xtrabackup实现全量+增量+binlog恢复库

实验环境:

 10.0.101.80	backup
 10.0.101.81	restore

实验步骤:
1、备份
step1:安装数据库8.0

[root@backup ~]# dnf -y install mysql-server

step2:创建存放二进制日志文件目录

[root@backup ~]# mkdir -p /data/mysql
[root@backup ~]# chown mysql.mysql /data/mysql

step3:编辑配置文件

[root@backup ~]# vim /etc/my.cnf
[mysqld]
log-bin=/data/mysql/mysql-bin
skip_name_resolve=1 

step4:启动mysql服务

[root@backup ~]# systemctl enable --now mysqld

step5:下载xtrabackup工具

[root@backup ~]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.26-18/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm
[root@backup ~]# ls
percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm

step6:安装xtrabackup工具

[root@backup ~]# dnf -y localinstall percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm 

step4:创建备份目录

[root@backup ~]# mkdir /backup

step5:导入测试数据库

[root@backup ~]# mysql < hellodb_innodb.sql 

step6:完全备份
[root@backup ~]# xtrabackup --uroot --backup --target-dir=/backup/base

[root@backup ~]# ll /backup/base
total 69684
-rw-r----- 1 root root 475 Dec 18 16:04 backup-my.cnf
drwxr-x— 2 root root 132 Dec 18 16:04 hellodb
-rw-r----- 1 root root 5943 Dec 18 16:04 ib_buffer_pool
-rw-r----- 1 root root 12582912 Dec 18 16:04 ibdata1
drwxr-x— 2 root root 143 Dec 18 16:04 mysql
-rw-r----- 1 root root 156 Dec 18 16:04 mysql-bin.000003
-rw-r----- 1 root root 29 Dec 18 16:04 mysql-bin.index
-rw-r----- 1 root root 25165824 Dec 18 16:04 mysql.ibd
drwxr-x— 2 root root 8192 Dec 18 16:04 performance_schema
drwxr-x— 2 root root 28 Dec 18 16:04 sys
-rw-r----- 1 root root 16777216 Dec 18 16:04 undo_001
-rw-r----- 1 root root 16777216 Dec 18 16:04 undo_002
-rw-r----- 1 root root 21 Dec 18 16:04 xtrabackup_binlog_info
-rw-r----- 1 root root 102 Dec 18 16:04 xtrabackup_checkpoints
-rw-r----- 1 root root 462 Dec 18 16:04 xtrabackup_info
-rw-r----- 1 root root 2560 Dec 18 16:04 xtrabackup_logfile
-rw-r----- 1 root root 39 Dec 18 16:04 xtrabackup_tablespaces
step7:登录mysql实例,第一次插入表记录

[root@backup ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.26 Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 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
mysql> insert teachers values (null,'Tom',18,'M'),(null,'Jerry',19,'M');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> 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 | Tom           |  18 | M      |
|   6 | Jerry         |  19 | M      |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec)

step8:第一次增量备份

[root@backup ~]# xtrabackup -uroot --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base

step9:第二次插入表记录

mysql> insert teachers values (null,'Liulaoban',28,'M'),(null,'Lilaoban',32,'M');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> 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 | Tom           |  18 | M      |
|   6 | Jerry         |  19 | M      |
|   7 | Liulaoban     |  28 | M      |
|   8 | Lilaoban      |  32 | M      |
+-----+---------------+-----+--------+
8 rows in set (0.00 sec)

step10:第二次增量备份

[root@backup ~]# xtrabackup -uroot --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1

step11:第三次插入表记录

mysql> insert teachers values (null,'wangcai',12,'M'),(null,'xiaoqing',10,'M');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

step12:备份二进制日志文件

查看二进制日志中的记录,找到第三次插入的表记录日志信息

[root@backup ~]# mysqlbinlog /data/mysql/mysql-bin.000005 -v
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#211218 16:44:47 server id 1  end_log_pos 125 CRC32 0x31a3a26a  Start: binlog v 4, server v 8.0.26 created 211218 16:44:47
BINLOG '
f5+9YQ8BAAAAeQAAAH0AAAAAAAQAOC4wLjI2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEwANAAgAAAAABAAEAAAAYQAEGggAAAAICAgCAAAACgoKKioAEjQA
CigBaqKjMQ==
'/*!*/;
# at 125
#211218 16:44:47 server id 1  end_log_pos 156 CRC32 0xc3aac3ac  Previous-GTIDs
# [empty]
# at 156
#211218 16:50:32 server id 1  end_log_pos 235 CRC32 0xc9feb8b6  Anonymous_GTID  last_committed=0    sequence_number=1   rbr_only=yes    original_committed_timestamp=1639817432819300   immediate_commit_timestamp=1639817432819300 transaction_length=319
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
# original_commit_timestamp=1639817432819300 (2021-12-18 16:50:32.819300 CST)
# immediate_commit_timestamp=1639817432819300 (2021-12-18 16:50:32.819300 CST)
/*!80001 SET @@session.original_commit_timestamp=1639817432819300*//*!*/;
/*!80014 SET @@session.original_server_version=80026*//*!*/;
/*!80014 SET @@session.immediate_server_version=80026*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 235
#211218 16:50:32 server id 1  end_log_pos 313 CRC32 0x475984ed  Query   thread_id=20    exec_time=0 error_code=0
SET TIMESTAMP=1639817432/*!*/;
SET @@session.pseudo_thread_id=20/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1168113696/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=255,@@session.collation_connection=255,@@session.collation_server=255/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
/*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/;
BEGIN
/*!*/;
# at 313
#211218 16:50:32 server id 1  end_log_pos 380 CRC32 0xbedda021  Table_map: `hellodb`.`teachers` mapped to number 129
# at 380
#211218 16:50:32 server id 1  end_log_pos 444 CRC32 0x8a4a6ab1  Write_rows: table id 129 flags: STMT_END_F

BINLOG '
2KC9YRMBAAAAQwAAAHwBAAAAAIEAAAAAAAEAB2hlbGxvZGIACHRlYWNoZXJzAAQCDwH+BCwB9wEI
AQHAAgEhIaDdvg==
2KC9YR4BAAAAQAAAALwBAAAAAIEAAAAAAAEAAgAE/wAJAAcAd2FuZ2NhaQwCAAoACAB4aWFvcWlu
ZwoCsWpKig==
'/*!*/;
### INSERT INTO `hellodb`.`teachers`
### SET
###   @1=9
###   @2='wangcai'
###   @3=12
###   @4=2
### INSERT INTO `hellodb`.`teachers`
### SET
###   @1=10
###   @2='xiaoqing'
###   @3=10
###   @4=2
# at 444
#211218 16:50:32 server id 1  end_log_pos 475 CRC32 0x784d2c9c  Xid = 231
COMMIT/*!*/;
# at 475
#211218 16:51:38 server id 1  end_log_pos 498 CRC32 0x82f35e16  Stop
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

2、还原

step13:备份文件传至还原服务器

[root@backup ~]# du -sh /backup/*
71M /backup/base
2.3M    /backup/inc1
2.2M    /backup/inc2

[root@backup ~]# scp -r /backup 10.0.101.81:/

[root@restore ~]# du -sh /backup/*
71M /backup/base
2.3M    /backup/inc1
2.2M    /backup/inc2

[root@backup ~]# scp /data/binlog.sql 10.0.101.81:/data

[root@restore ~]# ll /data/
-rw-r--r-- 1 root root 2949 Dec 18 17:39 /data/binlog.sql

step14:安装mysql8.0(安装完成后先不要启动mysql服务)

[root@restore ~]# dnf -y install mysql-server

step15:下载并安装xtrabackup

[root@restore ~]# ls
percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm

[root@restore ~]# dnf -y localinstall percona-xtrabackup-80-8.0.26-18.1.el8.x86_64.rpm 

step16:还原完全备份,需阻止回滚未完成的事务

[root@restore ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/base

step17:合并第一次增量备份,需阻止回滚未完成的事务

[root@restore ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1

step18:合并第二次增量备份,不需阻止回滚未完成的事务

[root@restore ~]# xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2

[root@restore ~]# du -sh /backup/*
187M    /backup/base
11M /backup/inc1
11M /backup/inc2

step19:复制到数据库目录,注意数据库目录必须为空,MySQL服务不能启动

[root@restore ~]# ll /var/lib/mysql/
total 0

[root@restore ~]# xtrabackup --copy-back --target-dir=/backup/base

[root@restore ~]# ll /var/lib/mysql/
total 180260
drwxr-x--- 2 root root      132 Dec 18 17:17 hellodb
-rw-r----- 1 root root     5943 Dec 18 17:17 ib_buffer_pool
-rw-r----- 1 root root 12582912 Dec 18 17:17 ibdata1
-rw-r----- 1 root root 50331648 Dec 18 17:17 ib_logfile0
-rw-r----- 1 root root 50331648 Dec 18 17:17 ib_logfile1
-rw-r----- 1 root root 12582912 Dec 18 17:17 ibtmp1
drwxr-x--- 2 root root      143 Dec 18 17:17 mysql
-rw-r----- 1 root root      156 Dec 18 17:17 mysql-bin.000005
-rw-r----- 1 root root       17 Dec 18 17:17 mysql-bin.index
-rw-r----- 1 root root 25165824 Dec 18 17:17 mysql.ibd
drwxr-x--- 2 root root     8192 Dec 18 17:17 performance_schema
drwxr-x--- 2 root root       28 Dec 18 17:17 sys
-rw-r----- 1 root root 16777216 Dec 18 17:17 undo_001
-rw-r----- 1 root root 16777216 Dec 18 17:17 undo_002
-rw-r----- 1 root root      503 Dec 18 17:17 xtrabackup_info
-rw-r----- 1 root root        1 Dec 18 17:17 xtrabackup_master_key_id

step20:还原目录属性

[root@restore ~]# chown -R mysql:mysql /var/lib/mysql
[root@restore ~]# ll /var/lib/mysql/
total 180260
drwxr-x--- 2 mysql mysql      132 Dec 18 17:17 hellodb
-rw-r----- 1 mysql mysql     5943 Dec 18 17:17 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Dec 18 17:17 ibdata1
-rw-r----- 1 mysql mysql 50331648 Dec 18 17:17 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Dec 18 17:17 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Dec 18 17:17 ibtmp1
drwxr-x--- 2 mysql mysql      143 Dec 18 17:17 mysql
-rw-r----- 1 mysql mysql      156 Dec 18 17:17 mysql-bin.000005
-rw-r----- 1 mysql mysql       17 Dec 18 17:17 mysql-bin.index
-rw-r----- 1 mysql mysql 25165824 Dec 18 17:17 mysql.ibd
drwxr-x--- 2 mysql mysql     8192 Dec 18 17:17 performance_schema
drwxr-x--- 2 mysql mysql       28 Dec 18 17:17 sys
-rw-r----- 1 mysql mysql 16777216 Dec 18 17:17 undo_001
-rw-r----- 1 mysql mysql 16777216 Dec 18 17:17 undo_002
-rw-r----- 1 mysql mysql      503 Dec 18 17:17 xtrabackup_info
-rw-r----- 1 mysql mysql        1 Dec 18 17:17 xtrabackup_master_key_id

step21:启动mysql服务

[root@restore ~]# systemctl start mysqld

step22:查看表中记录

[root@restore ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 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
mysql> 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 | Tom           |  18 | M      |
|   6 | Jerry         |  19 | M      |
|   7 | Liulaoban     |  28 | M      |
|   8 | Lilaoban      |  32 | M      |
+-----+---------------+-----+--------+
8 rows in set (0.01 sec)

# 以上查询可知,恢复了完全备份,第一次增量备份,第二次增量备份的数据,第三次插入的表记录还未还原!

step23:通过二进制日志备份还原第三次插入的表记录

[root@restore ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26 Source distribution

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 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
mysql> source /data/binlog.sql
Query OK, 0 rows affected, 1 warning (0.00 sec)

# 查看表记录
mysql> 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 | Tom           |  18 | M      |
|   6 | Jerry         |  19 | M      |
|   7 | Liulaoban     |  28 | M      |
|   8 | Lilaoban      |  32 | M      |
|   9 | wangcai       |  12 | M      |
|  10 | xiaoqing      |  10 | M      |
+-----+---------------+-----+--------+
10 rows in set (0.00 sec)

# 以上查询得知,第三次插入的表记录已还原成功!

3、MyCAT实现MySQL读写分离

实验环境:
在这里插入图片描述
实验步骤:
一、配置主节点
step1:安装mysql8.0

[root@master ~]# dnf -y install mysql-server

step2:创建存放二进制日志目录并设置相关权限

[root@master ~]# mkdir -p /data/mysql
[root@master ~]# chown mysql.mysql /data/mysql

step3:编辑配置文件

[root@master ~]# vim /etc/my.cnf
[mysqld]
server_id=81
log-bin=/data/mysql/mysql-bin

step4:启动服务

[root@master ~]# systemctl enable --now mysqld

step5:查询二进制日志位置

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 |       179 | No        |
| mysql-bin.000002 |       156 | No        |
+------------------+-----------+-----------+
2 rows in set (0.00 sec)

step6:创建复制账号并授权

mysql> create user repluser@'10.0.101.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to repluser@'10.0.101.%';
Query OK, 0 rows affected (0.00 sec)

二、配置从节点
step7:安装mysql8.0

[root@slave ~]# dnf -y install mysql-server

step8:编辑配置文件

[root@slave ~]# vim /etc/my.cnf
[mysqld]
server_id=82
read_only

step9:启动服务

[root@slave ~]# systemctl enable --now mysqld

step10:设置change master to

mysql> CHANGE MASTER TO
    ->   MASTER_HOST='10.0.101.81',
    ->   MASTER_USER='repluser',
    ->   MASTER_PASSWORD='123456',
    ->   MASTER_PORT=3306,
    ->   MASTER_LOG_FILE='mysql-bin.000002',
    ->   MASTER_LOG_POS=156;
Query OK, 0 rows affected, 9 warnings (0.01 sec)

step11:启动复制线程并查看线程状态

mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 10.0.101.81
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 685
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 853
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 685
              Relay_Log_Space: 1062
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 81
                  Master_UUID: 7f7ca1b4-5f3f-11ec-89d6-000c29fc0e53
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.01 sec)

三、MyCat配置
step12:下载Mycat

[root@mycat ~]# wget http://dl.mycat.org.cn/1.6.7.6/20210303094759/Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz

step13:安装java

[root@mycat ~]# dnf -y install java

step14:创建mycat安装目录并解压之

[root@mycat ~]# mkdir /apps
[root@mycat ~]# tar xf Mycat-server-1.6.7.6-release-20210303094759-linux.tar.gz -C /apps/

step15:配置mycat环境变量

[root@mycat ~]# echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
[root@mycat ~]# source /etc/profile.d/mycat.sh

# 查看PATH变量
[root@mycat ~]# echo $PATH
/apps/mycat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

step16:启动mycat

[root@mycat ~]# mycat start
Starting Mycat-server...
# 查看端口号,mycat启动后默认开启8066端口号
[root@mycat ~]# ss -tnl
State            Recv-Q           Send-Q                     Local Address:Port                        Peer Address:Port           
LISTEN           0                128                              0.0.0.0:22                               0.0.0.0:*              
LISTEN           0                1                              127.0.0.1:32000                            0.0.0.0:*              
LISTEN           0                128                                 [::]:22                                  [::]:*              
LISTEN           0                50                                     *:43967                                  *:*              
LISTEN           0                50                                     *:1984                                   *:*              
LISTEN           0                128                                    *:8066                                   *:*              
LISTEN           0                50                                     *:43655                                  *:*              
LISTEN           0                128                                    *:9066                                   *:*   

step17:客户机mycat连接测试

mycat连接,root密码默认为123456
# 需提前安装mariadb包
[root@client ~]# mysql
bash: mysql: command not found
[root@client ~]# yum -y install mariadb

[root@client ~]# mysql -uroot -p123456 -h 10.0.101.80 -P8066
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.29-mycat-1.6.7.6-release-20210303094759 MyCat Server (OpenCloudDB)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.01 sec)

step18:在mycat服务器上修改server.xml文件配置mycat的连接信息

# 修改配置文件前先备份文件
[root@mycat ~]# cp -a /apps/mycat/conf/server.xml{,.bak}

# 修改默认连接的端口号
[root@mycat ~]# vim /apps/mycat/conf/server.xml
# 取消多行注释,并将多代码以外的内容删除掉!
            <property name="serverPort">3306</property>      # 将8066修改成3306                                                                        
            <property name="managerPort">9066</property>
            <property name="idleTimeout">300000</property>
            <property name="authTimeout">15000</property>
            <property name="bindIp">0.0.0.0</property>
            <property name="dataNodeIdleCheckPeriod">300000</property>
            <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property>
# 修改root密码
    <user name="root" defaultAccount="true">
        <property name="password">lxf202112</property>     # 将root密码123456修改成你设置的密码!                                                                         
        <property name="schemas">TESTDB</property>
        <property name="defaultSchema">TESTDB</property>

step19:修改schema.xml实现读写分离策略

# 修改前备份文件
[root@mycat ~]# cp -a /apps/mycat/conf/schema.xml{,.bak}

[root@mycat ~]# vim /apps/mycat/conf/schema.xml
# 清空原有内容!
# 加入以下内容!
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="hellodb" />    # database="hellodb"表示后端服务器实际的数据库名称
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="10.0.101.81:3306" user="root" password="123456">
<readHost host="host2" url="10.0.101.82:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
step20:重启mycat
[root@mycat ~]# mycat restart
Stopping Mycat-server...
Stopped Mycat-server.
Starting Mycat-server...

# 查看端口号,看端口号由默认的8066改成的3306了!
[root@mycat ~]# ss -tnl
State            Recv-Q           Send-Q                     Local Address:Port                        Peer Address:Port           
LISTEN           0                128                              0.0.0.0:22                               0.0.0.0:*              
LISTEN           0                1                              127.0.0.1:32000                            0.0.0.0:*              
LISTEN           0                128                                 [::]:22                                  [::]:*              
LISTEN           0                50                                     *:1984                                   *:*              
LISTEN           0                50                                     *:38405                                  *:*              
LISTEN           0                128                                    *:3306                                   *:*              
LISTEN           0                128                                    *:9066                                   *:*              
LISTEN           0                50                                     *:34705                                  *:*    

# 查看日志文件
[root@mycat ~]# cat /apps/mycat/logs/wrapper.log 
STATUS | wrapper  | 2021/12/17 22:00:56 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2021/12/17 22:00:57 | Launching a JVM...
INFO   | jvm 1    | 2021/12/17 22:00:59 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2021/12/17 22:00:59 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2021/12/17 22:00:59 | 
INFO   | jvm 1    | 2021/12/17 22:01:03 | MyCAT Server startup successfully. see logs in logs/mycat.log
STATUS | wrapper  | 2021/12/17 22:20:36 | TERM trapped.  Shutting down.
STATUS | wrapper  | 2021/12/17 22:20:37 | <-- Wrapper Stopped
STATUS | wrapper  | 2021/12/17 22:20:38 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2021/12/17 22:20:38 | Launching a JVM...
INFO   | jvm 1    | 2021/12/17 22:20:38 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
INFO   | jvm 1    | 2021/12/17 22:20:38 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2021/12/17 22:20:38 | 
INFO   | jvm 1    | 2021/12/17 22:20:40 | MyCAT Server startup successfully. see logs in logs/mycat.log

四、配置主节点
step21:创建用户并对mycat授权

mysql> create user root@'10.0.101.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to root@'10.0.101.%';
Query OK, 0 rows affected (0.01 sec)

# 导入hellodb数据库,用于连接测试
[root@master ~]# mysql < hellodb_innodb.sql 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| hellodb            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

五、客户端连接mycat测试
step22:连接mycat

[root@client ~]# mysql -uroot -plxf202112 -h 10.0.101.80
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-mycat-1.6.7.6-release-20210303094759 MyCat Server (OpenCloudDB)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.00 sec)

MySQL [(none)]> use TESTDB;
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
MySQL [TESTDB]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| scores            |
| students          |
| teachers          |
| toc               |
+-------------------+
7 rows in set (0.00 sec)

# 主、从节点开启通用日志功能
[root@master ~]# vim /etc/my.cnf
[mysqld]
... 省略 ...
general_log=ON 

[root@master ~]# systemctl restart mysqld

[root@slave ~]# vim /etc/my.cnf
[mysqld]
... 省略 ...
general_log=ON 

[root@slave ~]# systemctl restart mysqld

# 追踪主、从节点日志文件内容
[root@master ~]# tail -f /var/lib/mysql/master.log 
2021-12-17T14:42:00.383118Z     8 Query select user()
2021-12-17T14:42:10.381681Z     8 Query select user()
2021-12-17T14:42:20.386943Z     8 Query select user()
2021-12-17T14:42:30.386941Z     8 Query select user()
2021-12-17T14:42:40.380085Z     8 Query select user()
2021-12-17T14:42:50.383267Z     8 Query select user()
2021-12-17T14:43:00.381240Z     8 Query select user()
2021-12-17T14:43:10.384048Z     8 Query select user()
2021-12-17T14:43:20.380846Z     8 Query select user()
2021-12-17T14:43:30.380322Z     8 Query select user()
2021-12-17T14:43:40.384513Z     8 Query select user()

[root@slave ~]# tail -f /var/lib/mysql/slave.log 
2021-12-17T14:41:50.379586Z    10 Query select user()
2021-12-17T14:41:52.249581Z    11 Query show slave status
2021-12-17T14:42:00.380862Z    10 Query select user()
2021-12-17T14:42:10.379873Z    10 Query select user()
2021-12-17T14:42:20.384383Z    10 Query select user()
2021-12-17T14:42:30.384358Z    10 Query select user()
2021-12-17T14:42:40.378179Z    10 Query select user()
2021-12-17T14:42:47.410867Z    11 Quit  
2021-12-17T14:42:50.381016Z    10 Query select user()
2021-12-17T14:43:00.379478Z    10 Query select user()
2021-12-17T14:43:10.382273Z    10 Query select user()

# 模拟写操作
MySQL [TESTDB]> update teachers set age=@@server_id where tid=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

# 在主节点追踪到的通用日志内容
[root@master ~]# tail -f /var/lib/mysql/master.log 
2021-12-17T14:46:50.384393Z    19 Query select user()
2021-12-17T14:47:00.381770Z    17 Query select user()
2021-12-17T14:47:10.380365Z    16 Query select user()
2021-12-17T14:47:20.380762Z    18 Query select user()
2021-12-17T14:47:30.383507Z    19 Query select user()
2021-12-17T14:47:40.384174Z    17 Query select user()
2021-12-17T14:47:50.381108Z    16 Query select user()
2021-12-17T14:48:00.381279Z    18 Query select user()
2021-12-17T14:48:10.381279Z    19 Query select user()
2021-12-17T14:48:20.383007Z    17 Query select user()
2021-12-17T14:48:30.382309Z    16 Query select user()
2021-12-17T14:48:30.565188Z    18 Query SET names utf8;
2021-12-17T14:48:30.565351Z    18 Query update teachers set age=@@server_id where tid=3
2021-12-17T14:48:40.382341Z    19 Query select user()

# 在从节点上追踪到的通用日志内容
[root@slave ~]# tail -f /var/lib/mysql/slave.log 
2021-12-17T14:47:00.379767Z    12 Query select user()
2021-12-17T14:47:10.378547Z    10 Query select user()
2021-12-17T14:47:18.852492Z    13 Query SET names utf8;
2021-12-17T14:47:18.852622Z    13 Query select * from teachers
2021-12-17T14:47:20.378815Z    14 Query select user()
2021-12-17T14:47:30.381648Z    12 Query select user()
2021-12-17T14:47:40.381775Z    10 Query select user()
2021-12-17T14:47:50.379564Z    13 Query select user()
2021-12-17T14:48:00.379204Z    14 Query select user()
2021-12-17T14:48:10.379280Z    12 Query select user()
2021-12-17T14:48:20.381217Z    10 Query select user()
2021-12-17T14:48:30.380608Z    13 Query select user()
2021-12-17T14:48:30.566677Z     6 Query BEGIN
2021-12-17T14:48:30.566892Z     6 Query COMMIT /* implicit, from Xid_log_event */
2021-12-17T14:48:40.380266Z    14 Query select user()
2021-12-17T14:48:50.379932Z    12 Query select user()

# 模拟读操作
MySQL [TESTDB]> 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  |  81 | F      |
+-----+---------------+-----+--------+
4 rows in set (0.01 sec)

# 在主节点追踪到的通用日志内容
[root@master ~]# tail -f /var/lib/mysql/master.log 
2021-12-17T14:45:40.385326Z    17 Connect   root@10.0.101.80 on hellodb using TCP/IP
2021-12-17T14:45:40.386172Z    19 Connect   root@10.0.101.80 on hellodb using TCP/IP
2021-12-17T14:45:50.381685Z    16 Query select user()
2021-12-17T14:46:00.379779Z    18 Query select user()
2021-12-17T14:46:10.382271Z    19 Query select user()
2021-12-17T14:46:20.386919Z    17 Query select user()
2021-12-17T14:46:30.379789Z    16 Query select user()
2021-12-17T14:46:40.383109Z    18 Query select user()
2021-12-17T14:46:50.384393Z    19 Query select user()
2021-12-17T14:47:00.381770Z    17 Query select user()
2021-12-17T14:47:10.380365Z    16 Query select user()
2021-12-17T14:47:20.380762Z    18 Query select user()
2021-12-17T14:47:30.383507Z    19 Query select user()
2021-12-17T14:47:40.384174Z    17 Query select user()

# 在从节点上追踪到的通用日志内容
[root@slave ~]# tail -f /var/lib/mysql/slave.log 
2021-12-17T14:45:40.384271Z    14 Connect   root@10.0.101.80 on hellodb using TCP/IP
2021-12-17T14:45:40.383870Z    12 Connect   root@10.0.101.80 on hellodb using TCP/IP
2021-12-17T14:45:50.379768Z    10 Query select user()
2021-12-17T14:46:00.377769Z    13 Query select user()
2021-12-17T14:46:10.380287Z    14 Query select user()
2021-12-17T14:46:20.385343Z    12 Query select user()
2021-12-17T14:46:30.377758Z    10 Query select user()
2021-12-17T14:46:40.381074Z    13 Query select user()
2021-12-17T14:46:50.382213Z    14 Query select user()
2021-12-17T14:47:00.379767Z    12 Query select user()
2021-12-17T14:47:10.378547Z    10 Query select user()
2021-12-17T14:47:18.852492Z    13 Query SET names utf8;
2021-12-17T14:47:18.852622Z    13 Query select * from teachers
2021-12-17T14:47:20.378815Z    14 Query select user()
2021-12-17T14:47:30.381648Z    12 Query select user()
2021-12-17T14:47:40.381775Z    10 Query select user()
2021-12-17T14:47:50.379564Z    13 Query select user()

4、ansible常用模块介绍

1)command模块:远程主机执行命令,默认模块
2)shell模块:增强版command模块,支持各种符号,如:重定向、管道等
3)script模块:在远程主机上运行ansible主控端上的脚本(脚本无需执行权限)
4)copy模块:从ansible主控端复制文件到被控端主机
5)get_url模块:用于将文件从互联网下载到被控端主机
6)fetch模块:从被控端提取文件至ansible主控端,不支持目录
7)file模块:设置文件属性、创建软链接等
8)stat模块:检查文件或文件系统的状态
9)unarchive模块:解包解压缩
10)archive模块:打包压缩保存在被控端
11)hostname模块:管理主机名,建议针对单个主机进行设置
12)cron模块:用于计划任务
13)yum和apt模块:用于管理RedHat和Debian系软件包
14)service模块:用于管理服务
15)user模块:用于管理用户
16)group模块:用于管理组
17)lineinfile模块:用于修改某个文件内容
替换文本时,如果有多行匹配到,则只有最后一行内容被替换
删除文件时,如果有多行匹配到,则匹配到的行全部删除
18)replace模块:类似于sed命令,主要也是基于正则进行匹配和替换
19)selinux模块:管理selinux策略
20)reboot模块:管理主机重启
21)mount模块:用于管理挂载和卸载文件系统
22)setup模块:用于收集主机的系统信息
23)debug模块:用于输出信息,并且通过msg定制输出的信息内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值