數(shù)據(jù)庫(kù)11總結(jié)2

  1. InnoDB 存儲(chǔ)引擎核心特性

5.1 種類
InnoDB
MyISAM
CSV
Memory

tokudb
myrocks

influxdb--->時(shí)序類數(shù)據(jù)庫(kù),數(shù)據(jù)不能手工刪除,只能設(shè)置自動(dòng)清理策略.

5.2 InnoDB 核心特性
事務(wù)
行鎖
熱備
MVCC
一致性hash
insert buffer
ACSR
聚簇索引
主從復(fù)制(GTID)
外鍵

5.3 事務(wù) ACID
A: 原子性.事務(wù)的最小工作單元,不可以被拆分.不能產(chǎn)生中間狀態(tài),要么全成功,要么全失敗.
UNDO(回滾)+REDO(前滾)
C: 一致性. 在一個(gè)事務(wù)更新邏輯中,不管是處于事務(wù)更新前,中,結(jié)束.
本事務(wù)中操作的數(shù)據(jù)都終將保證一致狀態(tài),不會(huì)受到其他事務(wù)影響.
AID+鎖+MVCC等機(jī)制都是對(duì)數(shù)據(jù)的最終一致起到關(guān)鍵作用
I: 隔離性 . 隔離級(jí)別+鎖+MVCC
D: 持久性. 一旦被提交成功的數(shù)據(jù),不管宕機(jī)與否,都不會(huì)導(dǎo)致事務(wù)的更新丟失.
Redo

5.4 Redo 和 UNDO

5.5 MVCC 多版本并發(fā)控制
利用的是UnDO的快照.InnoDB引擎中,維護(hù)著多個(gè)版本的UnDO快照.
多事務(wù)并發(fā)環(huán)境中,互相不影響.只要多事務(wù)之間更新的數(shù)據(jù)鎖不互相沖突.事務(wù)是可以并發(fā)執(zhí)行的.

特性:

  1. 在RR級(jí)別下的,一致性快照讀是由MVCC保證的.在同一個(gè)事務(wù)生命周期內(nèi),獲取的一定是同一個(gè)版本數(shù)據(jù).
  2. 對(duì)于讀操作,實(shí)現(xiàn)的是非鎖定快照讀. 讀的操作不加鎖.

5.6 隔離級(jí)別
RC : 事務(wù)并發(fā)讀會(huì)更高一些. 防止臟讀. 會(huì)出現(xiàn) 不可重復(fù)讀和幻讀
RR : 可以防止臟讀和不可重復(fù)讀(一致性快照讀.),配合GAP和Next-lock實(shí)現(xiàn)防止幻讀

5.7 鎖機(jī)制
RL
GL
NL
MDL ----> DDL DCL
TL ----> DDL DCL
FTWRL ---> 全局鎖 ----> XBK備份非InnoDB

IS
S select xxx from xxx lock in shared mode;
IX
X select xxx from xxx for update;

5.8 碎片整理
alter table t1 engine=innodb
Pt-archiver
optimize table t1;

5.8 表空間遷移

create table t1
alter table t1 discard tablespace
alter table t1 import tablespace

5.9 自適應(yīng)hash
加速索引讀取性能, 索引的索引

5.10 insert buffer
為了大量insert業(yè)務(wù)場(chǎng)景設(shè)計(jì).

  1. 日志管理

6.1 log_error
錯(cuò)誤 ----> [ERROR]
啟動(dòng)
宕機(jī)
主從

工作狀態(tài)

6.2 binlog 二進(jìn)制日志
如何截取二進(jìn)制日志
show master status ; ----> 正在使用的二進(jìn)制日志
show binlog events in 'xxxx' ----> 看事件
mysqlbinlog --start-position --stop-position xxxx.000009 > /backup/bin.sql
mysqlbinlog --include-gtids --exclude-gtids --skip-gtids > /backup/bin.sql

set sql_log_bin=0;
source
set sql_log_bin=1;

binlog_format :
SBR 語(yǔ)句模式
RBR 行模式
MBR 混合模式

滾動(dòng)
flush logs
重啟
MySQLadmin flush-logs
達(dá)到1G

備份時(shí)會(huì)應(yīng)用
binlog_server: mysqlbinlog

清理
expire_logs_days=15

