關于 MySQL 主從復制的配置(轉)

?來源:http://www.oschina.net/bbs/thread/10388

設置Mysql的主從設置很重要,有如下幾點用處:

1 做備份機器,一旦主服務器崩潰,可以直接啟用從服務器作為主服務器
2 可以直接鎖定從服務器的表只讀,然后做備份數據,這樣不會影響主服務器的服務
3 可以處理讀寫數據庫的負載均衡

阿權總結的設置主從的要點有如下:

1 主從服務器的啟動方式的不同點
2 主服務器只讀或者停止服務然后獲取當前數據快照,清理日志或者重新開始記錄日志
3 從服務器一般需要只讀,否則容易產生錯誤導致同步失敗

阿權制作主從的過程總結:

1 停止數據庫服務,并且刪除當前的所有mysql日志(默認是mysql-bin.*)
2 把當前的所有數據庫打包,備用
3 打包完成后,主服務器可以啟動了
4 把從服務器的同步日志刪除(默認是mysql-relay-bin.*)
5 把文件解壓到從服務器的數據目錄
6 設置好cnf文件,啟動即可

當然,取得快照的方法還有別的:
1 FLUSH TABLES WITH READ LOCK 鎖定所有表
2 打包文件或者是直接導出數據,比停止服務好的地方就是有一段讀數據庫的時間
3 然后 unlock tables

主從的配置區別:

啟動方式請參考《Mysql多實例啟動》
主服務器沒有設置 master的值,下面的參數影響同步:

#設定不同步的數據庫,這些庫的修改不會記錄到日志,可以添加多行
binlog-ignore-db = test
#設定記錄的庫,可以添加多行
binlog-do-db = vnet



從服務器設置了系列master的參數:

master-host = 192.168.1.147
master-port = 3308
master-user = usr
master-password = pwd
master-retry-count = 999
master-connect-retry = 60

#并且可以設置忽略的庫,可以添加多行
replicate-ignore-db = testdb
#設置僅處理的庫,可以添加多行
replicate-do-db = aslibra



設置忽略的和處理的參數的一個就好,如果需要忽略哪些,就加上忽略的庫,如果僅僅需要處理一兩個,那就加上do-db的設置吧

如何檢查同步情況?

show master status;
show slave status;

這里會列出當前同步的情況,包括同步哪些庫,忽略哪些庫

如何檢查發生同步錯誤?

1 主服務器更新后沒有反映在從服務器,這個是看的到的
2 可以使用phpmyadmin看進程或者是命令 SHOW PROCESSLIST?
主服務器會有一條slave用戶的記錄,比如

slave ? 127.0.0.1:42157 ? 無 ? Binlog Dump ? 598 ? Has sent all binlog to slave; waiting for binlog to be updated ? --- ?


從服務器會有兩條記錄

system user ? ? ?無 ? Connect ? 724 ? Waiting for master to send event ? --- ?
system user ? ? ?無 ? Connect ? 187 ? Has read all relay log; waiting for the slave I/O thread to update it ? --- ?


如果同步失敗,則后一條沒有

同步特性及已知問題

跨庫的操作是不更新的,比如

update dbtest.aslibra set domain='www.aslibra.com' where id=5



更多內容可以參考《同步特性及已知問題》,這里就不詳細列出了啦

哪些從服務器操作會導致錯誤?

1 刪除表或者修改表結構會導致之后更新該表產生錯誤,可以恢復原先結構再繼續同步就可以,錯誤如下

080503 ?4:41:03 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000003' at position 244, relay log '/Data/mysql3309/var/mysql-relay-bin.000004' position: 381080503 ?4:44:00 [ERROR] Slave: Error 'Can't DROP 'id'; check that column/key exists' on query. Default database: 'dbtest'. Query: 'ALTER TABLE test DROP id', Error_code: 1091080503 ?4:44:00 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000004' position 252



2 從服務器如果寫入一條記錄,自增字段加一,主鍵唯一性錯誤,這樣主服務器就無法同步這樣的數據,導致同步停止。如果不產生主鍵沖突的數據是不會有影響

INTO aslibra (id, ddd) VALUES ('', '2008-05-02')', Error_code: 1062
080503 ?4:36:44 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000003' position 244



3 從服務器刪除某條數據,主服務器再刪除該條數據,不會產生錯誤

阿權的總結:

1 從服務器如果需要重新做同步數據,必須是主服務器開始記錄日志的數據快照。所以快照很重要,可以用該快照立刻構建一個從服務器。
2 日志只是記錄sql語句,執行刪除和更新如果與主服務器數據不同是不會產生錯誤
3 如果執行插入數據,產生主鍵沖突則會導致錯誤,停止同步,除非從服務器執行本語句正常,則可以繼續同步
4 表結構修改如果返回錯誤,則也會導致同步停止

轉載于:https://www.cnblogs.com/yuanermen/archive/2010/08/11/1797206.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379077.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Silverlight 同域WCF免跨域文件

在sl3使用wcf時常常會因為sl中調用了不同域的wcf服務而導至調用服務失敗,記得在很久以前sl當是只支持同域的訪問,那么讓我有一個想法,就是在sl引用時可以動態地取得當前sl所在的域,而wcf服務也必須同時部署到這個域下邊&#xff0…

使用ffmpeg 的 filter 給圖片添加水印

使用ffmpeg 的 filter 給圖片添加水印。 main.c #include <stdio.h>#include <libavfilter/avfilter.h> #include <libavfilter/buffersrc.h> #include <libavfilter/buffersink.h> #include <libavformat/avformat.h> #include <libavcodec…

程序崩潰 分析工具_程序分析工具| 軟件工程

程序崩潰 分析工具A program analysis tool implies an automatic tool that takes the source code or the executable code of a program as information and produces reports with respect to a few significant attributes of the program, for example, its size, multif…

