在sybase上安装ggs移步:Installing Oracle GoldenGate for Sybase,
Step 1: Start the GGSCI on Source and Target
Now, we have one Oracle GoldenGate for Sybase setup for Sybase ASE (source) and one Oracle GoldenGate for Oracle setup for Oracle Database.
Source
|
Target
|
| Oracle GoldenGate Command Interpreter for Sybase Version 12.1.2.0.0 17185003 OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316 Linux, x86, 64bit (optimized), Sybase 16 | Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO Linux, x86, 64bit oracle 11g |
Tip: Should I use the same version of Oracle GoldenGate on the Source and Target?
Yes, it is recommended to use the same version on both the source and target. However, If the Oracle GoldenGate versions on the source and target database are different, it is a good practice to use the RELEASE option of the EXTFILE/RMTFILE and EXTTRAIL/RMTTRAIL parameter, especially if you have a lower version of Oracle GoldenGate on the target.
Example: EXTFILE ./dirdat/em, FORMAT RELEASE 11.2
1. Use a defgen paramfile with NOEXTATTR option, or
2. Generate definition file with the same OGG version as the OGG target site version.
$ ./defgen paramfile ./dirprm/defgen.prm reportfile ./dirrpt/defgen.31Jul2013.rpt NOEXTATTR
|
We then need to modify and check the Oracle GoldenGate Manager parameter file to prepare the replication. The following table shows the Oracle GoldenGate Manager setup on the source and target system:
Source
|
Target
| |
export DSQUERY=ASE1
GGSCI> edit param mgr
GGSCI> start mgr GGSCI> info mgr |
GGSCI> edit param mgr
port 15021
dynamicportlist 15011-15020 dynamicportreassigndelay 5 GGSCI> start mgr GGSCI> info mgr |
Step 2: Set up the Source and Target Database
创建city表
Source (Sybase ASE 16)
|
Target (Oracle Database 11.2.0.1)
|
isql -Uogguser -Pogguser -SASE1
>use pubs2 >go |
connect swat/swat
|
create table city (id int, name varchar(10)
go |
create table city (id int, name varchar2(10);
|
insert into city values (1,'New York')
insert into city values (2,'Boston') insert into city values (3,'Dallas') insert into city values (4,'Beijing') go |
insert into city values (1,'New York');
insert into city values (2,'Boston'); insert into city values (3,'Dallas'); insert into city values (4,'Beijing'); |
> select count(1) from city
> go |
> select count(1) from city;
|
Step 3: Set up the Secondary Truncation Point in Sybase Transaction Log
When using Oracle GoldenGate for Sybase, you need to setup the secondary truncation point. This is because Oracle GoldenGate uses the secondary truncation point to identify data that remains to be processed.
To set up the secondary truncation point, you need to login Sybase database with a user who has sa_role privilege and run the “dbcc settrunc(‘ltm’,valid)” command. The detailed steps are shown as follows:
Source
|
| Shell> isql -Uogguser -Pogguser -SASE1
1> use pubs2
2> go
1> dbcc settrunc('ltm', 'valid')
2> go
ltm_truncpage ltm_trunc_state db_rep_stat gen_id dbid dbname lti_version
------------- --------------- ----------- ----------- ------ ------------ -----------
524307 1 1 0 5 sydatabase 0
|
Step 4: Prepare the Source Database and Target Database
Connect to the source DB and add trandata. In addition, confirm that Oracle GoldenGate user can access on the target database shown as follows:
Source
|
Target
|
GGSCI >dblogin sourcedb pubs2@ASE1 userid ogguser password ogguser
GGSCI > list table dbo.city GGSCI > info trandata dbo.city Transaction logging disabled for table dbo.city GGSCI > add trandata dbo.city Transaction logging enabled for table suser.regions. |
GGSCI > dblogin userid swat, password swat
Successfully logged into database. GGSCI > list table swat.city |
Why I get the "ERROR: Cannot use database syd_database. error, no additional information available." error?
Answer: The problem is the parsing issue in Oracle GoldenGate 11.2.1 version if the database has special characters such as “_” in the database and schema name. The current solution is to remove the special characters. |
Because we are working on heterogeneous database replication, you have to create the database metadata definition file on the source system and copy the generated definition file to the target.
Source
|
Target
| |
GGSCI>edit param defgen
|
Copy the generated ./dirout/city.def on the source to the target.
|
| Why do I get the "OGG-05500 Detected database metadata mismatch" error?
Answer: Are you using sourecedefs? When the source and target table structure are different, especially when databases are not in the same type, the metadata is different, we must use sourcedefs.
|
Step 5: Create the Extract (Capture) and Replicat (Delivery)
The setup is shown as follows:
Source
|
Target
| ||
emaster.prm:
|
rmaster.prm:
| ||
Adding the Extract:
GGSCI> add extract emaster, tranlog, begin now GGSCI> add exttrail ./dirdat/em, extract emaster, megabytes 50 |
Adding the Replicat:
GGSCI >edit param ./GLOBALS GGSCHEMA goldengate CHECKPOINTTABLE goldengate.checkpoint GGSCI>ADD CHECKPOINTTABLE goldengate.checkpointtable GGSCI>add replicat rmaster, exttrail ./dirdat/pm | ||
pmaster.prm:
| |||
Adding the Pump:
GGSCI > add extract pmaster, exttrailsource ./dirdat/em EXTRACT added. GGSCI > add rmttrail ./dirdat/pm, extract pmaster, megabytes 50 RMTTRAIL added. | |||
Insert a New Record in Sybase
1> Insert into regions values(5,'Antarctica') 2> go (1 row affected) |
SQL> select * from regions;
REGION_ID REGION_NAME ---- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa 5 Antarctica | ||
Delete a Record in Sybase
1> delete from regions where region_id=5 2> go (1 row affected) |
SQL> select * from regions;
REGION_ID REGION_NAME ---- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa |
Now, we have completed the basic setups of a one-way replication from Sybase ASE database to Oracle Database.Feel free to let me know if you have any questions or comments on the tips I provided above.