環境:
192.168.205.17:マスターサーバーとして
192.168.205.27:スレーブサーバとして
バージョン:
OS:CentOSのは、ミニと7 1810はインストール
mariadb-5.5.60
目地:
データベースは、いくつかの時間のために実行されている場合、どのようにマスタースレーブレプリケーションを行います。
ステップ:
1. 配置主服务器
2. 备份主服务器
3. 配置主恢复从服务器
4. 测试
マスター192.168.205.17
- まず、MariaDBをインストール
[root@Master ~]#yum install mariadb-server
- データディレクトリとサブディレクトリのログを作成します。
[root@Master ~]#mkdir /data/{mysql,logs} [root@Master ~]#chown -R mysql:mysql /data/{mysql,logs}
- 設定ファイルを変更します。
[root@Master ~]#vi /etc/my.cnf [mysqld] server_id=17 #服务器ID必须唯一 datadir=/data/mysql #数据文件路径 log_bin=/data/logs/bin #日志文件路径 [root@Master ~]#systemctl restart mariadb
- 複製アカウントを確立し、このアカウントは、すべてのデータベースの同期のため、アカウントを持つメインサーバの同期へのサーバーからの接続で、それがあります。
MariaDB [(none)]> GRANT replication slave on *.* to repluser@'192.168.205.%' identified by 'centos';
- データベースのバックアップ、データベースがそのプライマリサーバのデータをバックアップするために、過去に以前のデータの同期を持っているために、いくつかの時間のために実行し、その後、--master-データ= 1から発現されたノードに返されるので、声明にバックアップSQLの変更マスタを有効にするノード上のデータを回復
[root@Master ~]#mysqldump -A --single-transaction --master-data=1 -F >/data/all.mysql
- スレーブサーバにバックアップファイルをコピーします。
[root@Master ~]#scp /data/all.mysql 192.168.205.27:/data/
サーバ192.168.205.27から
- MariaDBは、スレーブサーバにインストールされています
[root@slave ~]#yum install mariadb-server
- 設定ファイルを変更します。
[root@slave ~]#vi /etc/my.cnf [mysqld] datadir=/data/mysql read-only #只给slave数据只读权限,当然只能限制普通帐号 log-bin=/data/logs/bin server-id=27 #修改server-id一样和主不一样才行
- すべてのMySQLのデータを作成し、ファイルフォルダを記録し、所有者とグループを変更します
[root@slave ~]#mkdir /data/{mysql,logs} [root@slave ~]#chown mysql:mysql /data/{mysql,logs}
- スレーブサーバでバックアップファイルを開き、以下の内容を追加します
[root@salve data]#vi all.mysql CHANGE MASTER TO MASTER_HOST='192.168.205.17', MASTER_USER='repluser', MASTER_PASSWORD='centos', MASTER_LOG_FILE='bin.000005', MASTER_LOG_POS=245;
- サービスを開始
[root@slave ~]#systemctl restart mariadb
- 元のデータベースを復元するダイレクト
[ルート@スレーブ〜] #mysql </data/all.mysql
- そして、接続mariaDBのステータスを表示
[root@slave ~]#mysql MariaDB [(none)]> show variables like 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 27 | +---------------+-------+ 1 row in set (0.00 sec) MariaDB [(none)]> show variables like 'read_only'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | read_only | ON | +---------------+-------+ 1 row in set (0.00 sec) MariaDB [(none)]> show slave status\G ... Slave_IO_Running: No Slave_SQL_Running: No ...
- スレーブI / OスレッドとスレーブSQLスレッドスレッドとビューのステータスを開始
MariaDB [(none)]> start slave; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> show slave status\G Slave_IO_State: Waiting for master to send event Master_Host: 192.168.205.17 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: bin.000005 Read_Master_Log_Pos: 402 Relay_Log_File: mariadb-relay-bin.000003 Relay_Log_Pos: 523 Relay_Master_Log_File: bin.000005 Slave_IO_Running: Yes Slave_SQL_Running: Yes
- データベースの同期を超えるかどうかをチェックします
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | hellodb | | mysql | | performance_schema | | test | | zhaoli | +--------------------+ 6 rows in set (0.00 sec)
- ビューのネットワーク接続は、プライマリサーバ3306に接続されています
[root@slave data]#ss -nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 96 192.168.205.27:22 192.168.205.1:17526 ESTAB 0 0 192.168.205.27:56360 192.168.205.17:3306
テスト
- プライマリ・サーバ、データベース、およびデータベース同期試験で
MariaDB [(なし)]>データベースDB1を作成し、
影響を受けOK ,. 1行(0.00秒)クエリ - 観点からのNOデータベースサーバーのDB1はありません
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | db1 | | hellodb | | mysql | | performance_schema | | test | | zhaoli | +--------------------+ 7 rows in set (0.00 sec)