国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL手冊版本 5.0.20-MySQL同步(五)

2024-07-24 12:55:05
字體:
供稿:網(wǎng)友
國內(nèi)最大的酷站演示中心!

6.9 同步 faq

問: master還在運(yùn)行中,如何在不停止它的情況下配置slave?

答: 需要設(shè)計(jì)幾個(gè)選項(xiàng)參數(shù)。如果已經(jīng)有了master的備份并且記錄了數(shù)據(jù)快照二進(jìn)制日志文件名以及偏移位置(運(yùn)行 show master status 查看結(jié)果),執(zhí)行以下步驟:

確定slave指定了一個(gè)唯一的服務(wù)器編號(hào)。

在slave上執(zhí)行如下語句,把一些選項(xiàng)值改成實(shí)際值:

mysql> change master to

-> master_host='master_host_name',

-> master_user='master_user_name',

-> master_password='master_pass',

-> master_log_file='recorded_log_file_name',

-> master_log_pos=recorded_log_position;

在slave上執(zhí)行 start slave 語句。

如果事先沒有備份master的數(shù)據(jù),可以用以下方法快速創(chuàng)建一個(gè)備份。以下所有的操作都是在master上。

提交語句:

mysql> flush tables with read lock;

確保這個(gè)鎖一直存在,執(zhí)行以下命令(或者其他類似的):

shell> tar zcf /tmp/backup.tar.gz /var/lib/mysql

執(zhí)行以下語句,記錄下輸出的結(jié)果,后面要用到:

mysql> show master status;

釋放鎖:

mysql> unlock tables;

上述步驟的另一個(gè)辦法是創(chuàng)建master的sql轉(zhuǎn)儲(chǔ)文件。只需在master上執(zhí)行 mysqldump --master-data 命令,然后將導(dǎo)出來的sql轉(zhuǎn)儲(chǔ)文件載入slave。不過,這么做會(huì)制作二進(jìn)制數(shù)據(jù)快照的方式慢一點(diǎn)。

無論使用上述兩種方法的哪種,最后都能創(chuàng)建master的數(shù)據(jù)快照然后記錄二進(jìn)制日志文件名以及偏移位置??梢栽诤脦椎钠渌膕lave上使用同一個(gè)備份的二進(jìn)制數(shù)據(jù)快照。得到master的快照后,只要master的二進(jìn)制日志完好無損,接著就能開始設(shè)置slave了。兩個(gè)決定是否需要等待較長時(shí)間的限制是:在master上磁盤空間保存二進(jìn)制日志,以及slave從master抓取更新事件。

也可以使用 load data from master。這個(gè)語句可以很方便地在slave上取得數(shù)據(jù)快照并且能立刻調(diào)整二進(jìn)制日志文件名以及偏移位置。在將來,我們推薦用 load data from master 來設(shè)置slave。警告,它只能用于 myisam 表,并且可能會(huì)保持一個(gè)較長時(shí)間的讀鎖。由于它還沒達(dá)到所期望的高效率,因此如果數(shù)據(jù)表很大,最好還是在執(zhí)行完 flush tables with read lock 后直接制作二進(jìn)制數(shù)據(jù)快照。

問:是否slave總是需要連接到master?

答:不,非必需。slave可以好幾小時(shí)甚至幾天關(guān)閉或者不連接master,然后重連再取得更新操作日志。例如,可以在撥號(hào)鏈接上設(shè)置一個(gè)mater/slave關(guān)系,撥號(hào)可能只是零星的不定期的連接。這種做法隱含的是,在任何指定的時(shí)間里,除非使用特殊的度量標(biāo)準(zhǔn),否則slave不能保證總是能和master保持同步。在未來,有個(gè)選項(xiàng)可以阻止master,除非至少有一個(gè)slave在同步中。

問:怎么知道比master晚了多少?也就是說,怎么知道slave最后同步的時(shí)間?

答:如果slave是4.1.1或者更高,只需查看 show slave status 結(jié)果中的 seconds_behind_master 字段。對于老版本,可以用以下辦法。如果在slave上執(zhí)行 show processlist 語句結(jié)果顯示sql線程(對mysql 3.23則是slave線程)正在運(yùn)行,這就意味著該線程至少從master讀取一個(gè)更新操作事件。詳情請看"6.3 replication implementation details"。

當(dāng)sql線程執(zhí)行一個(gè)master上讀取的更新操作事件時(shí),它把自己的時(shí)間改成事件的時(shí)間(這也就是 timestamp 也要同步的原因)。在

show processlist 結(jié)果中的 time 字段中,slave的sql線程顯示的秒數(shù)就是最后一次同步的時(shí)間戳和slave本機(jī)的實(shí)際時(shí)間相差秒數(shù)。可以根據(jù)這個(gè)值來判斷最后同步的時(shí)間。注意,如果slave已經(jīng)從master斷開好幾個(gè)小時(shí)了,然后重新連接,就能看到slave的

show processlist 結(jié)果中的sql線程的time 字段的值類似3600。這是因?yàn)閟lave正在執(zhí)行一個(gè)小時(shí)前的語句。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉木萨尔县| 烟台市| 阿勒泰市| 读书| 社会| 深泽县| 通山县| 子长县| 禹城市| 汶上县| 舞阳县| 宿州市| 台山市| 仁化县| 伊吾县| 苗栗市| 静乐县| 潮安县| 芜湖市| 峨边| 汕尾市| 汉寿县| 北辰区| 阳原县| 陕西省| 延寿县| 丰都县| 柏乡县| 恩施市| 北海市| 沈丘县| 陆良县| 大同县| 海安县| 屏山县| 五指山市| 土默特左旗| 呼伦贝尔市| 错那县| 莱芜市| 三穗县|