Performance Tuning Options
Introduction
By default Dbvisit Standby is performing secure network transfers including the use of multiple checksum steps to ensure files are transferred successfully and securely between the primary and standby servers.
This section will mention a few options available to you that might be able to assist you to improve performance in your environment.
Important
Make sure you know the effect of setting these parameters and always test this first in a test environment before implementing in production.
General Settings
Disable additional CHECKSUM
By default Dbvisit Standby will perform a checksum of files before they are transferred followed by running a checksum on the file on the destination following a transfer.
This checksum process does take additional time and in most cases are not required.
Disable the checksum process by setting the following parameter in the Dbvisit Standby configuration file (DDC file):
COMPARE_CHECKSUM = N
The default value for this parameter is "Y" for yes.
Disable RUN_INSPECT (Silent Log Gap Report)
By default with every run of Dbvisit Standby, a "Silent" Log Gap Report is executed. This step will review the status of the standby database, gather information about the Apply and Transfer gap between the primary and standby database and updates the internal Dbvisit Standby repository with this information.
This information is then used for reporting options such as the graphs on the "Reporting" page of the Web Based interface.
This option can be disabled and a Log Gap report can be scheduled to run on a daily basis instead or as required.
By disabling this option the process for sending archive logs to the standby server can be reduced as the first part of this process is performing this silent log gap report.
To disable this "Silent Log Gap Report" set the following parameter in the Dbvisit Standby configuration file (DDC file):
RUN_INSPECT=N
The default value for this parameter is "Y" for yes.
In many cases the reporting information is not used or (external monitoring outside Dbvisit Standby is used) and running (scheduling) a log gap report twice or even four times a day is sufficient.
Before disabling this option, you need to note that built in reporting options are limited.
Disable Network Encryption
In most cases network encryption is not required. Dbvisit Standby however is using 128Bit encryption by default for network communication.
If your database environments are located in a secure network, disabling Dbvisit Standby network encryption can assist in performance of data throughput.
To disable network encryption set the following parameter in the Dbvisit Standby configuration file (DDC file):
DBVNET_ENCRYPT = N
The default value for this parameter is "Y" for yes.
Disable Network Compression
Using network compression is not recommended as this will require additional CPU resource. By default network compression is disabled, and should only be enabled if you have an extremely low bandwidth network.
It is recommended to rather make use of the COMPRESS and UNCOMPRESS options available in the Dbvisit Standby configuration.
To ensure network compression is disabled, set the following parameter in the Dbvisit Standby Configuration file (DDC File)
DBVNET_COMPRESS = N
The default value for this parameter is "N" for N - compression disabled.
Advanced Options - Linux Only
Using some of the options listed in this section does require system administrator permission and is specific to Unix (Linux) environments.
These settings should be treated with caution and should always be tested before implementing in production.
IMPORTANT
Test the changes mentioned in this section in a Test environment first before implementing in production
When using ASM, enable ARCHTMP to use fast storage
When using Oracle ASM environments Dbvisit Standby has to extract the Archive logs from ASM to a temporary location. The default location is ARCHDEST, but if ARCHTMP is specified it will be used.
It is recommended that this location be located on fast storage.
Remember the ARCHDEST and ARCHTMP locations must be exactly the same location (folder) on both primary and standby servers. This location must exist and be writable to the oracle and "grid" user (grid infrastructure) if role separation is used.
If your system has sufficient memory capacity you have the option to create a TMPFS (http://en.wikipedia.org/wiki/Tmpfs) and use this for Dbvisit Standby as interim ARCHTMP location.
Example have a "tmpfs" called /tmp/dbvisit on both the primary (All RAC nodes if RAC is used) and standby servers and specify the ARCHTMP=/tmp/dbvisit in the Dbvisit Standby DDC file.
Example steps that can be followed:
Important - make sure you have sufficient memory before doing this
The steps below should be followed on all primary nodes as well as standby server.
Step 1: Create temp location (using root permission for step 1-3 below)
mkdir /tmp/dbvisit
Step 2: Create entry in /etc/fstab as the root user. Note that this example is specifying a size limit for this location of 2G. (This line might be different for your Unix distribution and might need adjustments)
## Add this line below to end of the /etc/fstab tmpfs /tmp/dbvisit tmpfs defaults,size=2G 0 0
Step 3: Mount the new temp location (requires root permission) and review
mount /tmp/dbvisit df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 9.6G 6.0G 3.7G 63% / /dev/xvda1 99M 22M 73M 23% /boot tmpfs 1.2G 200M 1.1G 17% /dev/shm /dev/xvdb1 30G 12G 17G 42% /u01 tmpfs 1.0G 202M 823M 20% /tmp tmpfs 2.0G 0 2.0G 0% /tmp/dbvisit
Step 4: Update the Dbvisit Standby Configuration file
In this example the primary database is using ASM and is called "prod". The Dbvisit Standby Configuration file is called "dbv_prod.env" and is located in '/usr/dbvisit/standby/conf' directory where the DBVISIT_BASE location is '/usr/dbvisit'
Make this change on the primary server DDC file. It will be transferred (replicated) to the standby server on the next run.
## Update the ARCHTMP parameter ARCHTMP=/tmp/dbvisit
Note that in this DDC file the following Linux recommended COMPRESS and UNCOMPRESS parameters are set:
COMPRESS = /bin/gzip UNCOMPRESS = /bin/gunzip
Step 5: Run Dbvisit As normal (Example below)
oracle@dbvlin503[/usr/dbvisit/standby]: ./dbvisit prod ============================================================= Dbvisit Standby Database Technology (7.0.04.11827) (pid 27670) dbvisit started on dbvlin503: Thu Feb 13 16:29:52 2014 () ============================================================= >>> Sending heartbeat message... - done. >>> Checking Dbvisit Standby for configurational differences between dbvlin503 and dbvlin504... Dbvisit Standby configurational differences found between dbvlin503 and dbvlin504... > Transferring 'dbv_prod.env' to server dbvlin504:7890 Progress: 0%...20%...40%...60%...80%...100% [9964 KB/s] - done. >>> Log file(s) for prod will be transferred from dbvlin503 to dbvlin504... > Transferring 'thread_1_seq_3866.2194.839210389.gz' to server dbvlin504:7890 Progress: 0%...20%...40%...60%...80%...100% [9131 KB/s] - done. > Transferring 'thread_1_seq_3867.2251.839241251.gz' to server dbvlin504:7890 Progress: 0%...20%...40%...60%...80%...100% [9983 KB/s] - done. > Transferring 'thread_1_seq_3868.2250.839250237.gz' to server dbvlin504:7890 Progress: 0%...20%...40%...60%...80%...100% [9719 KB/s] - done. > Transferring 'thread_1_seq_3869.2249.839427579.gz' to server dbvlin504:7890 Progress: 0%...20%...40%...60%...80%...100% [9275 KB/s] - done. 4 archive log transfers to dbvlin504 for prod completed. Last sequence was 3869. No Mail sent as SEND_MAIL_FLAG = N >>> Dbvisit Archive Management Module (AMM) Config: number of archives to keep = 0 Config: number of days to keep archives = 7 Config: archive backup count = 0 Config: diskspace full threshold = 80% Current disk percent full (+FRA/prod/archivelog/2014_02_13) = 27% Number of archive logs deleted = 1 ============================================================= dbvisit ended on dbvlin503: Thu Feb 13 16:31:16 2014 =============================================================
Step 6. You can use the "watch" Linux utility to monitor the temp directory while Dbvisit Standby is running, and you will see how the files are created and removed (Remember this is a temporary location)
watch ls -l /tmp/dbvisit
Example output below where above session is showing the Dbvisit Run and the screen below it shows the "watch ls -l /tmp/dbvisit" location: