LINUX 環境 mysql to mysql OGG安裝配置(二)

夢夕林1992發表於2023-01-18

配置挖掘程式

# ./ggsci

dblogin sourcedb testdb@192.168.14.51:3306,userid odc,password odc

add extract ext_my,tranlog,begin now

add exttrail ./dirdat/my,extract ext_my

edit param ext_my

extract ext_my

sourcedb testdb@192.168.14.51:3306,userid odc,password odc

exttrail ./dirdat/my

gettruncates

table testdb.*;

 

配置傳輸程式

# ./ggsci

dblogin sourcedb testdb@localhost:3306,userid odc,password odc

add extract dmp_my,exttrailsource ./dirdat/my

add rmttrail ./dirdat/my,extract dmp_my

edit param dmp_my

extract dmp_my

rmthost 192.168.14.52,mgrport 7809

rmttrail ./dirdat/my

passthru

gettruncates

table testdb.*;

 

我們稍後目標端安裝完軟體再啟動。


 

目標端軟體的安裝方法與 完全一致。

 


 

配置應用程式

dblogin sourcedb testdb@192.168.14.52:3306,userid odc,password odc

add replicat rep_my exttrail ./dirdat/my checkpointtable ogg.ggs_checkpoint

edit param rep_my

replicat rep_my

targetdb testdb@192.168.14.52:3306,userid odc,password odc

--HANDLECOLLISIONS

ASSUMETARGETDEFS

DISCARDFILE ./dirrpt/my.dsc,append,megabytes 50

map testdb.*, target testdb.*;

 


 

匯出testdb

mysqldump -uroot -pmysql --single-transaction --master-data=2 -E -R --databases testdb > testdb.sql

 

匯入testdb

# mysql -uroot -pmysql

mysql> source /tmp/testdb.sql

 

找到二進位制日誌點位

# more testdb.sql |grep MASTER_LOG_FILE

-- CHANGE MASTER TO MASTER_LOG_FILE=' mysql-bin.000003', MASTER_LOG_POS= 810;

 

啟動程式

alter extract ext_my,lognum 3,logpos 810

啟動挖掘程式

# ./ggsci

start ext_my

 

如果啟動時報錯:

2022-04-22T16:49:09.680+0800  WARNING OGG-00769  Oracle GoldenGate Capture for MySQL, ext_my.prm:  MySQL Login failed: . SQL error (2002).  Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2).

2022-04-22T16:49:09.680+0800  ERROR   OGG-00770  Oracle GoldenGate Capture for MySQL, ext_my.prm:  Failed to connect to MySQL database engine for HOST localhost, DATABASE testdb, USER odc, PORT 3306.

則建立一個軟連線,再次啟動即可

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

 

啟動傳輸程式

# ./ggsci

start dmp_my

 

啟動應用程式

# ./ggsci

start rep_my

 

至此,MySQL to MySQL 的同步就實施完成了。


 

更改二進位制日誌位置

修改MySQL 配置檔案中的log-bin 變數來修改二進位制日誌位置可能會導致二進位制日誌索引檔案中有兩個不同的路徑,這將會導致OGG 異常。

1.    所以更改二進位制日誌位置需要以下步驟:

2.    停止任何新的DML 操作。

3.    Extract 完成所有現有二進位制日誌的處理。

4.    停止Extract 組。

5.    停止MySQL 資料庫。

6.    修改log-bin 引數。

7.    啟動MySQL 資料庫。

8.    使用flush master 或者reset master 從二進位制日誌索引檔案中清除舊的日誌條目。

9.    啟動Extract

 

配置雙向複製

在雙向複製中,源系統和目標系統上都有Extract Replicat 程式,為了支援這種配置,每個Extract 必須能夠過濾本地Replicat 應用的事務,以便它們不會被重新捕獲。此外,必須設定AUTO_INCREMENT ( 主鍵自增長) ,以便每個系統上的值之前沒有衝突。

1.    要在雙向複製中過濾掉Replicat 操作,請在每個MySQL 資料庫上執行以下步驟:

l    為每個Replicat 配置使用檢查點表。Replicat 在每個事務結束時會對該表進行檢查點。

l    Extract 引數檔案中使用TRANLOGOPTIONS FLITERTABLE 選項指定檢查點表的名稱。Extract 程式將忽略以對指定檢查點表的操作結束的事務。

2.    編輯MySQL 配置檔案設定auto_increment_increment auto_increment_offset 引數以避免雙向操作引起的差異,假設有兩個伺服器ServerA ServerB:

l   ServerA:

auto_increment_increment = 2

auto_increment_offset = 1

 

自增長值為:1,3,5,7,9

l   ServerB:

auto_increment_increment = 2

auto_increment_offset = 2

 

自增長值為:2,4,6,8,10

 

引數解釋:

auto_increment_offset: 自增長欄位起始值

auto_increment_increment: 每次自增長值

 

遠端捕獲

1.    OGG 遠端捕獲使用者授予訪問許可權

mysql > CREATE USER 'username'@'host' IDENTIFIED BY 'Password'; 

mysql > GRANT ALL PRIVILEGES ON *.* TO 'username'@'host’ WITH GRANT OPTION; 

mysql > FLUSH PRIVILEGES;

 

2.    遠端MySQL 伺服器的server_id 值應該大於0

mysql > show variables like 'server_id';

如果server_id 的值為0 ,修改my.cnf 以設定server_id 的值大於0.

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29956245/viewspace-2932706/,如需轉載,請註明出處,否則將追究法律責任。

相關文章