參數(shù):
innodb_flush_log_at_trx_commit=1 ----> redo 刷寫策略
innodb_flush_method=O_direct
sync_binlog=1 ----> binlog 刷寫策略

6.3 slowlog
slow_query_log=1 # 慢日志開關(guān)
slow_query_log_file # 慢日志位置
long_query_time # 慢日志記錄條件(時(shí)間)
log_queries_not_using_indexes # 慢日志記錄條件(不走索引的)

mysqldumpslow
mysqlsla
pt-query-digest+Anemometer 圖形化展示慢日志

  1. 備份恢復(fù)
    7.1 mysqldump
    -A -B --master-data=2 --single-transaction --triggers -R -E --max_allowed_packet=64M

7.2 xbk
備份過(guò)程:
(1) ckpt,記錄LSN
(2) 備份innodb表
(3) 非InnoDB表,開啟FTWRL(Flush Tbales with read lock)全局讀鎖,拷貝文件,自動(dòng)解鎖
(4) 并將備份過(guò)程中redo日志進(jìn)行備份,記錄結(jié)束LSN
(5) 增量都是基于上次last_lsn,檢查所有變化的數(shù)據(jù)頁(yè)進(jìn)行備份
備份策略:
1. full+inc+binlog
2. full+binlog

恢復(fù)過(guò)程:
單獨(dú)全備:
1. prepare 全備 : --apply-log
2. cp
全備+增量:
1. prepare 基礎(chǔ)全備 : --apply-log --redo-only
2. 增量到基礎(chǔ)全備,prepare增量: --apply-log --redo-only
3. 最后增量到基礎(chǔ)全備,prepare增量: --apply-log
4. prepare 終極全備 : --apply-log
5. 恢復(fù)全備
This option should be used when preparing the base full
backup and when merging all incrementals except the last one.

  1. 主從復(fù)制
    8.1 主從復(fù)制搭建
    傳統(tǒng)
    gtid
    8.2 主從復(fù)制原理

8.3 主從監(jiān)控
show slave status\G

8.4 主從故障分析

8.5 主從延時(shí)

8.6 演變
延時(shí)從:
SQL線程延時(shí)一段時(shí)間,回放日志.
怎么用? 解決邏輯損壞.

半同步概念 :

過(guò)濾復(fù)制配置:

  1. MHA高可用
    9.1 搭建
    9.2 原理
    9.3 故障處理

  2. 高可用配合讀寫分離

  3. 分布式架構(gòu)-MyCat

  4. 優(yōu)化

  5. NoSQL

==========================================
MHA 故障環(huán)境修復(fù):

  1. 修復(fù)主從
    51/53節(jié)點(diǎn):
    mysql -S /tmp/mysql.sock -e "show slave status \G"|grep Running:

2.主庫(kù)修復(fù)vip
52節(jié)點(diǎn):
[root@db02 ~]# ifconfig eth0:1 10.0.0.55/24

說(shuō)明: 刪除vip?
ifconfig eth0:1 down

  1. 修復(fù)binlog_server
    53節(jié)點(diǎn):
    [root@db03 ~]# cd /data/mysql/binlog/
    [root@db03 /data/mysql/binlog]# rm -rf *
    [root@db03 /data/mysql/binlog]# mysqlbinlog -R --host=10.0.0.52 --user=mha --password=mha --raw --stop-never mysql-bin.000001 &

  2. 檢查配置文件
    53節(jié)點(diǎn):
    [root@db03 /data/mysql/binlog]# vim /etc/mha/app1.cnf

  3. 檢查SSH和主從
    53節(jié)點(diǎn):
    masterha_check_ssh --conf=/etc/mha/app1.cnf
    masterha_check_repl --conf=/etc/mha/app1.cnf

  4. 啟動(dòng)MHA
    53節(jié)點(diǎn):
    nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &

================================
讀寫分離

  1. 安裝
    略.
    2.配置
    2.1 軟件路徑
    [root@db03 ~]# cd /usr/local/mysql-proxy/
    [root@db03 /usr/local/mysql-proxy]# ll
    總用量 0
    drwxr-xr-x 2 root root 75 11月 26 16:54 bin
    drwxr-xr-x 2 root root 22 11月 26 16:54 conf
    drwxr-xr-x 3 root root 331 11月 26 16:54 lib
    drwxr-xr-x 2 root root 6 12月 17 2014 log
    [root@db03 /usr/local/mysql-proxy]#
    2.2 環(huán)境變量設(shè)置
    [root@db03 /usr/local/mysql-proxy]# vim /etc/profile
    export PATH=/usr/local/mysql-proxy/bin:$PATH

