請聯(lián)系QQ:1793040 索取軟件
SyncNavigator是一款功能強大的數(shù)據(jù)庫同步軟件,適用于SQL?SERVER, MySQL,具有自動/定時同步數(shù)據(jù)逼泣、無人值守、故障自動恢復(fù)舟舒、同構(gòu)/異構(gòu)數(shù)據(jù)庫同步拉庶、斷點續(xù)傳和增量同步等功能,支持Windows xp以上所有操作系統(tǒng)秃励,適用于大容量數(shù)據(jù)庫快速同步氏仗。
安裝包下載地址:https://www.syncnavigator.cn/Setup.zip
幫助文檔地址:https://www.syncnavigator.cn/Help_zh-CN.chm
Web文檔地址:https://www.syncnavigator.cn/chm/index.htm
創(chuàng)建第一個同步項目
使用 HKROnline SyncNavigator 創(chuàng)建一個數(shù)據(jù)庫同步項目。只需要通過簡單的配置夺鲜,創(chuàng)建完成后您可以隨時執(zhí)行數(shù)據(jù)庫同步任務(wù)皆尔。
1.點擊 “SyncNavigator(Client)” 圖標進入系統(tǒng)。
2.在登錄界面中輸入連接到的服務(wù)器地址币励,點擊 “確定” 按鈕開始連接慷蠕。
注意:這里不是登陸您的數(shù)據(jù)庫,而是登陸到本軟件的管理端食呻。
默認情況下直接點擊 “連接” 按鈕即可(本機默認已經(jīng)安裝)流炕。
默認服務(wù)器登錄用戶名為 “admin” 密碼為空。
本機服務(wù)器地址 = 127.0.0.1 仅胞。
您可以使用域名或者IP地址作為服務(wù)器地址每辟。如果指定了端口號可以使用 IP:Port 方式填寫。
3.切換到 “同步管理” 面板中點擊 “新建” 按鈕開始創(chuàng)建同步項目干旧。
4.首先切換到 “來源數(shù)據(jù)庫” 選項卡影兽。填寫同步的來源數(shù)據(jù)庫信息。
一般情況下只需要輸入數(shù)據(jù)庫地址莱革,數(shù)據(jù)庫名稱,登錄用戶名讹开,登錄密碼盅视。
數(shù)據(jù)庫地址: 連接到的數(shù)據(jù)庫地址〉┩颍可以是域名或者IP地址闹击。如果指定了端口號可以使用 IP:Port 方式填寫。
數(shù)據(jù)庫名稱: 使用的數(shù)據(jù)庫名稱成艘。如果已經(jīng)指定了默認的登錄數(shù)據(jù)庫可以為空赏半。
登錄用戶名: 登錄數(shù)據(jù)庫服務(wù)器使用的用戶名贺归。如果需要使用Windows賬戶登錄請變更 “登錄方式”
連接測試: 測試輸入的信息是否正確。如果連接失敗則會返回具體錯誤信息断箫。
5.切換到 “目標數(shù)據(jù)庫” 選項卡拂酣。以相同的方式填寫同步的目標數(shù)據(jù)庫。
您只需要創(chuàng)建一個新的目標數(shù)據(jù)庫仲义,軟件會自動創(chuàng)建最大兼容的表結(jié)構(gòu)婶熬。
如果您希望目標數(shù)據(jù)庫與來源數(shù)據(jù)庫表結(jié)構(gòu)完全一致,您只需要在目標數(shù)據(jù)庫創(chuàng)建一個空表結(jié)構(gòu)即可埃撵。
當(dāng)您使用 MySQL 作為來源數(shù)據(jù)庫時赵颅,同步的表至少需要一個主鍵。
目標數(shù)據(jù)庫不應(yīng)包含外鍵約束暂刘,因為它可能導(dǎo)致部分數(shù)據(jù)無法同步饺谬。
如果您的目標數(shù)據(jù)庫與來源數(shù)據(jù)庫結(jié)構(gòu)(如字段類型,約束)不兼容谣拣,這可能導(dǎo)致部分數(shù)據(jù)無法同步募寨。
假設(shè)您設(shè)置來源庫為 192.168.1.2 ,設(shè)置目標數(shù)據(jù)庫為 192.168.1.3, 那么數(shù)據(jù)將從192.168.1.2 同步到 192.168.1.3芝发。如果您的方向設(shè)置錯誤绪商,可能會導(dǎo)致數(shù)據(jù)被覆蓋辅鲸。
6.切換到 “同步內(nèi)容設(shè)置” 選項卡。選擇需要同步的數(shù)據(jù)庫表独悴。
如果需要設(shè)置每個表的具體內(nèi)容可以點擊 “詳細設(shè)置” 按鈕進行調(diào)整。
您可以設(shè)置條件過濾刻炒。比如只查詢評分大于90的表記錄决采,或者隱藏不需要同步的字段坟奥。
如果在這一個步驟未勾選任何表則不會同步任何內(nèi)容。
7.點擊 “確定” 按鈕完成項目設(shè)置爱谁。
8.切換到 “總控制臺” 面板中選擇需要開始同步的項目晒喷。點擊 “開始” 按鈕即可開始數(shù)據(jù)庫同步。
異構(gòu)數(shù)據(jù)庫/表同步細節(jié)
首先,打開軟件,切換到,同步管理,新建一個同步項目,在來源數(shù)據(jù)庫和目標數(shù)據(jù)庫設(shè)置好數(shù)據(jù)連接,以上內(nèi)容很簡單,不做贅述访敌。
下面主要講解一下同步內(nèi)容設(shè)置這里:
默認,在我們填寫好來源數(shù)據(jù)庫和目標數(shù)據(jù)庫爷抓,打開同步內(nèi)容設(shè)置界面,這里刷新出來的表都是來源數(shù)據(jù)庫里的表果复,我們根據(jù)所需要同步的表進行全選或者部分選擇,如下圖:
因為我們要同步到目標表結(jié)構(gòu)與這個來源表結(jié)構(gòu)不同唉地,那么怎么辦呢?
這時候极颓,我們雙擊這些來源表群嗤,打開詳細配置界面狂秘,進行同步方向映射,也就是把來源表里的字段或者表名稱進行定向映射到目標表結(jié)構(gòu)者春,如果是相同的表結(jié)構(gòu)就可以默認不打開特別設(shè)置钱烟,因為我們這里講的是異構(gòu)表結(jié)構(gòu)同步部分字段,所以需要打開設(shè)置詳情读第。
頂上目標表名稱那里填寫同步過去所在表的名稱拥刻,如果來源表和目標表名字都不一樣,這里需要寫目標名稱吴汪,不然會提示表不存在會創(chuàng)建新表蒸眠。
保持原有表結(jié)構(gòu)這里需要取消勾選,因為我們現(xiàn)在是同步異構(gòu)數(shù)據(jù)庫。
目標名稱(可寫*)這里是填寫目標表的字段名稱的臀晃,如果字段名一樣可以不寫,如果字段名不一樣徽惋,需要填寫新的名稱险绘。
同步條件那里基本可以理解成where后的參數(shù),比如可以寫 a > 100 宦棺,就會過濾table_1這個表中字段小于100的數(shù)據(jù)代咸。
另外字段可以勾選,不勾選的字段不會同步逻杖。
使用多來源默認是不勾選的思瘟,如果多個表數(shù)據(jù)進入到某一個表中,或者多個表中的不同字段進入到一個目標表中够话,可以勾選多來源.
勾選只新增的話就不會同步刪除或者修改的數(shù)據(jù)铡买,默認不勾選的,增刪改默認會同步澡为。
MYSQL管理的主從同步管理
MYSQL主從同步體系結(jié)構(gòu)當(dāng)前是最常用的數(shù)據(jù)庫體系結(jié)構(gòu)之一景埃,尤其是對于負載相對較大的網(wǎng)站,因此對于主從同步的管理也很重要拒啰。新手經(jīng)常不知道出現(xiàn)主從同步錯誤時如何啟動完慧。本文是根據(jù)自己的經(jīng)驗來詳細描述mysql主從管理。
MYSQL主從同步的作用
(1)册着?數(shù)據(jù)分配
(2)甲捏?負載平衡(負載平衡)
(3)?備份
(4)司顿?高可用性(高可用性)和容錯能力
MYSQL主從同步的原理
關(guān)于MYSQL的主從同步大溜,最重要的是了解MYSQL的主從同步如何工作,即大師從同步原理上猎提,下圖可以清楚地指導(dǎo)其工作過程:
通常描述該過程:從屬服務(wù)器的IO線程從主服務(wù)器獲取二進制日志并將其本地保存為中繼日志锨苏,然后通過SQL線程在從屬服務(wù)器上執(zhí)行中繼日志的內(nèi)容,以使從屬庫和主庫保持一致贞谓。主從同步的詳細過程如下:
1.葵诈?主服務(wù)器驗證連接。
2.理疙?主服務(wù)器為從屬服務(wù)器啟動線程泞坦。
3.?從服務(wù)器告訴主服務(wù)器主服務(wù)器日志的偏移量赃梧。
4.豌熄?主服務(wù)器檢查該值是否小于當(dāng)前的二進制日志偏移量锣险。
5.如果少于览闰,請通知服務(wù)器以獲取數(shù)據(jù)巷折。
6.從屬服務(wù)器繼續(xù)從主服務(wù)器獲取數(shù)據(jù),直到完成為止,此時從屬服務(wù)器線程進入睡眠狀態(tài)逊拍,主服務(wù)器服務(wù)器線程同時進入睡眠狀態(tài)际邻。
7.?更新主服務(wù)器后缨恒,將激活主服務(wù)器線程轮听,并將二進制日志推送到從服務(wù)器,然后通知從服務(wù)器線程進入工作狀態(tài)萧锉。
8.述寡?從服務(wù)器SQL線程執(zhí)行二進制日志鲫凶,然后進入睡眠狀態(tài)。
波附?
MYSQL主從同步構(gòu)造實戰(zhàn)
構(gòu)建主從同步是一項比較好的技術(shù)工作不恭,在早期做一些事情會使您將來會減少很多工作,并且在施工過程中需要注意一些問題折晦。在構(gòu)造過程中沾瓦,將在介紹需要注意的問題的同時介紹構(gòu)造谦炒,以便初學(xué)者可以在一開始就有效地避免一些潛在的問題(此處未介紹MYSQL安裝):
1.主從同步環(huán)境的介紹
操作系統(tǒng)環(huán)境:Centos 5.5 64位
MYSQL版本:MYSQL 5.1.50
主服務(wù)器的IP:10.1.1.75
來自服務(wù)器的IP:10.1.1.76
2.宁改?在主服務(wù)器上創(chuàng)建一個同步帳戶
GRANT REPLICATION SLAVE魂莫,F(xiàn)ILE ON *耙考。 *以”復(fù)制” @” 10.1.1。%”標識為” 123456″斗遏;
沖洗特權(quán)鞋邑;
注意:?設(shè)置權(quán)限時,不要將密碼設(shè)置得太簡單逾一!
3.视译?服務(wù)器配置文件中的更改
服務(wù)器ID = 2
復(fù)制野生-忽略-表= mysql。%
log-slave-updates#必要時可以打開
注意:
1)?服務(wù)器ID?此項目需要仔細檢查鄙早,并且不得與主服務(wù)器沖突椅亚,否則會出現(xiàn)莫名其妙的問題呀舔,因為它將根據(jù)?服務(wù)器ID?同步時>?服務(wù)器ID?相同的對象將不會被同步,否則可能導(dǎo)致無限循環(huán)?(?當(dāng)主/主同步或振鈴?fù)綍r?)?霜瘪。
2)惧磺??有些人會感到奇怪,為什么我在這里使用它?復(fù)制-野生-忽略表?不使用參數(shù)?plicate-do-db?或?復(fù)制-ignore-db?過濾需要過濾的數(shù)據(jù)庫被同步缤底,不需要同步的數(shù)據(jù)庫个唧。原因有以下幾種:
A.復(fù)制野生-忽略表?參數(shù)可以同步所有跨數(shù)據(jù)庫更新,例如?plicate-do-db?或?plicate-ignore-db?類似的將不會同步
使用mysql;
更新test.aaa SET數(shù)量=數(shù)量+ 10;
B.?plicate-wild-ignore-table = mysql犁河。%?當(dāng)將來需要添加同步數(shù)據(jù)庫時魄梯,可以輕松添加它無需重新啟動服務(wù)器的數(shù)據(jù)庫。因為將來可能需要同步其他數(shù)據(jù)庫。
3)允扇??auto_increment_increment?和?auto_increment_offset?參數(shù)则奥,這些?在主主同步中通常使用兩個參數(shù)來交錯自我-增量值?,防止鍵值沖突糊治。
4)-slave-skip-errors參數(shù)井辜,除非您非常確定自己在做什么管闷,否則不要隨意使用這些參數(shù)。使用這些參數(shù)時刷允,MYSQL將忽略這些錯誤碧囊,這將導(dǎo)致主服務(wù)器和從屬服務(wù)器之間的數(shù)據(jù)不一致糯而。
4.從主服務(wù)器獲取快照版本
如果您具有MYISAM或MYISAM和INNODB,請在主服務(wù)器上使用以下命令導(dǎo)出其中一臺服務(wù)器Snapshot :
mysqldump-uroot-p–lock-tables–events–triggers–routines–flush-logs–master-data = 2-數(shù)據(jù)庫測試\\ db.sql
如果僅嘗試使用INNODB土砂,則可以使用以下命令:
mysqldump-uroot-p-單事務(wù)–events–triggers–routines–flush-logs–master-data = 2-數(shù)據(jù)庫測試\\ db.sql
在這里,我們需要注意幾個參數(shù)的使用:
-單筆交易吴叶?此參數(shù)僅適用于innodb序臂。
-數(shù)據(jù)庫?然后是除mysql以外的所有數(shù)據(jù)庫的庫名逊彭。我這里只有一個測試庫侮叮。
-主數(shù)據(jù)悼瘾?參數(shù)記錄快照導(dǎo)出時mysql二進制日志的位置,以后將使用卸勺。
5.將快照版本還原到從屬服務(wù)器
mysqldump-uroot-p-h 10.1.1.76 test \ lt; db.sql
將快照版本還原到從屬服務(wù)器后烫扼,從屬服務(wù)器上的數(shù)據(jù)與主服務(wù)器上的數(shù)據(jù)相同服務(wù)器映企。
6.使用從屬服務(wù)器上的change master來與主服務(wù)器同步
使用grep命令查找二進制日志的名稱和位置
[root @ ns1]#grep-i”更改主服務(wù)器” db.sql
-將MASTER更改為MASTER_LOG_FILE =” mysql-bin.000006″,MASTER_LOG_POS = 106;
生成CHANGE MASTER語句芽淡,然后在從屬服務(wù)器上執(zhí)行
停止奴隸豆赏;掷邦?
將MASTER更改為MASTER_HOST =” 10.1.1.75″,MASTER_USER =”復(fù)制”或杠,MASTER_PASSWORD =” 123456″宣蔚,MASTER_LOG_FILE = ” mysql-bin.000006″认境,MASTER_LOG_POS = 106;
START SLAVE;
這樣就完成了主從同步的構(gòu)造叉信,并最終使用了SHOW SLAVE STATUS \\\\ G;查看Slave_IO_Running和Slave_SQL_Running的狀態(tài)艘希,如果兩者均為”是”覆享,則操作完成。
注意?:請勿在配置文件中寫入已同步的信息丑罪,這不方便管理凤壁,尤其是在需要重新啟動更改的情況下。
?
MYSQL主從同步管理
以下是一些用于管理MYSQL主從同步的命令:
1.停止MYSQL同步
停止從IO_THREAD; #Stop IO process
停止從SQL_THREAD; #stop SQL進程
停止奴隸徙鱼;针姿? #停止IO和SQL進程
2.啟動MYSQL同步
START SLAVE IO_THREAD; #開始IO進程
START SLAVE SQL_THREAD; #啟動SQL進程
START SLAVE ;距淫? #啟動IO和SQL進程
3.?重置MYSQL同步
RESET SLAVE;
用于使從屬服務(wù)器忘記其在主服務(wù)器的二進制日志中的復(fù)制位置蓬衡,它將刪除master.info和relay-log.info文件彤枢,以及所有中繼日志缴啡,并啟動新的中繼日志,您可以在不需要主服務(wù)器和從屬服務(wù)器時在從屬服務(wù)器上執(zhí)行此操作秒咐。否則,它將在將來進行同步攒钳,并可能覆蓋您的數(shù)據(jù)庫夕玩。我以前遇到過這么愚蠢的事情惊豺。哈哈!
4.揩页?查看MYSQL同步狀態(tài)
顯示從屬狀態(tài)爆侣;
此命令主要檢查Slave_IO_Running幢妄,Slave_SQL_Running,Seconds_Behind_Master乎赴,Last_IO_Error潮尝,Last_SQL_Error的值以掌握復(fù)制狀態(tài)勉失。
5.暫時跳過MYSQL同步錯誤
通常當(dāng)朋友mysql主從同步遇到錯誤(例如主鍵沖突等)時,我需要確保如果數(shù)據(jù)行是一致的顽素,請暫時跳過此錯誤徒蟆,然后您需要使用SQL_SLAVE_SKIP_COUNTER =后专??n?命令,n是跳過接下來的n個事件裸诽,例如我跳過一個事件丈冬,操作如下:
停止從動;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;
6.從指定位置重新同步
有時主從同步出現(xiàn)問題往弓,您需要從日志位置的下一個位置進行同步蓄氧,這等效于跳轉(zhuǎn)該錯誤之后喉童,此時,只要找到相應(yīng)的LOG位置蔑担,也可以使用CHANGE MASTER命令來處理它咽白,例如:
將MASTER更改為MASTER_HOST =” 10.1.1.75″晶框,MASTER_USER =”復(fù)制”,MASTER_PASSWORD =” 123456″,MASTER_LOG_FILE = ” mysql-bin.000006″畴蒲,MASTER_LOG_POS = 106;
START SLAVE;
MYSQL主從同步管理經(jīng)驗介紹
1.对室?不要搞混SQL_SLAVE_SKIP_COUNTER命令掩宜。
跳過此命令后,您的主從數(shù)據(jù)可能會不一致辽旋。請務(wù)必記錄指定的錯誤补胚,然后檢查數(shù)據(jù)是否一致,尤其是核心業(yè)務(wù)數(shù)據(jù)骚腥。
2.瓶逃?結(jié)合percona-toolkit工具pt-table-checksum定期檢查數(shù)據(jù)是否一致厢绝。
這是DBA必須定期執(zhí)行的操作,是吧埠褪,為什么不使用正確的工具而不做呢钞速?另外嫡秕,percona-toolkit還提供了解決數(shù)據(jù)庫不一致性的方法昆咽,可以使用pt-table-sync,此工具不會更改主數(shù)據(jù)调违。您也可以使用pt-heartbeat查看從屬服務(wù)器的向后復(fù)制技肩。有關(guān)詳細信息浮声,請參見:http://blog.chinaunix.net/uid-20639775-id-3229211.html泳挥。
3.??使用plicate-wild-ignore-table選項代替using?復(fù)制數(shù)據(jù)庫?或?復(fù)制-ignore-db?剧浸。
上面已經(jīng)說明了原因。
4.將主服務(wù)器的日志模式調(diào)整為?混合?粤蝎。
5.每個表都有一個主鍵初澎,而主表密鑰對數(shù)據(jù)庫的同步會產(chǎn)生影響虑凛,尤其是在?R?OW?復(fù)制模式桑谍。