• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 億恩科技有限公司旗下門(mén)戶(hù)資訊平臺(tái)!
    服務(wù)器租用 4元建網(wǎng)站

    不停止MySQL服務(wù)增加從庫(kù)的兩種方式

    現(xiàn)在生產(chǎn)環(huán)境MySQL數(shù)據(jù)庫(kù)是一主一從,由于業(yè)務(wù)量訪(fǎng)問(wèn)不斷增大,故再增加一臺(tái)從庫(kù)。前提是不能影響線(xiàn)上業(yè)務(wù)使用,也就是說(shuō)不能重啟MySQL服務(wù),為了避免出現(xiàn)其他情況,選擇在網(wǎng)站訪(fǎng)問(wèn)量低峰期時(shí)間段操作。
    不停止MySQL服務(wù)增加從庫(kù)的兩種方式
    現(xiàn)在生產(chǎn)環(huán)境MySQL數(shù)據(jù)庫(kù)是一主一從,由于業(yè)務(wù)量訪(fǎng)問(wèn)不斷增大,故再增加一臺(tái)從庫(kù)。前提是不能影響線(xiàn)上業(yè)務(wù)使用,也就是說(shuō)不能重啟MySQL服務(wù),為了避免出現(xiàn)其他情況,選擇在網(wǎng)站訪(fǎng)問(wèn)量低峰期時(shí)間段操作。

    一般在線(xiàn)增加從庫(kù)有兩種方式,一種是通過(guò)mysqldump備份主庫(kù),恢復(fù)到從庫(kù),mysqldump是邏輯備份,數(shù)據(jù)量大時(shí),備份速度會(huì)很慢,鎖表的時(shí)間也會(huì)很長(zhǎng)。另一種是通過(guò)xtrabackup工具備份主庫(kù),恢復(fù)到從庫(kù),xtrabackup是物理備份,備份速度快,不鎖表。為什么不鎖表?因?yàn)樽陨頃?huì)監(jiān)控主庫(kù)日志,如果有更新的數(shù)據(jù),就會(huì)先寫(xiě)到一個(gè)文件中,然后再回歸到備份文件中,從而保持?jǐn)?shù)據(jù)一致性。

    服務(wù)器信息:


    主庫(kù):192.168.18.212(原有)

    從庫(kù)1:192.168.18.213(原有)

    從庫(kù)2:192.168.18.214(新增)

    數(shù)據(jù)庫(kù)版本:MySQL5.5

    存儲(chǔ)引擎:Innodb

    測(cè)試庫(kù)名:weibo

    一、mysqldump方式


    MySQL主從是基于binlog日志,所以在安裝好數(shù)據(jù)庫(kù)后就要開(kāi)啟binlog。這樣好處是,一方面可以用binlog恢復(fù)數(shù)據(jù)庫(kù),另一方面可以為主從做準(zhǔn)備。

    原有主庫(kù)配置參數(shù)如下:

    #vimy.cnf

    server-id=1#id要唯一

    log-bin=mysql-bin#開(kāi)啟binlog日志

    auto-increment-increment=1#在Ubuntu系統(tǒng)中MySQL5.5以后已經(jīng)默認(rèn)是1

    auto-increment-offset=1

    slave-skip-errors=all#跳過(guò)主從復(fù)制出現(xiàn)的錯(cuò)誤

    1. 主庫(kù)創(chuàng)建同步賬號(hào)

    mysql>grantallon*.*to'sync'@'192.168.18.%'identifiedby'sync';

    2. 從庫(kù)配置MySQL

    #vimy.cnf

    server-id=3#這個(gè)設(shè)置3

    log-bin=mysql-bin#開(kāi)啟binlog日志

    auto-increment-increment=1#這兩個(gè)參數(shù)在Ubuntu系統(tǒng)中MySQL5.5以后都已經(jīng)默認(rèn)是1

    auto-increment-offset=1

    slave-skip-errors=all#跳過(guò)主從復(fù)制出現(xiàn)的錯(cuò)誤

    3. 備份主庫(kù)

    #mysqldump-uroot-p123--routines--single_transaction--master-data=2--databasesweibo>weibo.sql

    參數(shù)說(shuō)明:

    --routines:導(dǎo)出存儲(chǔ)過(guò)程和函數(shù)

    --single_transaction:導(dǎo)出開(kāi)始時(shí)設(shè)置事務(wù)隔離狀態(tài),并使用一致性快照開(kāi)始事務(wù),然后unlock tables;而lock-tables是鎖住一張表不能寫(xiě)操作,直到dump完畢。

    --master-data:默認(rèn)等于1,將dump起始(change master to)binlog點(diǎn)和pos值寫(xiě)到結(jié)果中,等于2是將change master to寫(xiě)到結(jié)果中并注釋。

    4. 把備份庫(kù)拷貝到從庫(kù)

    #scpweibo.sqlroot@192.168.18.214:/home/root

    5. 在主庫(kù)創(chuàng)建test_tb表,模擬數(shù)據(jù)庫(kù)新增數(shù)據(jù),weibo.sql是沒(méi)有的

    mysql>createtabletest_tb(idint,namevarchar(30));

    6. 從庫(kù)導(dǎo)入備份庫(kù)

    #mysql-uroot-p123-e'createdatabaseweibo;'

    #mysql-uroot-p123weibo<weibo.sql

    7. 在備份文件weibo.sql查看binlog和pos值

    #head-25weibo.sql

    --CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=107;#大概22行

    8. 從庫(kù)設(shè)置從這個(gè)日志點(diǎn)同步,并啟動(dòng)

    mysql>changemastertomaster_host='192.168.18.212',

    ->master_user='sync',

    ->master_password='sync',

    ->master_log_file='mysql-bin.000001',

    ->master_log_pos=107;

    mysql>startslave;

    mysql>showslavestatusG;

    ERROR2006(HY000):MySQLserverhasgoneaway

    Noconnection.Tryingtoreconnect...

    Connectionid:90

    Currentdatabase:***NONE***

    ***************************1.row***************************

    Slave_IO_State:Waitingformastertosendevent

    Master_Host:192.168.18.212

    Master_User:sync

    Master_Port:3306

    Connect_Retry:60

    Master_Log_File:mysql-bin.000001

    Read_Master_Log_Pos:358

    Relay_Log_File:mysqld-relay-bin.000003

    Relay_Log_Pos:504

    Relay_Master_Log_File:mysql-bin.000001

    Slave_IO_Running:Yes

    Slave_SQL_Running:Yes

    ......

    可以看到IO和SQL線(xiàn)程均為YES,說(shuō)明主從配置成功。

    9. 從庫(kù)查看weibo庫(kù)里面的表

    mysql>showtables;

    +---------------------------+

    |Tables_in_weibo|

    +---------------------------+

    |test_tb|

    發(fā)現(xiàn)剛才模擬創(chuàng)建的test_tb表已經(jīng)同步過(guò)來(lái)!

    二、xtrabackup方式(推薦)


    在上面配置基礎(chǔ)上做實(shí)驗(yàn),先刪除掉從庫(kù)配置:

    mysql>stopslave;#停止同步

    mysql>resetslave;#清除從連接信息

    mysql>showslavestatusG;#再查看從狀態(tài),可以看到IO和SQL線(xiàn)程都為NO

    mysql>dropdatabaseweibo;#刪除weibo庫(kù)

    此時(shí),從庫(kù)現(xiàn)在和新裝的一樣,繼續(xù)前進(jìn)!

    1. 主庫(kù)使用xtrabackup備份

    #innobackupex--user=root--password=123./

    生成一個(gè)以時(shí)間為命名的備份目錄:2015-07-01_16-49-43

    #ll2015-07-01_16-49-43/

    total18480

    drwxr-xr-x5rootroot4096Jul116:49./

    drwx------4rootroot4096Jul116:49../

    -rw-r--r--1rootroot188Jul116:49backup-my.cnf

    -rw-r-----1rootroot18874368Jul116:49ibdata1

    drwxr-xr-x2rootroot4096Jul116:49mysql/

    drwxr-xr-x2rootroot4096Jul116:49performance_schema/

    drwxr-xr-x2rootroot12288Jul116:49weibo/

    -rw-r--r--1rootroot21Jul116:49xtrabackup_binlog_info

    -rw-r-----1rootroot89Jul116:49xtrabackup_checkpoints

    -rw-r--r--1rootroot563Jul116:49xtrabackup_info

    -rw-r-----1rootroot2560Jul116:49xtrabackup_logfile

    2. 把備份目錄拷貝到從庫(kù)上

    #scp-r2015-07-01_16-49-43root@192.168.18.214:/home/root

    3. 從庫(kù)上把MySQL服務(wù)停掉,刪除datadir目錄,將備份目錄重命名為datadir目錄

    #sudorm-rf/var/lib/mysql/

    #sudomv2015-07-01_16-49-43//var/lib/mysql

    #sudochownmysql.mysql-R/var/lib/mysql

    #sudo/etc/init.d/mysqlstart

    #ps-ef|grepmysql#查看已經(jīng)正常啟動(dòng)

    mysql88321016:55?00:00:00/usr/sbin/mysqld

    4.在主庫(kù)創(chuàng)建test_tb2表,模擬數(shù)據(jù)庫(kù)新增數(shù)據(jù)

    mysql>createtabletest_tb2(idint,namevarchar(30));

    5. 從備份目錄中xtrabackup_info文件獲取到binlog和pos位置

    #cat/var/lib/mysql/xtrabackup_info

    uuid=201af9db-1fce-11e5-96b0-525400e4239d

    name=

    tool_name=innobackupex

    tool_command=--user=root--password=..../

    tool_version=1.5.1-xtrabackup

    ibbackup_version=xtrabackupversion2.2.11basedonMySQLserver5.6.24Linux(x86_64)(revisionid:)

    server_version=5.5.43-0ubuntu0.12.04.1-log

    start_time=2015-07-0116:49:43

    end_time=2015-07-0116:49:46

    lock_time=1

    binlog_pos=filename'mysql-bin.000001',position429#這個(gè)位置

    innodb_from_lsn=0

    innodb_to_lsn=1598188

    partial=N

    incremental=N

    format=file

    compact=N

    compressed=N

    6. 從庫(kù)設(shè)置從這個(gè)日志點(diǎn)同步,并啟動(dòng)

    mysql>changemastertomaster_host='192.168.18.212',

    ->master_user='sync',

    ->master_password='sync',

    ->master_log_file='mysql-bin.000001',

    ->master_log_pos=429;

    mysql>startslave;

    mysql>showslavestatusG;

    ***************************1.row***************************

    Slave_IO_State:Waitingformastertosendevent

    Master_Host:192.168.18.212

    Master_User:sync

    Master_Port:3306

    Connect_Retry:60

    Master_Log_File:mysql-bin.000001

    Read_Master_Log_Pos:539

    Relay_Log_File:mysqld-relay-bin.000002

    Relay_Log_Pos:363

    Relay_Master_Log_File:mysql-bin.000001

    Slave_IO_Running:Yes

    Slave_SQL_Running:Yes

    ......

    可以看到IO和SQL線(xiàn)程均為YES,說(shuō)明主從配置成功。

    9. 從庫(kù)查看weibo庫(kù)里面的表


    mysql>showtables;

    +---------------------------+

    |Tables_in_weibo|

    +---------------------------+

    |test_tb|

    |test_tb2|

    發(fā)現(xiàn)剛才模擬創(chuàng)建的test_tb2表已經(jīng)同步過(guò)來(lái)。

    河南億恩科技股份有限公司(www.vbseamall.com)始創(chuàng)于2000年,專(zhuān)注服務(wù)器托管租用,是國(guó)家工信部認(rèn)定的綜合電信服務(wù)運(yùn)營(yíng)商。億恩為近五十萬(wàn)的用戶(hù)提供服務(wù)器托管、服務(wù)器租用、機(jī)柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶(hù)不斷的獲得更大的收益。
    服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話(huà):0371-60135900
    虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話(huà):0371-55621053
    網(wǎng)絡(luò)版權(quán)侵權(quán)舉報(bào)電話(huà):0371-60135995
    服務(wù)熱線(xiàn):0371-60135900

    標(biāo)簽 MySQL服務(wù)器
    0
    0
    分享到:責(zé)任編輯:小柳

    相關(guān)推介

    共有:0條評(píng)論網(wǎng)友評(píng)論:

    驗(yàn)證碼 看不清換一張 換一張

    親,還沒(méi)評(píng)論呢!速度搶沙發(fā)吧!