日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle數(shù)據(jù)遷移MySQL的三種簡(jiǎn)單方法

瀏覽:36日期:2023-09-18 20:52:52
目錄前言:測(cè)試遷移方法:遷移方式一(navicat)遷移方式二(navicat+sqluldr+load data infile)遷移方式三(navicat+Oracle GoldenGate(OGG))總結(jié)前言:

現(xiàn)今,Oracle數(shù)據(jù)遷移MySQL的需求已經(jīng)越來(lái)越普遍,主要的遷移場(chǎng)景大致可以分為三類(lèi),第一類(lèi)是涉及小表以及少量表的一次性遷移,無(wú)需進(jìn)行增量同步,第二類(lèi)是涉及大表以及多表的一次性遷移,第三類(lèi)是涉及增量實(shí)時(shí)同步,而對(duì)于數(shù)據(jù)的遷移方法,常見(jiàn)的方式有使用第三方的同步工具CDC進(jìn)行Oracle到MySQL的數(shù)據(jù)遷移、使用開(kāi)源的同步工具以及應(yīng)用層面進(jìn)行遷移同步。

基于作者的遷移實(shí)施經(jīng)驗(yàn),本文接下來(lái)將講述三種操作相對(duì)簡(jiǎn)單,可落地的Oracle數(shù)據(jù)遷移MySQL的方法。

測(cè)試遷移方法:遷移方法適合場(chǎng)景測(cè)試場(chǎng)景navicat操作簡(jiǎn)單,同步效率一般,適合小表的一次性遷移Oracle一次性同步表test.test1到MySQL下的db1.test1navicat+sqluldr+load data infile操作較復(fù)雜,同步效率高,適合少量大表的一次性遷移Oracle一次性同步表test.test1到MySQL下的db1.test1navicat+Oracle GoldenGate(OGG)操作復(fù)雜,同步效率較高,適合需要大批量的大表進(jìn)行遷移以及需要實(shí)時(shí)增量同步Oracle全量+實(shí)時(shí)增量同步表test.test1,test2到MySQL下的db1.test1,test2遷移方式一(navicat)

這種遷移方式主要適合小表的一次性遷移,navicat的同步效率速度一般。

遷移開(kāi)始之前,我們需要先安裝navicat,在一臺(tái)能訪(fǎng)問(wèn)Oracle源端和MySQL目標(biāo)端的機(jī)器上安裝即可。

安裝完navicat之后,配置源端Oracle連接

配置目標(biāo)端MySQL連接

開(kāi)始進(jìn)行遷移,選擇工具--->數(shù)據(jù)傳輸

選擇源端Oracle以及目標(biāo)端MySQL

下一步選擇要同步的表TEST,也可以選擇同步全部表

傳輸模式選擇自動(dòng),點(diǎn)下一步開(kāi)始進(jìn)行同步

傳輸同步完成,整個(gè)同步的效率還是較慢的,7.2W的數(shù)據(jù),用了1分鐘。

遷移方式二(navicat+sqluldr+load data infile)

這種遷移方式主要適合少量大表的一次性遷移,通過(guò)navicat工具進(jìn)行Oracle-->MySQL表結(jié)構(gòu)轉(zhuǎn)化,再通過(guò)sqluldr將Oracle數(shù)據(jù)導(dǎo)出到本地文件,最后再通過(guò)load data infile將數(shù)據(jù)導(dǎo)入MySQL。

注:navicat工具雖然有同步數(shù)據(jù)的功能,但在實(shí)際的操作過(guò)程中,同步數(shù)據(jù)的效率以及成功率都很低,所以這里只作為數(shù)據(jù)字典轉(zhuǎn)化的工具。

使用navicat工具進(jìn)行表結(jié)構(gòu)同步,步驟可以參考遷移方式一里面的操作,主要在數(shù)據(jù)傳輸同步時(shí),選項(xiàng)里面只同步表結(jié)構(gòu),不創(chuàng)建記錄。

點(diǎn)擊開(kāi)始,完成表結(jié)構(gòu)同步

接下來(lái)進(jìn)行數(shù)據(jù)的導(dǎo)出導(dǎo)入,先安裝導(dǎo)出工具sqluldr

---解壓安裝包unzip sqluldr2linux64.zip ./sqluldr2linux64.bin --help---拷貝sqluldr2linux64.bin到$ORACLE_HOME的bin目錄cp -rp sqluldr2linux64.bin $ORACLE_HOME/bin---重命名為sqluldr2.binmv sqluldr2linux64.bin sqluldr2.bin

測(cè)試安裝成功

