測驗環境:
主節點:81.69.247.195
從節點:124.71.182.20
linux:centos6.5
主:
1.
編輯 vim /etc/my.cnf
添加:log-bin = mysql-bin
添加 :server-id =1
添加:innodb-file-per-table =ON
添加:skip_name_resolve=ON
2.
重啟mysql:service mysqld restart
3.進入mysql:mysql -u root -p
4.查看二進制資訊:
show global variables like '%log%';
5.查看主節點二進制日志串列
show master logs;
6.查看主節點的server id
show global variables like '%server%';
7.在主節點上創建有復制權限的用戶,REPLIACTION SLAVE ,REOPLIATION CLIENT
grant replication slave,replication client on *.* to 'admin'@'124.71.182.20' identified by '123456';
8.重繪
flush privileges;
從:
1.
編輯 vim /etc/my.cnf
添加:relay-log=relay-log
添加:relay-log-index=relay-log.index
添加:server-id=2
添加:innodb_file_per_table=ON
添加:skip_name_resolve=ON
2.重啟mysql:service mysqld restart
3.進入mysql:mysql -u root -p
4.查看二進制資訊是否開啟:
show global variables like '%log%';
5.產看server 相關資訊
show global variables like '%server%';
6.在從節點配置訪問主節點的引數資訊
添加 主節點主機,訪問主節點的用戶名及密碼,主節點二進制檔案資訊,
注意:主節點的二進制檔案一定要是二進制串列中的最后一個二進制檔案,
CHANGE MASTER TO MASTER_HOST='81.69.247.195',MASTER_USER='admin',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=430;
7.因為沒有啟動 從節點的復制執行緒,IO執行緒 和 SQL 執行緒都為NO.
show slave status\g;
啟動:start slave;
測驗:
在主上創建資料庫并查看二進制資訊:
create database test charset 'utf8';
show master status;
在從節點查找二進制日志資訊,并查看mydb資料庫是否復制成功
show slave status\G;
基本命令:
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
show slave status\G
主從復制架構中應注意的問題:
從節點要設定某些限定使得它不能進行寫操作,才能保證復制當中的資料一致,
1:限制從服務器為只讀
在從服務器上設定:
read_only = ON,但是此限制對擁有SUPER權限 的用戶均無效,
阻止所有用戶:
mysq>FLUSH TABLES WITH READ LOCK;
2:如何保證主從復制時的事物安全?
1:在主節點設定引數
sync_binlog=1: Mysql開啟bin-log日志使用bin-log時,默認情況下,并不是每次執行寫入就與硬碟同步,這樣在服務器崩潰時,就可能導致bin-log最后的陳述句丟失,可以通過這個引數來調節,sync_binlog=N,使執行N次寫入后,與硬碟同步,1是最安全的,但是也是最慢的,
如果用到innode 存盤引擎:
innodb_flush_logs_at_trx_commit=ON(刷寫日志:在事務提交時,要將記憶體中跟事務相關的資料立即刷寫到事務日志中去,)
innodb_support_xa=ON (分布式事務:基于它來做兩段式提交功能)
sync_master_info=1:每次給從節點dump一些事件資訊之后,主節點的master info 資訊會立即同步到磁盤上,讓從服務器中的 master_info 及時更新,
2:在每個slave節點
skip_slave_start =ON (跳過自動啟動,使用手動啟動,)
relay_log也會在內從中先快取,然后在同步到relay_log中去,可以使用下面引數使其立即同步,
sync_relay_log =1 ,默認為10000,即每10000次sync_relay_log事件會重繪到磁盤,為0則表示不重繪,交由OS的cache控制,
sync_relay_log_info=1每間隔多少事務重繪relay-log.info,如果是table(innodb)設定無效,每個事務都會更新
注: 在從節點中 master.info是記錄在主節點復制位置的檔案,
relylog_info: 本地將來至于主節點的哪一個二進制檔案中position并且保存文本地哪一個中繼日志中的哪一個postion. 從節點啟動時也需要根據relay-log.info定位本地relay-log.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/216158.html
標籤:其他
上一篇:已經有dll檔案,報錯:“缺少XXXXX.dll 無法繼續執行代碼。重新安裝程式可能會解決此問題”解決方案
下一篇:MySql常用SQL陳述句
