小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MySQL主從數(shù)據(jù)庫(kù)配置注意問(wèn)題 – WEB·攻城志

 老鶴閑聊 2015-06-25

      一般使用MySQL的時(shí)候,如果數(shù)據(jù)量不大,我們都使用一臺(tái)MySQL服務(wù)器,備份的時(shí)候使用mysqldump工具就可以了,但是隨著業(yè)務(wù)不斷發(fā)展,問(wèn)題出現(xiàn)了:  武漢百度推廣公司
      首先:數(shù)據(jù)量往往直線上升,單獨(dú)一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器開(kāi)始出現(xiàn)性能的瓶頸,數(shù)據(jù)訪問(wèn)越來(lái)越慢。
      其次:備份也變得困難了,因?yàn)閙ysqldump是導(dǎo)出一份文本文件,而數(shù)據(jù)量特別大的時(shí)候,這樣的備份往往需要很長(zhǎng)時(shí)間,可能有人會(huì)說(shuō),我們可以直接通過(guò)拷貝數(shù)據(jù)文件來(lái)備份數(shù)據(jù)庫(kù),這樣很方便,快捷,不錯(cuò),這樣是比mysqldump方便快捷,但是,直接拷貝數(shù)據(jù)文件備份的方式要求我們必須先關(guān)閉mysql服務(wù),然后再拷貝數(shù)據(jù)文件,否則,你拷貝的文件很可能是壞的。而實(shí)際運(yùn)行的mysql服務(wù)往往要求在任何時(shí)候都不可以停止服務(wù),所以這樣的備份方式在此情況下不可行。
      如果你遇到了類似上面的問(wèn)題,你就可以使用建立MySQL主從服務(wù)器的方式來(lái)解決,下面先來(lái)看看主從服務(wù)器的設(shè)置:
      前提:MySQL主從服務(wù)器最好使用相同的軟件版本,以避免不不可預(yù)期的故障。
首先設(shè)置MySQL主服務(wù)器:
在主服務(wù)器上為從服務(wù)器建立一個(gè)用戶:
grant replication slave on *.* to ‘用戶名‘@’主機(jī)’ identified by ‘密碼’;
編輯主服務(wù)器的配置文件:/etc/my.cnf的mysqld處

server-id = 1
log-bin
binlog-do-db=需要備份的數(shù)據(jù)庫(kù)名,如果備份多個(gè)數(shù)據(jù)庫(kù),重復(fù)設(shè)置這個(gè)選項(xiàng)即可
binlog-ignore-db=不需要備份的數(shù)據(jù)庫(kù)苦命,如果備份多個(gè)數(shù)據(jù)庫(kù),重復(fù)設(shè)置這個(gè)選項(xiàng)即可
編輯從服務(wù)器的配置文件:/etc/my.cnf
server-id=2
master-host=主機(jī)
master-user=用戶名
master-password=密碼
master-port=端口
replicate-do-db=需要備份的數(shù)據(jù)庫(kù)名,如果備份多個(gè)數(shù)據(jù)庫(kù),重復(fù)設(shè)置這個(gè)選項(xiàng)即可
記得先手動(dòng)同步一下主從服務(wù)器中要備份的數(shù)據(jù)庫(kù),然后重啟主,從服務(wù)器。
要驗(yàn)證主從設(shè)置是否已經(jīng)成功,可以登錄從服務(wù)器輸入如下命令:
mysql> show slave status\G
會(huì)得到類似下面的列表:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
      如果這兩個(gè)選項(xiàng)不全是Yes,那就說(shuō)明你前面某個(gè)步驟配置錯(cuò)了。
        如果你的設(shè)置是正確的,嘗試在主服務(wù)器上插入若干條記錄,然后你再轉(zhuǎn)到從服務(wù)器,會(huì)發(fā)現(xiàn)相應(yīng)的新記錄已經(jīng)自動(dòng)同步過(guò)來(lái)了。
      如果你的主從服務(wù)器已經(jīng)配置好了,那么你在應(yīng)用程序中,只要保證所有的insert/delete/update操作是在主服務(wù)器上進(jìn)行的,那么相應(yīng)的數(shù)據(jù)變化會(huì)自動(dòng)同步到從服務(wù)器上,這樣,我們就可以把select操作分擔(dān)到多臺(tái)從數(shù)據(jù)庫(kù)上,從而降低服務(wù)器的載荷。
      如果你想使用復(fù)制數(shù)據(jù)文件的方式來(lái)備份數(shù)據(jù)庫(kù),只要在從服務(wù)器上的mysql命令行先鍵入slave stop;然后復(fù)制數(shù)據(jù)庫(kù)文件,復(fù)制好了,再 在mysql命令行鍵入slave start;啟動(dòng)從服務(wù)器,這樣就即備份了數(shù)據(jù)有保證了數(shù)據(jù)完整性,而且整個(gè)過(guò)程中主服務(wù)器的mysql無(wú)需停止。
