gg_ext_stat()
{
ext=$1
# read the environment file for gg here
# . /var/opt/oracle/.ggsora12_env
#
# info extract <extract name>
# send EP1XXXDM, report
echo
echo "Extract status................."
echo
/oracle/product/12.1/gg_1/ggsci <<EOF
sh date
send ${ext}, status
EOF
}
gg_zipfile_chk()
# This assumes a standard directory of
# /ora01/Oracle_SW/gg121 for the distribution media
{
#######################################################
# If the directory exists see if the files is there
#######################################################
clear
echo
echo "Checking for the V46695-01.zip file"
echo
echo
echo "Checking directory /ora01/Oracle_SW/gg121 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/gg121/V46695-01.zip ]; then
echo "..../ora01/Oracle_SW/gg121/V46695-01.zip file found....."
else
echo "..../ora01/Oracle_SW/gg121/V46695-01.zip file not found."
fi
echo
echo "Checking directory /ora01/Oracle_SW/1212111/gg121 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/gg121/1212111/V46695-01.zip ]; then
echo "..../ora01/Oracle_SW/gg121/1212111/V46695-01.zip file found....."
else
echo "..../ora01/Oracle_SW/gg121/1212111/V46695-01.zip file not found."
fi
echo
echo "Checking for the xagpack_7b.zip file"
echo
echo
echo "Checking /ora01/Oracle_SW/xag71 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/xag71/xagpack_7b.zip ]; then
echo "..../ora01/Oracle_SW/xag71/xagpack_7b.zip file found....."
else
echo "..../ora01/Oracle_SW/xag71/xagpack_7b.zip file not found."
fi
}
gg_inst()
{
# Change to the correct directory
cd /ora01/Oracle_SW/gg121/1212111/fbo_ggs_Linux_x64_shiphome/Disk1
./runInstaller -silent -responseFile /oracle/admin/scripts/apex/ggcore.rsp
}
Occasionally you may the opportunity to setup GoldenGate in a remote environment for both capture and delivery.
RDU SDU Oraganism
BDP Stuff
They call the BDP a "product" because the value for BDP is indeed a multiplication of the average round-trip time and the total bandwidth of the network cable.
For example, if a network has a bandwidth of 100 megabytes per second and a round trip time of 5 milliseconds, the recv_buf_size and send_buf_size sqlnet.ora parameters values should be set to a value of at least 63k:
(100X106) * (5X10-3) bits ~= 63k:.
100,000,000 bits 1 byte 5 seconds
---------------- x ------ x --------- = 62,500 bytes
1 second 8 bits 1000
To prevent network contention, the values for recv_buf_size and send_buf_size should be set to the maximum amount of data that might be sent, at least 3x the value of your bandwidth delay product (BDP).
Send and Receive Buffers
Standby Network Tuning
If you are tuning your network to maximize throughput (as opposed to tuning for fast response time), Oracle suggests setting recv_buf_size and send_buf_size sqlnet.ora parameters equal to 3 times the Bandwidth Delay Product (BDP).
MAA Database Migration with a GoldenGate Hub
When a transaction is committed on the source database, only new data is written to the Redo log. However for Oracle to apply these transactions on the destination database, the "before image" key values are required to identify the effected rows. This data is also placed in the trail file and used to identify the rows on the destination, using the key value the transactions are executed against them. This is a key consideration for data sizing for the trail files.
Important considerations for bi-directional replication
The customer should consider the following points in an active-active replication environment.
- Primary Key: Helps to identify conflicts and Resolve them.
- Sequences: Are not supported. The work around is use to use odd/even, range or concatenate sequences.
- Triggers: These should be disabled or suppressed to avoid using uniqueness issue
- Data Looping: This can be easily avoided using OGG itself
- LAG: This should be minimized. If a customer says that there will not be any LAG due to network or huge load, then we don’t need to deploy CRDs. But this is not the case always as there would be some LAG and these can cause conflicts.
- CDR (Conflict Detection & Resolution): OGG has built in CDRs for all kind of DMLs that can be used to detect and resolve them.
- Packaged Application: These are not supported as it may contain data types which are not support by OGG or it might not allow the application modification to work with OGG.
OGG can be installed on ACFS
No, OGG binaries are not supported on DBFS. You can however store parameter files, data files (trail files), and checkpoint files on DBFS.
Operating System
a. Memory – Ensure that there is enough memory. This will determined by the number of GoldenGate processes which will be configured on the server.
b. Memory Per Process – Dependent on the size of the transactions and the amount of concurrent transactions in the database. By default one Goldengate extract or replicat process can take up to 8G of memory.
c. Swap space – Configure reasonable swap space in case Goldengate processes swap due to low memory condition.
d. Disk space – Enough disk space to hold the trail files for the required retention period. As a starting point it could be made approximately the same as the amount of archive logs generated in a specific time period. Also consider the amount of space that might be needed for an initial load.
All the current papers on GoldenGate are available on the Oracle MAA site (http://www.oracle.com/technetwork/database/features/availability/oracle-database-maa-best-practices-155386.html).
1. Oracle GoldenGate Performance Best Practices: http://www.oracle.com/technetwork/database/availability/maa-gg-performance-1969630.pdf
2. Oracle GoldenGate with RAC (this is currently being updated and the new version should be available in about 2 weeks): http://www.oracle.com/technetwork/database/features/availability/maa-goldengate-rac-2007111.pdf
3. Transparent Role Transitions with Oracle Data Guard and Oracle GoldenGate: http://www.oracle.com/technetwork/database/availability/ogg-adg-2422372.pdf
Current Whitepapers Page
Full Stack Role Transition ACFS April 2016
Full Stack Role Transition DBFS August 2016
Transparent Role Transitions With Oracle Data Guard and Oracle GoldenGate Feb 2015
GoldenGate Performance Best Practices Nov 2014
gg_zipfile_chk()
#######################################################
# If the directory exists see if the files is there
#######################################################
{
clear
echo
echo
echo "Checking for the V46695-01.zip file"
echo
echo
echo "Checking /ora01/Oracle_SW/gg121 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/gg121/V46695-01.zip ]; then
echo "..../ora01/Oracle_SW/gg121/V46695-01.zip file found....."
else
echo "..../ora01/Oracle_SW/gg121/V46695-01.zip file not found."
fi
echo
echo "Checking /ora01/Oracle_SW/1212111/gg121 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/gg121/1212111/V46695-01.zip ]; then
echo "..../ora01/Oracle_SW/gg121/1212111/V46695-01.zip file found....."
else
echo "..../ora01/Oracle_SW/gg121/1212111/V46695-01.zip file not found."
fi
echo
echo "Checking for the xagpack_7b.zip file"
echo
echo
echo "Checking /ora01/Oracle_SW/xag71 for zip file ......."
echo
if [ -f /ora01/Oracle_SW/xag71/xagpack_7b.zip ]; then
echo "..../ora01/Oracle_SW/xag71/xagpack_7b.zip file found....."
else
echo "..../ora01/Oracle_SW/xag71/xagpack_7b.zip file not found."
fi
echo
}
gg_unzip()
{
echo
echo "Unzip the Oracle GG binaries......."
echo
cd /ora01/Oracle_SW/gg121/1212111
unzip V46695-01.zip
}
xag_unzip()
{
####################################################
# Once the software is copied to the location
# Unzip the software
# This function assumes the XAG software has been
# copied to the correct directory on the /ora01
####################################################
cd /ora01/Oracle_SW/xag71
unzip xagpack_7b.zip
}
Oracle Goldengate on DBFS for RAC and Exadata
Let us take a look at the process of configuring Golden Gate 12c to work in an Oracle 12c Grid Infrastructure RAC or Exadata environment using DBFS on Linux x86-64.
This is now supported on ACFS as well, which may outperform the DBFS solution.
Simply put the Oracle Database File System (DBFS) is a standard file system interface on top of files and directories that are stored in database tables as LOBs.
Until recently Exadata did not support using ACFS but ACFS is now supported on version 12.1.0.2 of the RAC Grid Infrastructure.
In summary the steps involved are:
1) Install and configure FUSE (Filesystem in Userspace)
2) Create the DBFS user and DBFS tablespaces
3) Mount the DBFS filesystem
5) Create symbolic links for the Goldengate software directories dirchk,dirpcs, dirdat, BR to point to directories on DBFS
6) Create the Application VIP
7) Download the mount-dbfs.sh script from MOS and edit according to our environment
8) Create the DBFS Cluster Resource
9) Download and install the Oracle Grid Infrastructure Bundled Agent
10) Register Goldengate with the bundled agents using agctl utility