source /etc/profile

2.3 配置文件
[root@db03 /usr/local/mysql-proxy/conf]# cd /usr/local/mysql-proxy/conf
[root@db03 /usr/local/mysql-proxy/conf]# vim oldguo.cnf
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 10.0.0.55:3306
proxy-read-only-backend-addresses = 10.0.0.51:3306,10.0.0.53:3306
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8

2.4 啟動(dòng)atlas
mysql-proxyd oldguo start

2.5 測(cè)試讀寫分離
讀:
[root@db03 ~]# mysql -umha -pmha -h10.0.0.53 -P33060
db03 [(none)]>select @@server_id;

寫:
db03 [(none)]>begin;
db03 [(none)]>select @@server_id;
db03 [(none)]>commit;

  1. Atlas 的管理(在線)
    db03 [(none)]>select * from help;
    +----------------------------+---------------------------------------------------------+
    | command | description |
    +----------------------------+---------------------------------------------------------+
    | SELECT * FROM help | shows this help |
    | SELECT * FROM backends | lists the backends and their state |
    | SET OFFLINE backend_id | offline backend server,backend_id is backend_ndx's id |
    | SET ONLINE backend_id | online backend server, ... | | ADD MASTERbackend | example: "add master 127.0.0.1:3306", ... |
    | ADD SLAVE backend | example: "add slave 127.0.0.1:3306", ... | | REMOVE BACKENDbackend_id | example: "remove backend 1", ... |
    | SELECT * FROM clients | lists the clients |
    | ADD CLIENT client | example: "add client 192.168.1.2", ... | | REMOVE CLIENTclient | example: "remove client 192.168.1.2", ... |
    | SELECT * FROM pwds | lists the pwds |
    | ADD PWD pwd | example: "add pwd user:raw_password", ... | | ADD ENPWDpwd | example: "add enpwd user:encrypted_password", ... |
    | REMOVE PWD $pwd | example: "remove pwd user", ... |
    | SAVE CONFIG | save the backends to config file |
    | SELECT VERSION | display the version of Atlas |
    +----------------------------+---------------------------------------------------------+
    16 rows in set (0.00 sec)

3.1 幫助查看
SELECT * FROM help

3.2 查看后端節(jié)點(diǎn)
db03 [(none)]>SELECT * FROM backends ;
+-------------+----------------+-------+------+
| backend_ndx | address | state | type |
+-------------+----------------+-------+------+
| 1 | 10.0.0.55:3306 | up | rw |
| 2 | 10.0.0.51:3306 | up | ro |
| 3 | 10.0.0.53:3306 | up | ro |
+-------------+----------------+-------+------+
3 rows in set (0.00 sec)

3.3 在線offline/online一個(gè)節(jié)點(diǎn)
db03 [(none)]>SET OFFLINE 3;
+-------------+----------------+---------+------+
| backend_ndx | address | state | type |
+-------------+----------------+---------+------+
| 3 | 10.0.0.53:3306 | offline | ro |
+-------------+----------------+---------+------+
1 row in set (0.00 sec)

db03 [(none)]>SELECT * FROM backends ;
+-------------+----------------+---------+------+
| backend_ndx | address | state | type |
+-------------+----------------+---------+------+
| 1 | 10.0.0.55:3306 | up | rw |
| 2 | 10.0.0.51:3306 | up | ro |
| 3 | 10.0.0.53:3306 | offline | ro |
+-------------+----------------+---------+------+
3 rows in set (0.00 sec)

db03 [(none)]>
db03 [(none)]>SET ONLINE 3;
+-------------+----------------+---------+------+
| backend_ndx | address | state | type |
+-------------+----------------+---------+------+
| 3 | 10.0.0.53:3306 | unknown | ro |
+-------------+----------------+---------+------+
1 row in set (0.00 sec)

3.4 添加/刪除節(jié)點(diǎn)
REMOVE BACKEND 2;
REMOVE BACKEND 1;
ADD SLAVE 10.0.0.51:3306
ADD master 10.0.0.55:3306

3.5 開用戶
3.5.1. MySQL主庫(kù)建用戶,授權(quán)
db02 [(none)]>grant all on . to root@'localhost' identified by '123';