———————————————————————————–
提示:如果修改了主服務(wù)器的配置,記得刪除從服務(wù)器上的master.info文件。否則從服務(wù)器使用的還是老配置,可能會(huì)導(dǎo)致錯(cuò)誤。
———————————————————————————–
注意:關(guān)于要復(fù)制多個(gè)數(shù)據(jù)庫(kù)時(shí),binlog-do-db和replicate-do-db選項(xiàng)的設(shè)置,網(wǎng)上很多人說(shuō)是用半角逗號(hào)分隔,經(jīng)過(guò)測(cè)試,這樣的說(shuō)法是錯(cuò)誤的,MySQL官方文檔也明確指出,如果要備份多個(gè)數(shù)據(jù)庫(kù),只要重復(fù)設(shè)置相應(yīng)選項(xiàng)就可以了。
比如:
binlog-do-db=a
binlog-do-db=b
replicate-do-db=a
replicate-do-db=b
———————————————————————————–
補(bǔ)充:從服務(wù)器上my.cnf中的master-*的設(shè)置僅在第一次生效,后保存在master.info文件里。
———————————————————————————–
在從服務(wù)器上使用show slave status
Slave_IO_Running,為No,則說(shuō)明IO_THREAD沒(méi)有啟動(dòng),請(qǐng)執(zhí)行slave start [IO_THREAD]
Slave_SQL_Running為No則復(fù)制出錯(cuò),查看Last_error字段排除錯(cuò)誤后執(zhí)行slave start [SQL_THREAD]
查看Slave_IO_State字段
空 //復(fù)制沒(méi)有啟動(dòng)
Connecting to master//沒(méi)有連接上master
Waiting for master to send event//已經(jīng)連上
———————————————————————————–
可以使用LOAD DATA FROM MASTER語(yǔ)句來(lái)建立slave。但有約束條件:
數(shù)據(jù)表要全部是MyISAM表,必須有SUPER權(quán)限,master的復(fù)制用戶必須具備RELOAD和SUPER權(quán)限。
在master端執(zhí)行RESET MASTER清除已有的日志變更,
此時(shí)slave端會(huì)因?yàn)檎也坏絤aster日志無(wú)法啟動(dòng)IO_THREAD,請(qǐng)清空data目錄下
relay-log.info,hosname-relay-bin*等文件重新啟動(dòng)mysql
中繼日志文件默認(rèn)的文件為hostname-relay-bin.nnn和hostname-relay-bin.index。可用從服務(wù)器的–
relay-log和–relay-log-index選項(xiàng)修改。在從服務(wù)器中還有一個(gè)relay-log.info中繼信息文件,可用
–relay-log-info-file啟動(dòng)選項(xiàng)修改文件名。
雙機(jī)互備則是兩個(gè)mysql同時(shí)配置為master及slave
———————————————————————————–
主服務(wù)器上的相關(guān)命令:                   武漢百度公司
show master status
show slave hosts
show {master|binary} logs
show binlog events
purge {master|binary} logs to ‘log_name’
purge {master|binary} logs before ‘date’
reset master(老版本flush master)
set sql_log_bin={0|1}
———————————————————————————–
從服務(wù)器上的相關(guān)命令:
slave start
slave stop
SLAVE STOP IO_THREAD //此線程把master段的日志寫(xiě)到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此線程把寫(xiě)到本地的日志應(yīng)用于數(shù)據(jù)庫(kù)
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //動(dòng)態(tài)改變master信息
PURGE MASTER [before 'date'] 刪除master端已同步過(guò)的日志
———————————————————————————–
–read-only
該選項(xiàng)讓從服務(wù)器只允許來(lái)自從服務(wù)器線程或具有SUPER權(quán)限的用戶的更新??梢源_保從服務(wù)器不接受來(lái)自客戶的更新。





    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多