28335接兩個spi設備_IIC和SPI如此流行,誰才是嵌入式工程師的必備工具?

IICvs SPI現今&#xff0c;在低端數字通信應用領域&#xff0c;我們隨處可見 IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種通信協議非常適合近距離低速芯片間通信。Philips(for IIC)和 Motorola(for SPI) 出于不同背景和市場需求…

線性表15|魔術師發牌問題和拉丁方陣 - 數據結構和算法20

線性表15 : 魔術師發牌問題和拉丁方陣 讓編程改變世界 Change the world by program 題外話 今天小甲魚看到到微博有朋友在問&#xff0c;這個《數據結構和算法》系列課程有木有JAVA版本的&#xff1f; 因為這個問題之前也有一些朋友問過&#xff0c;所以咱在這里統一說下哈…

[ZT]Three ways to tell if a .NET Assembly is Strongly Named (or has Strong Name)

Here are several convenient ways to tell whether a .NET assembly is strongly named. (English language note: I assume the form “strongly named” is preferred over “strong named” since that’s the form used in the output of the sn.exe tool shown immediat…

最佳頁面置換算法

在一個請求分頁系統中&#xff0c;采用最佳頁面置換算法時&#xff0c;假如一個作業的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;當分配給該作業的物理塊數M分別為3和4時&#xff0c;試計算在訪問過程中所發生的缺頁次數和缺頁率。請給出分析過程。 解析&…

網絡名稱 轉換 網絡地址_網絡地址轉換| 計算機網絡

網絡名稱 轉換 網絡地址At the time of classful addressing, the number of household users and small businesses that want to use the Internet kept increasing. In the beginning, a user was connected to the Internet with a dial-up line, for a specific period of…

rstudio 修改代碼間距_第一章 R和RStudio

R與RStudioR是一種統計學編程語言&#xff0c;在科學計算領域非常流行。它是由Ross Ihaka和Robert Gentleman開發的&#xff0c;是 "S "編程語言的開源實現。R也是使用這種語言進行統計計算的軟件的名字。它有一個龐大的在線支持社區和專門的軟件包&#xff0c;可以為…

ubuntu下最穩定的QQ

一、安裝好 Wine 1.2&#xff08;1.2 版安裝好就支持中文界面的了&#xff09; 當然得有WINE 了 當然我的有 如果沒有可以如下方法得到&#xff1a; 第一種方法&#xff1a;如果你已經安裝過 Wine 的老版本&#xff0c;那么只要添加 Wine 1.2 的軟件源&#xff0c;然后去新立得…

字體Times New Roman

Windows系統中的字體是Monotype公司為微軟公司制作的Times New Roman PS&#xff08;TrueType字體&#xff09;&#xff0c;視窗系統從3.1版本開始就一直附帶這個字體。而在蘋果電腦公司的麥金塔系統中使用的是Linotype公司的 Times Roman (在Macintosh系統中直接簡稱為‘Times…

最近最久未使用頁面置換算法

在一個請求分頁系統中&#xff0c;采用最近最久未使用頁面置換算法時&#xff0c;假如一個作業的頁面走向為4、3、2、1、4、3、5、4、3、2、1、5&#xff0c;當分配給該作業的物理塊數M分別為3和4時&#xff0c;試計算在訪問過程中所發生的缺頁次數和缺頁率。請給出分析過程。 …

ffplay的數據結構分析

《ffplay分析&#xff08;從啟動到讀取線程的操作&#xff09;》 《ffplay分析&#xff08;視頻解碼線程的操作&#xff09;》 《ffplay分析&#xff08;音頻解碼線程的操作&#xff09;》 《ffplay 分析&#xff08;音頻從Frame(解碼后)隊列取數據到SDL輸出&#xff09;》 《f…

tolowercase_Java String toLowerCase()方法與示例

tolowercase字符串toLowerCase()方法 (String toLowerCase() Method) toLowerCase() method is a String class method, it is used to convert given string into the lowercase. toLowerCase()方法是String類方法&#xff0c;用于將給定的字符串轉換為小寫。 Syntax: 句法&a…

python web 服務器實時監控 websocket_python websocket網頁實時顯示遠程服務器日志信息...

功能&#xff1a;用websocket技術&#xff0c;在運維工具的瀏覽器上實時顯示遠程服務器上的日志信息一般我們在運維工具部署環境的時候&#xff0c;需要實時展現部署過程中的信息&#xff0c;或者在瀏覽器中實時顯示程序日志給開發人員看。你還在用ajax每隔段時間去獲取服務器日…

磁盤調度算法

1&#xff0c;假設磁頭當前位于第105道&#xff0c;正在向磁道序號增加的方向移動&#xff0c;現有一個磁道訪問請求序列為&#xff1a;35&#xff0c;45&#xff0c;12&#xff0c;68&#xff0c;100&#xff0c;180&#xff0c;170&#xff0c;195&#xff0c;試用先來先服務…

C# Using用法三則

&#xff08;1&#xff09;引用命名空間 using作為引入命名空間指令的用法準則為&#xff1a; using Namespace; 在.NET程序中&#xff0c;最多見的代碼莫過于在程序文件的開頭引入System命名空間&#xff0c;其原由在于System命名空間中封裝了許多最基本最常用的操作&#xff…

iOS開發 工程

一直沒正兒八經的寫過技術文章。今日開個小窗&#xff0c;準備寫點東西。。。完了 1、傳統的MVC結構需要至少M、V、C三個模塊&#xff0c;在實際開發中往往需要添加額外的模塊&#xff0c;添加的模塊當然也大體上屬于這三個模塊之內。以下為較為常用的子模塊。 &#xff08;1&a…