[oracle@rac19a ~]$ sqluldr2.bin --help?SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 4.0.1(@) Copyright Lou Fangxin (AnySQL.net) 2004 - 2010, all rights reserved.?License: Free for non-commercial useage, else 100 USD per server.?Usage: SQLULDR2 keyword=value [,keyword=value,...]?Valid Keywords: user = username/password@tnsname sql = SQL file name query = select statement field = separator string between fields record = separator string between records rows = print progress for every given rows (default, 1000000) file = output file name(default: uldrdata.txt) log = log file name, prefix with + to append mode fast = auto tuning the session level parameters(YES) text = output type (MYSQL, CSV, MYSQLINS, ORACLEINS, FORM, SEARCH). charset = character set name of the target database. ncharset= national character set name of the target database. parfile = read command option from parameter file ? for field and record, you can use '0x' to specify hex character code, \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, '=0x22 '=0x27

使用sqluldr導(dǎo)出為文本類(lèi)型為MYSQL

sqluldr2.bin user=test/oracle@pdb1 query='select * from test' text=MYSQL field=',' charset=AL32UTF8 head='NO' file=/home/oracle/test_001.csv log=test.log

導(dǎo)出過(guò)程很快,58w的數(shù)據(jù),只需要7秒

0 rows exported at 2022-10-12 22:18:14, size 0 MB. 583680 rows exported at 2022-10-12 22:18:21, size 108 MB. output file /home/oracle/test_001.csv closed at 583680 rows, size 108 MB.

再將從Oracle導(dǎo)出的MYSQL文件導(dǎo)入MySQL數(shù)據(jù)庫(kù)

LOAD DATA INFILE '/tmp/test_001.csv' INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY ''';

導(dǎo)入過(guò)程很快,58w的數(shù)據(jù),只需要13秒

test@mysql.sock 22:38: [db1]>LOAD DATA INFILE '/tmp/test_001.csv' INTO TABLE test FIELDS TERMINATED BY ',' ENCLOSED BY ''';Query OK, 583680 rows affected (13.43 sec)Records: 583680 Deleted: 0 Skipped: 0 Warnings: 0

整個(gè)數(shù)據(jù)同步過(guò)程還是較快的,但操作步驟較為繁瑣,不太適合多表操作。

遷移方式三(navicat+Oracle GoldenGate(OGG))

這種遷移方式適合大批量的大表或者需要增量同步的表進(jìn)行遷移,支持全量初始化+Oracle GoldenGate(OGG)增量同步,通過(guò)navicat工具進(jìn)行Oracle-->MySQL表結(jié)構(gòu)轉(zhuǎn)化,再通過(guò)數(shù)據(jù)同步工具OGG進(jìn)行全量表初始化以及后續(xù)的增量同步。

注意:使用增量方式同步的表都需要有主鍵,確保每行數(shù)據(jù)的唯一。

先使用navicat進(jìn)行表結(jié)構(gòu)的轉(zhuǎn)化,具體參考遷移方式二里面的步驟。

Oracle源端配置OGG準(zhǔn)備

