日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle使用goldengate分别向Oracle和mysql双路的单向复制

發布時間:2025/1/21 数据库 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle使用goldengate分别向Oracle和mysql双路的单向复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.Oracle分別向Oracle和mysql雙路的單向復制是在:

ORACLE-mysql的單向復制基礎上做的。http://blog.csdn.net/q947817003/article/details/13294937

二.分別再在ORACLE主庫及ORACLE目標庫上增加相應進程

ORACLE源端增加:

1.增加配置extract進程

按順序執行以下操作:
add extract extora,tranlog, begin now

目標端文件的位置--這里要注意rmttrail指的是目標端的路徑。
add rmttrail /u01/ogg/dirdat/ot, extract extora

edit params extora
在打開的編輯窗口寫入
extract extora
userid ogg, password ogg
rmthost 192.168.1.213, mgrport 7809
rmttrail /u01/ogg/dirdat/ot
table test5.test5;
##################################################

2.目標端增加replicat進程:

-----我這里MYSQL目標庫和ORACLE目標庫在同一臺虛擬機,如果是同樣情況要要注意:
OGG FOR MYSQL和OGG FOR ORACLE安裝在不同目錄,并且所涉及的MGR及接收、抽取進程都是獨立的。
相關的進程都需要單獨啟動。
同時要注意OGG FOR MYSQL和OGG FOR ORACLE兩個主進程要運行在不同的端口,如我的OGG FOR ORACLE運行在7809.??OGG FOR MYSQL運行在7810
逐次輸入以下命令:
dblogin userid ogg,password ogg
add checkpointtable ogg.checkpoint? ?? ?? ???###########如果之前已經配置過增加這個表,就不需要執行這一句。
add replicat repora,exttrail /u01/ogg/dirdat/ot, checkpointtable ogg.checkpoint

edit params repora
在彈出編輯窗口輸入以下:---我這里只設置了同步test5用戶的test5表

試中再建立。
replicat repora
handlecollisions
assumetargetdefs
userid ogg,password ogg
discardfile /u01/ogg/dirdat/repora_discard.txt,append, megabytes 10
map test5.test5, target test5.test5;

三、在ORACLE目標庫創建用戶及表,并啟動主及目標庫的OGG進程。

1. ORACEL目標數據庫中創建用戶和表所使用的語句如下:
使用DBA用戶執行 create user test5 identified by test5;
grant connect,resource to test5;
conn test5/test5
create table test5(aa int primary key);

2.啟動主及目標庫的OGG進程
涉及語句大致如下:
start mgr
start extract extmysql??或start? ?extmysql
start??replicat repmysql? ?或start??repmysql
start extract extora??或start? ?extora
start??replicat repora? ?或start??repora

3.進程 啟動后的狀態如下:
ORACLE主庫OGG進程:??--只用不用 了EXTMYSQL??EXTORA兩個,其它的是其它復制測試用的,不用管。--以下的OGG進程同理。
GGSCI (bys001.oel.com) 21> info all
Program? ???Status? ?? ?Group? ?? ? Lag at Chkpt??Time Since Chkpt
MANAGER? ???RUNNING? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
EXTRACT? ???ABENDED? ???EXT1? ?? ???00:00:00? ?? ?26:20:26? ?
EXTRACT? ???ABENDED? ???EXT3? ?? ???00:00:00? ?? ?26:18:25? ?
EXTRACT? ???RUNNING? ???EXTMYSQL? ? 07:39:30? ?? ?00:00:04? ?
EXTRACT? ???RUNNING? ???EXTORA? ?? ?00:00:00? ?? ?00:08:28? ?
EXTRACT? ???ABENDED? ???PUMP3? ?? ? 00:00:00? ?? ?26:20:29? ?
REPLICAT? ? ABENDED? ???REP2? ?? ???00:00:00? ?? ?26:18:29

