If you'd like to know more about the remote capture or delivery or would like to decide if using Oracle GoldenGate remote capture and delivery is a good choice, you can refer to the following blogs:
It's helpful to start with a visual explanation. The following is a typical architecture of a remote capture and delivery. In this architecture, Oracle GoldenGate runs outside of the database server and connects to the Oracle database via the SQL*Net connection.
Answer: The server running the source/target database and the server running Oracle GoldenGate (Oracle Documentation) have to be on operating systems (OS) with the same endian. Please refer to Endianness and Operating Systems for the OS endian summary.
You have to install Oracle Database client on the Oracle GoldenGate server and installing Oracle GoldenGate on the same server. The Oracle home directory (DATABASE_LOCATION or the ORACLE_HOME) is the home directory of your Oracle Database client. Your Oracle GoldenGate Home (SOFTWARE_LOCATION) can be any directory on the server. However, it's recommended to install Oracle GoldenGate deployment directories including the folders for data (dirdat), checkpoint files(dircpr) and parameter files(dirprm) in a network storage which allows you to recover from operating system failures. [1]
The How to Create an Oracle GoldenGate Replication Hub on AWS EC2 blog, gives an example on how to install Oracle Database client for Oracle GoldenGate remote capture and delivery. When using Oracle GoldenGate Cloud Service (GGCS), this step can be skipped because the setup is pre-configured.
For capture, we will discuss the remote integrated capture, where Oracle GoldenGate still runs the LogMiner server inside the Oracle database to capture transactions from the Redo log. The data changes are translated into Logical Change Record (LCR) and area passed to the GoldenGate extract process running outside of the database server. Because the log mining process is completed inside the database, the data size of LCRs sending to the Oracle GoldenGate extract process is smaller than the Redo logs. Therefore, the network traffic between the database server and the Oracle GoldenGate server is low comparing to the downstream capture.
The configuration of an integrated remote capture is very simple. You can first need to define a SQL*Net connection in the $ORACLE_HOME/network/tnsnames.ora file on your Oracle GoldenGate Server:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DB12-ABC.compute-xxx.oraxxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL.xxx.oraclecloud.xxx) ) )
GGSCI > add credentialstore Credential store created in ./dircrd/. GGSCI > alter credentialstore add user C##GGADMIN@ORCL password XXX alias oggadmin Credential store in ./dircrd/ altered. GGSCI > info credentialstore Reading from ./dircrd/: Default domain: OracleGoldenGate Alias: oggadmin Userid: C##GGADMIN@ORCL GGSCI> dblogin useridalias oggadmin Successfully logged into database CDB$ROOT.
extract extgdrds useridalias oggadmin TranlogOptions IntegratedParams (max_sga_size 256) ExtTrail ./dirdat/in DiscardFile ./dirrpt/extgdrds.dsc, Append Megabytes 50 LOGALLSUPCOLS UPDATERECORDFORMAT COMPACT REPORTCOUNT EVERY 2 HOURS, RATE Table PDB1.OGGSRC.*;
For remote delivery, you also need to create an SQL*Net connection to your target database. The connection is usually to a PDB in a multi-tenant database or to a single tenant database using a database user with lower privileges. With the Oracle Database client installed, you can create an SQL*Net connect shown as follows:
target = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = DB12-ABC)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = PDB1.xxx.oraclecloud.xxx) ) )
GGSCI > add credentialstore Credential store created in ./dircrd/. GGSCI > alter credentialstore add user pmdemo@target password XXX alias ggpmdemo Credential store in ./dircrd/ altered.
REPLICAT REPIN useridalias ggpmdemo DBOPTIONS INTEGRATEDPARAMS (parallelism 6) DISCARDFILE ./dirrpt/REPIN.dsc, Purge REPORTCOUNT EVERY 5 records, RATE MAP PDB1.oggsrc.*, TARGET oggtrg.*;
add replicat repin, integrated, exttrail ./dirdat/in