1 數(shù)據(jù)庫(kù)開(kāi)啟歸檔模式---查看是否開(kāi)啟歸檔模式archive log list---開(kāi)啟歸檔模式startup mountalter database archvielog ;alter database open;?2 數(shù)據(jù)庫(kù)開(kāi)啟force_logging---查看是否開(kāi)啟force loggingselect force_logging from v$database;----開(kāi)啟force loggingalter database force logging;alter system switch logfile;?3 數(shù)據(jù)庫(kù)開(kāi)啟補(bǔ)充日志supplemental logging---查看補(bǔ)充日志SELECT supplemental_log_data FROM v$database; ---開(kāi)啟補(bǔ)充日志ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; Alter system switch logfile;4 開(kāi)啟ogg參數(shù)alter system set enable_goldengate_replication=true scope=both;5 配置stream_pool大小(MAX_SGA_SIZE * # of integrated Extracts) + 25% head room For example, using the default values for the MAX_SGA_SIZE with two integrated Extracts: ( 1GB * 2 ) * 1.25 = 2.50GB STREAMS_POOL_SIZE = 2560M

MySQL目標(biāo)端配置OGG準(zhǔn)備

1 開(kāi)啟bin_log---確認(rèn)是否開(kāi)啟bin_logshow variables like 'log_bin';2 開(kāi)啟bin_log(需要重啟生效)在my,cnf 中 [mysqld] 添加如下[mysqld]# binlog configurationlog-bin = /usr/local/var/mysql/logs/mysql-bin.logexpire-logs-days = 14max-binlog-size = 500Mserver-id = 1?2 確認(rèn)binlog_format----確認(rèn)格式為rowshow variables like 'binlog_format';?3 確認(rèn)sql_mode ----確認(rèn)包含STRICT_TRANS_TABLESshow variables like 'sql_mode';?4 確認(rèn)版本----確認(rèn)版本,5.7.10之后才支持部分DDL(CREATE TABLE, ALTER TABLE, and DROP TABLE operations are supported.)select version();

創(chuàng)建ogg同步用戶(hù)

1 oracle源端同步用戶(hù)創(chuàng)建

create tablespace ogg_tbs datafile size 1g;create user ogg identified by 'oggoracle';grant resource,dba,connect to ogg;

2 mysql目標(biāo)端同步用戶(hù)創(chuàng)建

CREATE USER ogg IDENTIFIED by 'oggmysql';GRANT ALL PRIVILEGES ON *.* TO 'ogg'@'%';

Oracle源端安裝ogg軟件

1 配置環(huán)境變量

---/home/oracle/.bash_profileexport OGG_HOME=/u01/app/oggexport PATH=$OGG_HOME:$PATH

2 解壓安裝ogg軟件

---解壓安裝ogg軟件,安裝包:p31766135_191004_Linux-x86-64.zipcd /tmp/ unzip p31766135_191004_Linux-x86-64.zip cd 31766135/mv files/* /u01/app/ogg/---驗(yàn)證oracle@rac19b ~]$ ggsci ?Oracle GoldenGate Command Interpreter for OracleVersion 19.1.0.0.4 31637694_FBOLinux, x64, 64bit (optimized), Oracle 19c on Aug 19 2020 20:08:53Operating system character set identified as UTF-8.?Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.?GGSCI (rac19b) 1>

3 創(chuàng)建ogg配置目錄

GGSCI (rac19b) 10> create subdirs?Creating subdirectories under current directory /home/oracle?Parameter file /u01/app/ogg/dirprm: created.Report file /u01/app/ogg/dirrpt: created.Checkpoint file/u01/app/ogg/dirchk: created.Process status files /u01/app/ogg/dirpcs: created.SQL script files /u01/app/ogg/dirsql: created.Database definitions files /u01/app/ogg/dirdef: created.Extract data files /u01/app/ogg/dirdat: created.Temporary files/u01/app/ogg/dirtmp: created.Credential store files /u01/app/ogg/dircrd: created.Masterkey wallet files /u01/app/ogg/dirwlt: created.Dump files /u01/app/ogg/dirdmp: created.?GGSCI (rac19b) 11>

4 啟動(dòng)MGR進(jìn)程

---編輯mgr配置cd /u01/app/ogg/./ggsciGGSCI (rac19b) 1> edit params mgr---配置以下參數(shù)PORT 7809 autorestart extract * ,waitminutes 2,resetminutes 5PURGEOLDEXTRACTS /u01/app/ogg/dirdat/*,USECHECKPOINTS,MINKEEPDAYS 5LAGREPORTHOURS 1LAGINFOMINUTES 30LAGCRITICALMINUTES 45 ---啟動(dòng)mgr進(jìn)程GGSCI (rac19b) 1> start mgrManager started.?GGSCI (rac19b) 2> info all?Program Status Group Lag at Chkpt Time Since Chkpt?MANAGER RUNNING?

MySQL目標(biāo)端安裝ogg軟件

1 配置環(huán)境變量

---/etc/profileexport OGG_HOME=/opt/oggexport PATH=$OGG_HOME:$PATH

2 解壓安裝ogg軟件

---解壓安裝ogg軟件,安裝包:ggs_Linux_x64_MySQL_64bit.tar cd ogg/tar xvf /tmp/ggs_Linux_x64_MySQL_64bit.tar ---驗(yàn)證[mysql@rac19a ~]$ ggsci ?Oracle GoldenGate Command Interpreter for MySQLVersion 19.1.0.0.3 OGGCORE_19.1.0.0.0_PLATFORMS_190907.0144Linux, x64, 64bit (optimized), MySQL Enterprise on Sep 7 2019 08:41:32Operating system character set identified as UTF-8.?Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.

3 創(chuàng)建ogg配置目錄

GGSCI (rac19a) 1> create subdirs?Creating subdirectories under current directory /home/mysql?Parameter file /opt/ogg/dirprm: created.Report file /opt/ogg/dirrpt: created.Checkpoint file/opt/ogg/dirchk: created.Process status files /opt/ogg/dirpcs: created.SQL script files /opt/ogg/dirsql: created.Database definitions files /opt/ogg/dirdef: created.Extract data files /opt/ogg/dirdat: created.Temporary files/opt/ogg/dirtmp: created.Credential store files /opt/ogg/dircrd: created.Masterkey wallet files /opt/ogg/dirwlt: created.Dump files /opt/ogg/dirdmp: created.

4 啟動(dòng)MGR進(jìn)程

---編輯mgr配置cd /opt/ogg/./ggsciGGSCI (rac19b) 1> edit params mgr---配置以下參數(shù)PORT 7809 AUTOSTART REPLICAT *AUTORESTART REPLICAT *,RETRIES 5,WAITMINUTES 2,RESETMINUTES 10PURGEOLDEXTRACTS /opt/ogg/dirdat/*,USECHECKPOINTS,MINKEEPDAYS 5ACCESSRULE, PROG *, IPADDR 192.168.2.*, ALLOWLAGREPORTHOURS 1LAGINFOMINUTES 30LAGCRITICALMINUTES 45---啟動(dòng)mgr進(jìn)程GGSCI (rac19a) 2> start mgrManager started.??GGSCI (rac19a) 3> info all?Program Status Group Lag at Chkpt Time Since Chkpt?MANAGER RUNNING

5 配置全局文件以及檢查表

---ogg連接MySQLGGSCI (rac19a DBLOGIN as ogg) 8> dblogin sourcedb db1@192.168.2.201:3306,userid ogg,password oggmysqlSuccessfully logged into database.---創(chuàng)建檢查表GGSCI (rac19a DBLOGIN as ogg) 9> ADD CHECKPOINTTABLE db1.checkpoint?Successfully created checkpoint table db1.checkpoint.?GGSCI (rac19a DBLOGIN as ogg) 10> ---配置文件設(shè)置全局檢查表GGSCI (rac19a DBLOGIN as ogg) 10> edit params ./GLOBALS ---添加以下配置CHECKPOINTTABLE db1.checkpoint

Oracle源端配置抽取以及投遞進(jìn)程(增量進(jìn)程)

1 對(duì)同步表添加補(bǔ)充日志

---ogg連接OracleGGSCI (rac19b) 3> dblogin userid ogg password oggoracle Successfully logged into database.---為表test.test1添加同步日志GGSCI (rac19b as ogg@testdb) 4> add trandata test.test1 ?2022-10-13 13:08:58 INFO OGG-15132 Logging of supplemental redo data enabled for table TEST.TEST1.?2022-10-13 13:08:58 INFO OGG-15133 TRANDATA for scheduling columns has been added on table TEST.TEST1.?2022-10-13 13:08:58 INFO OGG-15135 TRANDATA for instantiation CSN has been added on table TEST.TEST1.?2022-10-13 13:08:59 INFO OGG-10471 ***** Oracle Goldengate support information on table TEST.TEST1 ***** Oracle Goldengate support native capture on table TEST.TEST1.Oracle Goldengate marked following column as key columns on table TEST.TEST1: ID.---為表test.test2添加同步日志GGSCI (rac19b as ogg@testdb) 5> add trandata test.test2?2022-10-13 13:09:04 INFO OGG-15132 Logging of supplemental redo data enabled for table TEST.TEST2.?2022-10-13 13:09:04 INFO OGG-15133 TRANDATA for scheduling columns has been added on table TEST.TEST2.?2022-10-13 13:09:04 INFO OGG-15135 TRANDATA for instantiation CSN has been added on table TEST.TEST2.?2022-10-13 13:09:04 INFO OGG-10471 ***** Oracle Goldengate support information on table TEST.TEST2 ***** Oracle Goldengate support native capture on table TEST.TEST2.Oracle Goldengate marked following column as key columns on table TEST.TEST2: ID.?GGSCI (rac19b as ogg@testdb) 6>

2 創(chuàng)建EXTRACT抽取進(jìn)程

GGSCI (rac19b) 2> edit params e_test?extract E_TESTSETENV (ORACLE_HOME = '/u01/app/oracle/product/19.0.0/dbhome_1')SETENV (ORACLE_SID = 'testdb')SETENV (NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8')userid ogg, password oggoracleexttrail ./dirdat/es?gettruncates TRANLOGOPTIONS INCLUDEREGIONID,EXCLUDEUSER oggTRANLOGOPTIONS BUFSIZE 2048000TRANLOGOPTIONS DBLOGREADER,DBLOGREADERBUFSIZE 2048000?DISCARDFILE ./dirrpt/E_TEST.dsc,APPEND,MEGABYTES 1000DISCARDROLLOVER AT 6:00REPORTROLLOVER AT 6:00REPORTCOUNT EVERY 1 HOURS,RATE??FETCHOPTIONS MISSINGROW ABENDSTATOPTIONS REPORTFETCH?WARNLONGTRANS 1H,CHECKINTERVAL 10m?DYNAMICRESOLUTIONTABLE TEST.TEST1;TABLE TEST.TEST2;

3 設(shè)置EXTRACT抽取進(jìn)程參數(shù)

GGSCI (rac19b) 2> edit params e_test?extract E_TESTSETENV (ORACLE_HOME = '/u01/app/oracle/product/19.0.0/dbhome_1')SETENV (ORACLE_SID = 'testdb')SETENV (NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8')userid ogg, password oggoracleexttrail ./dirdat/es?gettruncates TRANLOGOPTIONS INCLUDEREGIONID,EXCLUDEUSER oggTRANLOGOPTIONS BUFSIZE 2048000TRANLOGOPTIONS DBLOGREADER,DBLOGREADERBUFSIZE 2048000?DISCARDFILE ./dirrpt/E_TEST.dsc,APPEND,MEGABYTES 1000DISCARDROLLOVER AT 6:00REPORTROLLOVER AT 6:00REPORTCOUNT EVERY 1 HOURS,RATE??FETCHOPTIONS MISSINGROW ABENDSTATOPTIONS REPORTFETCH?WARNLONGTRANS 1H,CHECKINTERVAL 10m?DYNAMICRESOLUTIONTABLE TEST.TEST1;TABLE TEST.TEST2;

4 創(chuàng)建EXTRACT投遞進(jìn)程

GGSCI (rac19b) 3> add extract P_TEST,exttrailsource ./dirdat/esEXTRACT added.?GGSCI (rac19b) 4> add RMTTRAIL ./dirdat/rs,ext P_TEST,megabytes 1000RMTTRAIL added.?GGSCI (rac19b) 5>?

5 設(shè)置EXTRACT投遞進(jìn)程參數(shù)

extract P_TESTuserid ogg, password oggoraclermthost 192.168.2.201, mgrport 7809rmttrail /opt/ogg/dirdat/rspassthru?DISCARDFILE ./dirrpt/P_TEST.dsc,APPEND,MEGABYTES 1000DISCARDROLLOVER AT 6:00?REPORTROLLOVER AT 6:00REPORTCOUNT EVERY 1 HOURS,RATE?TABLE TEST.TEST1;TABLE TEST.TEST2;

6 啟動(dòng)源端抽取以及投遞進(jìn)程

---啟動(dòng)抽取以及投遞進(jìn)程GGSCI (rac19b) 8> start *test?Sending START request to MANAGER ...EXTRACT E_TEST starting?Sending START request to MANAGER ...EXTRACT P_TEST starting?---確認(rèn)狀態(tài)正常runningGGSCI (rac19b) 14> info all?Program Status Group Lag at Chkpt Time Since Chkpt?MANAGER RUNNING EXTRACT RUNNING E_TEST 00:00:02 00:00:07 EXTRACT RUNNING P_TEST 00:00:00 00:00:03 ?GGSCI (rac19b) 15> ---確認(rèn)目標(biāo)端能接收到隊(duì)列文件?[mysql@rac19a dirdat]$ ls -rlthtotal 20K-rw-r----- 1 mysql mysql 19K Oct 13 13:24 rs000000000[mysql@rac19a dirdat]$

MySQL目標(biāo)端配置復(fù)制進(jìn)程(增量進(jìn)程)

1 添加復(fù)制進(jìn)程

GGSCI (rac19a DBLOGIN as ogg) 11> add replicat r_test,exttrail /opt/ogg/dirdat/rs,checkpointtable db1.checkpoint REPLICAT added.?GGSCI (rac19a DBLOGIN as ogg) 12> info all?Program Status Group Lag at Chkpt Time Since Chkpt?MANAGER RUNNING REPLICAT STOPPED R_TEST 00:00:00 00:00:04

2 配置復(fù)制進(jìn)程參數(shù)

GGSCI (rac19a DBLOGIN as ogg) 13> edit params r_test?replicat r_testsetenv (MYSQL_HOME='/usr/local/mysql')setenv (MYSQL_UNIX_PORT='/opt/mysql/data/mysql.sock')dboptions host 192.168.2.201,connectionport 3306targetdb db1,userid ogg, password oggmysql?discardfile /opt/ogg/dirrpt/r_test.dsc,append,megabytes 1000DISCARDROLLOVER AT 6:00?REPERROR (DEFAULT, ABEND)?MAXTRANSOPS 5000 HANDLECOLLISIONSREPORTROLLOVER AT 6:00REPORTCOUNT EVERY 1 HOURS, RATE MAP test.test1, TARGET db1.test1;MAP test.test2, TARGET db1.test2;

3 HANDLECOLLISIONS參數(shù)說(shuō)明

參數(shù)是實(shí)現(xiàn) OGG 全量數(shù)據(jù)與增量數(shù)據(jù)銜接的關(guān)鍵,其實(shí)現(xiàn)原理是在全量數(shù)據(jù)初始完成之后,開(kāi)啟增量抽取進(jìn)程,應(yīng)用全量數(shù)據(jù)初始化期間產(chǎn)生的 redo log。

當(dāng)全量應(yīng)用完成后,開(kāi)啟增量回放進(jìn)程,應(yīng)用全量期間的增量數(shù)據(jù)。可能會(huì)出現(xiàn)數(shù)據(jù)沖突的情況,這就是為什么表一定要有主鍵或者唯一鍵,使用該參數(shù)后增量回放 DML 語(yǔ)句時(shí)主要有以下沖突場(chǎng)景及處理邏輯:

1 目標(biāo)端不存在 delete 語(yǔ)句的記錄,忽略該問(wèn)題并不記錄到 discardfile。

2 目標(biāo)端丟失 update 記錄,更新的是主鍵值,update 轉(zhuǎn)換成 insert,更新的鍵值是非主鍵,忽略該問(wèn)題并不記錄到 discardfile。

3 目標(biāo)端重復(fù) insert 已存在的主鍵值,這將被 replicat 進(jìn)程轉(zhuǎn)換為 UPDATE 現(xiàn)有主鍵值的。

4 在初始化數(shù)據(jù),并追完增量數(shù)據(jù)之后,建議把HANDLECOLLISIONS參數(shù)去掉,Oracle官方建議不要一直使用該參數(shù),這可能導(dǎo)致數(shù)據(jù)不準(zhǔn)。

Oracle源端配置數(shù)據(jù)初始化進(jìn)程(數(shù)據(jù)全量初始化進(jìn)程)

1 添加初始化進(jìn)程

GGSCI (rac19b) 17> add extract e_init,sourceistableEXTRACT added.

2 配置初始化進(jìn)程

GGSCI (rac19b) 20> edit params e_init?extract e_initSETENV (ORACLE_HOME = '/u01/app/oracle/product/19.0.0/dbhome_1')SETENV (ORACLE_SID = 'testdb')SETENV (NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8')userid ogg, password oggoracleRMTHOST 192.168.2.201,MGRPORT 7809RMTTASK REPLICAT,GROUP r_init?table test.test1;table test.test2;

MySQL目標(biāo)端配置數(shù)據(jù)初始化進(jìn)程(數(shù)據(jù)全量初始化進(jìn)程)

1 添加初始化進(jìn)程

GGSCI (rac19b) 17> add extract e_init,sourceistableEXTRACT added.

2 配置初始化進(jìn)程

GGSCI (rac19b) 20> edit params e_init?extract e_initSETENV (ORACLE_HOME = '/u01/app/oracle/product/19.0.0/dbhome_1')SETENV (ORACLE_SID = 'testdb')SETENV (NLS_LANG = 'AMERICAN_AMERICA.AL32UTF8')userid ogg, password oggoracleRMTHOST 192.168.2.201,MGRPORT 7809RMTTASK REPLICAT,GROUP r_init?table test.test1;table test.test2;

全量數(shù)據(jù)初始化

數(shù)據(jù)初始化會(huì)將全表的數(shù)據(jù)通過(guò)創(chuàng)建的ogg進(jìn)程e_init,r_init從Oracle源端同步到MySQL目標(biāo)端。

1 啟動(dòng)Oracle源端的e_init初始化進(jìn)程

GGSCI (rac19a DBLOGIN as ogg) 17> add replicat r_init,specialrun REPLICAT added.

2 目標(biāo)端查看同步的進(jìn)度

GGSCI (rac19a DBLOGIN as ogg) 18> edit params r_init?replicat r_initsetenv (MYSQL_HOME='/usr/local/mysql')setenv (MYSQL_UNIX_PORT='/opt/mysql/data/mysql.sock')dboptions host 192.168.2.201,connectionport 3306targetdb db1,userid ogg, password oggmysqldiscardfile /opt/ogg/dirrpt/r_init.dsc,append,megabytes 1000MAXTRANSOPS 5000 MAP test.test1, TARGET db1.test1;MAP test.test2, TARGET db1.test2;

3 同步完成,會(huì)輸出總的數(shù)量

Report at 2022-10-13 14:35:19 (activity since 2022-10-13 14:30:57)?Output to r_init:?From Table TEST.TEST1: # inserts: 999901 # updates: 0 # deletes: 0 # upserts: 0 # discards: 0From Table TEST.TEST2: # inserts: 1000000 # updates: 0 # deletes: 0 # upserts: 0 # discards: 0??REDO Log Statistics Bytes parsed 0 Bytes output 285986537

增量數(shù)據(jù)同步

1 啟動(dòng)目標(biāo)端復(fù)制進(jìn)程r_test

GGSCI (rac19a DBLOGIN as ogg) 65> start r_test?Sending START request to MANAGER ...REPLICAT R_TEST starting??GGSCI (rac19a DBLOGIN as ogg) 66> info all?Program Status Group Lag at Chkpt Time Since Chkpt?MANAGER RUNNING REPLICAT RUNNING R_TEST 00:00:00 00:00:01

2 查看增量同步信息

GGSCI (rac19a DBLOGIN as ogg) 67> stats r_test?Sending STATS request to REPLICAT R_TEST ...?Start of Statistics at 2022-10-13 14:45:24.?Replicating from TEST.TEST1 to db1.test1:?---collisions解決沖突數(shù)據(jù)的行數(shù)*** Total statistics since 2022-10-13 14:45:17 *** Total inserts0.00 Total updates0.00 Total deletes 99.00 Total upserts0.00 Total discards 0.00 Total operations 99.00 Total delete collisions 99.00??Replicating from TEST.TEST2 to db1.test2:---增量update了10行*** Total statistics since 2022-10-13 14:45:17 *** Total inserts0.00 Total updates 10.00 Total deletes0.00 Total upserts0.00 Total discards 0.00 Total operations 10.00??End of Statistics.?

3 注釋去除HANDLECOLLISIONS參數(shù)

注:要在增量同步進(jìn)程應(yīng)用完初始化期間產(chǎn)生的日志以及實(shí)時(shí)同步之后,再去除參數(shù)。

#編輯配置文件,注釋---HANDLECOLLISIONSGGSCI (rac19a DBLOGIN as ogg) 71> edit params r_test?replicat r_testsetenv (MYSQL_HOME='/usr/local/mysql')setenv (MYSQL_UNIX_PORT='/opt/mysql/data/mysql.sock')dboptions host 192.168.2.201,connectionport 3306targetdb db1,userid ogg, password oggmysql?discardfile /opt/ogg/dirrpt/r_test.dsc,append,megabytes 1000DISCARDROLLOVER AT 6:00?REPERROR (DEFAULT, ABEND)?MAXTRANSOPS 5000??---HANDLECOLLISIONSREPORTROLLOVER AT 6:00REPORTCOUNT EVERY 1 HOURS, RATE MAP test.test1, TARGET db1.test1; MAP test.test2, TARGET db1.test2;?#重啟進(jìn)程生效GGSCI (rac19a DBLOGIN as ogg) 73> stop r_test?Sending STOP request to REPLICAT R_TEST ...Request processed.??GGSCI (rac19a DBLOGIN as ogg) 74> start r_test?Sending START request to MANAGER ...REPLICAT R_TEST starting??GGSCI (rac19a DBLOGIN as ogg) 75>

4 測(cè)試數(shù)據(jù)同步情況

Oracle源端刪除999行數(shù)據(jù),當(dāng)前數(shù)據(jù)99001

SQL> select count(*) from test.test2;? COUNT(*)---------- 1000000?SQL> delete from test.test2 where rownum<1000;?999 rows deleted.?SQL> commit;?Commit complete.?SQL> select count(*) from test.test2;? COUNT(*)---------- 999001?SQL>

MySQL目標(biāo)端同步刪除的操作,數(shù)據(jù) 一致都為999001

root@mysql.sock 14:33: [db1]>select count(*) from db1.test2;+----------+| count(*) |+----------+| 999001 |+----------+1 row in set (0.17 sec)?root@mysql.sock 14:54: [db1]>?

使用navicat+Oracle GoldenGate(OGG)的方式,操作步驟比較復(fù)雜,但如果需要遷移的表多,并且需要實(shí)時(shí)的增量同步,那么還是比較適合的。

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)遷移MySQL的三種簡(jiǎn)單方法的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)遷移MySQL內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩不卡免费高清视频| 成人免费电影网址| 欧美激情视频一区二区三区免费| 一区二区三区国产在线| 中文不卡在线| 日韩影院免费视频| 欧美激情福利| 国产精品最新| 久久精品亚洲| 欧美在线影院| 日本亚洲最大的色成网站www| 国产精品xxx| 在线精品小视频| 日韩免费在线| 免费在线观看一区二区三区| 国产精品老牛| 成人在线视频中文字幕| 99成人在线| 国产毛片久久| 亚洲精品黄色| 国产美女久久| 国产精品久久久久久久久久白浆| 日韩国产精品久久久久久亚洲| 欧美1区2区3| 黄色日韩在线| 欧美午夜不卡| 97精品国产一区二区三区| 欧美二区视频| 久久蜜桃资源一区二区老牛| 日本不卡的三区四区五区| 国产a亚洲精品| 日韩欧美自拍| 国产在线看片免费视频在线观看| 国产欧美自拍| 首页国产精品| 欧美日韩国产免费观看| 国产亚洲福利| 欧美日韩在线二区| 宅男噜噜噜66国产日韩在线观看| 一区在线免费观看| 日韩综合一区二区三区| 97久久精品| 欧美日韩中文一区二区| 国产99亚洲| 亚洲v天堂v手机在线| 精品网站999| 国产精品美女久久久浪潮软件| 日韩三区四区| 日韩电影二区| 亚洲男人在线| av综合电影网站| 日韩中文字幕视频网| 韩国久久久久久| 日韩欧美另类中文字幕| 樱桃视频成人在线观看| 日韩国产欧美三级| 久久久国产精品一区二区中文| 视频一区日韩精品| 91视频一区| 日韩一区二区三区在线看| 欧美一级鲁丝片| 日韩高清一级| 亚洲高清av| 国产精品4hu.www| 亚洲一区二区网站| 精品视频网站| 亚洲精品自拍| 欧美日韩一区二区三区视频播放| 欧美日韩va| 老牛国产精品一区的观看方式| 国产综合亚洲精品一区二| 欧美日韩调教| 久久精品亚洲人成影院 | 日本一不卡视频| 1000部精品久久久久久久久| 美女视频网站久久| 中文字幕亚洲影视| 国产综合婷婷| 国产一区调教| 亚洲1区在线观看| 国内激情久久| sm捆绑调教国产免费网站在线观看| 视频一区日韩精品| 尤物精品在线| 日韩国产欧美一区二区| 国产精品2023| 亚洲精品三级| 国产专区一区| 97国产精品| 国产一区二区三区四区| 日韩精品电影一区亚洲| 99成人在线| 激情视频一区二区三区| 成人欧美一区二区三区的电影| 婷婷六月综合| 国产精品一区二区av日韩在线| 日韩在线欧美| 亚洲深夜视频| 国产精品亚洲综合在线观看| 日韩毛片一区| 免费精品视频| 亚洲精品1区2区| 国产乱码午夜在线视频| 久久国产日韩欧美精品| 色8久久久久| 天堂俺去俺来也www久久婷婷| 亚洲欧美日韩高清在线| 影音国产精品| 国产欧美88| 福利欧美精品在线| 久久国产精品毛片| 麻豆精品蜜桃视频网站| 久久亚洲在线| 日韩av福利| 久久精品电影| 欧美日韩在线网站| 99久久久国产精品美女| 久久婷婷国产| 免费一级欧美片在线观看网站| 日韩精品91亚洲二区在线观看| 亚洲精品欧美| 亚洲区欧美区| 欧美一区二区三区免费看| 日韩不卡在线观看日韩不卡视频| 亚洲色图国产| 欧美日韩在线精品一区二区三区激情综合| 亚洲精品美女91| 久久国产视频网| 另类综合日韩欧美亚洲| 成人在线免费观看网站| 日韩中文字幕高清在线观看| 群体交乱之放荡娇妻一区二区| 国产成人免费精品| 欧美日韩国产观看视频| 日本韩国欧美超级黄在线观看| 国产99亚洲| 午夜一级久久| 午夜宅男久久久| 日韩不卡一区二区| 欧美激情五月| 久久久久久网| 91九色精品| 深夜福利一区| 久久av电影| 蜜桃视频在线网站| 在线国产一区| 日韩欧美2区| 国产美女亚洲精品7777| 国产成人精选| 欧美日韩国产综合网| 亚洲啊v在线免费视频| 欧美成人精品一级| 久久久精品久久久久久96| 视频一区在线播放| 91大神在线观看线路一区| 久久一区视频| 国产国产精品| 日本午夜精品| 久久久久久夜| 亚洲一区免费| 欧美激情视频一区二区三区免费| 成人看片网站| 中文字幕一区二区精品区| 国产极品一区| 久久精品国产亚洲夜色av网站| 视频一区欧美精品| 欧美国产免费| 黄色日韩在线| 国产乱人伦丫前精品视频| 亚洲风情在线资源| 欧美日韩免费观看一区=区三区 | 蜜臀久久99精品久久久画质超高清| 国产精品一卡| 国产精品白丝一区二区三区| 亚洲精品国产偷自在线观看| 久久久久网站| 亚洲h色精品| 激情欧美国产欧美| 亚洲福利免费| 免费观看在线综合| 亚洲精品乱码日韩| 欧美成人一二区| 狠狠久久婷婷| 国产日韩欧美三区| 亚洲最大av| 色老板在线视频一区二区| 日韩精品高清不卡| 精品久久亚洲| 日本aⅴ免费视频一区二区三区| 国产精品第一国产精品| 精品一区在线| 免费一区二区三区在线视频| 亚洲黄页一区| 国产suv精品一区二区四区视频| 视频一区视频二区中文字幕| 电影91久久久| 88久久精品| 国产视频亚洲| 黄色在线网站噜噜噜| 日韩一区二区三免费高清在线观看 |