This topic describes how to link a DB2 staging dSource.
Prerequisites
- Be sure that the source and staging instances meet the host requirements and the databases meet the container requirements described in Requirements for DB2 Hosts and Databases.
Source Database Preparation
Instance Owner Permissions
Delphix uses the DB2 instance owner account on the dSource for multiple operations, including verifying the data inside the databases. In order to ingest a database on the staging server with different instance, we need permissions on the source database in order to perform a restore on the staging server. As an example, if we have an instance named "auto1051" at the source with a database name "delphix" and we want to create a dSource on the "auto1052" instance on the staging server, then you must explicitly grant DBADM and SECADM to the dSource instance "auto1052" on the source instance using the following steps:
- Connect to the source database as the source instance owner.
- connect to <DB_NAME> user <INSTANCE_OWNER>
- Issue database grant command
- grant DBADM, SECADM on database to user <DSOURCE_INSTANCE_OWNER>
- Repeat step 2 for every database to be included in the dSource, on the corresponding source database.
- Connect to the source database as the source instance owner.
Determine if your dSource will be a non-HADR instance, an HADR single standby instance, or an HADR multiple standby instance. Non-HADR dSources can only be updated via a full dSource resync from a newer backup file
Non-HADR Database
- See "Instance Owner Permissions" section above.
Ensure that the source database has the necessary user permissions for the provisioned VDBs as described in Database Permissions for Provisioned DB2 VDBs
HADR Single Standby Database
- All items in Non-HADR Database section above.
- The following database configuration settings must be set:
- update db cfg for <DB_NAME> using HADR_LOCAL_HOST <PRIMARY_IP> HADR_LOCAL_SVC <PRIMARY_PORT > immediate
- update db cfg for <DB_NAME> using HADR_REMOTE_HOST <STANDBY_IP> HADR_REMOTE_SVC <STANDBY_PORT> immediate
- update db cfg for <DB_NAME> using HADR_REMOTE_INST <STANDBY_INSTANCE_NAME> immediate
- update db cfg for <DB_NAME> using HADR_SYNCMODE SUPERASYNC immediate
- If database configuration parameter LOGINDEXBUILD is set to OFF, do the following:
- update db cfg for <DB_NAME> using LOGINDEXBUILD ON
- Force off all connections to the database and reactivate the database
- If database configuration parameter LOGARCHMETH1 is set to OFF, do the following:
- update db cfg for <DB_NAME> using LOGARCHMETH1 XXXX (must be a valid log archiving method)
- Take an offline backup
- If LOGARCHMETH1 points to a third-party backup server (i.e. TSM or Netbackup) define LOGARCHMETH2 to disk
- update db cfg for <DB_NAME> using LOGARCHMETH2 DISK:<full path to archive log directory>
- Log files in the directory must be available from the time of the backup until the restore has successfully completed on the dSource.
- update db cfg for <DB_NAME> using LOGARCHMETH2 DISK:<full path to archive log directory>
- db2 start hadr on db <DB_NAME> as primary by force
- Take a full online backup as defined in the "Backup Source Database" section below.
- Record the following information, as it must be entered on the Delphix Engine while creating the dSource.
- HADR Primary hostname
- HADR Primary SVC
- HADR Standby SVC (auxiliary standby port)
HADR Multiple Standby Databases
This assumes a single standby database HADR setup already exists. The existing standby will be referred to as the main standby. The new delphix standby will be referred to as the auxiliary standby.
- The following database configuration settings must be set on the primary database:
- update db cfg for <DB_NAME> using HADR_SYNCMODE <SYNC MODE> immediate – set whichever sync mode you wish to use on your main standby.
- update db cfg for <DB_NAME> using HADR_TARGET_LIST "<MAIN_STANDBY_IP:MAIN_STANDBY_PORT|AUXILIARY_STANDBY_IP:AUXILIARY_STANDBY_PORT>" immediate
- You may have up to two auxiliary standbys defined separated by a '|'; one of which must be the delphix dSource.
stop hadr on db <DB_NAME>
- start hadr on db <DB_NAME> as primary by force
- Take a full online backup as defined in the "Backup Source Database" section below. While this backup is running, you may continue with step 5.
- The following database configuration settings must be set on the existing main standby database:
- update db cfg for <DB_NAME> using HADR_SYNCMODE <same mode as defined in 1.a above.> – It must be the same value used for primary database.
- update db cfg for <DB_NAME> using HADR_TARGET_LIST "<PRIMARY_IP:PRIMARY_PORT|MAIN_STANDBY_IP:MAIN_STANDBY_PORT>"
- stop hadr on db <DB_NAME>
- start hadr on db <DB_NAME> as standby
- Record the following information, as it must be entered on the Delphix Engine while creating the dSource (the auxiliary standby database):
- HADR Primary hostname
- HADR Primary SVC
- HADR Standby SVC (auxiliary standby port)
- HADR_TARGET_LIST <PRIMARY_IP:PRIMARY_PORT|MAIN_STANDBY_IP:MAIN_STANDBY_PORT>
- The following database configuration settings must be set on the primary database:
Delphix Recovery - Backup and Logs
The Delphix Recovery - Backup and Log ingestion feature allows users to provide Delphix with the location of the source database archive logs. Full backups only have to be restored during dSource creation, or during RESYNC operations when there are exceptions, for example, lost/corrupt log files. Archived logs get applied during the snapshot operation.
A full backup is required to create a dSource and prior to the snapshot operation, users can provide the archive logs to update the dSource during the snapshot operation, user provided logs will be applied to the staging database. Applying the logs on a regular basis allows users to keep their dSource in sync with their source database. The staging database will always be in a rollforward pending state. Log validation is performed by the Plugin before applying the logs. Plugin managed Pre and Post Hooks can be used for preparing and purging the full backups and archive logs. A list of logs which are available for purging is stored in the snapshot metadata of the dSource.
HADR and non-HADR configured dSources can be moved to this feature by performing a RESYNC operation.
Delphix supports Delphix Recovery based ingestion with DB2 version 10.5 and 11.1 To use Delphix Backup and Log ingestion simply check the checkbox provided during dSource creation. Delphix Backup and Log ingestion require that:
- A full backup must be accessible on the staging server, it could be a shared location but must be mounted on the staging host and visible as a file system.
- Archived logs must also be accessible on the staging server
- The following command can be used to generate archive logs from the source database;
- db2 archive log for database <database name>
- db2 archive log for database <database name>
- Instance users must have read permissions on logs so that Delphix-managed recover can apply the logs.
- Instance users must have read permissions on logs and additional write permissions on customer provided log location if Delphix is planning to use customer provided log location for applying the logs.
- The following command can be used to generate archive logs from the source database;
- If database configuration parameter LOGINDEXBUILD is set to OFF, do the following:
- update db cfg for <DB_NAME> using LOGINDEXBUILD ON
- Force off all connections to the database and reactivate the database
- Log purging from the provided log location is done by the customer. Delphix only provides the list of logs which are eligible for purging.
Limitations:
- Continuous updates to the dSource are not available. The DB_SYNC operations apply new logs from the log location and keep the dSource updated with changes on the source.
- Read access to the staging database is not available.
Backup Source Database
New Feature: Source Database with Raw DEVICE type Storage
Several users use raw device-based tablespaces for source DB2 databases. To leverage these environments with Delphix, Delphix has built a workflow using DB2s native tools that allow Delphix to discover and convert a raw device-based tablespace into an automatic storage-based tablespace during ingestion. Once the data is ingested into staging, customers will be able to provision VDBs of the automatic storage-based database.
In order to complete the linking process, the Standby dSource must have access to a full backup of the source DB2 databases on disk. This should be a compressed online DB2 backup and must be accessible to the dSource instance owner on disk. Delphix is currently not set up to accept DB2 backups taken using third-party sources such as Netbackup or TSM. All three features of data ingestion HADR, Non-HADR, Delphix Recovery with Backup and Log Ingestion backups must also include logs.
Example backup command: db2 backup database <DB_NAME> online compress include logs
Best Practices for Taking a Backup
The following best practices can help improve backup and restore performance:
Compression should be enabled
Following parameters should be optimally configured:
Utility Heap Size (UTIL_HEAP_SZ)
No. of CPUs
No. of Table Spaces
Extent Size
Page Size
Parallelism & Buffer configuration may be used to improve the backup performance. Parameters that should be configured are :
Parallelism
Buffer Size
No. of Buffers
More information about backup best practices is available in IBM Knowledge Center
Procedure
- Login to the Delphix Management Application.
- On the Databases tab of the Environment Management screen, add a source config against discovered staging instance.
Then, click Manage and select Datasets.
Click the Plus (+) icon and select Add dSource, you’ll get a list of available source configs using which you can go fordsource creation.
In the Add dSource wizard, select the required source configuration.
Consider the following when choosing an ingestion method.
- If you are working with an HADR setup and want to ingest the database on a staging using HADR configurations, you need to check the HADR checkbox and need to uncheck the Delphix Recovery, Backups and Logs checkboxes.
- To use a non-HADR method for database ingestion then you need to uncheck the HADR and Delphix Recovery, Backups and Logs checkboxes.
- To use the Delphix Recovery, Backups and Logs method for database ingestion then only check the Delphix Recovery, Backups and Logs checkbox and uncheck the HADR checkbox.
The database name is mandatory and must be unique for a given instance. This is the name that the database was on the instance it was restored from.
Enter the complete Backup Path where the database backup file resides. If no value is entered, the default value used is the instance home directory. If there are multiple backup files for a database on the backup path, the most current one will be used.
Enter the Log Archive Method1 you wish to use for the database. If no value is entered, the default value used is DISK:/mountpoint/dbname/arch.
Optionally, users can set the database configuration parameters during the linking operation in the Config Settings section.
Optionally, users can provide a bash script as a Toolkit defined hook. Delphix has two Toolkit managed Hooks:
- Toolkit Pre-Restore Hook: The bash script entered in this field will get executed before restoration. This hook is useful in such cases where the users want to prepare the full backup before the restore operation.
Toolkit Post-Restore Hook: The bash script entered in this field will get executed after completion of the restore operation. This hook is useful in such cases where the user wants to purge the full backup file after the restore operation.
1. Plugin managed pre-Hook - User can copy the required full backup file from some remote location to staging host. Below is an example of such bash script (name of below script is copyBackup.sh) #!/bin/bash # Copying backup file from a remote host remote.delphix.com scp auto1051@remote.delphix.com:/backuplocation/R74D105A.0.auto1051.DBPART000.20180510073639.001 /db2backup/ The user can provide the above script in Plugin managed pre-Hook field as "sh copyBackup.sh" 2. Plugin managed post-Hook - User can purge the full backup file from the staging host. Below is an example of such bash script (name of below script is purgeBackup.sh) #!/bin/bash # Purging full backup file from staging host for saving the staging storage rm -f /db2backup/R74D105A.0.auto1051.DBPART000.20180510073639.001 The user can provide the above script in Plugin managed post-Hook field as "sh purgeBackup.sh"
If the dSource is to use HADR please enter the following fields. For more information about HADR please view Linking a dSource from a DB2 Database: An Overview.
a. Enter a fully qualified HADR Primary Hostname. This is a required field for HADR and must match the value set for HADR_LOCAL_HOST on the master.
b. Enter the port or /etc/services name for the HADR Primary SVC. This is a required field for HADR and uses the value set for HADR_LOCAL_SVC on the master.
c. Enter the port or /etc/services name for the HADR Standby SVC. This is a required field for HADR and uses the value set for HADR_REMOTE_SVC on the master.
If you are using Delphix Recovery with Backup and Log Ingestion for dSource creation complete the following fields:
Check the Delphix Recovery, Backups and Logs checkbox
Provide the log location of the archive logs. In this location, users can load copy files by appending schema and table name to it so that the plugin can process those load copy files during the log application process. Archive logs will be used for applying the logs during the snapshot operation. This location must be a part of the staging server and this location must be different than a full backup location.
Special consideration during dSource upgrade from older version plugin to Delphix Recovery, Backups and Logs feature enabled plugin
If a user has a dSource with an older version of the plugin and now wants to upgrade that dSource to the Delphix Recovery, Backups and Logs feature then the user needs to perform the following steps:
1. Go to the configuration tab of dSource and then click on the custom sub-tab.
2. Click on the edit icon.
3. Check the Customer Supplied Archive Logs (formerly known as Delphix Recovery, Backups and Logs) and Archive Log Location is READ ONLY (formerly known as Copy to Apply) checkbox.
4. Click on submit and then go for RESYNC operation to upgrade the dSource.
How to upgrade an existing dSource to "Delphix Recovery, Backups and Logs" feature
If the user has a dSource (with HADR or non-HADR configuration) and now wants to upgrade that dSource to Customer Supplied Archive Logs (formerly known as Delphix Recovery, Backups and Logs) feature then the user needs to perform the following steps:
1. Go to the configuration tab of dSource and then click on the custom sub-tab.
2. Click on the edit icon.
3. Check the Delphix Recovery, Backups and Logs and Copy to Apply checkbox and make sure HADR checkbox must be unchecked.
4. Provide the log path where the user will keep the archive logs, this path should be on staging and must have read permission to instance user. Providing logs is not mandatory for this option; backups without logs can continue to be used for staging purposes
5. Click on submit and then go for RESYNC operation to upgrade the dSource.The Copy to Apply ( default) option indicates whether Delphix should copy the log files to the dSource’s filesystem prior to the log apply process. If this is not selected the staging database will read the log files directly from the user-provided log location and perform the log apply the operation.
Special considerations for Load copy files
If load copy operations were performed on the source database and you want the Toolkit to process the load files place the load copy files in your location and append the schema and table names (for example: <DB Name>.<Number>.<Instance>.DBPART000.<Timestamp>.001.<schema name>.<table name>) to the load copy file names
If you do not want to process load copy files via the Toolkit place the load copy files in a similar structure as it is on the source or set a DB2 registry parameter DB2LOADREC.
Click Next.
Enter a dSource name and select a group for your dSource. Adding a dSource to a dataset group lets you set Delphix Domain user permissions for that database and its objects, such as snapshots.
- Click Next.
Set the Staging Environment to be the same as the dSource host. Select the Staging Environment User to be the same as the instance owner of the dSource instance.
Changing the Environment User
If you need to change or add an environment user for the dSource instance, see Managing DB2 Users and Instance Owners.Then, click Next and you’ll get the Policies section. Set the desired Snapsync Policy for the dSource. For more information on policies see Advanced Data Management Settings for DB2 dSources.
Click Next and specify any desired pre- and post-scripts. For details on pre- and post-scripts, refer to Customizing DB2 Management with Hook Operations.
Click Next. Review the dSource Configuration and Data Management information in the Summary section.
Click Submit.
The Delphix Engine will initiate two jobs to create the dSource: DB_Link and DB_Sync. You can monitor these jobs by clicking Active Jobs in the top menu bar, or by selecting System > Event Viewer. When the jobs have completed successfully, the database icon will change to a dSource icon on the Environments > Host > Databases screen, and the dSource will also appear in the list of Datasets under its assigned group.
The dSource Configuration Screen
After you have created a dSource, the dSource Configuration tab allows you to view information about it and make modifications to its policies and permissions. In the Datasets panel, select the dSource you wish to examine. You can now choose the configuration tab to see information such as the Source files, Data Management configuration, and Hook Operations. For more information, see Advanced Data Management Settings for DB2 dSources.
Purging of archive logs after snapshot operation
Logs can be purged from your log location after the snapshot operation. The Toolkit will preserve the list of logs which are eligible for purging in the snapshot's metadata. The snapshot metadata can be accessed via the Delphix CLI or API.