MySqlデータベースの主従とデュアルマシンホットスペアの実現

23346 ワード

MySqlデータベースの主従とデュアルマシンホットスペアの実現
インストールリファレンス
https://blog.csdn.net/lswzw/article/details/89151740
プライマリ・スレーブ・レプリケーションの実装(2つのデータのデータが一致することが望ましい.そうしないと問題が発生し、プライマリ・スレーブの実装、デュアル・ホット・スペアの実装)
時間も必ず同期して
1.主従都操作
vi /etc/my.cnf
  :
 :
server-id=1  #[  ]     ID,   1
log-bin=mysql-bin   #[  ]        

 :
server-id=2
log-bin=mysql-bin

server-id       .

2.メインサーバーの操作
MySQLへ
mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

File  Position           。

バックアップ専用アカウントの作成
mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backup'@'192.168.1.%' IDENTIFIED BY 'Backup@123';
#    :backup    : Backup@123    :192.168.1.0 ip  
mysql> flush privileges;
#    

3.サーバからの操作
注意:この時点のmysqlはすでに起動しているため、uuidのサービス番号が自動的に保持され、この番号ファイル(auto.cnf)は削除しないと主従を実現できません.
[root@mysql02 ~]# find / -name 'auto.cnf'
/var/lib/mysql/auto.cnf
[root@mysql02 ~]# cat /var/lib/mysql/auto.cnf 
[auto]
server-uuid=10271616-5a93-11e9-ac44-00505698d778
[root@mysql02 ~]# rm -f /var/lib/mysql/auto.cnf

主従を開く
MySQLへ
CHANGE MASTER to MASTER_HOST="192.168.1.44",
MASTER_PORT=3306,
MASTER_user="backup",
MASTER_PASSWORD="Backup@123",
MASTER_LOG_FILE="mysql-bin.000002",
MASTER_LOG_POS=154;

start slave;

パラメータの説明:master_host=プライマリサーバIP master_user=プライマリ・サーバに作成されたバックアップ・ユーザー名master_password=バックアップユーザーパスワードmaster_log_file=マスター(プライマリサーバ)の状態をクエリしたファイル列の値マスター_log_pos=Position列の値start slave:サーバからのレプリケーション機能の起動
4.ステータスの表示
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.44
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 1053
               Relay_Log_File: mysql02-relay-bin.000002
                Relay_Log_Pos: 1219
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
    Yes,        

データベースを新規作成し、テーブルを数枚作成して、スレーブライブラリに同期しているかどうかを確認し、同期すればOKです(スレーブライブラリに追加しないでください)
主な操作:
mysql> create database db_test_slave; 
mysql> use db_test_slave; 
mysql> create table tb_test(id int(3), name varchar(50)); 
mysql> insert into tb_test values(1,'hello slave'); 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_test_slave      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

操作から:
mysql> show databases; use db_test_slave; select * from tb_test;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_test_slave      |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

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
+------+-------------+
| id   | name        |
+------+-------------+
|    1 | hello slave |
+------+-------------+
1 row in set (0.00 sec)

5.デュアルマシンのホットスペアを実現
主従を構築するプロセスを逆に実行すればよい
1.サーバからの操作
mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

バックアップ専用アカウントの作成
mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backup'@'192.168.1.%' IDENTIFIED BY 'Backup@123';
#    :backup    : Backup@123    :192.168.1.0 ip  
mysql> flush privileges;
#    

2.メインサーバーの操作
CHANGE MASTER to MASTER_HOST="192.168.1.45",
MASTER_PORT=3306,
MASTER_user="backup",
MASTER_PASSWORD="Backup@123",
MASTER_LOG_FILE="mysql-bin.000002",
MASTER_LOG_POS=154;
start slave;
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.45
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 1053
               Relay_Log_File: mysql02-relay-bin.000002
                Relay_Log_Pos: 1219
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 

  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
    Yes,        

デュアルマシンホットスペアの構築が完了しました.
2つのmysqlデータベースは互いに主従しており、書き込み、読み取りが可能であり、データベースの高可用性を実現しています.