MYSQL目標庫OGG進程:
GGSCI (bys2.oel.com) 4> info all
Program? ???Status? ?? ?Group? ?? ? Lag at Chkpt??Time Since Chkpt
MANAGER? ???RUNNING? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
REPLICAT? ? RUNNING? ???REPMYSQL? ? 00:00:00? ?? ?00:00:00

ORACLE目標庫OGG進程:
GGSCI (bys2.oel.com) 14> info all
Program? ???Status? ?? ?Group? ?? ? Lag at Chkpt??Time Since Chkpt
MANAGER? ???RUNNING? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
EXTRACT? ???ABENDED? ???EXT2? ?? ???00:00:00? ?? ?26:19:06? ?
REPLICAT? ? ABENDED? ???REP1? ?? ???00:00:00? ?? ?26:18:59? ?
REPLICAT? ? ABENDED? ???REP3? ?? ???00:00:00? ?? ?26:18:58? ?
REPLICAT? ? RUNNING? ???REPORA? ?? ?00:00:00? ?? ?00:00:
所涉及的OGG相關進程均正常運行。

四、同步測試

注:下面測試中在統計SQL語句執行時間中是不準確的,比如下面的語句

00:19:21 TEST5@bys1>insert into test5 values(333);
1 row created.
00:19:50 TEST5@

如果統計插入語句的執行時間,應該統計執行完語句的返回的下一個命令提示符中的時間,即00:19:50,而不是00:19:21。目前沒實驗環境,暫且這樣。

1.在源庫做插入操作:

??--源庫已經有兩條數據,是在做ORACLE-mysql的單向復制時留下的,這里不清除,
測試可以看到,新增加的ORACLE目標庫中初始沒有這兩條數據,我的配置里OGG也不會自動同步源庫與目標庫表中存在的數據。
TEST5@bys1>select * from test5;
? ?? ???AA
----------
? ?? ? 100
? ?? ? 200
TEST5@bys1>set time on
00:19:21 TEST5@bys1>insert into test5 values(333);
1 row created.
00:19:50 TEST5@bys1>commit;? ?

Commit complete.

00:19:53 TEST5@bys1>---注意記錄一下提交的時間,方便在目標庫查看數據同步情況。

2.目標ORACLE庫查詢數據同步情況:

---因為目標庫內數據未做初始化,原庫有兩條數據100和200.目標庫未初始化這些數據。--可以手動插入那兩條數據即可。
[oracle@bys2 mysqlogg]$ sqlplus test5/test5
TEST5@bys2>set time on
00:19:32 TEST5@bys2>select * from test5;
no rows selected
00:19:54 TEST5@bys2>select * from test5;? ?-
no rows selected
00:19:57 TEST5@bys2>select * from test5;? ---可以看到,主庫提交后延遲有4秒鐘多。
? ?? ???AA
----------
? ?? ? 333

3.目標MYSQL庫同步情況:

[oracle@bys2 mysqlogg]$ mysql -u root -p oggtest
Enter password:
mysql> select * from test5;
+-----+
| aa??|
+-----+
| 100 |
| 200 |
| 333 |
+-----+
3 rows in set (0.00 sec)
mysql> select * from chktab;? ?? ?? ?? ? ----查詢這個表, audit_ts??列在OACLE源庫發出COMMIT后就有了更新。 last_update_ts列是在00:19:54秒,和ORACLE目標庫一樣是有4秒多的延遲了。? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
| group_name | group_key??| seqno | rba??| audit_ts? ?? ?? ?? ?? ?? ? | create_ts? ?? ?? ???| last_update_ts? ?? ?| current_dir? ?|
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
| REPMYSQL? ?| 2345303211 |? ???2 | 1218 | 2013-08-31 00:19:50.795556 | 2013-08-30 14:14:31 | 2013-08-31 00:19:54 | /u01/mysqlogg |
+------------+------------+-------+------+----------------------------+---------------------+---------------------+---------------+
1 row in set (0.00 sec)

總結

以上是生活随笔為你收集整理的Oracle使用goldengate分别向Oracle和mysql双路的单向复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。