Configure Oracle RAC Primary with Oracle RAC Standby
Introduction
This section will cover the configuration of Dbvisit Standby where the primary is a two node Oracle RAC configuration with a standby that is also running and Oracle RAC configuration.
Please note the following:
- Dbvisit Standby does support having a standby database that is RAC capable, but there are a number of restrictions and manual steps required:
- The Standby Database can be Oracle RAC enabled, meaning two instances can be configured, this process to configure the standby RAC cluster is manual and will be discussed in this section
- Only one of these instances will be able to perform the recovery. Meaning Dbvisit Standby on the primary nodes are configured to ship logs to only one of the standby database nodes.
- When performing a Graceful Switchover, the standby database must only have one instance running on the Standby RAC cluster.
- Using Shared storage for the ARCHDEST location is recommended (ACFS or NFS) but is not required.
- The key requirements is that the ARCHDEST directory structure must exist on all nodes (primary and standby)
- When performing the initial configuration (DDC Creation and Creation of the Standby Database) both the primary RAC nodes and its database instances must be running.
The high level steps to configure Dbvisit Standby in this type of setup is:
- Make sure pre-requisites are met, example, Operating Systems must match, Oracle Software is already installed and must match between primary and standby cluster.
- Ensure SSH user equivalence is setup between all nodes in the configuration.
- Make sure you are using the latest available Dbvisit Standby software and that it is installed on all nodes in the exact same directory structure. Example install Dbvisit Standby on each node in /usr/dbvisit
- The requirement is that Oracle RAC is already configured, using ASM as the base location for the database files
- Dbvisit Standby Configuration Files (DDC) - should be created - one for each primary node
- The Standby Database is created - first as a single instance standby database on the first node of the standby RAC cluster.
- It is recommended to keep the names for the standby database the same as the primary
- Once the standby is created - first as a single instance standby (with two threads - but one is not active) - manual steps will be performed to convert it to a Oracle RAC enabled database with two instances
- The second instance may be left running, but recovery will always happen from node 1 to which the DDC files on the primary are pointing
- If a Graceful Switchover is performed the second instance on the standby database must be down.
The example below will go through the following steps:
- Dbvisit Standby is installed on each of the 4 nodes in /usr/dbvisit
- Create the Dbvisit Standby Configuration on the primary nodes (kiwi91/92)
- The Standby Database is created on the 1st node on the standyb RAC (kiwi81)
- The Standby database is then updated by first sending and applying logs to make sure everything is working as expected
- The standby database is then converted to a RAC enabled database
- Dbvisit Standby DDC files are updated
- Dbvisit Standby is then used to ship logs and apply logs
- A Graceful Switchover will be performed between the Node 1 of the primary RAC and node 1 of the standby RAC
Example Environment Overview
In this section we will explain the setup by using an example. The configuration consist out of the following:
Primary Oracle RAC Cluster:
- Operating System: Oracle Linux 6 x86_64
- Oracle Database Software 11.2.0.4
- Oracle Clusterware / Grid Infrastructure 11.2.0.4
- Oracle RAC Database: DEV
- Primary Node 1: kiwi91 - running instance DEV1
- Primary Node 2: kiwi92 - running instance DEV2
- Dbvisit Standby software used: 7.0.52
- Dbvisit Standby software installation location: /usr/dbvisit
- Database ASM Diskgroups are: +DATA and +FRA
- The /etc/oratab files on the primary RAC have the following entries:
kiwi91
+ASM1:/u01/app/11.2.0/grid:N # line added by Agent DEV1:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent DEV:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent
kiwi92
+ASM2:/u01/app/11.2.0/grid:N # line added by Agent DEV2:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent DEV:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent
Standby Oracle RAC Cluster:
- Operating System: Oracle Linux 6 x86_64
- Oracle Database Software 11.2.0.4
- Oracle Clusterware / Grid Infrastructure 11.2.0.4
- Oracle RAC Database: DEV (this will first be configured as a single instance on node 1 (kiwi81) and then converted to run two instances on node 1 and 2 on the standby RAC.
- Primary Node 1: kiwi81 - running instance will be DEV1 once the manual changes are complete
- Primary Node 2: kiwi82 - running instance will be DEV2 once the manual changes are complete
- Dbvisit Standby software used: 7.0.52
- Dbvisit Standby software installation location: /usr/dbvisit
- Database ASM Diskgroup s are +DATADR and +DR (This is just as an example showing the diskgroups may be different than the primary - in the ideal configuration they should match the primary)
- The /etc/oratab files on the Standby RAC are edited to include the following
kiwi81
+ASM1:/u01/app/11.2.0/grid:N # line added by Agent DEV1:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent DEV:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent
kiwi82
+ASM2:/u01/app/11.2.0/grid:N # line added by Agent DEV2:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent DEV:/u01/app/oracle/product/11.2.0/db_1:N # line added by Agent
Creating the DDC configurations
In this section we will show step by step the creation of the DDC files.
Two DDC files will be created, one on node 1 (kiwi91) called dbv_DEV1.env and one on node 2 (kiwi92) called dbv_DEV2.env
Creating the DDC "dbv_DEV1.env" on node 1 - kiwi91
In this section we show you the the answers to the "dbvisit_setup" menu creating a new DDC for the primary database node 1 where the instance DEV1 is running for the RAC database called DEV.
The DDC file name will be DEV1 to match the instance name and the file will be called - dbv_DEV1.env.
As part of the creation of the DDC file on the first node, the Dbvisit Standby Repository will be created under the Oracle Database Schema - DBVISIT7
Note: The Detail setup with question answers are below, remember the Standby server in this case will be the first node on the standby Oracle RAC cluster which is kiwi81 where the standby database will be called DEV and the ASM instance is already running as +ASM1
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit_setup ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com ========================================================= =>dbvisit_setup only needs to be run on the primary server. Is this the primary server? <Yes/No> [Yes]: ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : 1a END USER LICENSE AGREEMENT PLEASE READ THIS END USER LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE DOWNLOADING THE LICENSED PRODUCT. BY CLICKING "I AGREE" BELOW, YOU ARE REPRESENTING THAT YOU HAVE THE RIGHT AND AUTHORITY TO LEGALLY BIND .... .... <<---- text removed .... other provisions shall remain in full force and effect. Waiver of any provision of this Agreement in one instance shall not preclude enforcement of it on future occasions. Headings are for reference purposes only and have no substantive effect. Continue ? <Yes/No> [No]: Yes ------------------------------------------------------------------------------ =>Accept Defaults Would you like to do a quick setup? Or would you like Dbvisit to prompt you for all settings and suggest defaults? Values are Yes or No Yes = Quick setup (let Dbvisit choose defaults for settings that are not displayed). No = Dbvisit will prompt for all settings and suggest defaults. All settings will be displayed at the end of the configuration for review. Quick setup? [Y]: =>Dbvisit will do a quick setup: Y Is this correct? <Yes/No> [Yes]: ========================================================= Dbvisit setup begins for RAC. ========================================================= ------------------------------------------------------------------------------ => Please specify if this is the first RAC node in the Dbvisit configuration or not. Values are Yes or No Yes = First RAC node that Dbvisit is configured for. No = Dbvisit has been already configured on another node in this RAC configuration. First Dbvisit RAC node? [Y]: Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>PATH Please set the PATH to the server (or OS) environment. Do not include the ORACLE_HOME in the path. Server environment PATH is [/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin]: =>PATH will be: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ Please specify for which Oracle instance you would like to configure Dbvisit. For RAC, the instance local to this node must be chosen. Not the database. For example, the database may be called RACDB and has the following instances: RACDB1 and RACDB2. Choose RACDB1 or RACDB2 depending on which instance is running on this node. ------------------------------------------------------------------------------ =>ORATAB Dbvisit can use the oratab file to find all the databases on this server. If you would like Dbvisit to do this, please enter the location of the oratab file. Specifying the oratab file is not mandatory. Oratab file is [/etc/oratab]: =>Oratab will be: /etc/oratab Is this correct? <Yes/No> [Yes]: The following Oracle instance(s) have been found on this server: SID ORACLE_HOME === =========== 1) DEV1 /u01/app/oracle/product/11.2.0/db_1 2) DEV /u01/app/oracle/product/11.2.0/db_1 3) Enter own ORACLE_SID and ORACLE_HOME Please enter choice : 1 Is this correct? <Yes/No> [Yes]: =>ORACLE_SID will be: DEV1 =>ORACLE_HOME will be: /u01/app/oracle/product/11.2.0/db_1 ------------------------------------------------------------------------------ =>OWNER Please enter the account owner that will be used to run Dbvisit. It is recommended that this be the same user as the Oracle Database owner. This user should belong to a DBA group. This user must also exist on the standby database server. Account that will run Dbvisit is [oracle]: =>Account owner will be: oracle Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBVNET_PORT Please enter a port number for the DBVNET_PORT parameter. This is the port number on which the Dbvisit network infrastructure daemon/service (Dbvnet) is listening on the primary and standby servers. The default port number used is 7890. Important: since Dbvnet is required in order to transfer files and other information between your servers by Dbvisit Standby, please ensure your firewalls are not blocking this port number. Enter 0 to disable Dbvnet (not recommended) Dbvisit network infrastructure port is [7890]: =>Dbvisit network infrastructure port will be: 7890 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>COMPRESS Please enter compression method. if an external compression is used, then this must also exist on the standby server. It is recommended to disable any other compression routines used to compress the Oracle (archive) log files for this database. If you are unsure, choose option 1. The following compression methods are available: 1) /usr/bin/gzip 2) Dbvisit internal compression (files will be left compressed on server) 3) No compression 4) /usr/bin/compress 5) Enter own method Please enter choice [1] : 1 Is this correct? <Yes/No> [Yes]: =>Compression method will be: /usr/bin/gzip =>Uncompression method will be: /usr/bin/gunzip ------------------------------------------------------------------------------ =>RAC_TAKEOVER_SID Specify the instance name that Dbvisit processing should take over if that instance is unavailable. The instance name must be different to the current instance name (DEV1). The standby database may not be kept up to date if an instance is not available and Dbvisit processing is not taken over by another instance. RAC Takeover SID is []: DEV2 =>RAC Takeover SID will be: DEV2 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>SOURCE Please enter primary server [kiwi91] Primary server is [kiwi91]: =>Primary server will be: kiwi91 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBUSER Please enter the Oracle database user that will be used to log onto the database DEV1. This user will also own the Dbvisit Database repository (DDR) [dbvisit7]. (This user will be created as part of this setup/configuration). Dbvisit Oracle user is [dbvisit7]: =>Dbvisit Oracle user will be: dbvisit7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBPASSWD Please enter the password for Dbvisit Oracle database user dbvisit7. The password must start with a letter. Subsequent characters may be letters, numbers, or the symbols # (pound sign), $ (dollar sign) or _ (underscore). ------------------------------------------------------------------------------ Note: ENCRYPT_PASSWDS is set to Y, the password will be encrypted. Dbvisit Oracle user dbvisit7 password is [dbvisitpasswd] ************* Please re-enter password: ************* ------------------------------------------------------------------------------ =>ORACLE_SID_ASM If your primary database is using ASM, please set the ASM instance name or leave as default. If you are not using ASM, then leave it as default (+ASM). if unsure, leave blank. ORACLE_SID_ASM on primary server is [+ASM1]: =>Optional ORACLE_SID_ASM on primary server will be: +ASM1 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Now please enter the information about the Standby Database ========================================================= =>DESTINATION Please enter the name of the standby server (or standby database server). (Primary server is kiwi91) Standby server is []: kiwi81 =>Standby server will be: kiwi81 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ORACLE_SID_DEST If the ORACLE_SID on the standby server kiwi81 is different than the ORACLE_SID on the primary server, then it can be specified here. Default is the same as ORACLE_SID: [DEV1] Please enter instance on standby server kiwi81. Oracle instance on standby server is [DEV1]: DEV =>Oracle instance on standby server will be: DEV Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBVISIT_BASE_DR Please enter DBVISIT_BASE directory for the standby server kiwi81. DBVISIT_BASE is the Dbvisit installation directory on the standby server kiwi81. DBVISIT_BASE for standby server is [/usr/dbvisit]: =>DBVISIT_BASE_DR for standby server will be: /usr/dbvisit Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ARCHDEST Please enter the directory where Dbvisit will transfer the (archive) log files to on standby server kiwi81. This directory will ONLY contain (archive) log files related to this database. It should not contain any other (non archive log) files. Please ensure that this directory exists on kiwi81 as this cannot be verified. This directory is specific to Dbvisit Standby and is NOT the same as the database archive log directory and should NOT be set to the same value as your database archive log or recovery area location. It is advisable to also create this directory on the primary server kiwi91 for graceful switchover to work. Archive log dir on the standby server is [/oracle/dbvisit_archdest/DEV1]: /u01/app/oracle/dbvisit_archdest/DEV =>Archive log dir on the standby server will be: /u01/app/oracle/dbvisit_archdest/DEV Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAX_TIMES_TRIED Please specify the number of times that Dbvisit should attempt to apply the missing log file before raising an error. Note this number is also used to raise an error if Dbvisit cannot be started in case a previous scheduled Dbvisit is still running. Ensure that this number is not too low and not too high. If you are unsure, set to 4 Maximum attempts before raising error when log file is not there is [4]: =>Maximum attempts before raising error when log file is not there will be: 4 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ORACLE_SID_ASM_DEST If your standby database is using ASM and ASM instance name on the standby server kiwi81 is different than the ASM instance name on the primary server kiwi91, then it can be specified here. Default is the same as ORACLE_SID_ASM: [+ASM1] If you are not using ASM, then leave it as default. if unsure, leave blank. ORACLE_SID_ASM_DEST on standby server is [+ASM1]: =>Optional ORACLE_SID_ASM_DEST on standby server will be: +ASM1 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ADMINS Please enter the administrator email address(es) where emails will be sent upon success or failure of Dbvisit. Multiple emails should be separated with a comma (,). Sample: support@mycompany.com,dba@mycompany.com Administrators email is [oracle@kiwi91]: =>Administrators email will be: oracle@kiwi91 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_FROM Please enter the FROM email address of this server (optional). If this is not specified when using Dbvisit internal mail, the emails may not arrive. Mail FROM address is [oracle@kiwi91.com]: oracle@kiwi91 =>Mail FROM address will be: oracle@kiwi91 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_FROM_DR Please enter the FROM email address of the standby server (optional). If this is not specified when using Dbvisit internal mail, the emails may not arrive. Mail FROM_DR address is [oracle@kiwi81.com]: oracle@kiwi81 =>Mail FROM_DR address will be: oracle@kiwi81 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_SMTP_SERVER Please enter the smtp mail server to send the email to. Sample: - mail.<your company name>.com - smtp.<your company name>.com SMTP mail server is [mail.yourdomain.com]: localhost =>SMTP mail server will be: localhost Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_SMTP_SERVER_DR Optional smtp mail server for the standby server. Only used if smtp mail server for the standby server differs from the main smtp mail server (MAILCFG_SMTP_SERVER). Sample: - mail.dbvisit.com - smtp.dbvisit.com SMTP mail server for standby server is (optional) []: =>SMTP mail server for standby server will be: Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Primary Archive log Management Module Settings (AMM) ========================================================= =>ARCHSOURCE_MANAGEMENT Do you want to setup (archive) log file management on the primary server? This is used to manage the Oracle logs on the primary server. - Alerts when certain thresholds have been reached. - Can delete Oracle archives logs after a set number of days. - Can keep a constant number of Oracle archive logs on the system. Values are Yes or No Yes = Setup and use AMM on primary server. No = do not use AMM on primary server. If you are unsure, set to Yes. Should Dbvisit Archive Log Management Module be used on primary server? [Y]: =>Dbvisit Archive Log Management Module on primary server will used: Y Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DAYS_TO_KEEP_ARCHSOURCE Please specify the number of days to keep the Oracle log files on the primary server. After this the log files will be removed from the server. To disable this setting, set to 0. If you are unsure, set to 7 Number of days to keep log files on disk is [7]: =>Number of days to keep log files on disk will be: 7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>NUM_ARCHSOURCE_TO_KEEP Please specify the number of archive log files to keep on the primary server. Log files greater than this number will be removed (oldest first). To disable this setting, set to 0. If you are unsure, set to 0 (disable). Number of log files to keep on disk is [0]: =>Number of log files to keep on disk will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ARCHSOURCE_BACKUP_COUNT Please specify the number of times an archive log has to be backed up by RMAN before it is deleted from the primary server by Dbvisit Standby. Values range from 0-15 and is only applicable if RMAN is used to backup archive log files. This parameter is only applicable to Oracle versions 9 or higher. To disable this setting, set to 0. If you are unsure, set to 0 (disable). Archive log backup count is [0]: =>Archive log backup count will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>THRESHOLD_ARCHSOURCE Please specify the threshold in percentage (%) of how much disk space may be taken up by the Oracle log files on disk before an alert is triggered on the primary server. 80 means at 80% disk space full an alert will be triggered. Please specify threshold as an integer. If you are unsure, set to 80. Threshold for log file management is [80]: =>Threshold for log file management will be: 80 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>FRA_THRESHOLD_ARCHSOURCE Please specify the threshold in percentage (%) of how much FRA space may be taken up by the Oracle log files on disk before an alert is triggered on the primary server. This setting is valid only for Oracle databases versions 10 or higher that have FRA enabled in the primary database. 80 means at 80% FRA full an alert will be triggered. To disable this setting, set to 0. Please specify threshold as an integer. FRA threshold for log file management is [0]: =>FRA threshold for log file management will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DELETE_ARCHSOURCE Please specify if (archive) log files should be deleted once the threshold (THRESHOLD_ARCHSOURCE) on the primary server is reached. Once the percentage threshold is reached oldest (archive) log files are deleted first. The log files WILL have been transferred to the standby server. (There is no verification that these log files have been backed up). Values are Yes or No Yes = Let Dbvisit delete (archive) log files once percentage threshold is met. No = Dbvisit will only alert once percentage threshold (no log files will be deleted). If you are unsure, set to No. Should Dbvisit Archive Log Management Module delete log files once percentage threshold is met? [N]: =>Dbvisit Archive Log Management Module will delete log files once percentage threshold is met: N Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Standby Archive log Management Module Settings (AMM) ========================================================= =>ARCHDEST_MANAGEMENT Do you want to setup (archive) log file management on the standby server? This is used to manage the Oracle logs on the standby server. - Alerts when certain thresholds have been reached. - Can delete Oracle archives logs after a set number of days. - Can keep a constant number of Oracle archive logs on the system. Values are Yes or no Yes = Setup and use AMM on standby server. No = do not use AMM on standby server. If you are unsure, set to Yes. Should Dbvisit Archive Log Management Module be used on standby server? [Y]: =>Dbvisit Archive Log Management Module on standby server will used: Y Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DAYS_TO_KEEP_ARCHDEST Please specify the number of days to keep the Oracle log files on the standby server. After this the log files will be removed from the server. To disable this setting, set to 0. If you are unsure, set to 7 Number of days to keep log files on disk is [7]: =>Number of days to keep log files on disk will be: 7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>NUM_ARCHDEST_TO_KEEP Please specify the number of archive log files to keep on the standby server. Log files greater than this number will be removed (oldest first). To disable this setting, set to 0. If you are unsure, set to 0 (disable). Number of log files to keep on disk is [0]: =>Number of log files to keep on disk will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>THRESHOLD_ARCHDEST Please specify the threshold in percentage (%) of how much disk space may be taken up by the Oracle log files on disk before an alert is triggered on the standby server. 80 means at 80% disk space full an alert will be triggered. Please specify threshold as an integer. If you are unsure, set to 80. Threshold for log file management is [80]: =>Threshold for log file management will be: 80 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DELETE_ARCHDEST Please specify if (archive) log files should be deleted once the threshold (THRESHOLD_ARCHDEST) on the standby server is reached. Once the percentage threshold is reached oldest (archive) log files are deleted first. The log files WILL have been applied to the standby database. (There is no verification that these log files have been backed up). Values are Yes or No Yes = Let Dbvisit delete (archive) log files once percentage threshold is met. No = Dbvisit will only alert once percentage threshold (no log files will be deleted). If you are unsure, set to No. Should Dbvisit Archive Log Management Module delete log files once percentage threshold is met? [N]: =>Dbvisit Archive Log Management Module will delete log files once percentage threshold is met: N Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ Would you like to review all the variables? <Yes/No> [Yes]: No ------------------------------------------------------------------------------ =>DDC File Please specify the name of the Dbvisit Database Configuration (DDC) file. The DDC file contains all the Dbvisit Standby settings. The DDC file is a plain text file and can be edited manually or through this setup. Dbvisit Database Configuration (DDC) file is [DEV1]: =>Dbvisit Database Configuration (DDC) file will be: DEV1 Is this correct? <Yes/No> [Yes]: =>Dbvisit Database configuration (DDC) file /usr/dbvisit/standby/conf/dbv_DEV1.env created. ------------------------------------------------------------------------------ =>Creating Dbvisit Database repository (DDR). Database DEV1 is up. ------------------------------------------------------------------------------ Please select the default tablespace to install the Dbvisit Database repository (DDR). The following tablespaces are available: Tablespace =========== 1) USERS 2) Refresh list Please enter choice : 1 The default tablespace will be: USERS Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ Please select the temp tablespace to install the Dbvisit Database repository (DDR). The following tablespaces are available: Tablespace =========== 1) TEMP 2) USERS 3) Refresh list Please enter choice : 1 The temp tablespace will be: TEMP Is this correct? <Yes/No> [Yes]: Dbvisit will now create the Dbvisit Database repository (DDR). Continue (Yes) or return to the menu? <Yes/Return> [Yes]: Yes User dbvisit7 created. Grants to user dbvisit7 completed. Dbvisit Database repository (DDR) for dbvisit7 created. ========================================================= Dbvisit configuration completed. IMPORTANT! Ensure the following directories are setup on standby server kiwi81 with the correct permissions: 1) /usr/dbvisit 2) /u01/app/oracle/dbvisit_archdest/DEV Next steps: Create standby database using option in main menu: 7) Create Standby Database ========================================================= Please press <Enter> to return to main menu... ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : E ========================================================= Dbvisit setup completed. Any changes to the configuration can be made by either: 1) Manually by editing dbv_DEV1.env. 2) Running dbvisit_setup and choosing option: -> 6) Update Dbvisit Database configuration (DDC) file Next steps: 1) Run Dbvisit on this server with command: dbvisit DEV1 2) Run Dbvisit on standby server with command: dbvisit DEV1 Once Dbvisit has been tested, schedule Dbvisit on primary and standby servers using cron or other scheduling tool. ========================================================= oracle@kiwi91[/usr/dbvisit/standby]:
The next step now is to create the DDC file for the second primary RAC node.
Creating the DDC "dbv_DEV2.env" on node 2 - kiwi92
In this section we show you the the answers to the "dbvisit_setup" menu creating a new DDC for the primary database node 2 where the instance DEV2 is running for the RAC database called DEV.
The DDC file name will be DEV2 to match the instance name running on this node, and the DDC file will be called - dbv_DEV2.env.
The Dbvisit Standby repository is only created during the first DDC setup and will not be executed again during the second DDC creation.
As this is the second RAC node, when asked the question if this is the first RAC node make sure you specify N (no), example:
First Dbvisit RAC node? [Y]: N
The Detail setup with question answers are below, remember the Standby server in this case will be the first node on the standby Oracle RAC cluster which is kiwi81 where the standby database will be called DEV and the ASM instance is already running as +ASM1
oracle@kiwi92[/usr/dbvisit/standby]: ./dbvisit_setup ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com ========================================================= =>dbvisit_setup only needs to be run on the primary server. Is this the primary server? <Yes/No> [Yes]: ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : 1a END USER LICENSE AGREEMENT PLEASE READ THIS END USER LICENSE AGREEMENT ("AGREEMENT") CAREFULLY BEFORE DOWNLOADING THE LICENSED PRODUCT. BY CLICKING "I AGREE" BELOW, YOU ... ... <<--- text have been removed ... ... other provisions shall remain in full force and effect. Waiver of any provision of this Agreement in one instance shall not preclude enforcement of it on future occasions. Headings are for reference purposes only and have no substantive effect. Continue ? <Yes/No> [No]: Yes ------------------------------------------------------------------------------ =>Accept Defaults Would you like to do a quick setup? Or would you like Dbvisit to prompt you for all settings and suggest defaults? Values are Yes or No Yes = Quick setup (let Dbvisit choose defaults for settings that are not displayed). No = Dbvisit will prompt for all settings and suggest defaults. All settings will be displayed at the end of the configuration for review. Quick setup? [Y]: =>Dbvisit will do a quick setup: Y Is this correct? <Yes/No> [Yes]: ========================================================= Dbvisit setup begins for RAC. ========================================================= ------------------------------------------------------------------------------ => Please specify if this is the first RAC node in the Dbvisit configuration or not. Values are Yes or No Yes = First RAC node that Dbvisit is configured for. No = Dbvisit has been already configured on another node in this RAC configuration. First Dbvisit RAC node? [Y]: N Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>PATH Please set the PATH to the server (or OS) environment. Do not include the ORACLE_HOME in the path. Server environment PATH is [/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin]: =>PATH will be: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ Please specify for which Oracle instance you would like to configure Dbvisit. For RAC, the instance local to this node must be chosen. Not the database. For example, the database may be called RACDB and has the following instances: RACDB1 and RACDB2. Choose RACDB1 or RACDB2 depending on which instance is running on this node. ------------------------------------------------------------------------------ =>ORATAB Dbvisit can use the oratab file to find all the databases on this server. If you would like Dbvisit to do this, please enter the location of the oratab file. Specifying the oratab file is not mandatory. Oratab file is [/etc/oratab]: =>Oratab will be: /etc/oratab Is this correct? <Yes/No> [Yes]: The following Oracle instance(s) have been found on this server: SID ORACLE_HOME === =========== 1) DEV2 /u01/app/oracle/product/11.2.0/db_1 2) DEV /u01/app/oracle/product/11.2.0/db_1 3) Enter own ORACLE_SID and ORACLE_HOME Please enter choice : 1 Is this correct? <Yes/No> [Yes]: =>ORACLE_SID will be: DEV2 =>ORACLE_HOME will be: /u01/app/oracle/product/11.2.0/db_1 ------------------------------------------------------------------------------ =>OWNER Please enter the account owner that will be used to run Dbvisit. It is recommended that this be the same user as the Oracle Database owner. This user should belong to a DBA group. This user must also exist on the standby database server. Account that will run Dbvisit is [oracle]: =>Account owner will be: oracle Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBVNET_PORT Please enter a port number for the DBVNET_PORT parameter. This is the port number on which the Dbvisit network infrastructure daemon/service (Dbvnet) is listening on the primary and standby servers. The default port number used is 7890. Important: since Dbvnet is required in order to transfer files and other information between your servers by Dbvisit Standby, please ensure your firewalls are not blocking this port number. Enter 0 to disable Dbvnet (not recommended) Dbvisit network infrastructure port is [7890]: =>Dbvisit network infrastructure port will be: 7890 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>COMPRESS Please enter compression method. if an external compression is used, then this must also exist on the standby server. It is recommended to disable any other compression routines used to compress the Oracle (archive) log files for this database. If you are unsure, choose option 1. The following compression methods are available: 1) /usr/bin/gzip 2) Dbvisit internal compression (files will be left compressed on server) 3) No compression 4) /usr/bin/compress 5) Enter own method Please enter choice [1] : 1 Is this correct? <Yes/No> [Yes]: =>Compression method will be: /usr/bin/gzip =>Uncompression method will be: /usr/bin/gunzip ------------------------------------------------------------------------------ =>RAC_TAKEOVER_SID Specify the instance name that Dbvisit processing should take over if that instance is unavailable. The instance name must be different to the current instance name (DEV2). The standby database may not be kept up to date if an instance is not available and Dbvisit processing is not taken over by another instance. RAC Takeover SID is []: DEV1 =>RAC Takeover SID will be: DEV1 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>SOURCE Please enter primary server [kiwi92] Primary server is [kiwi92]: =>Primary server will be: kiwi92 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBUSER Please enter the Oracle database user that will be used to log onto the database DEV2. This user will also own the Dbvisit Database repository (DDR) [dbvisit7]. (This user will be created as part of this setup/configuration). Dbvisit Oracle user is [dbvisit7]: =>Dbvisit Oracle user will be: dbvisit7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBPASSWD Please enter the password for Dbvisit Oracle database user dbvisit7. The password must start with a letter. Subsequent characters may be letters, numbers, or the symbols # (pound sign), $ (dollar sign) or _ (underscore). ------------------------------------------------------------------------------ Note: ENCRYPT_PASSWDS is set to Y, the password will be encrypted. Dbvisit Oracle user dbvisit7 password is [dbvisitpasswd] ************* Please re-enter password: ************* ------------------------------------------------------------------------------ =>ORACLE_SID_ASM If your primary database is using ASM, please set the ASM instance name or leave as default. If you are not using ASM, then leave it as default (+ASM). if unsure, leave blank. ORACLE_SID_ASM on primary server is [+ASM2]: =>Optional ORACLE_SID_ASM on primary server will be: +ASM2 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Now please enter the information about the Standby Database ========================================================= =>DESTINATION Please enter the name of the standby server (or standby database server). (Primary server is kiwi92) Standby server is []: kiwi81 =>Standby server will be: kiwi81 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ORACLE_SID_DEST If the ORACLE_SID on the standby server kiwi81 is different than the ORACLE_SID on the primary server, then it can be specified here. Default is the same as ORACLE_SID: [DEV2] Please enter instance on standby server kiwi81. Oracle instance on standby server is [DEV2]: DEV =>Oracle instance on standby server will be: DEV Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DBVISIT_BASE_DR Please enter DBVISIT_BASE directory for the standby server kiwi81. DBVISIT_BASE is the Dbvisit installation directory on the standby server kiwi81. DBVISIT_BASE for standby server is [/usr/dbvisit]: =>DBVISIT_BASE_DR for standby server will be: /usr/dbvisit Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ARCHDEST Please enter the directory where Dbvisit will transfer the (archive) log files to on standby server kiwi81. This directory will ONLY contain (archive) log files related to this database. It should not contain any other (non archive log) files. Please ensure that this directory exists on kiwi81 as this cannot be verified. This directory is specific to Dbvisit Standby and is NOT the same as the database archive log directory and should NOT be set to the same value as your database archive log or recovery area location. It is advisable to also create this directory on the primary server kiwi92 for graceful switchover to work. Archive log dir on the standby server is [/oracle/dbvisit_archdest/DEV2]: /u01/app/oracle/dbvisit_archdest/DEV =>Archive log dir on the standby server will be: /u01/app/oracle/dbvisit_archdest/DEV Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAX_TIMES_TRIED Please specify the number of times that Dbvisit should attempt to apply the missing log file before raising an error. Note this number is also used to raise an error if Dbvisit cannot be started in case a previous scheduled Dbvisit is still running. Ensure that this number is not too low and not too high. If you are unsure, set to 4 Maximum attempts before raising error when log file is not there is [4]: =>Maximum attempts before raising error when log file is not there will be: 4 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ORACLE_SID_ASM_DEST If your standby database is using ASM and ASM instance name on the standby server kiwi81 is different than the ASM instance name on the primary server kiwi92, then it can be specified here. Default is the same as ORACLE_SID_ASM: [+ASM2] If you are not using ASM, then leave it as default. if unsure, leave blank. ORACLE_SID_ASM_DEST on standby server is [+ASM2]: +ASM1 =>Optional ORACLE_SID_ASM_DEST on standby server will be: +ASM1 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ADMINS Please enter the administrator email address(es) where emails will be sent upon success or failure of Dbvisit. Multiple emails should be separated with a comma (,). Sample: support@mycompany.com,dba@mycompany.com Administrators email is [oracle@kiwi92]: =>Administrators email will be: oracle@kiwi92 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_FROM Please enter the FROM email address of this server (optional). If this is not specified when using Dbvisit internal mail, the emails may not arrive. Mail FROM address is [oracle@kiwi92.com]: oracle@kiwi92 =>Mail FROM address will be: oracle@kiwi92 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_FROM_DR Please enter the FROM email address of the standby server (optional). If this is not specified when using Dbvisit internal mail, the emails may not arrive. Mail FROM_DR address is [oracle@kiwi81.com]: oracle@kiwi81 =>Mail FROM_DR address will be: oracle@kiwi81 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_SMTP_SERVER Please enter the smtp mail server to send the email to. Sample: - mail.<your company name>.com - smtp.<your company name>.com SMTP mail server is [mail.yourdomain.com]: localhost =>SMTP mail server will be: localhost Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>MAILCFG_SMTP_SERVER_DR Optional smtp mail server for the standby server. Only used if smtp mail server for the standby server differs from the main smtp mail server (MAILCFG_SMTP_SERVER). Sample: - mail.dbvisit.com - smtp.dbvisit.com SMTP mail server for standby server is (optional) []: =>SMTP mail server for standby server will be: Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Primary Archive log Management Module Settings (AMM) ========================================================= =>ARCHSOURCE_MANAGEMENT Do you want to setup (archive) log file management on the primary server? This is used to manage the Oracle logs on the primary server. - Alerts when certain thresholds have been reached. - Can delete Oracle archives logs after a set number of days. - Can keep a constant number of Oracle archive logs on the system. Values are Yes or No Yes = Setup and use AMM on primary server. No = do not use AMM on primary server. If you are unsure, set to Yes. Should Dbvisit Archive Log Management Module be used on primary server? [Y]: =>Dbvisit Archive Log Management Module on primary server will used: Y Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DAYS_TO_KEEP_ARCHSOURCE Please specify the number of days to keep the Oracle log files on the primary server. After this the log files will be removed from the server. To disable this setting, set to 0. If you are unsure, set to 7 Number of days to keep log files on disk is [7]: =>Number of days to keep log files on disk will be: 7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>NUM_ARCHSOURCE_TO_KEEP Please specify the number of archive log files to keep on the primary server. Log files greater than this number will be removed (oldest first). To disable this setting, set to 0. If you are unsure, set to 0 (disable). Number of log files to keep on disk is [0]: =>Number of log files to keep on disk will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>ARCHSOURCE_BACKUP_COUNT Please specify the number of times an archive log has to be backed up by RMAN before it is deleted from the primary server by Dbvisit Standby. Values range from 0-15 and is only applicable if RMAN is used to backup archive log files. This parameter is only applicable to Oracle versions 9 or higher. To disable this setting, set to 0. If you are unsure, set to 0 (disable). Archive log backup count is [0]: =>Archive log backup count will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>THRESHOLD_ARCHSOURCE Please specify the threshold in percentage (%) of how much disk space may be taken up by the Oracle log files on disk before an alert is triggered on the primary server. 80 means at 80% disk space full an alert will be triggered. Please specify threshold as an integer. If you are unsure, set to 80. Threshold for log file management is [80]: =>Threshold for log file management will be: 80 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>FRA_THRESHOLD_ARCHSOURCE Please specify the threshold in percentage (%) of how much FRA space may be taken up by the Oracle log files on disk before an alert is triggered on the primary server. This setting is valid only for Oracle databases versions 10 or higher that have FRA enabled in the primary database. 80 means at 80% FRA full an alert will be triggered. To disable this setting, set to 0. Please specify threshold as an integer. FRA threshold for log file management is [0]: =>FRA threshold for log file management will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DELETE_ARCHSOURCE Please specify if (archive) log files should be deleted once the threshold (THRESHOLD_ARCHSOURCE) on the primary server is reached. Once the percentage threshold is reached oldest (archive) log files are deleted first. The log files WILL have been transferred to the standby server. (There is no verification that these log files have been backed up). Values are Yes or No Yes = Let Dbvisit delete (archive) log files once percentage threshold is met. No = Dbvisit will only alert once percentage threshold (no log files will be deleted). If you are unsure, set to No. Should Dbvisit Archive Log Management Module delete log files once percentage threshold is met? [N]: =>Dbvisit Archive Log Management Module will delete log files once percentage threshold is met: N Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ ========================================================= Standby Archive log Management Module Settings (AMM) ========================================================= =>ARCHDEST_MANAGEMENT Do you want to setup (archive) log file management on the standby server? This is used to manage the Oracle logs on the standby server. - Alerts when certain thresholds have been reached. - Can delete Oracle archives logs after a set number of days. - Can keep a constant number of Oracle archive logs on the system. Values are Yes or no Yes = Setup and use AMM on standby server. No = do not use AMM on standby server. If you are unsure, set to Yes. Should Dbvisit Archive Log Management Module be used on standby server? [Y]: =>Dbvisit Archive Log Management Module on standby server will used: Y Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DAYS_TO_KEEP_ARCHDEST Please specify the number of days to keep the Oracle log files on the standby server. After this the log files will be removed from the server. To disable this setting, set to 0. If you are unsure, set to 7 Number of days to keep log files on disk is [7]: =>Number of days to keep log files on disk will be: 7 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>NUM_ARCHDEST_TO_KEEP Please specify the number of archive log files to keep on the standby server. Log files greater than this number will be removed (oldest first). To disable this setting, set to 0. If you are unsure, set to 0 (disable). Number of log files to keep on disk is [0]: =>Number of log files to keep on disk will be: 0 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>THRESHOLD_ARCHDEST Please specify the threshold in percentage (%) of how much disk space may be taken up by the Oracle log files on disk before an alert is triggered on the standby server. 80 means at 80% disk space full an alert will be triggered. Please specify threshold as an integer. If you are unsure, set to 80. Threshold for log file management is [80]: =>Threshold for log file management will be: 80 Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ =>DELETE_ARCHDEST Please specify if (archive) log files should be deleted once the threshold (THRESHOLD_ARCHDEST) on the standby server is reached. Once the percentage threshold is reached oldest (archive) log files are deleted first. The log files WILL have been applied to the standby database. (There is no verification that these log files have been backed up). Values are Yes or No Yes = Let Dbvisit delete (archive) log files once percentage threshold is met. No = Dbvisit will only alert once percentage threshold (no log files will be deleted). If you are unsure, set to No. Should Dbvisit Archive Log Management Module delete log files once percentage threshold is met? [N]: =>Dbvisit Archive Log Management Module will delete log files once percentage threshold is met: N Is this correct? <Yes/No> [Yes]: ------------------------------------------------------------------------------ Would you like to review all the variables? <Yes/No> [Yes]: =====10 Generic Settings===== 1) PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin 2) ORATAB=/etc/oratab 3) ORACLE_SID=DEV2 4) ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 5) OWNER=oracle 6) DBVNET_PORT=7890 7) COMPRESS=/usr/bin/gzip 8) UNCOMPRESS=/usr/bin/gunzip 9) ZIP_EXTENSION=.gz 10) SEND_HEARTBEAT_TIME24=0700 =====15 RAC Settings===== 11) RAC=Y 12) RAC_TAKEOVER=Y 13) RAC_TAKEOVER_FORCE=N 14) RAC_TAKEOVER_SID=DEV1 =====20 Primary Server Settings===== 15) SOURCE=kiwi92 16) DBVISIT_BASE=/usr/dbvisit 17) ENCRYPT_PASSWDS=Y 18) DBUSER=dbvisit7 19) DBPASSWD=****** 20) LEAVE_COMPRESS_SOURCE=N 21) SYNCH_DBVISIT_INSTALL=Y 22) LOGSWITCH=N 23) ORACLE_SID_ASM=+ASM2 =====25 Sys Logon Settings===== 24) SYS_LOGON=N 25) SYS_USER=sys 26) _SYS_PASSWD= Are these variables correct? <Yes/No> [Yes]: =====25 Sys Logon Settings===== 27) SYS_LOGON_STRING=as sysdba =====30 Standby Server Settings===== 28) DESTINATION=kiwi81 29) ORACLE_SID_DEST=DEV 30) DBVISIT_BASE_DR=/usr/dbvisit 31) ARCHDEST=/u01/app/oracle/dbvisit_archdest/DEV 32) LEAVE_COMPRESS_DEST=Y 33) MAX_TIMES_TRIED=4 34) ORACLE_SID_ASM_DEST=+ASM1 =====40 Mail Settings===== 35) ADMINS=oracle@kiwi92 36) MAILCFG_FROM=oracle@kiwi92 37) MAILCFG_FROM_DR=oracle@kiwi81 38) SUCCESSMAIL=Y 39) SUCCESSMAIL_DR=Y 40) MAILCFG_SMTP_SERVER=localhost 41) MAILCFG_SMTP_SERVER_DR= =====50 Primary Archive Log Management Settings===== 42) ARCHSOURCE_MANAGEMENT=Y 43) DAYS_TO_KEEP_ARCHSOURCE=7 44) NUM_ARCHSOURCE_TO_KEEP=0 45) ARCHSOURCE_BACKUP_COUNT=0 46) THRESHOLD_ARCHSOURCE=80 47) FRA_THRESHOLD_ARCHSOURCE=0 48) DELETE_ARCHSOURCE=N =====60 Standby Archive Log Management Settings===== 49) ARCHDEST_MANAGEMENT=Y 50) DAYS_TO_KEEP_ARCHDEST=7 51) NUM_ARCHDEST_TO_KEEP=0 52) THRESHOLD_ARCHDEST=80 Are these variables correct? <Yes/No> [Yes]: =====60 Standby Archive Log Management Settings===== 53) DELETE_ARCHDEST=N Are these variables correct? <Yes/No> [Yes]: Redisplay all variables again? <Yes/No> [No]: ------------------------------------------------------------------------------ =>DDC File Please specify the name of the Dbvisit Database Configuration (DDC) file. The DDC file contains all the Dbvisit Standby settings. The DDC file is a plain text file and can be edited manually or through this setup. Dbvisit Database Configuration (DDC) file is [DEV2]: =>Dbvisit Database Configuration (DDC) file will be: DEV2 Is this correct? <Yes/No> [Yes]: =>Dbvisit Database configuration (DDC) file /usr/dbvisit/standby/conf/dbv_DEV2.env created. ========================================================= Dbvisit configuration completed. IMPORTANT! Ensure the following directories are setup on standby server kiwi81 with the correct permissions: 1) /usr/dbvisit 2) /u01/app/oracle/dbvisit_archdest/DEV Next steps: Create standby database using option in main menu: 7) Create Standby Database ========================================================= Please press <Enter> to return to main menu... ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : E ========================================================= Dbvisit setup completed. Any changes to the configuration can be made by either: 1) Manually by editing dbv_DEV2.env. 2) Running dbvisit_setup and choosing option: -> 6) Update Dbvisit Database configuration (DDC) file Next steps: 1) Run Dbvisit on this server with command: dbvisit DEV2 2) Run Dbvisit on standby server with command: dbvisit DEV2 Once Dbvisit has been tested, schedule Dbvisit on primary and standby servers using cron or other scheduling tool. =========================================================
Apply The Dbvisit Standby License Key
In this example a temporary (trial) key is applied
The key must be applied on both primary nodes - for each DDC
Primary Node 1 - kiwi91 for DDC - DEV1
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit -lic DEV1 6I0OD-MZ5MJ-735FP-7QSUX-YNARZ-G3SFL-9P81R ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 3483) dbvisit started on kiwi91: Thu Apr 7 16:29:54 2016 () ============================================================= Dbvisit Standby license information for: DEV1 customer_seq=1 customer_key_seq=0 license_type=DEMO (0) expiry_date=2016-04-21 =>Update with license key: 6I0OD-MZ5MJ-735FP-7QSUX-YNARZ-G3SFL-9P81R? <Yes/No> [Yes]: License updated. Status: Valid ============================================================= dbvisit ended on kiwi91: Thu Apr 7 16:29:58 2016 =============================================================
Primary Node 2 - kiwi92 for DDC - DEV2
oracle@kiwi92[/usr/dbvisit/standby]: ./dbvisit -lic DEV2 6I0OD-MZ5MJ-735FP-7QSUX-YNARZ-G3SFL-9P81R ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 4923) dbvisit started on kiwi92: Thu Apr 7 16:30:58 2016 () ============================================================= Dbvisit Standby license information for: DEV2 customer_seq=1 customer_key_seq=0 license_type=DEMO (0) expiry_date=2016-04-21 =>Update with license key: 6I0OD-MZ5MJ-735FP-7QSUX-YNARZ-G3SFL-9P81R? <Yes/No> [Yes]: License updated. Status: Valid ============================================================= dbvisit ended on kiwi92: Thu Apr 7 16:31:04 2016 =============================================================
Creating the Standby Database
The standby database will first be created as a single instance standby database on the standby RAC node 1 - kiwi81
The Standby database will be called DEV and the instance that will be created for it will be DEV as well. This will be adjusted in the next step when the database is converted to a RAC enabled database with two instances.
The current DDC files as created above will point to kiwi81 as the standby server with +ASM1 as the standby database ASM instance name.
Please note the following:
- The standby database in this case will also use ASM but will use different diskgroups (+DATADR and +DG) - this is purely to show that Dbvisit Standby does support a standby database with different diskgroups being used. If you use the exact same configuration on the standby than the primary - which is recommended, you do not have to adjust the diskgroup locations is is done below (db_create_file_dest and db_recovery_file_dest and the spfile parameters)
- A template is saved based on the answers provided
- During the Create Standby Database (CSD) process, the primary database will be backed up to local disk (/usr/tmp in this case) - you need to make sure this location has sufficient space to store a full compressed backup of the primary database. The backup will then be copied to the standby server into a lcoation specified (in this example it will also be /usr/tmp). It is important that these locations have sufficient space. You may use other directories.
IMPORTANT
The standby database creation process can take time - RMAN compressed backups are used. You can estimate the time the standby creation will take by doubling your normal RMAN backup timings.
Example, if a primary database backup takes 2 hours, the Create Standby Database (CSD) process can take 2 x 2 = 4 hours + the time to copy the backup from the primary to the standby server.
The full example with answers provided are shown below:
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit_setup ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com ========================================================= =>dbvisit_setup only needs to be run on the primary server. Is this the primary server? <Yes/No> [Yes]: ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : 7 ------------------------------------------------------------------------------ =>Creating Standby Database. Primary database will NOT be shutdown. Choose database: The following Oracle database(s) have a Dbvisit Database configuration (DDC) file on this server: DDC === 1) DEV1 2) Return to menu Please enter choice : 1 Is this correct? <Yes/No> [Yes]: Database DEV1 is up. >>> Checking Dbvisit Standby for configurational differences between kiwi91 and kiwi81... Waiting for 5 seconds (RETRIES_WAIT_IN_SEC) until retry. Dbvisit Standby configurational differences found between kiwi91 and kiwi81... > Transferring 'dbv_DEV1.env' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [12805 KB/s] - done. >>> Checking Oracle installation on kiwi81 in /u01/app/oracle/product/11.2.0/db_1/bin/oracle... >>> Checking primary datafiles on kiwi91... >>> Validating Dbvisit configuration file on kiwi81... >>> Checking if a database is up and running on kiwi81... Checks completed OK. >>> Total database size for DEV1 is 1.90GB What would you like to do: 1 - Create standby database (and optionally save settings in template) 2 - Help 3 - Terminate processing Please enter your choice [1]: 1 ------------------------------------------------------------------------------- Do you want to create an ASM standby database (with all or some database files in ASM storage)? [Yes]: Yes Standby database will be ASM: Y Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- Use network compression to compress the database files during transfer? [No]: No Database files will be compressed during transfer: N Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- Dbvisit Standby provides functionality to create missing filesystem directories on the standby server automatically. Do you want Dbvisit Standby to create missing filesystem directories on the standby server automatically? [Yes]: Yes Dbvisit Standby will create missing filesystem directories automatically: Y Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- Primary database contains Oracle Managed Files (OMF). These files will be created as OMF files on the standby server. Please make sure creating of OMF files is enabled on the standby by setting up parameters db_create_file_dest, db_create_online_log_dest_n and db_recovery_file_dest to point to valid ASM locations. Refer to Oracle documentation for information how to enable creating of OMF files. The following oracle database parameters will be set in the standby database pfile or spfile: ------------------------------------------------------------------------------- audit_file_dest /u01/app/oracle/admin/DEV/adump compatible 11.2.0.4.0 db_block_size 8192 db_create_file_dest +DATA db_domain db_name DEV db_recovery_file_dest +DATA db_recovery_file_dest_size 4294967296 diagnostic_dest /u01/app/oracle dispatchers (PROTOCOL=TCP) (SERVICE=DEVXDB) log_archive_format %t_%s_%r.dbf nls_territory NEW ZEALAND open_cursors 300 pga_aggregate_target 157286400 processes 150 remote_login_passwordfile EXCLUSIVE sga_max_size 683671552 sga_target 683671552 spfile +DATA undo_tablespace UNDOTBS1 ------------------------------------------------------------------------------- What would you like to do: 1 - Proceed with creating the standby database 2 - Edit oracle database parameters for the standby database pfile/spfile 3 - Terminate processing Please enter your choice [1]: 2 WARNING: Do NOT use single or double quotes to enclose parameter values! Separate multiple values with a comma. If a comma is part of a value, escape it with a backslash. If a comma is part of a value, escape it with a backslash. Enter full parameter name: []: db_create_file_dest 1 - Remove from the standby parameter file 2 - New value in the standby parameter file Please enter your choice: []: 2 Enter new value (leave blank to set to null or default Oracle value): []: +DATADR Validating ... please wait The following oracle database parameters will be set in the standby database pfile or spfile: ------------------------------------------------------------------------------- audit_file_dest /u01/app/oracle/admin/DEV/adump compatible 11.2.0.4.0 db_block_size 8192 db_create_file_dest +DATADR db_domain db_name DEV db_recovery_file_dest +DATA db_recovery_file_dest_size 4294967296 diagnostic_dest /u01/app/oracle dispatchers (PROTOCOL=TCP) (SERVICE=DEVXDB) log_archive_format %t_%s_%r.dbf nls_territory NEW ZEALAND open_cursors 300 pga_aggregate_target 157286400 processes 150 remote_login_passwordfile EXCLUSIVE sga_max_size 683671552 sga_target 683671552 spfile +DATA undo_tablespace UNDOTBS1 ------------------------------------------------------------------------------- What would you like to do: 1 - Proceed with creating the standby database 2 - Edit oracle database parameters for the standby database pfile/spfile 3 - Terminate processing Please enter your choice [1]: 2 WARNING: Do NOT use single or double quotes to enclose parameter values! Separate multiple values with a comma. If a comma is part of a value, escape it with a backslash. If a comma is part of a value, escape it with a backslash. Enter full parameter name: []: db_recovery_file_dest 1 - Remove from the standby parameter file 2 - New value in the standby parameter file Please enter your choice: []: 2 Enter new value (leave blank to set to null or default Oracle value): []: +DG Validating ... please wait The following oracle database parameters will be set in the standby database pfile or spfile: ------------------------------------------------------------------------------- audit_file_dest /u01/app/oracle/admin/DEV/adump compatible 11.2.0.4.0 db_block_size 8192 db_create_file_dest +DATADR db_domain db_name DEV db_recovery_file_dest +DG db_recovery_file_dest_size 4294967296 diagnostic_dest /u01/app/oracle dispatchers (PROTOCOL=TCP) (SERVICE=DEVXDB) log_archive_format %t_%s_%r.dbf nls_territory NEW ZEALAND open_cursors 300 pga_aggregate_target 157286400 processes 150 remote_login_passwordfile EXCLUSIVE sga_max_size 683671552 sga_target 683671552 spfile +DATA undo_tablespace UNDOTBS1 ------------------------------------------------------------------------------- What would you like to do: 1 - Proceed with creating the standby database 2 - Edit oracle database parameters for the standby database pfile/spfile 3 - Terminate processing Please enter your choice [1]: 2 WARNING: Do NOT use single or double quotes to enclose parameter values! Separate multiple values with a comma. If a comma is part of a value, escape it with a backslash. If a comma is part of a value, escape it with a backslash. Enter full parameter name: []: spfile 1 - Remove from the standby parameter file 2 - New value in the standby parameter file Please enter your choice: []: 2 Leave blank to create spfile spfileDEV.ora in a default operating system location. Alternatively provide a valid ASM diskgroup name to create spfile spfileDEV.ora. Filesystem locations are not accepted. Avilable ASM Diskgroups on standby server: +ACFSDG +CRS_VOT +DATADR +DG Spfile ASM location: []: +DATADR The following oracle database parameters will be set in the standby database pfile or spfile: ------------------------------------------------------------------------------- audit_file_dest /u01/app/oracle/admin/DEV/adump compatible 11.2.0.4.0 db_block_size 8192 db_create_file_dest +DATADR db_domain db_name DEV db_recovery_file_dest +DG db_recovery_file_dest_size 4294967296 diagnostic_dest /u01/app/oracle dispatchers (PROTOCOL=TCP) (SERVICE=DEVXDB) log_archive_format %t_%s_%r.dbf nls_territory NEW ZEALAND open_cursors 300 pga_aggregate_target 157286400 processes 150 remote_login_passwordfile EXCLUSIVE sga_max_size 683671552 sga_target 683671552 spfile +DATADR undo_tablespace UNDOTBS1 ------------------------------------------------------------------------------- What would you like to do: 1 - Proceed with creating the standby database 2 - Edit oracle database parameters for the standby database pfile/spfile 3 - Terminate processing Please enter your choice [1]: 1 Validating oracle database parameters... please wait SUCCEEDED ------------------------------------------------------------------------------- Do you want to use TRANSPORTABLE MEDIA to transfer the database backup to the standby server? Transportable media is an external device such as a USB drive that is first plugged into the primary server and then manually transferred to the standby site and plugged into the standby server to continue the process. It can be used for large databases or slow networks. Specifying No means the network will be used to transfer the database backup. [No]: No Transportable media will be used: N Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- A temporary location must be specified on kiwi91 where the database will be backed up to first. This location must be big enough to hold RMAN backup of the whole database (1.90GB). Specify the location on this server: [/usr/tmp]: Directory for temporary location will be: /usr/tmp Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- A temporary location must be specified on kiwi81 where the database backup will be copied to before moving to specified locations. Specify location on remote server: [/usr/tmp]: Directory for temporary will be: /usr/tmp Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- The creation of the standby database consists of 2 parts: 1) Backup database to temporary location. 2) Transfer backup from temporary location to standby server. The process can be stopped after step 1 and then continued with step 2 at a later date. Do you want to the process to stop between these 2 steps? [No]: No Process will stop between steps: N Is this correct? <Yes/No> [Yes]: Yes Dbvisit Standby will automatically create standby OMF ASM datafiles and tempfiles. The files will be created under <ASM Disk Group>/<db_unique_name>/datafile|tempfile. Review and confirm ASM disk groups for standby datafiles and tempfiles. ------------------------------------------------------------------------------- Primary ===> Standby ------------------------------------------------------------------------------- +DATA ===> +DATA ------------------------------------------------------------------------------- What would you like to do: 1 - Confirm standby location(s) are correct and continue 2 - Provide different standby location(s) Please enter your choice [1]: 2 Primary location: +DATA Avilable ASM Diskgroups on standby server: +ACFSDG +CRS_VOT +DATADR +DG Provide ASM Diskgroup name: []: +DATADR Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- Primary ===> Standby ------------------------------------------------------------------------------- +DATA ===> +DATADR ------------------------------------------------------------------------------- What would you like to do: 1 - Confirm standby location(s) are correct and continue 2 - Provide different standby location(s) Please enter your choice [1]: 1 Primary database contains non-OMF redo logs. Non-OMF ASM redo logs will be created under: <ASM Disk Group>/<db_unique_name>/onlinelog. Make sure these locations exist on the standby server or create them manually. Review and confirm ASM disk group names for non-OMF standby redo logs. ------------------------------------------------------------------------------- Primary ===> Standby ------------------------------------------------------------------------------- +DATA ===> +DATA ------------------------------------------------------------------------------- What would you like to do: 1 - Confirm standby location(s) are correct and continue 2 - Provide different standby location(s) Please enter your choice [1]: 2 Primary location: +DATA Avilable ASM Diskgroups on standby server: +ACFSDG +CRS_VOT +DATADR +DG Provide ASM Diskgroup name: []: +DG Is this correct? <Yes/No> [Yes]: Yes ------------------------------------------------------------------------------- Primary ===> Standby ------------------------------------------------------------------------------- +DATA ===> +DG ------------------------------------------------------------------------------- What would you like to do: 1 - Confirm standby location(s) are correct and continue 2 - Provide different standby location(s) Please enter your choice [1]: 1 ------------------------------------------------------------------------------- =>Create standby database template for DEV1 using provided answers? <Yes/No> [Yes]: Yes What would you like to do: 1 - Continue with creating a standby database 2 - Terminate creating a standby database. The saved template will be available for future use Please enter your choice [1]: 1 >>> Dbvisit will now run a pre-flight check for standby database creation. An attempt will be made to create a standby (s)pfile using oracle standby database parameters, followed by trying to start the standby instance. If this step fails, then please double-check the following items before re-running Dbvisit again: 1) Review the standby database parameters you have supplied and provide valid values unless a template is used. 2) Recreate the template to provide valid values for standby database parameters if a template is used. Running pre-flight check for standby creation, please wait... - done. >>> Backing up primary database... Backing up datafile 1... - done. Backing up datafile 2... - done. Backing up datafile 3... - done. Backing up datafile 4... - done. Backing up datafile 5... - done. | >>> Creating standby control file... - done. Backup of primary database completed. >>> Transferring backup from kiwi91 to kiwi81... > Transferring 'dbv_DEV1_csd_dbf_1_01r2eto1_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [57417 KB/s] - done. > Transferring 'dbv_DEV1_csd_dbf_1_02r2etor_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [55038 KB/s] - done. > Transferring 'dbv_DEV1_csd_dbf_2_03r2etp1_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [47628 KB/s] - done. > Transferring 'dbv_DEV1_csd_dbf_3_04r2etpl_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [42419 KB/s] - done. > Transferring 'dbv_DEV1_csd_dbf_4_05r2etpv_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [65683 KB/s] - done. > Transferring 'dbv_DEV1_csd_dbf_5_06r2etq9_1_1.rman' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [31151 KB/s] - done. >>> Creating standby database parameter file... - done. >>> Restoring standby control files... - done. >>> Starting standby database DEV on kiwi81 mount... - done. >>> Creating an ASM standby spfile on kiwi81 ... - done. >>> Restoring datafiles on kiwi81... Restoring datafile 1 - done. Restoring datafile 2 - done. Restoring datafile 3 - done. Restoring datafile 4 - done. Restoring datafile 5 - done. | >>> Renaming standby redo logs and tempfiles on kiwi81... - done. >>> Performing checkpoint and archiving logs... - done. >>> Finishing standby database creation... - done. Standby database created. Please execute the following commands to complete the database creation process: 1) Run dbvisit on all primary nodes that are up and running. 2) After having run dbvisit on all primary nodes, execute it on the standby node (this will ensure the standby is in sync with the primary). If a primary node was down during standby creation, then you need to run Dbvisit with the '-R' option once this node has been started. Please press <Enter> to continue... ========================================================= Standby Database creation on kiwi81 completed. Next steps: 1) Exit out of dbvisit_setup. 2) Run Dbvisit on this server with command: dbvisit database_name Run Dbvisit on all other primary nodes with command: dbvisit -R instance_name 3) Run Dbvisit on standby server with command: dbvisit database_name Once Dbvisit has been tested, schedule Dbvisit on primary and standby servers using cron or other scheduling tool. ========================================================= Please press <Enter> to continue... ========================================================= Dbvisit Standby Database Technology (7.0.54.15715) http://www.dbvisit.com Dbvisit Database setup Default values will be shown in [] Options: 1) New Dbvisit Database setup (combines options 2,3,4) 1a) New Dbvisit RAC Instance setup (combines options 2,3,4) 2) New Dbvisit Database configuration (DDC) file setup 3) New Dbvisit Archive Management Module (AMM) setup 4) New Dbvisit Database repository (DDR) setup 5) Manage Dbvisit Database repository (DDR) 6) Update Dbvisit Database configuration (DDC) file 7) Create Standby Database (and template) 8) Synchronize Standby Database 9) Uninstall Dbvisit Database repository (DDR) E) Exit ========================================================= Please enter choice : E oracle@kiwi91[/usr/dbvisit/standby]:
Reviewing the standby database server (kiwi81) we can see the following:
The Instance DEV is running:
oracle@kiwi81[/usr/dbvisit/standby]: ps -ef|grep DEV oracle 1921 1 0 16:44 ? 00:00:00 ora_pmon_DEV oracle 1923 1 0 16:44 ? 00:00:00 ora_psp0_DEV oracle 1928 1 0 16:44 ? 00:00:04 ora_vktm_DEV oracle 1932 1 0 16:44 ? 00:00:00 ora_gen0_DEV oracle 1934 1 0 16:44 ? 00:00:00 ora_diag_DEV oracle 1937 1 0 16:44 ? 00:00:00 ora_dbrm_DEV oracle 1939 1 0 16:44 ? 00:00:00 ora_ping_DEV oracle 1941 1 0 16:44 ? 00:00:00 ora_acms_DEV oracle 1943 1 0 16:44 ? 00:00:00 ora_dia0_DEV oracle 1945 1 0 16:44 ? 00:00:00 ora_lmon_DEV oracle 1947 1 0 16:44 ? 00:00:00 ora_lmd0_DEV oracle 1949 1 0 16:44 ? 00:00:00 ora_rms0_DEV oracle 1951 1 0 16:44 ? 00:00:00 ora_lmhb_DEV oracle 1953 1 0 16:44 ? 00:00:00 ora_mman_DEV oracle 1955 1 0 16:44 ? 00:00:00 ora_dbw0_DEV oracle 1957 1 0 16:44 ? 00:00:00 ora_lgwr_DEV oracle 1959 1 0 16:44 ? 00:00:00 ora_ckpt_DEV oracle 1961 1 0 16:44 ? 00:00:00 ora_smon_DEV oracle 1963 1 0 16:44 ? 00:00:00 ora_reco_DEV oracle 1965 1 0 16:44 ? 00:00:00 ora_rbal_DEV oracle 1967 1 0 16:44 ? 00:00:00 ora_asmb_DEV oracle 1969 1 0 16:44 ? 00:00:00 ora_mmon_DEV oracle 1977 1 0 16:44 ? 00:00:00 ora_mmnl_DEV oracle 1979 1 0 16:44 ? 00:00:00 ora_d000_DEV oracle 1981 1 0 16:44 ? 00:00:00 ora_mark_DEV oracle 1983 1 0 16:44 ? 00:00:00 ora_s000_DEV oracle 2000 1 0 16:44 ? 00:00:00 ora_o000_DEV oracle 2044 1 0 16:44 ? 00:00:00 ora_arc0_DEV oracle 2046 1 0 16:44 ? 00:00:00 ora_arc1_DEV oracle 2048 1 0 16:44 ? 00:00:00 ora_arc2_DEV oracle 2050 1 0 16:44 ? 00:00:00 ora_arc3_DEV oracle 2068 1 0 16:44 ? 00:00:00 ora_o001_DEV oracle 7305 27451 0 16:52 pts/0 00:00:00 grep DEV
The database files in ASM (using asmcmd command utility to list)
ASMCMD> find . * +DATADR/DEV/ +DATADR/DEV/CONTROLFILE/ +DATADR/DEV/CONTROLFILE/current.267.908556215 +DATADR/DEV/DATAFILE/ +DATADR/DEV/DATAFILE/SYSAUX.266.908556303 +DATADR/DEV/DATAFILE/SYSTEM.263.908556267 +DATADR/DEV/DATAFILE/UNDOTBS1.265.908556323 +DATADR/DEV/DATAFILE/UNDOTBS2.262.908556343 +DATADR/DEV/DATAFILE/USERS.261.908556353 +DATADR/DEV/onlinelog/ +DATADR/DEV/parameterfile/ +DATADR/DEV/parameterfile/spfile.260.908556237 +DATADR/DEV/parameterfile/spfileDEV.ora +DATADR/DEV/tempfile/ ASMCMD> cd +DG ASMCMD> find . * +DG/DEV/ +DG/DEV/CONTROLFILE/ +DG/DEV/CONTROLFILE/current.262.908556215 +DG/DEV/onlinelog/ ASMCMD>
Running Dbvisit Standby The First Time
Once the standby database is created, you will notice that you have a single instance database running on kiwi81 called DEV.
It is important that before you continue that you run Dbvisit Standby on both primary nodes to ship logs to the standby followed by applying logs on the standby database.
Sending Logs
From Primary RAC node 1: kiwi91
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 11100) dbvisit started on kiwi91: Thu Apr 7 16:51:07 2016 () ============================================================= >>> Obtaining information from standby database (RUN_INSPECT=Y)... >>> Note FORCE_LOGGING is disabled in the primary database. >>> Sending heartbeat message... - done. >>> Checking Dbvisit Standby for configurational differences between kiwi91 and kiwi81... No configurational differences found between kiwi91 and kiwi81. >>> Log file(s) for DEV1 will be transferred from kiwi91 to kiwi81... > Transferring 'thread_1_seq_63.299.908556377.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [22072 KB/s] - done. 1 archive log transfer to kiwi81 for DEV1 completed. Last sequence was 63 thread 1. 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 (+DATA/dev/archivelog/2016_04_07) = 53% Number of archive logs deleted = 1 ============================================================= dbvisit ended on kiwi91: Thu Apr 7 16:51:31 2016 =============================================================
From Primary RAC node 2: kiwi92
oracle@kiwi92[/usr/dbvisit/standby]: ./dbvisit DEV2 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 11412) dbvisit started on kiwi92: Thu Apr 7 16:51:27 2016 () ============================================================= >>> Obtaining information from standby database (RUN_INSPECT=Y)... >>> Note FORCE_LOGGING is disabled in the primary database. >>> Sending heartbeat message... - done. >>> Checking Dbvisit Standby for configurational differences between kiwi92 and kiwi81... Waiting for 5 seconds (RETRIES_WAIT_IN_SEC) until retry. Dbvisit Standby configurational differences found between kiwi92 and kiwi81... > Transferring 'dbv_DEV2.env' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [9747 KB/s] - done. >>> Log file(s) for DEV2 will be transferred from kiwi92 to kiwi81... > Transferring 'thread_2_seq_13.298.908556377.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [86189 KB/s] - done. 1 archive log transfer to kiwi81 for DEV2 completed. Last sequence was 13 thread 2. 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 (+DATA/dev/archivelog/2016_04_07) = 53% Number of archive logs deleted = 0 ============================================================= dbvisit ended on kiwi92: Thu Apr 7 16:51:53 2016 =============================================================
Applying Logs
The logs on the standby can be applied using either one of the DDC files. Example:
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvisit DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 7428) dbvisit started on kiwi81: Thu Apr 7 16:52:19 2016 () ============================================================= >>> Sending heartbeat message... - done. >>> Log file(s) for DEV from kiwi91 will be applied to kiwi81 201604071652 - Log seq 63 thread 1 applied to standby database DEV. 201604071652 - Log seq 13 thread 2 applied to standby database DEV. No Mail sent as SEND_MAIL_FLAG_DR = N >>> Dbvisit Archive Management Module (AMM) Config: number of archives to keep = 0 Config: number of days to keep archives = 7 Config: diskspace full threshold = 80% Processing /u01/app/oracle/dbvisit_archdest/DEV... Archive log dir: /u01/app/oracle/dbvisit_archdest/DEV Total number of archive files : 1 Number of archive logs deleted = 0 Current Disk percent full : 54% ============================================================= dbvisit ended on kiwi81: Thu Apr 7 16:52:22 2016 =============================================================
Running a Log Gap Report
This is to show the difference between the primary and standby database. For more detail see the Log Gap Report section in the documentation
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit -i DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 12147) dbvisit started on kiwi91: Thu Apr 7 16:53:45 2016 () ============================================================= Dbvisit Standby log gap report for DEV1 at 201604071653 (thread 1): ------------------------------------------------------------- Standby database on kiwi81 is at sequence: 63. Primary database on kiwi91 is at log sequence: 64. Primary database on kiwi91 is at archived log sequence: 63. Dbvisit Standby last transfer log sequence: 63. Dbvisit Standby last transfer at: 201604071651. Archive log gap for DEV1: 0. Transfer log gap for DEV1: 0. Standby database time lag (HH:MI:SS): 00:07:30. No Mail sent as SEND_MAIL_FLAG = N Dbvisit Standby log gap report for DEV2 at 201604071653 (thread 2): ------------------------------------------------------------- Standby database on kiwi81 is at sequence: 12. Primary database on kiwi92 is at log sequence: 14. Primary database on kiwi92 is at archived log sequence: 13. Dbvisit Standby last transfer log sequence: 13. Dbvisit Standby last transfer at: 201604071651. Archive log gap for DEV2: 1. Transfer log gap for DEV2: 0. Standby database time lag (HH:MI:SS): 00:07:30. No Mail sent as SEND_MAIL_FLAG = N ============================================================= dbvisit ended on kiwi91: Thu Apr 7 16:53:48 2016 =============================================================
Convert Single Instance Standby to Oracle RAC Standby
In this example we have the Standby RAC configured between the two nodes kiwi81 and kiwi82
The Standby Database is called DEV and we will create the instances DEV1 (on kiwi81) and DEV2 (on kiwi82)
Step 1: Update the standby spfile
The first step is to update the spfile, the following commands are used.
Note that the SCAN listener address of kiwi812-scan is used with port 1521 - this must already be pre-configured.
alter system set cluster_database=true scope=spfile sid='*'; alter system set instance_number=1 scope=spfile sid='DEV1'; alter system set instance_number=2 scope=spfile sid='DEV2'; alter system set thread=1 scope=spfile sid='DEV1'; alter system set thread=2 scope=spfile sid='DEV2'; alter system set undo_tablespace='UNDOTBS1' scope=spfile sid='DEV1'; alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='DEV2'; alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.2.83)(PORT=1521))' scope=both sid='DEV1'; alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.2.84)(PORT=1521))' scope=both sid='DEV2'; alter system set remote_listener='kiwi812-scan:1521' scope=both sid='*';
When executed, you can then shutdown the standby database, example:
oracle@kiwi81[/usr/dbvisit/standby]: . oraenv ORACLE_SID = [oracle] ? DEV The Oracle base remains unchanged with value /u01/app/oracle oracle@kiwi81[/usr/dbvisit/standby]: sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 7 17:02:25 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> show parameter spfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATADR/dev/parameterfile/spfi ledev.ora SQL> SQL> alter system set cluster_database=true scope=spfile sid='*'; System altered. SQL> alter system set instance_number=1 scope=spfile sid='DEV1'; System altered. SQL> alter system set instance_number=2 scope=spfile sid='DEV2'; System altered. SQL> alter system set thread=1 scope=spfile sid='DEV1'; System altered. SQL> alter system set thread=2 scope=spfile sid='DEV2'; System altered. SQL> alter system set undo_tablespace='UNDOTBS1' scope=spfile sid='DEV1'; System altered. SQL> alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='DEV2'; System altered. SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.2.83)(PORT=1521))' scope=both sid='DEV1'; System altered. SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.2.84)(PORT=1521))' scope=both sid='DEV2'; System altered. SQL> alter system set remote_listener='kiwi812-scan:1521' scope=both sid='*'; System altered. SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> exit
Step 2: Update the parameter file and password file located in $ORACLE_HOME/dbs
The next step is to update the parameter file in $ORACLE_HOME/dbs and the password file.
The following steps are followed:
- The current parameter file pointing to the spfile is copied to create a parameter file for instance DEV1
- The password file is copied to create orapwDEV1
- The parameter files are copied to the second RAC node (kiwi82) and renamed to initDEV2.ora and orapwDEV2
The end result is that we have a parameter file and password file on each of the nodes which for their respective instances.
The steps executed are shown below:
oracle@kiwi81[/usr/dbvisit/standby]: cd $ORACLE_HOME/dbs oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: ls hc_DEV.dat hc_PROD1.dat initDEV.ora orapwDEV oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: cat initDEV.ora SPFILE='+DATADR/DEV/parameterfile/spfileDEV.ora' oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: cp initDEV.ora initDEV1.ora oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: cp orapwDEV orapwDEV1 oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: scp initDEV1.ora kiwi82:/u01/app/oracle/product/11.2.0/db_1/dbs/initDEV2.ora initDEV1.ora 100% 49 0.1KB/s 00:00 oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]: scp orapwDEV1 kiwi82:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwDEV2 orapwDEV1 100% 1536 1.5KB/s 00:00 oracle@kiwi81[/u01/app/oracle/product/11.2.0/db_1/dbs]:
Step 3: Add The Standby Database as a Cluster Resource
The following commands are executed to add the database to clusterware:
srvctl add database -d DEV -o /u01/app/oracle/product/11.2.0/db_1 -c RAC -a "DATADR,DG" -p +DATADR/dev/parameterfile/spfiledev.ora srvctl add instance -d DEV -i DEV1 -n kiwi81 srvctl add instance -d DEV -i DEV2 -n kiwi82 srvctl config database -d DEV
The Example output is as follow:
oracle@kiwi81[/home/oracle]: srvctl add database -d DEV -o /u01/app/oracle/product/11.2.0/db_1 -c RAC -a "DATADR,DG" -p +DATADR/dev/parameterfile/spfiledev.ora oracle@kiwi81[/home/oracle]: srvctl add instance -d DEV -i DEV1 -n kiwi81 oracle@kiwi81[/home/oracle]: srvctl add instance -d DEV -i DEV2 -n kiwi82 oracle@kiwi81[/home/oracle]: srvctl config database -d DEV Database unique name: DEV Database name: Oracle home: /u01/app/oracle/product/11.2.0/db_1 Oracle user: oracle Spfile: +DATADR/dev/parameterfile/spfiledev.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: DEV Database instances: DEV1,DEV2 Disk Groups: DATADR,DG Mount point paths: Services: Type: RAC Database is administrator managed
Step 4: Start the Standby Database using SRVCTL and review the status
We can now use the SRVCTL command line utility to start the standby database as a cluster database in a mounted state:
oracle@kiwi81[/home/oracle]: srvctl start database -d DEV -o mount oracle@kiwi81[/home/oracle]: srvctl status database -d DEV Instance DEV1 is running on node kiwi81 Instance DEV2 is running on node kiwi82
Reviewing the standby database from SQL*Plus:
SQL> select instance_number, instance_name, host_name, thread# from gv$instance order by 1; INSTANCE_NUMBER INSTANCE_NAME HOST_NAME THREAD# --------------- ---------------- ---------------------------------------------------------------- ---------- 1 DEV1 kiwi81.oraclekiwi.co.nz 1 2 DEV2 kiwi82.oraclekiwi.co.nz 2 SQL> select controlfile_type from v$database; CONTROL ------- STANDBY
Update Dbvisit Standby - Configuration File
The next step is to update the DDC files on the primary nodes to use ORACLE_SID_DEST = DEV1
Edit both dbv_DEV1.env (kiwi91) and dbv_DEV2.env (kiwi92) and change:
ORACLE_SID_DEST = DEV
to
ORACLE_SID_DEST = DEV1
Once the above is complete, run Dbvisit Standby on both primary nodes to ship the DDC files to the standby (including the latest archive logs), example:
Primary node 1 - kiwi91
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 30594) dbvisit started on kiwi91: Thu Apr 7 17:52:31 2016 () ============================================================= >>> Obtaining information from standby database (RUN_INSPECT=Y)... >>> Note FORCE_LOGGING is disabled in the primary database. Waiting 3 seconds for log switch completion... First time Dbvisit Standby runs, Dbvisit Standby configuration will be copied to kiwi81... > Transferring 'dbv_DEV1.env' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [12455 KB/s] - done. Contacting Standby Database DEV1 on kiwi81... Next standby sequence required for recovery (64) for thread 1. >>> Log file(s) for DEV1 will be transferred from kiwi91 to kiwi81... > Transferring 'thread_1_seq_64.300.908556965.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [14218 KB/s] - done. > Transferring 'thread_1_seq_65.296.908560291.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [23554 KB/s] - done. 2 archive log transfers to kiwi81 for DEV1 completed. Last sequence was 65 thread 1. 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 (+DATA/dev/archivelog/2016_04_07) = 53% Number of archive logs deleted = 0 ============================================================= dbvisit ended on kiwi91: Thu Apr 7 17:52:58 2016 ============================================================= oracle@kiwi91[/usr/dbvisit/standby]:
Primary Node 2: kiwi92
oracle@kiwi92[/usr/dbvisit/standby]: ./dbvisit DEV2 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 31189) dbvisit started on kiwi92: Thu Apr 7 17:52:58 2016 () ============================================================= >>> Obtaining information from standby database (RUN_INSPECT=Y)... >>> Note FORCE_LOGGING is disabled in the primary database. Waiting 3 seconds for log switch completion... First time Dbvisit Standby runs, Dbvisit Standby configuration will be copied to kiwi81... > Transferring 'dbv_DEV2.env' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [12138 KB/s] - done. Contacting Standby Database DEV1 on kiwi81... Next standby sequence required for recovery (13) for thread 2. >>> Log file(s) for DEV2 will be transferred from kiwi92 to kiwi81... > Transferring 'thread_2_seq_13.298.908556377.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [30779 KB/s] - done. > Transferring 'thread_2_seq_14.297.908556961.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [6449 KB/s] - done. > Transferring 'thread_2_seq_15.301.908560291.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [26817 KB/s] - done. > Transferring 'thread_2_seq_16.302.908560361.gz' to server kiwi81:7890 Progress: 0%...20%...40%...60%...80%...100% [6092 KB/s] - done. 4 archive log transfers to kiwi81 for DEV2 completed. Last sequence was 16 thread 2. 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 (+DATA/dev/archivelog/2016_04_07) = 53% Number of archive logs deleted = 0 ============================================================= dbvisit ended on kiwi92: Thu Apr 7 17:53:37 2016 ============================================================= oracle@kiwi92[/usr/dbvisit/standby]:
We can now apply logs to the standby database (which is full RAC Enabled) from the first node (kiwi81) using for example DDC - DEV1
The srvctl status command with "-v" flag is used to show that the standby database is running on both nodes.
But remember recovery will only be happening from instance 1:
Standby Server - kiwi81
oracle@kiwi81[/usr/dbvisit/standby]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi81. Instance status: Mounted (Closed). Instance DEV2 is running on node kiwi82. Instance status: Mounted (Closed). oracle@kiwi81[/usr/dbvisit/standby]: ./dbvisit DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 29166) dbvisit started on kiwi81: Thu Apr 7 17:56:41 2016 () ============================================================= >>> Log file(s) for DEV1 from kiwi91 will be applied to kiwi81 201604071756 - Log seq 64 thread 1 applied to standby database DEV1. 201604071756 - Log seq 13 thread 2 applied to standby database DEV1. 201604071756 - Log seq 14 thread 2 applied to standby database DEV1. 201604071756 - Log seq 64 thread 1 applied to standby database DEV1. 201604071756 - Log seq 15 thread 2 applied to standby database DEV1. 201604071756 - Log seq 64 thread 1 applied to standby database DEV1. 201604071756 - Log seq 65 thread 1 applied to standby database DEV1. 201604071756 - Log seq 15 thread 2 applied to standby database DEV1. No Mail sent as SEND_MAIL_FLAG_DR = N >>> Dbvisit Archive Management Module (AMM) Config: number of archives to keep = 0 Config: number of days to keep archives = 7 Config: diskspace full threshold = 80% Processing /u01/app/oracle/dbvisit_archdest/DEV... Archive log dir: /u01/app/oracle/dbvisit_archdest/DEV Total number of archive files : 5 Number of archive logs deleted = 0 Current Disk percent full : 54% ============================================================= dbvisit ended on kiwi81: Thu Apr 7 17:56:46 2016 ============================================================= oracle@kiwi81[/usr/dbvisit/standby]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi81. Instance status: Mounted (Closed). Instance DEV2 is running on node kiwi82. Instance status: Mounted (Closed).
Performing a Graceful Switchover
Before we can execute the graceful switchover process between node 1 (kiwi91) on the primary and node 1 on the standby (kiwi81), we need to stop the second instance on the standby and make sure the log gap report is 1 or less.
Step 1: Stop the standby 2nd instance
oracle@kiwi81[/usr/dbvisit/standby]: srvctl stop instance -d DEV -i DEV2 oracle@kiwi81[/usr/dbvisit/standby]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi81. Instance status: Mounted (Closed). Instance DEV2 is not running on node kiwi82 oracle@kiwi81[/usr/dbvisit/standby]:
Step 2: Run a log gap report
The log gap report is executed on the first node - kiwi91 using the "./dbvisit -i DDC" command:
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit -i DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 3615) dbvisit started on kiwi91: Thu Apr 7 18:04:03 2016 () ============================================================= Dbvisit Standby log gap report for DEV1 at 201604071804 (thread 1): ------------------------------------------------------------- Standby database on kiwi81 is at sequence: 75. Primary database on kiwi91 is at log sequence: 77. Primary database on kiwi91 is at archived log sequence: 76. Dbvisit Standby last transfer log sequence: 76. Dbvisit Standby last transfer at: 201604071802. Archive log gap for DEV1: 1. Transfer log gap for DEV1: 0. Standby database time lag (HH:MI:SS): 00:01:29. No Mail sent as SEND_MAIL_FLAG = N Dbvisit Standby log gap report for DEV2 at 201604071804 (thread 2): ------------------------------------------------------------- Standby database on kiwi81 is at sequence: 23. Primary database on kiwi92 is at log sequence: 24. Primary database on kiwi92 is at archived log sequence: 23. Dbvisit Standby last transfer log sequence: 23. Dbvisit Standby last transfer at: 201604071802. Archive log gap for DEV2: 0. Transfer log gap for DEV2: 0. Standby database time lag (HH:MI:SS): 00:01:29. No Mail sent as SEND_MAIL_FLAG = N ============================================================= dbvisit ended on kiwi91: Thu Apr 7 18:04:07 2016 =============================================================
From the above we can see that the gap on thread 1 is 1 and on thread 2 it is 0. We can now start the Graceful Switchover process.
Step 3: Start Graceful Switchover
This process is started on both kiwi91 (primary node 1) and kiwi82 (standby node 1).
The Graceful Switchover can take time depending on the network link and the amount and size of the redo logs.
From Primary node 1 (kiwi91)
oracle@kiwi91[/usr/dbvisit/standby]: ./dbv_oraStartStop switchover DEV1 1 ... ...
From Standby node 2 (kiwi81)
oracle@kiwi81[/usr/dbvisit/standby]: ./dbv_oraStartStop switchover DEV1 1 ... ...
Once the Graceful Switchover (GS) is complete, you will have a standby database instance running on kiwi91 (there will be no instance running on kiwi92 - it will be shutdown. Example:
oracle@kiwi91[/usr/dbvisit/standby]: srvctl status database -d DEV Instance DEV1 is running on node kiwi91 Instance DEV2 is not running on node kiwi92 oracle@kiwi91[/usr/dbvisit/standby]:
The instance running on kiwi81 is now the primary database database instance. The database instance can be updated to run again as a RAC instance as follow:
alter system set cluster_database_instances=2 scope=spfile; alter system set cluster_database=true scope=spfile;
On the new primary kiwi81
oracle@kiwi81[/usr/dbvisit/standby]: . oraenv ORACLE_SID = [DEV1] ? DEV1 The Oracle base remains unchanged with value /u01/app/oracle oracle@kiwi81[/usr/dbvisit/standby]: sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 7 18:47:24 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> show parameter cluster NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cluster_database boolean FALSE cluster_database_instances integer 1 cluster_interconnects string SQL> select controlfile_type from v$database; CONTROL ------- CURRENT SQL> alter system set cluster_database_instances=2 scope=spfile; System altered. SQL> alter system set cluster_database=true scope=spfile; System altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options oracle@kiwi81[/usr/dbvisit/standby]: srvctl start database -d DEV oracle@kiwi81[/usr/dbvisit/standby]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi81. Instance status: Open. Instance DEV2 is running on node kiwi82. Instance status: Open.
Update Dbvisit Standby -
The second DDC file on the standby server dbv_DEV2.env can now be copied to the secondary primary node - kiwi82, example:
oracle@kiwi81[/usr/dbvisit/standby]: scp conf/dbv_DEV2.env kiwi82:/usr/dbvisit/standby/conf/ dbv_DEV2.env 100% 40KB 40.5KB/s 00:00 oracle@kiwi81[/usr/dbvisit/standby]:
Once the file are on the second primary node kiwi82, you must edit the DDC file by updating the following parameters:
SOURCE=kiwi92 DESTINATION=kiwi81
to
SOURCE = kiwi82 DESTINATION = kiwi91
You can now run Dbvisit as normal on both kiwi81 and kiwi82 to send logs to the standby node kiwi91.
Optional - set RAC_TAKEOVER_FORCE
Another option you can review is to send logs from only one RAC primary node, shipping the archive logs for both instances.
This can be done by setting the RAC_TAKEOVER_FORCE parameter in the dbv_DEV1.env DDC file to Y (YES). Example:
[15 RAC Settings] RAC = Y RAC_TAKEOVER = Y RAC_TAKEOVER_SID = DEV2 RAC_TAKEOVER_FORCE = Y
Running Dbvisit Standby now on the new primary node kiwi81, logs will be shipped for both threads:
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvisit -R DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 21310) dbvisit started on kiwi81: Thu Apr 7 19:04:00 2016 () ============================================================= >>> Note FORCE_LOGGING is disabled in the primary database. Waiting 3 seconds for log switch completion... Resynch option given. Dbvisit Standby configuration will be copied to kiwi91... > Transferring 'dbv_DEV1.env' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [12894 KB/s] - done. Contacting Standby Database DEV1 on kiwi91... Next standby sequence required for recovery (80) for thread 1. >>> Log file(s) for DEV1 will be transferred from kiwi81 to kiwi91... > Transferring 'thread_1_seq_80.261.908563819.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [34678 KB/s] - done. > Transferring 'thread_1_seq_81.264.908563823.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [64 KB/s] - done. > Transferring 'thread_1_seq_82.263.908564347.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [6579 KB/s] - done. > Transferring 'thread_1_seq_83.270.908564477.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [12607 KB/s] - done. > Transferring 'thread_1_seq_84.268.908564645.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [4641 KB/s] - done. 5 archive log transfers to kiwi91 for DEV1 completed. Last sequence was 84 thread 1. No Mail sent as SEND_MAIL_FLAG = N >>> Note FORCE_LOGGING is disabled in the primary database. Contacting Standby Database DEV1 on kiwi91... Next standby sequence required for recovery (27) for thread 2. >>> Log file(s) for DEV2 will be transferred from kiwi82 to kiwi91... > Transferring 'thread_2_seq_27.271.908564347.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [5873 KB/s] - done. > Transferring 'thread_2_seq_28.269.908564477.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [7413 KB/s] - done. > Transferring 'thread_2_seq_29.267.908564645.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [2166 KB/s] - done. 3 archive log transfers to kiwi91 for DEV2 completed. Last sequence was 29 thread 2. No Mail sent as SEND_MAIL_FLAG = N >>> Dbvisit Archive Management Module (AMM) Dbvisit Archive Management Module (AMM) not turned on ============================================================= dbvisit ended on kiwi81: Thu Apr 7 19:04:34 2016 =============================================================
Logs are applied to the standby on kiwi91:
oracle@kiwi91[/usr/dbvisit/standby]: ./dbvisit DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 25084) dbvisit started on kiwi91: Thu Apr 7 19:08:22 2016 () ============================================================= >>> Log file(s) for DEV1 from kiwi81 will be applied to kiwi91 201604071908 - Log seq 80 thread 1 applied to standby database DEV1. 201604071908 - Log seq 81 thread 1 applied to standby database DEV1. 201604071908 - Log seq 27 thread 2 applied to standby database DEV1. 201604071908 - Log seq 82 thread 1 applied to standby database DEV1. 201604071908 - Log seq 27 thread 2 applied to standby database DEV1. 201604071908 - Log seq 83 thread 1 applied to standby database DEV1. 201604071908 - Log seq 27 thread 2 applied to standby database DEV1. 201604071908 - Log seq 28 thread 2 applied to standby database DEV1. 201604071908 - Log seq 83 thread 1 applied to standby database DEV1. 201604071908 - Log seq 84 thread 1 applied to standby database DEV1. 201604071908 - Log seq 28 thread 2 applied to standby database DEV1. 201604071908 - Log seq 29 thread 2 applied to standby database DEV1. 201604071908 - Log seq 84 thread 1 applied to standby database DEV1. No Mail sent as SEND_MAIL_FLAG_DR = N >>> Dbvisit Archive Management Module (AMM) Config: number of archives to keep = 0 Config: number of days to keep archives = 7 Config: diskspace full threshold = 80% Processing /u01/app/oracle/dbvisit_archdest/DEV... Archive log dir: /u01/app/oracle/dbvisit_archdest/DEV Total number of archive files : 7 Number of archive logs deleted = 0 Current Disk percent full : 56% ============================================================= dbvisit ended on kiwi91: Thu Apr 7 19:08:30 2016 =============================================================
Log Gap Report shows everything is up to date:
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvisit -i DEV1 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 23654) dbvisit started on kiwi81: Thu Apr 7 19:10:09 2016 () ============================================================= Dbvisit Standby log gap report for DEV1 at 201604071910 (thread 1): ------------------------------------------------------------- Standby database on kiwi91 is at sequence: 84. Primary database on kiwi81 is at log sequence: 85. Primary database on kiwi81 is at archived log sequence: 84. Dbvisit Standby last transfer log sequence: 84. Dbvisit Standby last transfer at: 201604071904. Archive log gap for DEV1: 0. Transfer log gap for DEV1: 0. Standby database time lag (HH:MI:SS): 00:06:06. No Mail sent as SEND_MAIL_FLAG = N Dbvisit Standby log gap report for DEV2 at 201604071910 (thread 2): ------------------------------------------------------------- Standby database on kiwi91 is at sequence: 28. Primary database on kiwi82 is at log sequence: 30. Primary database on kiwi82 is at archived log sequence: 29. Dbvisit Standby last transfer log sequence: 29. Dbvisit Standby last transfer at: 201604071904. Archive log gap for DEV2: 1. Transfer log gap for DEV2: 0. Standby database time lag (HH:MI:SS): 00:06:09. No Mail sent as SEND_MAIL_FLAG = N ============================================================= dbvisit ended on kiwi81: Thu Apr 7 19:10:13 2016 =============================================================
You can now perform a Graceful Switchover (GS) back to the original configuration by running the ./dbv_oraStartStop switchover DDC <key> command.
Example Graceful Switchover Back from Oracle RAC (kiwi81 and kiwi82) to (kiwi91). Remember the switchover command must be executed on both the primary and standby node. In this case the standby instance was only running on kiwi91 - so no need to shutdown the second instance on kiwi92 as it was not running.
Below is a sample output from the Graceful Switchover command when executed on kiwi81.
oracle@kiwi81[/usr/dbvisit/standby]: ./dbv_oraStartStop switchover DEV1 2 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 24731) dbv_oraStartStop started on kiwi81: Thu Apr 7 19:13:12 2016 () ============================================================= ============================================================= Graceful Switchover starting on Primary Database DEV1. Timestamp: 201604071913. >>> RAC Database DEV will be shutdown and restarted as single instance <<< Ensure Dbvisit is no longer scheduled. Obtaining archive log gap.... Contacting Standby Database DEV1 on kiwi91... Next standby sequence required for recovery (85) for thread 1. Archive Log Gap for thread 1 is: 0. This is correct to continue. Contacting Standby Database DEV1 on kiwi91... Next standby sequence required for recovery (29) for thread 2. Archive Log Gap for thread 2 is: 1. This is correct to continue. Please enter unique key to begin graceful switchover for database DEV1. The same key must be entered on both primary and standby server. Please start command: dbv_oraStartStop switchover DEV1 on kiwi91 if not already started. Batch key will be used: 2 Key 2 entered. Contacting kiwi91 to ensure the same unique key is entered for DEV1. Waiting for Key 1 on kiwi91... Checkpoint 1 completed. Key found on kiwi91 Waiting for Checkpoint 2 on kiwi91... Checkpoint 2 completed. Key found on kiwi91 Waiting for Checkpoint 3 on kiwi91... Checkpoint 3 completed. Key found on kiwi91 Regular Database DEV1 shutdown successfully. Starting Regular Database DEV1... Regular Database DEV1 started restrict. Performing Oracle Checkpoint. Waiting 3 seconds for log switch completion... Creating standby control file as '/usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.standbycontrolfile'... Waiting for Checkpoint 4 on kiwi91... Checkpoint 4 completed. Key found on kiwi91 Copying new archives for DEV1 to kiwi91... Compressing thread_1_seq_85.266.908565303... > Transferring 'thread_1_seq_85.266.908565303.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [15294 KB/s] - done. Compressing thread_2_seq_29.267.908564645... > Transferring 'thread_2_seq_29.267.908564645.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [3734 KB/s] - done. Compressing thread_2_seq_30.265.908565267... > Transferring 'thread_2_seq_30.265.908565267.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [17527 KB/s] - done. Shutting down regular Database DEV1... Regular Database DEV1 shutdown successfully. Copying subsequent new archives for DEV1 to kiwi91... Copying redo logs ... this may take a while... Compressing X.dbvisit.2.DEV1.redo_1.log... > Transferring 'X.dbvisit.2.DEV1.redo_1.log.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [116545 KB/s] - done. Compressing X.dbvisit.2.DEV1.redo_2.log... > Transferring 'X.dbvisit.2.DEV1.redo_2.log.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [62454 KB/s] - done. Compressing X.dbvisit.2.DEV1.redo_3.log... > Transferring 'X.dbvisit.2.DEV1.redo_3.log.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [31124 KB/s] - done. Compressing X.dbvisit.2.DEV1.redo_4.log... > Transferring 'X.dbvisit.2.DEV1.redo_4.log.gz' to server kiwi91:7890 Progress: 0%...20%...40%...60%...80%...100% [74331 KB/s] - done. Waiting for Checkpoint 5 on kiwi91... Checkpoint 5 completed. Key found on kiwi91 Backing up current control files for DEV1 kiwi81... Database DEV1 on kiwi81 is already down. No action taken. Starting Regular Database DEV1... Regular Database DEV1 started nomount. Control file backed up as /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.controlfile. Shutting down standby Database DEV1... Standby Database DEV1 shutdown successfully. Waiting for Checkpoint 6 on kiwi91... Checkpoint 6 completed. Key found on kiwi91 Waiting for Checkpoint 7 on kiwi91... Checkpoint 7 completed. Key found on kiwi91 Waiting for Checkpoint 8 on kiwi91... Checkpoint 8 completed. Key found on kiwi91 Waiting for Checkpoint 9 on kiwi91... Checkpoint 9 completed. Key found on kiwi91 Waiting for Checkpoint 10 on kiwi91... Checkpoint 10 completed. Key found on kiwi91 Waiting for Checkpoint 11 on kiwi91... Checkpoint 11 completed. Key found on kiwi91 Waiting for Checkpoint 12 on kiwi91... Checkpoint 12 completed. Key found on kiwi91 Database DEV1 on kiwi81 is already down. No action taken. Starting Regular Database DEV1... Regular Database DEV1 started nomount. STANDBY control file(s) restored from /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.standbycontrolfile. Shutting down standby Database DEV1... Standby Database DEV1 shutdown successfully. Starting Standby Database DEV1... Standby Database DEV1 started . Waiting for Checkpoint 13 on kiwi91... Checkpoint 13 completed. Key found on kiwi91 Waiting for Checkpoint 14 on kiwi91... Checkpoint 14 completed. Key found on kiwi91 File /usr/dbvisit/standby/conf/dbv_DEV1.env copied to /usr/dbvisit/standby/conf/dbv_DEV1.env.201604071913. Dbvisit Database configuration (DDC) file /usr/dbvisit/standby/conf/dbv_DEV1.env has been updated and variables have been reversed between primary and standby server. SOURCE=kiwi91 DESTINATION=kiwi81. Waiting for Checkpoint 15 on kiwi91... Checkpoint 15 completed. Key found on kiwi91 Waiting for Checkpoint 16 on kiwi91... Checkpoint 16 completed. Key found on kiwi91 Standby file +DATADR/dev/onlinelog/redo_1_1.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_1_2.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_2_1.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_2_2.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_3_1.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_3_2.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_4_1.log renamed to +DATADR in database DEV1. Standby file +DATADR/dev/onlinelog/redo_4_2.log renamed to +DATADR in database DEV1. Shutting down standby Database DEV1... Standby Database DEV1 shutdown successfully. Starting Standby Database DEV1... Standby Database DEV1 started . Waiting for Checkpoint 17 on kiwi91... Checkpoint 17 completed. Key found on kiwi91 Waiting for Checkpoint 18 on kiwi91... Checkpoint 18 completed. Key found on kiwi91 Graceful switchover completed. This database (DEV1) is now a standby database. To keep this new standby database in synch, reschedule Dbvisit as per normal: dbvisit DEV1 ============================================================= dbv_oraStartStop ended on kiwi81: Thu Apr 7 19:19:30 2016 =============================================================
Example output from kiwi91:
oracle@kiwi91[/usr/dbvisit/standby]: ./dbv_oraStartStop switchover DEV1 2 ============================================================= Dbvisit Standby Database Technology (7.0.54.15715) (pid 26734) dbv_oraStartStop started on kiwi91: Thu Apr 7 19:13:03 2016 () ============================================================= ============================================================= Graceful Switchover starting on Standby Database DEV1. Timestamp: 201604071913. Database DEV1 will be shutdown and restarted! Ensure Dbvisit is no longer scheduled. Please enter unique key to begin graceful switchover for database DEV1. The same key must be entered on both primary and standby server. Please start command: dbv_oraStartStop switchover DEV1 on kiwi81 if not already started. Batch key will be used: 2 Key 2 entered. Contacting kiwi81 to ensure the same unique key is entered for DEV1. Waiting for Key 1 on kiwi81... Checkpoint 1 completed. Key found on kiwi81 Waiting for Checkpoint 2 on kiwi81... Checkpoint 2 completed. Key found on kiwi81 Init parameter CLUSTER_DATABASE parameter is set to TRUE. To proceed with switchover CLUSTER_DATABASE will be set to FALSE. Database uses spfile +DATA/dev/spfiledev.ora. CLUSTER_DATABASE will be set to FALSE in spfile. Waiting for Checkpoint 3 on kiwi81... Checkpoint 3 completed. Key found on kiwi81 Tempfiles dropped. Waiting for Checkpoint 4 on kiwi81... Checkpoint 4 completed. Key found on kiwi81 Shutting down standby Database DEV1... Standby Database DEV1 shutdown successfully. Waiting for Checkpoint 5 on kiwi81... Checkpoint 5 completed. Key found on kiwi81 Uncompressing 1_85_884290120.arc.gz... Rename 2_29_884290120.arc to 2_29_884290120.arc.201604071913... Uncompressing 2_29_884290120.arc.gz... Uncompressing 2_30_884290120.arc.gz... Uncompressing X.dbvisit.2.DEV1.redo_1.log.gz... Uncompressing X.dbvisit.2.DEV1.redo_2.log.gz... Uncompressing X.dbvisit.2.DEV1.redo_3.log.gz... Uncompressing X.dbvisit.2.DEV1.redo_4.log.gz... Waiting for Checkpoint 6 on kiwi81... Checkpoint 6 completed. Key found on kiwi81 Waiting for Checkpoint 7 on kiwi81... Checkpoint 7 completed. Key found on kiwi81 Backing up current control files for DEV1 kiwi91... Database DEV1 on kiwi91 is already down. No action taken. Starting Standby Database DEV1... Standby Database DEV1 started nomount. Control file backed up as /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.stdby_ctl_bck. Shutting down standby Database DEV1... Standby Database DEV1 shutdown successfully. Waiting for Checkpoint 8 on kiwi81... Checkpoint 8 completed. Key found on kiwi81 Starting Standby Database DEV1... Standby Database DEV1 started nomount. PRIMARY control file(s) restored from /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.controlfile. Mount Database DEV1... Database DEV1 mounted. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_1.log to +DATA/DEV/onlinelog/redo_1_1.log File +DATADR/dev/onlinelog/redo_1_1.log renamed to +DATA/DEV/onlinelog/redo_1_1.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_1.log to +DATA/DEV/onlinelog/redo_1_2.log File +DATADR/dev/onlinelog/redo_1_2.log renamed to +DATA/DEV/onlinelog/redo_1_2.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_2.log to +DATA/DEV/onlinelog/redo_2_1.log File +DATADR/dev/onlinelog/redo_2_1.log renamed to +DATA/DEV/onlinelog/redo_2_1.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_2.log to +DATA/DEV/onlinelog/redo_2_2.log File +DATADR/dev/onlinelog/redo_2_2.log renamed to +DATA/DEV/onlinelog/redo_2_2.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_3.log to +DATA/DEV/onlinelog/redo_3_1.log File +DATADR/dev/onlinelog/redo_3_1.log renamed to +DATA/DEV/onlinelog/redo_3_1.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_3.log to +DATA/DEV/onlinelog/redo_3_2.log File +DATADR/dev/onlinelog/redo_3_2.log renamed to +DATA/DEV/onlinelog/redo_3_2.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_4.log to +DATA/DEV/onlinelog/redo_4_1.log File +DATADR/dev/onlinelog/redo_4_1.log renamed to +DATA/DEV/onlinelog/redo_4_1.log. Copying redo log /usr/dbvisit/standby/tmp/GS/DEV1/X.dbvisit.2.DEV1.redo_4.log to +DATA/DEV/onlinelog/redo_4_2.log File +DATADR/dev/onlinelog/redo_4_2.log renamed to +DATA/DEV/onlinelog/redo_4_2.log. Waiting for Checkpoint 9 on kiwi81... Checkpoint 9 completed. Key found on kiwi81 Recovering new primary database... Catalog archivelog '/u01/app/oracle/dbvisit_archdest/DEV/1_85_884290120.arc'... Catalog archivelog '/u01/app/oracle/dbvisit_archdest/DEV/2_29_884290120.arc'... Catalog archivelog '/u01/app/oracle/dbvisit_archdest/DEV/2_30_884290120.arc'... Completed. Waiting for Checkpoint 10 on kiwi81... Checkpoint 10 completed. Key found on kiwi81 Archive log all for Database DEV1... Completed. Tempfiles dropped. Waiting for Checkpoint 11 on kiwi81... Checkpoint 11 completed. Key found on kiwi81 Open Database DEV1... Database DEV1 opened. Waiting for Checkpoint 12 on kiwi81... Checkpoint 12 completed. Key found on kiwi81 Waiting for Checkpoint 13 on kiwi81... Checkpoint 13 completed. Key found on kiwi81 Waiting for Checkpoint 14 on kiwi81... Checkpoint 14 completed. Key found on kiwi81 File /usr/dbvisit/standby/conf/dbv_DEV1.env copied to /usr/dbvisit/standby/conf/dbv_DEV1.env.201604071913. Dbvisit Database configuration (DDC) file /usr/dbvisit/standby/conf/dbv_DEV1.env has been updated and variables have been reversed between primary and standby server. SOURCE=kiwi91 DESTINATION=kiwi81. Waiting for Checkpoint 15 on kiwi81... Checkpoint 15 completed. Key found on kiwi81 Tempfiles created. FORCE LOGGING is left turned off in the primary database DEV1 on kiwi91. Waiting for Checkpoint 16 on kiwi81... Checkpoint 16 completed. Key found on kiwi81 Compressing 1_85_884290120.arc... Compressing 2_29_884290120.arc... Compressing 2_30_884290120.arc... Waiting for Checkpoint 17 on kiwi81... Checkpoint 17 completed. Key found on kiwi81 Waiting for Checkpoint 18 on kiwi81... Checkpoint 18 completed. Key found on kiwi81 Graceful switchover completed. This database (DEV1) is now the primary database. You may consider re-creating a password file to make sure all sysdba passwords are preserved. To keep the standby database on kiwi81 in synch with this primary database, reschedule Dbvisit as per normal: dbvisit DEV1 Init parameter CLUSTER_DATABASE parameter is set to FALSE. To change single instance database to RAC database set: SQL>alter system set cluster_database = true scope = spfile; SQL>alter system set cluster_database_instances = x scope = spfile; and restart all instances. ============================================================= dbv_oraStartStop ended on kiwi91: Thu Apr 7 19:19:29 2016 =============================================================
To complete the process, you have to run the two commands as shown, followed by restarting the instances, example:
On the new primary kiwi91:
oracle@kiwi91[/home/oracle]: . oraenv ORACLE_SID = [oracle] ? DEV1 The Oracle base remains unchanged with value /u01/app/oracle oracle@kiwi91[/home/oracle]: sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 7 19:24:48 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> alter system set cluster_database=true scope=spfile; System altered. SQL> alter system set cluster_database_instances=2 scope=spfile; System altered. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options oracle@kiwi91[/home/oracle]: srvctl start database -d DEV oracle@kiwi91[/home/oracle]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi91. Instance status: Open. Instance DEV2 is running on node kiwi92. Instance status: Open.
On the standby database kiwi81:
oracle@kiwi81[/usr/dbvisit/standby]: sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 7 19:28:14 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> connect / as sysdba Connected. SQL> alter system set cluster_database=true scope=spfile; System altered. SQL> alter system set cluster_database_instances=2 scope=spfile; System altered. SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 11g Release 11.2.0.4.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options oracle@kiwi81[/usr/dbvisit/standby]: srvctl start database -d DEV -o mount oracle@kiwi81[/usr/dbvisit/standby]: srvctl status database -d DEV -v Instance DEV1 is running on node kiwi81. Instance status: Mounted (Closed). Instance DEV2 is running on node kiwi82. Instance status: Mounted (Closed).
You can now run dbvisit standby as normal to send/apply logs.