3.5.2. Atlas 添加用戶
ADD PWD root:123

3.6 永久保存配置到文件
db03 [(none)]>save config;

  1. MyCAT基礎(chǔ)架構(gòu)準(zhǔn)備
    2.1 環(huán)境準(zhǔn)備:
    兩臺(tái)虛擬機(jī) db01 db02
    每臺(tái)創(chuàng)建四個(gè)mysql實(shí)例:3307 3308 3309 3310
    2.2 刪除歷史環(huán)境:
    pkill mysqld
    rm -rf /data/330*
    mv /etc/my.cnf /etc/my.cnf.bak
    2.3 創(chuàng)建相關(guān)目錄初始化數(shù)據(jù)
    mkdir /data/33{07..10}/data -p
    mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql
    mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/usr/local/mysql
    mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/usr/local/mysql
    mysqld --initialize-insecure --user=mysql --datadir=/data/3310/data --basedir=/usr/local/mysql
    2.4 準(zhǔn)備配置文件和啟動(dòng)腳本
    ========db01==============
    cat >/data/3307/my.cnf<<EOF
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3307/data
    socket=/data/3307/mysql.sock
    port=3307
    log-error=/data/3307/mysql.log
    log_bin=/data/3307/mysql-bin
    binlog_format=row
    skip-name-resolve
    server-id=7
    gtid-mode=on
    enforce-gtid-consistency=true
    log-slave-updates=1
    EOF

cat >/data/3308/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log
log_bin=/data/3308/mysql-bin
binlog_format=row
skip-name-resolve
server-id=8
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3309/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
port=3309
log-error=/data/3309/mysql.log
log_bin=/data/3309/mysql-bin
binlog_format=row
skip-name-resolve
server-id=9
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
cat >/data/3310/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3310/data
socket=/data/3310/mysql.sock
port=3310
log-error=/data/3310/mysql.log
log_bin=/data/3310/mysql-bin
binlog_format=row
skip-name-resolve
server-id=10
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/etc/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld3310.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3310/my.cnf
LimitNOFILE = 5000
EOF
========db02===============
cat >/data/3307/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
port=3307
log-error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=row
skip-name-resolve
server-id=17
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
cat >/data/3308/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log
log_bin=/data/3308/mysql-bin
binlog_format=row
skip-name-resolve
server-id=18
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF
cat >/data/3309/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
port=3309
log-error=/data/3309/mysql.log
log_bin=/data/3309/mysql-bin
binlog_format=row
skip-name-resolve
server-id=19
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/data/3310/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3310/data
socket=/data/3310/mysql.sock
port=3310
log-error=/data/3310/mysql.log
log_bin=/data/3310/mysql-bin
binlog_format=row
skip-name-resolve
server-id=20
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
EOF

cat >/etc/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF

