不需要停服務(wù)。我現(xiàn)在隔三差五刪一次。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)駐馬店免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
先show master status;再show slave status;看下雙方的同步的日志,是不是一致的,一致的說明,該同步的都同步了,日志沒用了。
然后你刪的時候,保險起見,保留2天的。
使用這個命令:
purge master logs before date_sub(current_date,interval 2 day); // 刪除兩天前的一直主從同步日志
mysql雙機熱備實現(xiàn)原理分析,在本文經(jīng)過深思熟慮和多次用不同的方式實測試后。最后在這篇文章中,用一個小例子來完成mysql雙機熱備的實現(xiàn)。
Mysql數(shù)據(jù)庫沒有增量備份的機制,當數(shù)據(jù)量太大的時候備份是一個很大的問題。還好mysql數(shù)據(jù)庫提供了一種主從備份的機制,其實就是把主數(shù)據(jù)庫的所有的數(shù)據(jù)同時寫到備份的數(shù)據(jù)庫中。實現(xiàn)mysql數(shù)據(jù)庫的熱備份。
要想實現(xiàn)雙機的熱備,首先要了解主從數(shù)據(jù)庫服務(wù)器的版本的需求。要實現(xiàn)熱備mysql的版本都高于3.2。還有一個基本的原則就是作為從數(shù)據(jù)庫的數(shù)據(jù)版本可以高于主服務(wù)器數(shù)據(jù)庫的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫版本。
當然要實現(xiàn)mysql雙機熱備,除了mysql本身自帶的REPLICATION功能可以實現(xiàn)外,也可以用Heartbeat這個開源軟件來實現(xiàn)。不過本文主要還是講如何用mysql自帶的REPLICATION來實現(xiàn)mysql雙機熱備的功能。
1. 準備服務(wù)器
由于Mysql不同版本之間的(二進制日志)binlog格式可能會不太一樣,因此最好的搭配組合是主(Master)服務(wù)器的Mysql版本和從(Slave)服務(wù)器版本相同或者更低,主服務(wù)器的版本肯定不能高于從服務(wù)器版本。
本次我用于測試的兩臺服務(wù)器版本都是Mysql-5.5.17。
2. Mysql 建立主-從服務(wù)器雙機熱備配置步驟
2.1環(huán)境描述
A服務(wù)器(主服務(wù)器Master):59.151.15.36
B服務(wù)器(從服務(wù)器Slave):218.206.70.146
主從服務(wù)器的Mysql版本皆為5.5.17
Linux環(huán)境下
將主服務(wù)器需要同步的數(shù)據(jù)庫內(nèi)容進行備份一份,上傳到從服務(wù)器上,保證始初時兩服務(wù)器中數(shù)據(jù)庫內(nèi)容一致。
不過這里說明下,由于我是利用Mysql在安裝后就有的數(shù)據(jù)庫test進行測試的,所以兩臺服務(wù)器里面是沒有建立表的,只不分別在test里面建立了同樣的一張空表tb_mobile;
Sql語句如下:
mysql create table tb_mobile( mobile VARCHAR(20) comment'手機號碼', time timestamp DEFAULT now() comment'時間' );
2.2 主服務(wù)器Master配置
2.2.1 創(chuàng)建同步用戶
進入mysql操作界面,在主服務(wù)器上為從服務(wù)器建立一個連接帳戶,該帳戶必須授予REPLICATION SLAVE權(quán)限。因為從mysql版本3.2以后就可以通過REPLICATION對其進行雙機熱備的功能操作。
操作指令如下:
mysql grant replication slave on *.* to 'replicate'@'218.206.70.146' identified by '123456';
mysql flush privileges;
創(chuàng)建好同步連接帳戶后,我們可以通過在從服務(wù)器(Slave)上用replicat帳戶對主服務(wù)器(Master)數(shù)據(jù)庫進行訪問下,看下是否能連接成功。
在從服務(wù)器(Slave)上輸入如下指令:
[root@YD146 ~]# mysql -h59.151.15.36 -ureplicate -p123456
如果出現(xiàn)下面的結(jié)果,則表示能登錄成功,說明可以對這兩臺服務(wù)器進行雙機熱備進行操作。
2.2.2 修改mysql配置文件
如果上面的準備工作做好,那邊我們就可以進行對mysql配置文件進行修改了,首先找到mysql配置所有在目錄,一般在安裝好mysql服務(wù)后,都會將配置文件復(fù)制一一份出來放到/ect目錄下面,并且配置文件命名為:my.cnf。即配置文件準確目錄為/etc/my.cnf
(Linux下用rpm包安裝的MySQL是不會安裝/etc/my.cnf文件的,
至于為什么沒有這個文件而MySQL卻也能正常啟動和作用,在點有兩個說法,
第一種說法,my.cnf只是MySQL啟動時的一個參數(shù)文件,可以沒有它,這時MySQL會用內(nèi)置的默認參數(shù)啟動,
第二種說法,MySQL在啟動時自動使用/usr/share/mysql目錄下的my-medium.cnf文件,這種說法僅限于rpm包安裝的MySQL,
解決方法,只需要復(fù)制一個/usr/share/mysql目錄下的my-medium.cnf文件到/etc目錄,并改名為my.cnf即可。)
找到配置文件my.cnf打開后,在[mysqld]下修改即可:
[mysqld]
server-id = 1
log-bin=mysql-bin //其中這兩行是本來就有的,可以不用動,添加下面兩行即可
binlog-do-db = test
binlog-ignore-db = mysql
2.2.3 重啟mysql服務(wù)
修改完配置文件后,保存后,重啟一下mysql服務(wù),如果成功則沒問題。
2.2.4 查看主服務(wù)器狀態(tài)
進入mysql服務(wù)后,可通過指令查看Master狀態(tài),輸入如下指令:
注意看里面的參數(shù),特別前面兩個File和Position,在從服務(wù)器(Slave)配置主從關(guān)系會有用到的。
注:這里使用了鎖表,目的是為了產(chǎn)生環(huán)境中不讓進新的數(shù)據(jù),好讓從服務(wù)器定位同步位置,初次同步完成后,記得解鎖。
2.3 從服務(wù)器Slave配置
2.3.1修改配置文件
因為這里面是以主-從方式實現(xiàn)mysql雙機熱備的,所以在從服務(wù)器就不用在建立同步帳戶了,直接打開配置文件my.cnf進行修改即可,道理還是同修改主服務(wù)器上的一樣,只不過需要修改的參數(shù)不一樣而已。如下:
[mysqld]
server-id = 2
log-bin=mysql-bin
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema
2.3.2重啟mysql服務(wù)
修改完配置文件后,保存后,重啟一下mysql服務(wù),如果成功則沒問題。
2.3.3用change mster 語句指定同步位置
這步是最關(guān)鍵的一步了,在進入mysql操作界面后,輸入如下指令:
mysqlstop slave; //先停步slave服務(wù)線程,這個是很重要的,如果不這樣做會造成以下操作不成功。
mysqlchange master to
master_host='59.151.15.36',master_user='replicate',master_password='123456',
master_log_file=' mysql-bin.000016 ',master_log_pos=107;
注:master_log_file, master_log_pos由主服務(wù)器(Master)查出的狀態(tài)值中確定。也就是剛剛叫注意的。master_log_file對應(yīng)File, master_log_pos對應(yīng)Position。Mysql 5.x以上版本已經(jīng)不支持在配置文件中指定主服務(wù)器相關(guān)選項。
遇到的問題,如果按上面步驟之后還出現(xiàn)如下情況:
則要重新設(shè)置slave。指令如下
mysqlstop slave;
mysqlreset slave;
之后停止slave線程重新開始。成功后,則可以開啟slave線程了。
mysqlstart slave;
2.3.4查看從服務(wù)器(Slave)狀態(tài)
用如下指令進行查看
mysql show slave status\G;
查看下面兩項值均為Yes,即表示設(shè)置從服務(wù)器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
2.4 測試同步
之前開始已經(jīng)說過了在數(shù)據(jù)庫test只有一個表tb_mobile沒有數(shù)據(jù),我們可以先查看下兩服務(wù)器的數(shù)據(jù)庫是否有數(shù)據(jù):
Master:59.151.15.36
Slave:218.206.70.146
好了,現(xiàn)在可以在Master服務(wù)器中插入數(shù)據(jù)看下是否能同步。
Master:59.151.15.36
Slave:218.206.70.146
可以從上面兩個截圖上看出,在Master服務(wù)器上進行插入的數(shù)據(jù)在Slave服務(wù)器可以查到,這就表示雙機熱備配置成功了。
3. Mysql 建立主-主服務(wù)器雙機熱備配置步驟
服務(wù)器還是用回現(xiàn)在這兩臺服務(wù)器
3.1創(chuàng)建同步用戶
同時在主從服務(wù)器建立一個連接帳戶,該帳戶必須授予REPLIATION SLAVE權(quán)限。這里因為服務(wù)器A和服務(wù)器B互為主從,所以都要分別建立一個同步用戶。
服務(wù)器A:
mysql grant replication slave on *.* to 'replicate'@'218.206.70.146' identified by '123456';
mysql flush privileges;
服務(wù)器B:
mysql grant replication slave on *.* to 'replicate'@'59.151.15.36' identified by '123456';
mysql flush privileges;
3.2修改配置文件my.cnf
服務(wù)器A
[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db = mysql
#主-主形式需要多添加的部分
log-slave-updates
sync_binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
replicate-do-db = test
replicate-ignore-db = mysql,information_schema
服務(wù)器B:
[mysqld]
server-id = 2
log-bin=mysql-bin
master-slave need
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema
#主-主形式需要多添加的部分
binlog-do-db = test
binlog-ignore-db = mysql
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
3.3分別重啟A服務(wù)器和B服務(wù)器上的mysql服務(wù)
重啟服務(wù)器方式和上面的一樣,這里就不做講解了。
3.4分別查A服務(wù)器和B服務(wù)器作為主服務(wù)器的狀態(tài)
服務(wù)器A:
服務(wù)器B:
3.5分別在A服務(wù)器和B服務(wù)器上用change master to 指定同步位置
服務(wù)器A:
mysqlchange master to
master_host='218.206.70.146',master_user='replicate',master_password='123456',
master_log_file=' mysql-bin.000011 ',master_log_pos=497;
服務(wù)器B:
mysqlchange master to
master_host='59.151.15.36',master_user='replicate',master_password='123456',
master_log_file=' mysql-bin.000016 ',master_log_pos=107;
3.6 分別在A和B服務(wù)器上重啟從服務(wù)線程
mysqlstart slave;
3.7 分別在A和B服務(wù)器上查看從服務(wù)器狀態(tài)
mysqlshow slave status\G;
查看下面兩項值均為Yes,即表示設(shè)置從服務(wù)器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3.8 測試主-主同步例子
測試服務(wù)器A:
在服務(wù)器A上插入一條語句如下圖所示:
之后在服務(wù)器B上查看是否同步如下圖所示:
測試服務(wù)器B:
在服務(wù)器B上插入一條語句如下圖所示:
然后在從服務(wù)器A上查看是否有同步數(shù)據(jù)如下圖所示:
最后從結(jié)果可以看出主-主形式的雙機熱備是能成功實現(xiàn)的。
4. 配置參數(shù)說明
Server-id
ID值唯一的標識了復(fù)制群集中的主從服務(wù)器,因此它們必須各不相同。Master_id必須為1到232-1之間的一個正整數(shù)值,slave_id值必須為2到232-1之間的一個正整數(shù)值。
Log-bin
表示打開binlog,打開該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提。
Binlog-do-db
表示需要記錄二進制日志的數(shù)據(jù)庫。如果有多個數(shù)據(jù)可以用逗號分隔,或者使用多個binlog-do-dg選項。
Binglog-ingore-db
表示不需要記錄二進制日志的數(shù)據(jù)庫,如果有多個數(shù)據(jù)庫可用逗號分隔,或者使用多binglog-ignore-db選項。
Replicate-do-db
表示需要同步的數(shù)據(jù)庫,如果有多個數(shù)據(jù)可用逗號分隔,或者使用多個replicate-do-db選項。
Replicate-ignore-db
表示不需要同步的數(shù)據(jù)庫,如果有多個數(shù)據(jù)庫可用逗號分隔,或者使用多個replicate-ignore-db選項。
Master-connect-retry
master-connect-retry=n表示從服務(wù)器與主服務(wù)器的連接沒有成功,則等待n秒(s)后再進行管理方式(默認設(shè)置是60s)。如果從服務(wù)器存在mater.info文件,它將忽略些選項。
Log-slave-updates
配置從庫上的更新操作是否寫入二進制文件,如果這臺從庫,還要做其他從庫的主庫,那么就需要打這個參數(shù),以便從庫的從庫能夠進行日志同步。
Slave-skip-errors
在復(fù)制過程,由于各種原因?qū)е耣inglo中的sql出錯,默認情況下,從庫會停止復(fù)制,要用戶介入??梢栽O(shè)置slave-skip-errors來定義錯誤號,如果復(fù)制過程中遇到的錯誤是定義的錯誤號,便可以路過。如果從庫是用來做備份,設(shè)置這個參數(shù)會存在數(shù)據(jù)不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。
Sync_binlog=1 Or N
Sync_binlog的默認值是0,這種模式下,MySQL不會同步到磁盤中去。這樣的話,Mysql依賴操作系統(tǒng)來刷新二進制日志binary log,就像操作系統(tǒng)刷新其他文件的機制一樣。因此如果操作系統(tǒng)或機器(不僅僅是Mysql服務(wù)器)崩潰,有可能binlog中最后的語句丟失了。要想防止這種情況,可以使用sync_binlog全局變量,使binlog在每N次binlog寫入后與硬盤同步。當sync_binlog變量設(shè)置為1是最安全的,因為在crash崩潰的情況下,你的二進制日志binary log只有可能丟失最多一個語句或者一個事務(wù)。但是,這也是最慢的一種方式(除非磁盤有使用帶蓄電池后備電源的緩存cache,使得同步到磁盤的操作非??欤?。
即使sync_binlog設(shè)置為1,出現(xiàn)崩潰時,也有可能表內(nèi)容和binlog內(nèi)容之間存在不一致性。如果使用InnoDB表,Mysql服務(wù)器處理COMMIT語句,它將整個事務(wù)寫入binlog并將事務(wù)提交到InnoDB中。如果在兩次操作之間出現(xiàn)崩潰,重啟時,事務(wù)被InnoDB回滾,但仍然存在binlog中??梢杂?innodb-safe-binlog選項來增加InnoDB表內(nèi)容和binlog之間的一致性。(注釋:在Mysql 5.1版本中不需要-innodb-safe-binlog;由于引入了XA事務(wù)支持,該選項作廢了),該選項可以提供更大程度的安全,使每個事務(wù)的binlog(sync_binlog=1)和(默認情況為真)InnoDB日志與硬盤同步,該選項的效果是崩潰后重啟時,在滾回事務(wù)后,Mysql服務(wù)器從binlog剪切回滾的InnoDB事務(wù)。這樣可以確保binlog反饋InnoDB表的確切數(shù)據(jù)等,并使從服務(wù)器保持與主服務(wù)器保持同步(不接收回滾的語句)。
Auto_increment_offset和Auto_increment_increment
Auto_increment_increment和auto_increment_offset用于主-主服務(wù)器(master-to-master)復(fù)制,并可以用來控制AUTO_INCREMENT列的操作。兩個變量均可以設(shè)置為全局或局部變量,并且假定每個值都可以為1到65,535之間的整數(shù)值。將其中一個變量設(shè)置為0會使該變量為1。
這兩個變量影響AUTO_INCREMENT列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset確定AUTO_INCREMENT列值的起點。
如果auto_increment_offset的值大于auto_increment_increment的值,則auto_increment_offset的值被忽略。例如:表內(nèi)已有一些數(shù)據(jù),就會用現(xiàn)在已有的最大自增值做為初始值。
1.1 環(huán)境搭建
準備兩臺Windows NT 主機,分別安裝好iKEY Server windows 版本,確定版本無誤,確保mysql服務(wù)正常啟動,確保兩臺主機處于同一個局域網(wǎng)中,確定好哪臺做為主、備機器,假設(shè)A為主機,B為備機,假設(shè)A主機IP地址為:192.168.1.101,B主機IP地址為192.168.1.102
1.2 創(chuàng)建同步帳戶
分別在A、B節(jié)點上登陸mysql 數(shù)據(jù)庫,創(chuàng)建同步帳戶并賦予同步權(quán)限,如下:
A節(jié)點操作:
運行cmd, cd進入iKEY版本安裝目錄下的iKEY\mysql\bin下,然后執(zhí)行mysql –uroot –p123456 登陸mysql數(shù)據(jù)庫執(zhí)行:
mysqlGRANT REPLICATION SLAVE ON *.* TO "yw[j1] "@"192.168.1.10[j2] 2" IDENTIFIED BY 'ym[j3] ';
mysqlflush privileges;
B節(jié)點操作步驟如上,權(quán)限賦予如下:
mysqlGRANT REPLICATION SLAVE ON *.* TO "yw[j4] "@"192.168.1.10[j5] 1" IDENTIFIED BY 'ym[j6] ';
mysqlflush privileges;
執(zhí)行以上操作后,運行net stop mysql, 分別停止兩節(jié)點數(shù)據(jù)庫.
1.3 配置數(shù)據(jù)同步選項
1.3.1 A主機操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_master.cnf配置文件,在A主機上將my_master.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,以下介紹my.cnf做的修改之處:
log-bin=mysql-bin #同步事件的日志記錄文件
binlog-do-db=ikey_db #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志
binlog-do-db=ikey_log #提供數(shù)據(jù)同步服務(wù)的數(shù)據(jù)庫日志
server-id=1
master-host=192.168.1.102 #主機B的IP地址
master-user=ym #同步帳戶
master-password=ym #同步帳戶密碼
master-port=3306 #端口,主機的MYSQL端口
master-connect-retry=60 #重試間隔60秒
replicate-do-db=ikey_db #同步的數(shù)據(jù)庫
replicate-do-db=ikey_log #同步的數(shù)據(jù)庫
1.3.2 B主機操作
安裝好的iKEY Server windows 版本后,會在安裝目錄下的iKEY\mysql\backup文件夾下生成一個my_slave.cnf配置文件,在B備機上將my_slave.cnf 文件復(fù)制到安裝目錄下的iKEY\mysql\bin文件夾下,并重命名為my.cnf,重命名之前請先備份原有my.cnf文件,修改之處同A主機,不同配置在于以下:
server-id=2
master-host=192.168.1.101 #主機A的地址
以上需要注意的地方是,要定義master-host的主機IP地址,請根據(jù)實際情況進行修改。
請確保以上同步用戶、主機IP、和同步帳戶密碼與所設(shè)配置相同.
1.3.3 驗證數(shù)據(jù)同步
當以上配置完畢后,分別重新啟動主機A和備機B數(shù)據(jù)庫,運行net start mysql,
查看同步配置情況,登陸mysql 數(shù)據(jù)庫。
在A節(jié)點上查看Master 信息:
mysql show master status;
+------------------+----------+------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+------------------+------------------+
| mysql-bin.000001 | 98 | ikey_db,ikey_log | |
+------------------+----------+------------------+------------------+
1 row in set (0.00 sec)
在B節(jié)點上查看Slave信息:
mysql show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.101
Master_User: ym
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: testBBB-relay-bin.000002
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: ikey_db,ikey_log
通過在B節(jié)點上查看同步狀態(tài),我們可以清楚的看到所設(shè)置的同步配置信息以及當前同步狀態(tài)。
同樣可以在B節(jié)點上查看master 信息以及在A節(jié)點上查看slave 信息。
添加數(shù)據(jù)在A主機上,同時測試B備機上數(shù)據(jù)是否同步,以及反向測試。
1.4 同步維護
當需要更改節(jié)點IP 時,Mysql 同步配置也需要進行相應(yīng)修改,在更改節(jié)點IP之前,我們先做如下操作:
分別在A、B節(jié)點上執(zhí)行mysql stop slave; 停止當前同步狀態(tài)。
假如此時A 節(jié)點IP 改為192.168.1.103,需要做如下操作:
1.4.1 A節(jié)點:
mysql show master status;
+------------------+----------+------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+------------------+------------------+
| mysql-bin.000002 | 118 | ikey_db,ikey_log | |
+------------------+----------+------------------+------------------+
1 row in set (0.00 sec)
1.4.2 B節(jié)點:
更改B--àA方向同步的帳戶權(quán)限
mysqlshow grants for ym@192.168.1.101(原A節(jié)點IP);
查看到原賦予從192.168.1.101 連接的權(quán)限,此時我們刪除此同步帳戶,并重新賦予192.168.1.103 連接的權(quán)限,如下:
mysqldrop user ym@192.168.1.101;
mysqlflush privileges;
mysqlgrant replication slave on *.* to ym@192.168.1.103 identified by 'ym';
mysqlflush privileges;
然后修改A-àB方向同步配置項:
mysqlCHANGE MASTER TO
- MASTER_HOST='192.168.1.103', # Master服務(wù)器地址
- MASTER_USER='ym',
-MASTER_PASSWORD='ym', - -MASTER_LOG_FILE='mysql-bin.000002', # 剛才我們記錄A節(jié)點數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。
- MASTER_LOG_POS=118; #剛才記錄的A節(jié)點數(shù)據(jù)庫要復(fù)制的日志文件位置。
Query OK, 0 rows affected (0.02 sec)
同時需要查看此時B節(jié)點的Master信息,同步LOG日志及POS位置
mysql show master status;
+------------------+----------+------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+------------------+------------------+
| mysql-bin.000003 | 98 | ikey_db,ikey_log | |
+------------------+----------+------------------+------------------+
1 row in set (0.00 sec)
同時請修改B節(jié)點mysql主配置文件中
master-host=192.168.1.103 #主機A的IP地址
1.4.3 接著A節(jié)點:
修改B-àA方向同步配置項:
mysqlCHANGE MASTER TO
-MASTER_LOG_FILE='mysql-bin.000003', # 剛才我們記錄B節(jié)點數(shù)據(jù)庫要執(zhí)行復(fù)制的日志文件。
- MASTER_LOG_POS=98; #剛才記錄的B節(jié)點數(shù)據(jù)庫要復(fù)制的日志文件位置。
Query OK, 0 rows affected (0.02 sec)
然后針對A、B節(jié)點啟動同步狀態(tài),分別運行start slave; 然后查看同步狀態(tài),確保在每臺機器上查看show slave status;得出
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即處于正常同步狀態(tài)。
以上是針對單節(jié)點IP修改所做的操作,如果A、B節(jié)點IP 都需要修改,參考以上配置進行操作,最好先針對單個節(jié)點IP 進行修改,并確保單向同步?jīng)]有問題后,再進行第二個節(jié)點IP修改以及配置。
mysql從3.23.15版本以后提供數(shù)據(jù)庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能。
mysql從3.23.15版本以后提供數(shù)據(jù)庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能。
數(shù)據(jù)庫同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn)。mysql的配置文件(一般是my.cnf)
在unix環(huán)境下在/etc/mysql/my.cnf
或者在mysql用戶的home目錄下面的my.cnf。
window環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件。當運行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf
命名為mycnf.bak。并在winnt目錄下創(chuàng)建my.ini。mysql服務(wù)器啟動時候會讀該配置文件。所以可以把my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為mysql服務(wù)器的配置文件。
設(shè)置方法:
設(shè)置范例環(huán)境:
操作系統(tǒng):window2000
professional
mysql:4.0.4-beta-max-nt-log
A
ip:10.10.10.22
B
ip:10.10.10.53
A:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT
FILE
ON
*.*
TO
backup@''10.10.10.53''
IDENTIFIED
BY
‘1234’
2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:
create
database
backup
B:設(shè)置
1.增加一個用戶最為同步的用戶帳號:
GRANT
FILE
ON
*.*
TO
backup@''10.10.10.22''
IDENTIFIED
BY
‘1234’
2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:
create
database
backup
主從模式:A-B
A為master
修改A
mysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=1
log-bin
#設(shè)置需要記錄log
可以設(shè)置log-bin=c:mysqlbakmysqllog
設(shè)置日志文件的目錄,
#其中mysqllog是日志文件的名稱,mysql將建立不同擴展名,文件名為mysqllog的幾個日志文件。
binlog-do-db=backup
#指定需要日志的數(shù)據(jù)庫
重起數(shù)據(jù)庫服務(wù)。
用show
master
status
命令看日志情況。
B為slave
修改B
mysql的my.ini文件。在mysqld配置項中加入下面配置:
server-id=2
master-host=10.10.10.22
master-user=backup
#同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60
預(yù)設(shè)重試間隔60秒
replicate-do-db=backup
告訴slave只做backup數(shù)據(jù)庫的更新
重起數(shù)據(jù)庫
用show
slave
status看同步配置情況。
注意:由于設(shè)置了slave的配置信息,mysql在數(shù)據(jù)庫目錄下生成master.info
所以如有要修改相關(guān)slave的配置要先刪除該文件。否則修改的配置不能生效。
雙機互備模式。
如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B-A的同步。
在A的配置文件中
mysqld
配置項加入以下設(shè)置:
master-host=10.10.10.53
master-user=backup
master-password=1234
replicate-do-db=backup
master-connect-retry=10
在B的配置文件中
mysqld
配置項加入以下設(shè)置:
log-bin=c:mysqllogmysqllog
binlog-do-db=backup
注意:當有錯誤產(chǎn)生時*.err日志文件。同步的線程退出,當糾正錯誤后要讓同步機制進行工作,運行slave
start
重起AB機器,則可以實現(xiàn)雙向的熱備。
測試:
向B批量插入大數(shù)據(jù)量表AA(1872000)條
A數(shù)據(jù)庫每秒鐘可以更新2500條數(shù)據(jù)。
當前標題:mysql雙機怎么取消 mysql雙機熱備份
標題URL:http://m.rwnh.cn/article38/hpjepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、小程序開發(fā)、定制網(wǎng)站、企業(yè)建站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)