cat >/etc/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
cat >/etc/systemd/system/mysqld3310.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3310/my.cnf
LimitNOFILE = 5000
EOF
2.5 修改權(quán)限,啟動(dòng)多實(shí)例
chown -R mysql.mysql /data/*
systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309
systemctl start mysqld3310

mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'"
mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'"
mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"
mysql -S /data/3310/mysql.sock -e "show variables like 'server_id'"
2.6 節(jié)點(diǎn)主從規(guī)劃
箭頭指向誰(shuí)是主庫(kù)
10.0.0.51:3307 <-----> 10.0.0.52:3307
10.0.0.51:3309 ------> 10.0.0.51:3307
10.0.0.52:3309 ------> 10.0.0.52:3307

10.0.0.52:3308  <----->    10.0.0.51:3308
10.0.0.52:3310  ----->     10.0.0.52:3308
10.0.0.51:3310  ----->     10.0.0.51:3308

2.7 分片規(guī)劃
shard1:
Master:10.0.0.51:3307
slave1:10.0.0.51:3309
Standby Master:10.0.0.52:3307
slave2:10.0.0.52:3309
shard2:
Master:10.0.0.52:3308
slave1:10.0.0.52:3310
Standby Master:10.0.0.51:3308
slave2:10.0.0.51:3310
2.8 開始配置
shard1
10.0.0.51:3307 <-----> 10.0.0.52:3307
db02
mysql -S /data/3307/mysql.sock -e "grant replication slave on . to repl@'10.0.0.%' identified by '123';"
mysql -S /data/3307/mysql.sock -e "grant all on . to root@'10.0.0.%' identified by '123' with grant option;"
db01
mysql -S /data/3307/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3307/mysql.sock -e "start slave;"
mysql -S /data/3307/mysql.sock -e "show slave status\G"
db02
mysql -S /data/3307/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3307/mysql.sock -e "start slave;"
mysql -S /data/3307/mysql.sock -e "show slave status\G"
10.0.0.51:3309 ------> 10.0.0.51:3307
db01
mysql -S /data/3309/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3309/mysql.sock -e "start slave;"
mysql -S /data/3309/mysql.sock -e "show slave status\G"
10.0.0.52:3309 ------> 10.0.0.52:3307
db02
mysql -S /data/3309/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3307, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3309/mysql.sock -e "start slave;"
mysql -S /data/3309/mysql.sock -e "show slave status\G"
shard2
10.0.0.52:3308 <-----> 10.0.0.51:3308
db01
mysql -S /data/3308/mysql.sock -e "grant replication slave on . to repl@'10.0.0.%' identified by '123';"
mysql -S /data/3308/mysql.sock -e "grant all on . to root@'10.0.0.%' identified by '123' with grant option;"
db02
mysql -S /data/3308/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3308/mysql.sock -e "start slave;"
mysql -S /data/3308/mysql.sock -e "show slave status\G"
db01
mysql -S /data/3308/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3308/mysql.sock -e "start slave;"
mysql -S /data/3308/mysql.sock -e "show slave status\G"
10.0.0.52:3310 -----> 10.0.0.52:3308
db02
mysql -S /data/3310/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3310/mysql.sock -e "start slave;"
mysql -S /data/3310/mysql.sock -e "show slave status\G"
10.0.0.51:3310 -----> 10.0.0.51:3308
db01
mysql -S /data/3310/mysql.sock -e "CHANGE MASTER TO MASTER_HOST='10.0.0.51', MASTER_PORT=3308, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';"
mysql -S /data/3310/mysql.sock -e "start slave;"
mysql -S /data/3310/mysql.sock -e "show slave status\G"
2.9 檢測(cè)主從狀態(tài)
mysql -S /data/3307/mysql.sock -e "show slave status\G"|grep Yes
mysql -S /data/3308/mysql.sock -e "show slave status\G"|grep Yes
mysql -S /data/3309/mysql.sock -e "show slave status\G"|grep Yes
mysql -S /data/3310/mysql.sock -e "show slave status\G"|grep Yes
注:如果中間出現(xiàn)錯(cuò)誤,在每個(gè)節(jié)點(diǎn)進(jìn)行執(zhí)行以下命令
mysql -S /data/3307/mysql.sock -e "stop slave; reset slave all;"
mysql -S /data/3308/mysql.sock -e "stop slave; reset slave all;"
mysql -S /data/3309/mysql.sock -e "stop slave; reset slave all;"
mysql -S /data/3310/mysql.sock -e "stop slave; reset slave all;"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. MySQL體系結(jié)構(gòu)與管理 1.1 MySQL C/S結(jié)構(gòu)介紹 *** 兩種連接方式: TCP/IP:mysq...
    山有木兮_8adb閱讀 423評(píng)論 0 0
  • 1. 體系結(jié)構(gòu) 1.1 C/S(客戶端/服務(wù)端)模型介紹 TCP/IP方式(遠(yuǎn)程、本地): mysql -uroo...
    極光01閱讀 587評(píng)論 0 0
  • 1.MySQL C/S模型 Server : mysqldClient :socket : 僅本地連接使用tcp/...
    我要笑閱讀 426評(píng)論 0 1
  • 1.4 邏輯結(jié)構(gòu) 庫(kù) ---> 表 ----》數(shù)據(jù)行(記錄),字段(列),屬性(列屬性,列約束,列的數(shù)據(jù)類型等,表...
    張?chǎng)螡蒧2109閱讀 536評(píng)論 0 0
  • 奧尼爾揭離開湖人原因:一山難容二虎 摘要:奧尼爾在節(jié)目中表示2000-2001賽季的湖人是最好的總冠軍球隊(duì)。 虎撲...
    prudenceli閱讀 178評(píng)論 0 0

友情鏈接更多精彩內(nèi)容