In this section, we will cover a few of the advanced topics with regards to Dbvisit Standby version 8 and Oracle RAC configurations.
In this section, the concepts will be explained using an example.
Dbvisit Standby version 9 handles Oracle RAC configurations similar to Dbvisit Standby 8.0
It is important to take note of this and not attempt a version 7.0.x to 9.0.x upgrade without knowing this as you will not be able to perform a direct upgrade.
If you are moving from version 7 to version 9, you MUST create a new DDC file. You will not be allowed to upgrade the current version 7 DDC file if Oracle RAC is being detected.
Dbvisit Standby version 9 is designed to be more Oracle RAC aware. This include
On this page: |
Two Options are available, using shared storage on the Oracle RAC cluster for the Dbvisit Standby installation, or using local storage and run of only one node and optionally configure "rsync" to have the Dbvisit Standby folder synced between the primary nodes.
The two diagrams below explain the configuration in more detail:
The diagram below provides an overview of the Architecture:
To explain the configuration further we will use an example. Below is a diagram that provides high-level details for the environment:
The key parts to note:
The Dbvisit Standby locations are:
Now that we have an overview of the configuration, we can start with the installation.
We will install Dbvisit Standby software on node 1 (kiwi81) and on the standby server (kiwi91).
The installation of the software on kiwi1 will be synced later (see 2.2.4 below).
Below is an example of installing the Dbvisit Standby software onto a local folder - the default which is /usr/dbvisit
Remember in this example, the VIP on the RAC Cluster is running on kiwi1 and is called "dbv-vip"
We first install the software on node 1 (kiwi81) and then on the standby node (kiwi91).
From Dbvisit Standby V 9.0.10 onwards, Dbvnet installer prompt for remote hostname is removed. |
oracle@kiwi81[/home/oracle/dbvisit/installer]: ./install-dbvisit ----------------------------------------------------------- Welcome to the Dbvisit software installer. ----------------------------------------------------------- It is recommended to make a backup of our current Dbvisit software location (Dbvisit Base location) for rollback purposes. Installer Directory /home/oracle/dbvisit >>> Please specify the Dbvisit installation directory (Dbvisit Base). The various Dbvisit products and components - such as Dbvisit Standby, Dbvisit Dbvnet will be installed in the appropriate subdirectories of this path. Enter a custom value or press ENTER to accept default [/usr/dbvisit]: > DBVISIT_BASE = /usr/dbvisit ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 not installed dbvnet 9.0.0_1383_g276092d5 not installed dbvagent 9.0.0_1383_g276092d5 not installed dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 1 ----------------------------------------------------------- Summary of the Dbvisit STANDBY configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVNET ----------------------------------------------------------- >>> Please specify the Local host name to be used by Dbvnet on this server. Dbvnet will be listening on the local IP Address on this server which resolve to the host name specified here. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi812-vip >>> Please specify the Local Dbvnet PORT to be used. Dbvnet will be listening on the specified port for incoming connections from remote dbvnet connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Remote host name to be used by Dbvnet. By default Dbvnet will use this remote hostname for any remote connections. Dbvnet must be installed and configured on the specified remote host. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi91 >>> Please specify the Remote Dbvnet PORT to be used. Dbvnet will connect to the remote server on this specified port. On the remote host Dbvnet will be listening on the specified port for incoming connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Dbvnet Passphrase to be used for secure connections. The passphrase provided must be the same in both the local and remote Dbvnet installations. It is used to establish a secure (encrypted) Dbvnet connections Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVNET configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit DBVNET_LOCAL_HOST kiwi812-vip DBVNET_LOCAL_PORT 7890 DBVNET_REMOTE_HOST kiwi91 DBVNET_REMOTE_PORT 7890 DBVNET_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVAGENT ----------------------------------------------------------- >>> Please specify the host name to be used for the Dbvisit Agent. The Dbvisit Agent (Dbvagent) will be listening on this local address. If you are using the Dbvserver (GUI) - connections from the GUI will be established to the Dbvisit Agent. The Dbvisit Agent address must be visible from the Dbvserver (GUI) installation. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi812-vip >>> Please specify the listening PORT number for Dbvagent. The Dbvisit Agent (Dbvagent) will listening on the specified port for incoming requests from the GUI (Dbvserver). Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7891 is recommended. Enter a custom value or press ENTER to accept default [7891]: > >>> Please specify passphrase for Dbvagent Each Dbvisit Agent must have a passpharse specified. This passphrase does not have to match between all the servers. It will be used to establish a secure connection between the GUI (Dbvserver) and the Dbvisit Agent. Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVAGENT configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit DBVAGENT_LOCAL_HOST kiwi812-vip DBVAGENT_LOCAL_PORT 7891 DBVAGENT_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit STANDBY ----------------------------------------------------------- NTF repo installed. Component standby installed. ----------------------------------------------------------- About to install Dbvisit DBVNET ----------------------------------------------------------- Component dbvnet installed. ----------------------------------------------------------- About to install Dbvisit DBVAGENT ----------------------------------------------------------- Component dbvagent installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 3 >>> Installation completed Install log /tmp/dbvisit_install.log.201905241520. |
The next step is to start the Dbvisit Components on kiwi1 - dbvnet and dbvagent:
oracle@kiwi81[/usr/dbvisit]: cd dbvnet/ oracle@kiwi81[/usr/dbvisit/dbvnet]: ./dbvnet -d start Dbvnet daemon started. oracle@kiwi81[/usr/dbvisit/dbvnet]: cd ../dbvagent/ oracle@kiwi81[/usr/dbvisit/dbvagent]: ./dbvagent -d start Dbvagent daemon started. oracle@kiwi81[/usr/dbvisit/dbvagent]: ps -ef |grep dbv oracle 26648 1 0 15:26 ? 00:00:00 ./dbvnet -d start oracle 26729 1 0 15:26 ? 00:00:00 ./dbvagent -d start oracle 26775 29518 0 15:26 pts/2 00:00:00 grep dbv oracle@kiwi81[/usr/dbvisit/dbvagent]: |
Below is the output of the installation on the standby server.
IMPORTANT: In this example, the Central Console is installed on the Standby server. Ideally, it should be installed on its own server, but if you do not have a 3rd system available for the central console, you can install it on either the primary or standby - we recommend the standby.
oracle@kiwi91[/home/oracle/dbvisit/installer]: ./install-dbvisit ----------------------------------------------------------- Welcome to the Dbvisit software installer. ----------------------------------------------------------- It is recommended to make a backup of our current Dbvisit software location (Dbvisit Base location) for rollback purposes. Installer Directory /home/oracle/dbvisit >>> Please specify the Dbvisit installation directory (Dbvisit Base). The various Dbvisit products and components - such as Dbvisit Standby, Dbvisit Dbvnet will be installed in the appropriate subdirectories of this path. Enter a custom value or press ENTER to accept default [/usr/dbvisit]: > /usr/dbvisit DBVISIT_BASE = /usr/dbvisit ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 not installed dbvnet 9.0.0_1383_g276092d5 not installed dbvagent 9.0.0_1383_g276092d5 not installed dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 1 ----------------------------------------------------------- Summary of the Dbvisit STANDBY configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVNET ----------------------------------------------------------- >>> Please specify the Local host name to be used by Dbvnet on this server. Dbvnet will be listening on the local IP Address on this server which resolve to the host name specified here. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > >>> Please specify the Local Dbvnet PORT to be used. Dbvnet will be listening on the specified port for incoming connections from remote dbvnet connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Remote host name to be used by Dbvnet. By default Dbvnet will use this remote hostname for any remote connections. Dbvnet must be installed and configured on the specified remote host. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > kiwi812-vip >>> Please specify the Remote Dbvnet PORT to be used. Dbvnet will connect to the remote server on this specified port. On the remote host Dbvnet will be listening on the specified port for incoming connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Dbvnet Passphrase to be used for secure connections. The passphrase provided must be the same in both the local and remote Dbvnet installations. It is used to establish a secure (encrypted) Dbvnet connections Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVNET configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit DBVNET_LOCAL_HOST kiwi91 DBVNET_LOCAL_PORT 7890 DBVNET_REMOTE_HOST kiwi812-vip DBVNET_REMOTE_PORT 7890 DBVNET_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVAGENT ----------------------------------------------------------- >>> Please specify the host name to be used for the Dbvisit Agent. The Dbvisit Agent (Dbvagent) will be listening on this local address. If you are using the Dbvserver (GUI) - connections from the GUI will be established to the Dbvisit Agent. The Dbvisit Agent address must be visible from the Dbvserver (GUI) installation. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > >>> Please specify the listening PORT number for Dbvagent. The Dbvisit Agent (Dbvagent) will listening on the specified port for incoming requests from the GUI (Dbvserver). Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7891 is recommended. Enter a custom value or press ENTER to accept default [7891]: > >>> Please specify passphrase for Dbvagent Each Dbvisit Agent must have a passpharse specified. This passphrase does not have to match between all the servers. It will be used to establish a secure connection between the GUI (Dbvserver) and the Dbvisit Agent. Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVAGENT configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit DBVAGENT_LOCAL_HOST kiwi91 DBVAGENT_LOCAL_PORT 7891 DBVAGENT_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit STANDBY ----------------------------------------------------------- NTF repo installed. Component standby installed. ----------------------------------------------------------- About to install Dbvisit DBVNET ----------------------------------------------------------- Component dbvnet installed. ----------------------------------------------------------- About to install Dbvisit DBVAGENT ----------------------------------------------------------- Component dbvagent installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 5 ----------------------------------------------------------- About to configure DBVISIT DBVSERVER ----------------------------------------------------------- >>> Please specify the host name to be used for Dbvserver The Dbvisit Web Server (Dbvserver) will be listening on this local address. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where Dbvserver is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > >>> Please specify the listening port number for Dbvserver on the local server You may choose any value between 1024 and 65535. The default recommended value is 4433. Note: if you can not access this port after the installation has finished, then please double-check your server firewall settings to ensure the selected port is open. Enter a custom value or press ENTER to accept default [4433]: > >>> Please specify the host name (or IPv4 address) to be used for Dbvserver public interface In most cases this will be the same as the listener address, if not sure use the same value as the listener address. The Dbvisit Web Server (Dbvserver) will be listening on the local listener address. The public address can be set to an external IP example a firewall address in case the Central Console (Dbvserver) and agents (Primary and Standby Database servers) have a firewall inbetween them. The public interface address will be passed to the agents during communication for sending information back. If you are unsure about the public host address, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > ----------------------------------------------------------- Summary of the Dbvisit DBVSERVER configuration ----------------------------------------------------------- DBVISIT_BASE /usr/dbvisit DBVSERVER_LOCAL_HOST kiwi91 DBVSERVER_LOCAL_PORT 4433 DBVSERVER_PUBLIC_HOST kiwi91 Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit DBVSERVER ----------------------------------------------------------- Component dbvserver installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 3 >>> Installation completed Install log /tmp/dbvisit_install.log.201905241455. |
Following the installation Start the Dbvisit Standby components: dbvnet, dbvagent, dbvserver:
oracle@kiwi91[/home/oracle/dbvisit/installer]: cd /usr/dbvisit/ oracle@kiwi91[/usr/dbvisit]: cd dbvagent/ oracle@kiwi91[/usr/dbvisit/dbvagent]: ./dbvagent -d start Dbvagent daemon started. oracle@kiwi91[/usr/dbvisit/dbvagent]: cd ../dbvnet/ oracle@kiwi91[/usr/dbvisit/dbvnet]: ./dbvnet -d start Dbvnet daemon started. oracle@kiwi91[/usr/dbvisit/dbvnet]: cd ../dbvserver/ oracle@kiwi91[/usr/dbvisit/dbvserver]: ./dbvserver -d start Dbvserver daemon started. oracle@kiwi91[/usr/dbvisit/dbvserver]: ps -ef |grep dbv oracle 7154 1 0 14:53 ? 00:00:00 ./dbvagent -d start oracle 7168 1 0 14:53 ? 00:00:00 ./dbvnet -d start oracle 7225 1 1 14:53 ? 00:00:00 ./dbvserver -d start oracle 7291 24540 0 14:53 pts/1 00:00:00 grep dbv oracle@kiwi91[/usr/dbvisit/dbvserver]: |
There are two options now available to you for creating the DDC file, using the Command Line Interface (CLI) or the Central Console (GUI)
The DDC file creation must be run from the Primary server (kiwi1) in this example.
The command used is: ./dbvctl -o setup --noprompt
oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -o setup ========================================================= Dbvisit Standby Database Technology (9.0.0_1383_g276092d5) http://www.dbvisit.com ========================================================= =>dbvctl only needs to be run on the primary server. Is this the primary server? <Yes/No> [Yes]: The following Dbvisit Database configuration (DDC) file(s) found on this server: DDC === 1) Create New DDC 2) Cancel Please enter choice [] : 1 Is this correct? <Yes/No> [Yes]: END USER LICENSE AGREEMENT PLEASE READ THIS END USER LICENSE AGREEMENT (AGREEMENT) CAREFULLY BEFORE .... .... <<------- These lines have been removed to make the output easier to read .... Continue ? <Yes/No> [No]: yes ========================================================= Dbvisit Standby setup begins. ========================================================= The following Oracle instance(s) have been found on this server: SID ORACLE_HOME === =========== 1) MYDEV /u01/app/oracle/product/11.2.0/db_1 2) MYDEV1 /u01/app/oracle/product/11.2.0/db_1 3) Enter own ORACLE_SID and ORACLE_HOME Please enter choice [] : 2 Is this correct? <Yes/No> [Yes]: =>ORACLE_SID will be: MYDEV1 =>ORACLE_HOME will be: /u01/app/oracle/product/11.2.0/db_1 ------------------------------------------------------------------------------ Enter the the virtual hostname (linked to a Virtual IP) for primary database. This virtual hostname is attached to a VIP that will be able to move between the RAC nodes. Dbvisit Standby will only run on the server where this virtual hostname (VIP) resource is running. The Virtual Hostname (and VIP) should be configured as a resouce in clusterware and must be enabled and started on one of the nodes before yo continue with the setup. NOTE: If you are not using a Virtual Hostname (Highly Recommended), Dbvisit Standby can only be configured to run on one dedicated node in the RAC configuration - specify the hosts name here if you do not have a Virtual Hostname (attached to VIP) for the cluster configured. =>SOURCE is []: kiwi812-vip Your input: kiwi812-vip Is this correct? <Yes/No> [Yes]: Choice is kiwi812-vip ------------------------------------------------------------------------------ Please enter a filesystem directory that Dbvisit Standby use to store (archive) log files. This directory is not the same as the database recovery area or archive destinations and should not be located in these areas. The ARCHSOURCE directory is located on the primary server and will become the ARCHDEST location when the primary database is converted to a standby database during a Graceful Switchover operation. 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 =>ARCHSOURCE is [/u01/app/oracle/dbvisit_arch/MYDEV]: /acfs/dbvisit_arch/DEV Your input: /acfs/dbvisit_arch/DEV Is this correct? <Yes/No> [Yes]: Choice is /acfs/dbvisit_arch/DEV ------------------------------------------------------------------------------ Enter primary Oracle database instance for thread 1 =>RAC1_SID is [MYDEV1]: Your input: MYDEV1 Is this correct? <Yes/No> [Yes]: Choice is MYDEV1 ------------------------------------------------------------------------------ Enter primary host name for thread 1 =>RAC1_HOST is [kiwi81]: Your input: kiwi81 Is this correct? <Yes/No> [Yes]: Choice is kiwi81 ------------------------------------------------------------------------------ Enter primary ASM instance for thread 1. Leave null for ACFS =>RAC1_SID_ASM is [+ASM1]: Your input: +ASM1 Is this correct? <Yes/No> [Yes]: Choice is +ASM1 ------------------------------------------------------------------------------ Enter primary Oracle database instance for thread 2 =>RAC2_SID is [MYDEV2]: Your input: MYDEV2 Is this correct? <Yes/No> [Yes]: Choice is MYDEV2 ------------------------------------------------------------------------------ Enter primary host name for thread 2 =>RAC2_HOST is [kiwi82]: Your input: kiwi82 Is this correct? <Yes/No> [Yes]: Choice is kiwi82 ------------------------------------------------------------------------------ Enter primary ASM instance for thread 2. Leave null for ACFS =>RAC2_SID_ASM is [+ASM2]: Your input: +ASM2 Is this correct? <Yes/No> [Yes]: Choice is +ASM2 ------------------------------------------------------------------------------ Will the standby database be a RAC database? =>RAC_DR is [N]: Your input: N Is this correct? <Yes/No> [Yes]: Choice is N ------------------------------------------------------------------------------ Do you want to use SSH to connect to the standby server? Note that if you are using SSH, passwordless SSH authentication between the hosts must already be configured. By default Dbvnet will be used. =>USE_SSH is [N]: Your input: N Is this correct? <Yes/No> [Yes]: Choice is N ------------------------------------------------------------------------------ Enter the standby database hostname. If the standby database will be Oracle RAC enabled: Enter the the Virtual Hostname (linked to a Virtual IP) for standby database. This virtual hostname is attached to a VIP that will be able to move between the RAC nodes. Dbvisit Standby will only run on the server where this virtual hostname (VIP) resource is running. The Virtual Hostname (and VIP) should be configured as a resouce in clusterware and must be enabled and started on one of the nodes before yo continue with the setup. If you are not using a Virtual Hostname (Highly Recommended), Dbvisit Standby can only be configured to run on one dedicated node in the RAC configuration - specify the hosts name here if you do not have a Virtual Hostname (attached to VIP) for the cluster configured. For non-RAC configurations specify the standby database server name here. =>DESTINATION is []: kiwi91 Your input: kiwi91 Is this correct? <Yes/No> [Yes]: Choice is kiwi91 ------------------------------------------------------------------------------ Specify the DBVNET or SSH port number on the standby server. The default value supplied is the dbvnet port 7890. If you specified the use of SSH, please specify the SSH port here. =>NETPORT is [7890]: Your input: 7890 Is this correct? <Yes/No> [Yes]: Choice is 7890 ------------------------------------------------------------------------------ Enter Dbvisit Standby installation directory on the standby server =>DBVISIT_BASE_DR is [/acfs/dbvisit]: /usr/dbvisit Your input: /usr/dbvisit Is this correct? <Yes/No> [Yes]: Choice is /usr/dbvisit ------------------------------------------------------------------------------ Enter ORACLE_HOME directory on the standby server =>ORACLE_HOME_DR is [/u01/app/oracle/product/11.2.0/db_1]: Your input: /u01/app/oracle/product/11.2.0/db_1 Is this correct? <Yes/No> [Yes]: Choice is /u01/app/oracle/product/11.2.0/db_1 ------------------------------------------------------------------------------ Enter DB_UNIQUE_NAME on the standby server =>DB_UNIQUE_NAME_DR is [MYDEV]: Your input: MYDEV Is this correct? <Yes/No> [Yes]: Choice is MYDEV ------------------------------------------------------------------------------ Please enter the directory where Dbvisit Standby will transfer the (archive) log files to on standby server. This directory is not the same as the database recovery area or archive destinations and should not be located in these areas. This directory should 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 the standby server =>ARCHDEST is [/acfs/dbvisit_arch/DEV]: /u01/app/oracle/dbvisit_arch/DEV Your input: /u01/app/oracle/dbvisit_arch/DEV Is this correct? <Yes/No> [Yes]: Choice is /u01/app/oracle/dbvisit_arch/DEV ------------------------------------------------------------------------------ Enter ORACLE_SID on the standby server =>ORACLE_SID_DR is [MYDEV1]: MYDEV Your input: MYDEV Is this correct? <Yes/No> [Yes]: Choice is MYDEV ------------------------------------------------------------------------------ Enter ASM instance name on the standby server, if your standby is using ASM. If you are not using ASM on the standby or standby is ACFS leave the value null. =>ORACLE_SID_ASM_DR is []: Is this correct? <Yes/No> [Yes]: Choice is null ------------------------------------------------------------------------------ Please specify the name of the Dbvisit Database configuration (DDC) file. The DDC file is a plain text file that contains all the Dbvisit Standby settings. =>ENV_FILE is [MYDEV]: Your input: MYDEV Is this correct? <Yes/No> [Yes]: Choice is MYDEV ------------------------------------------------------------------------------ Below are the list of configuration variables provided during the setup process: Configuration Variable Value Provided ====================== ============== ORACLE_SID MYDEV1 ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1 SOURCE kiwi812-vip ARCHSOURCE /acfs/dbvisit_arch/DEV RAC1_THREAD 1 RAC1_SID MYDEV1 RAC1_HOST kiwi81 RAC1_SID_ASM +ASM1 RAC2_THREAD 2 RAC2_SID MYDEV2 RAC2_HOST kiwi82 RAC2_SID_ASM +ASM2 RAC_DR N USE_SSH N DESTINATION kiwi91 NETPORT 7890 DBVISIT_BASE_DR /usr/dbvisit ORACLE_HOME_DR /u01/app/oracle/product/11.2.0/db_1 DB_UNIQUE_NAME_DR MYDEV ARCHDEST /u01/app/oracle/dbvisit_arch/DEV ORACLE_SID_DR MYDEV ENV_FILE MYDEV Are these variables correct? <Yes/No> [Yes]: >>> Dbvisit Database configuration (DDC) file MYDEV created. >>> Dbvisit Database repository (DDR) MYDEV created. Repository Version 9.0 Software Version 9.0 Repository Status VALID Do you want to enter license key for the newly created Dbvisit Database configuration (DDC) file? <Yes/No> [Yes]: Enter license key and press Enter: []: xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx >>> Dbvisit Standby License License Key : xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx customer_number : 0 dbname : expiry_date : 2019-06-12 os : sequence : 1 software_features : 00000000 status : VALID updated : YES version : 9 PID:658 TRACE:dbvisit_install.log |
From the above example, we can see that we now have a DDC file called "dbv_DEV.env" and a repository for this DDC file called "dev.db".
Below are the screenshots showing you how you can use the Central Console to create the DDC file for this configuration:
Step 1: Open Main Screen, and navigate to manage hosts and first add the two hosts (dbv-vip and kiwi221)
Step 2: Add a new host
Step 3: Add the RAC node 1 (kiwi18) - but not the host details - you must use the RAC VIP that we assigned - this allows us to move to kiwi2 without having to update names as we use the Virtual IP (kiwi812-vip) which moves between them.
Step 4: Review host and click add new to add standby host - kiwi91
Step 5: Add kiwi91 host
Step 6: Review hosts
Step 7: Add new DDC → navigate to Manage Configurations
Step 8: Start new DDC process by selecting "NEW"
Step 9: Fill in the required details:
Once the details are provided, click on Submit and the DDC file will be created.
Step 10: Review the DDC file
Step 11: Make sure you apply your License key for this newly created DDC before you move onto the Create Standby Database (CSD)
This example will only show using the Central Console.
It is possible to create the standby database either via the Command Line Interface (CLI) using the command: ./dbvctl -d <DDC> --csd in this example: "./dbvctl -d DEV --csd"
To use the Central Console, navigate to the Central Console page and follow the steps as outlined below:
Step 1: Navigate to the Create Standby Database (CSD) Menu
Step 2.1: Select the DDC, Create New Database option and update the Database SPFILE parameters to match the Standby server configuration:
In this example, the standby is Filesystem Based Storage
As we are using OMF - Oracle Managed Files on ASM (Which is recommended) we have to adjust the OMF parameters according - see 3 and 4 as marked below:
Step 2.2: Review Temporary Backup Locations - Make sure that this location has sufficient space for a full RMAN compressed backup of the database. In this example /usr/tmp has sufficient space on both the primary and standby.
This section will show you how you can send/apply logs following the CSD process.
This can be done either via the Command Line Interface or the Central Console.
From the primary node running the Dbvisit Standby processes (kiwi81)
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvctl -d MYDEV ============================================================= Dbvisit Standby Database Technology (9.0.0_1383_g276092d5) (pid 11407) dbvctl started on kiwi812-vip: Fri May 24 18:06:19 2019 ============================================================= >>> Obtaining information from standby database (RUN_INSPECT=Y)... done Thread: 1 Archive log gap: 1. Transfer log gap: 15 Thread: 2 Archive log gap: 2. Transfer log gap: 7 Note FORCE_LOGGING is disabled in the primary database. >>> Sending heartbeat message... skipped >>> First time Dbvisit Standby runs, Dbvisit Standby configuration will be copied to kiwi91... >>> Transferring Log file(s) from MYDEV1 on kiwi812-vip to kiwi91: thread 2 sequence 6 (thread_2_seq_6.506.1009118399)... done thread 1 sequence 15 (thread_1_seq_15.504.1009129341)... done thread 2 sequence 7 (thread_2_seq_7.502.1009129391)... done ============================================================= dbvctl ended on kiwi812-vip: Fri May 24 18:10:46 2019 ============================================================= |
The same command: "./dbvctl -d DEV" can be executed on the standby server kiwi221 to apply the logs already shipped.
Running a log gap report is done from the primary node (kiwi81). Here is an example:
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvctl -d MYDEV -i ============================================================= Dbvisit Standby Database Technology (9.0.0_1383_g276092d5) (pid 13015) dbvctl started on kiwi812-vip: Fri May 24 18:13:42 2019 ============================================================= Dbvisit Standby log gap report for MYDEV at 201905241813: ------------------------------------------------------------- Description | SCN | Timestamp ------------------------------------------------------------- Source 1145102 2019-05-24:18:14:56 +12:00 Destination 1141724 2019-05-24:17:42:17 +12:00 Standby database time lag (DAYS-HH:MI:SS): +00:32:39 Report for Thread 1 ------------------- SOURCE Current Sequence 16 Last Archived Sequence 15 Last Transferred Sequence 15 Last Transferred Timestamp 2019-05-24 18:10:33 DESTINATION Recovery Sequence 15 Transfer Log Gap 0 Apply Log Gap 1 Report for Thread 2 ------------------- SOURCE Current Sequence 8 Last Archived Sequence 7 Last Transferred Sequence 7 Last Transferred Timestamp 2019-05-24 18:10:44 DESTINATION Recovery Sequence 8 Transfer Log Gap 0 Apply Log Gap 0 ============================================================= dbvctl ended on kiwi812-vip: Fri May 24 18:15:19 2019 ============================================================= |
Step 1: Navigate to Manage Databases
Step 2: Select the DDC, click on [2] Send Logs icon and an Active Task will appear [3] which will turn to a green tick when done. View the details by clicking on the task [3] and you will see the details [4]
Step 3: Select the DDC, click on the Apply Logs icon [2]. The active task will be created [3] and when selected the details will be displayed [4]
The next step in this example is to use the UNIX "rsync" utility to copy the files located in the /usr/dbvisit directory (The DBVISIT_BASE) from the "preferred node" which is the node where Dbvisit Standby normally is set to run, which in this example is "kiwi81". It will be set to copy the files from this location to the secondary node kiwi82 in this example. From kiwi82 there will be no Dbvisit Standby processes running as the Virtual IP (dbv-vip) will be running on kiwi1.
You will only start the Dbvisit Processes on kiwi2 if the Virtual IP cluster resource (kiwi812-vip) has been switched over - (re-allocated or failed over) to run on kiwi82. For more detail on the configuration of the VIP and the Action Scripts for Dbvnet and Dbvagent please see here - Oracle RAC Configurations#OracleRACConfigurations-5.Example2:AddDbvnetandDbvagentasClusterResources
Note: The /usr/dbvisit directory (The Dbvisit Base) location must exist on both Primary RAC nodes and that the permission of this folder is set to have the "oracle" Unix account (the user that runs your database software) as the owner. At this stage, the folder on the secondary server (kiwi82) will be empty as we have not synced the files yet.
Step 1: Create a "rsync" script
The first step now is to create a script that will be used to copy the files from node 1 (kiwi1 in this example) to node 2 (kiwi2).
Please note that this example of showing how "rsync" can be used. These steps and scripts must be tested and modified to suit your environment prior to implementing it into production. Make sure that you disable the rsync schedule prior to running a Graceful Switchover - it can be re-enabled again after that. |
Note - this script can be copied into a folder /home/oracle/bin and enabled via a UNIX CRON schedule to run on a regular basis.
#!/bin/bash # # Note this is a sample script and it must be modified to suit your environment. # Test this script before implementing into a production environment. # Basic script to sync /usr/dbvisit local with remote /usr/dbvisit directory. # This script: rsync-dbvisit will be located in /home/oracle/bin folder. # # remote_server=kiwi82 dbv_base_log=/tmp/rsync-dbvisit-base.log dbv_arch_log=/tmp/rsync-dbvisit-arch.log echo "Start Sync: `date`" > ${dbv_base_log} ## Run the rsync command over SSH ## options used are to preservice times, have a 2min i/o timout and to exclude trace files ## rsync -aqzte ssh --exclude '*.trc' --log-file=${dbv_base_log} /usr/dbvisit/ oracle@${remote_server}:/usr/dbvisit/ echo "End Sync: `date`" >> ${dbv_base_log} echo "Start Sync: `date`" > ${dbv_arch_log} ## We also need to sync the ARCHSOURCE and ARCHDEST location if on local storage and not shared rsync -aqzte ssh --exclude '*.trc' --log-file=${dbv_arch_log} /u01/app/oracle/dbvisit_arch/MYDEV/ oracle@${remote_server}:/u01/app/oracle/dbvisit_arch/DEV/ echo "End Sync: `date`" >> ${dbv_arch_log} |
Once you have created this script, make sure that it has sufficient permissions and that the owner "oracle" user, in this case, have a execute permission (example "chmod +x oracle rsync-dbvisit" ). For more detail please see the "chmod" command man pages or online help for your UNIX distribution.
The above script is making use of the UNIX "rsync" command. For more details on the use of this command and all parameters please see the UNIX man pages or online documentation.
Once you have created the script you can run it manually the first time to ensure the directories are kept in sync.
oracle@kiwi81[/home/oracle]: cd bin oracle@kiwi81[/home/oracle/bin]: ./rsync-dbvisit |
Then review the log file in /tmp/dbvisit-rsync.log as well as the /usr/dbvisit directory on the secondary server (kiwi2 in this example)
Step 2: Schedule the Script
In this example, we will schedule the script to run every 10 minutes. This should be sufficient for most configurations.
The schedule can be adjusted if required based on your configuration and environment.
## # CRON: Synchronize the Dbvisit Base folder between kiwi81 and kiwi82 ## */10 * * * * cd /home/oracle/bin; ./rsync-dbvisit >>/dev/null 2>&1 |
To schedule, a cron use the "crontab -e" command and to view any existing schedules use "crontab -l" |
Step 3: Monitor
Have Dbvisit Standby run either via a schedule or via the Daemon process for a period and then monitor the /usr/dbvisit folder on the standby server.
You should see files being updated in the secondary server following a run of the above schedule.
The next step is to schedule the Dbvisit Standby or to run the Daemon process.
Both methods can be used.
Example if you want to run the Schedule using the Unix Cron, you can use the following example CRON entries:
On the Primary (kiwi1)
## # CRON: Synchronize the Dbvisit Base folder between kiwi81 and kiwi82 ## */10 * * * * cd /home/oracle/bin; ./rsync-dbvisit >>/dev/null 2>&1 ## ## # Dbvisit Standby Scheduled to run every 5 min */5 * * * * cd /usr/dbvisit/standby; ./dbvctl -d MYDEV >>/dev/null 2>&1 |
On the Standby (kiwi91) - apply logs every 15min, this can provide a buffer (delay in applying logs) to possibly stop Human error (deletion of data etc).
## # Dbvisit Standby Scheduled to run every 15 min */15 * * * * cd /usr/dbvisit/standby; ./dbvctl -d MYDEV >>/dev/null 2>&1 |
For more detail on scheduling or running Dbvisit Standby as a background Daemon/Process please see here - Dbvisit Standby Scheduling
This example is just to show Graceful Switchover that was performed on this environment.
Before the Graceful Switchover (GS) a log gap report was run to make sure that the primary and standby is up to date.
oracle@kiwi81[/usr/dbvisit/standby]: ./dbvctl -d MYDEV -o switchover ============================================================= Dbvisit Standby Database Technology (9.0.0_1383_g276092d5) (pid 23129) dbvctl started on kiwi812-vip: Fri May 24 18:59:51 2019 ============================================================= >>> Starting Switchover between kiwi812-vip and kiwi91 Running pre-checks ... done Pre processing ... done Processing primary ... done Processing standby ... done Converting standby ... done Converting primary ... done Completing ... done Synchronizing ... done Post processing ... done >>> Graceful switchover completed. Primary Database Server: kiwi91 Standby Database Server: kiwi812-vip >>> Dbvisit Standby can be run as per normal: dbvctl -d MYDEV PID:23129 TRACE:23129_dbvctl_switchover_MYDEV_201905241859.trc ============================================================= dbvctl ended on kiwi812-vip: Fri May 24 19:52:04 2019 ============================================================= |
Following this process, kiwi91 is now a single instance primary with kiwi81/kiwi82 as the standby database.
In the example we will discuss in this section we will explain the configuration of a Standby Oracle RAC environment for a Primary Oracle RAC environment.
The Diagram below provide a summary of the environment:
In the example the primary RAC configuration exists out of two Nodes:
The IP address details are listed below:
## Public IP addresses 10.0.2.81 kiwi81.oraclekiwi.co.nz kiwi81 10.0.2.82 kiwi82.oraclekiwi.co.nz kiwi82 ## Virtual IP Addresses 10.0.2.83 kiwi81-vip.oraclekiwi.co.nz kiwi81-vip 10.0.2.84 kiwi82-vip.oraclekiwi.co.nz kiwi82-vip ## Private Interconnect Addresses 10.5.5.81 kiwi81-priv.oraclekiwi.co.nz kiwi81-priv 10.5.5.82 kiwi82-priv.oraclekiwi.co.nz kiwi82-priv ## SCAN address list in DNS Only # 10.0.2.85 kiwi812-scan.oraclekiwi.co.nz kiwi812-scan # 10.0.2.86 kiwi812-scan.oraclekiwi.co.nz kiwi812-scan # 10.0.2.87 kiwi812-scan.oraclekiwi.co.nz kiwi812-scan # Dbvisit Standby VIP 10.0.2.89 kiwi812-vip.oraclekiwi.co.nz kiwi812-vip |
These details are added to the /etc/hosts file as well as to the DNS.
Having the values in the DNS is highly recommended.
The Oracle SCAN details must be in the DNS.
Take note of the new Virtual IP that is specified. This new Virtual IP is created and will be assigned to one specific node at a time. But it can move between the RAC nodes. Dbvisit Standby version 9 will be configured to use this address as the "cluster address". That way we can decide on which node we want Dbvisit Standby components to run.
The steps to create the Virtual IP address is listed below (Note these are executed as the root user)
# appvipcfg create -network=1 -ip=10.0.2.89 -vipname=kiwi812-vip -user=root # crsctl setperm resource kiwi812-vip -u user:oracle:r-x # crsctl setperm resource kiwi812-vip -u group:grid:r-x # crsctl start resource kiwi812-vip -n kiwi81 # crsctl status resource kiwi812-vip -p # crsctl relocate resource kiwi812-vip -n kiwi81 |
The last step is to make sure you add to the DNS: 10.0.2.89 kiwi812-vip
Primary RAC Node 1: kiwi81 | Primary RAC Node 2: kiwi82 | ||
---|---|---|---|
|
|
In the example the standby RAC configuration exists out of two Nodes:
The IP address details are listed below:
## Public IP addresses 10.0.2.91 kiwi91.oraclekiwi.co.nz kiwi91 10.0.2.92 kiwi92.oraclekiwi.co.nz kiwi92 ## Virtual IP Addresses 10.0.2.93 kiwi91-vip.oraclekiwi.co.nz kiwi91-vip 10.0.2.94 kiwi92-vip.oraclekiwi.co.nz kiwi92-vip ## Private Interconnect Addresses 10.5.5.91 kiwi91-priv.oraclekiwi.co.nz kiwi91-priv 10.5.5.92 kiwi92-priv.oraclekiwi.co.nz kiwi92-priv ## SCAN address list in DNS Only # 10.0.2.95 kiwi912-scan.oraclekiwi.co.nz kiwi912-scan # 10.0.2.96 kiwi912-scan.oraclekiwi.co.nz kiwi912-scan # 10.0.2.97 kiwi912-scan.oraclekiwi.co.nz kiwi912-scan # Dbvisit Standby VIP 10.0.2.99 kiwi912-vip.oraclekiwi.co.nz kiwi912-vip |
Take note of the new Virtual IP that is specified. This new Virtual IP is created and will be assigned to one specific node at a time. But it can move between the RAC nodes. Dbvisit Standby version 9 will be configured to use this address as the "cluster address". That way we can decide on which node we want Dbvisit Standby components to run.
The steps to create the Virtual IP address is listed below (Note these are executed as the root user)
# appvipcfg create -network=1 -ip=10.0.2.99 -vipname=kiwi912-vip -user=root # crsctl setperm resource kiwi912-vip -u user:oracle:r-x # crsctl setperm resource kiwi912-vip -u user:grid:r-x # crsctl start resource kiwi912-vip -n kiwi91 # crsctl status resource kiwi912-vip -p # crsctl relocate kiwi912-vip # crsctl relocate resource kiwi912-vip -n kiwi91 |
The last step is to make sure you add to the DNS: 10.0.2.99 kiwi912-vip
Standby RAC Node 1: kiwi91 | Standby RAC Node 1: kiwi92 | ||
---|---|---|---|
|
|
In this example, a basic passphrase of "kiwi123" is used for Dbvnet and the Dbvagent.
From Dbvisit Standby V 9.0.10 onwards, dbvnet installer prompt for remote hostname is removed. |
oracle@kiwi81[/home/oracle/dbvisit/installer]: ./install-dbvisit ----------------------------------------------------------- Welcome to the Dbvisit software installer. ----------------------------------------------------------- It is recommended to make a backup of our current Dbvisit software location (Dbvisit Base location) for rollback purposes. Installer Directory /home/oracle/dbvisit >>> Please specify the Dbvisit installation directory (Dbvisit Base). The various Dbvisit products and components - such as Dbvisit Standby, Dbvisit Dbvnet will be installed in the appropriate subdirectories of this path. Enter a custom value or press ENTER to accept default [/usr/dbvisit]: > /acfs/dbvisit DBVISIT_BASE = /acfs/dbvisit ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 not installed dbvnet 9.0.0_1383_g276092d5 not installed dbvagent 9.0.0_1383_g276092d5 not installed dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 1 ----------------------------------------------------------- Summary of the Dbvisit STANDBY configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVNET ----------------------------------------------------------- >>> Please specify the Local host name to be used by Dbvnet on this server. Dbvnet will be listening on the local IP Address on this server which resolve to the host name specified here. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi812-vip >>> Please specify the Local Dbvnet PORT to be used. Dbvnet will be listening on the specified port for incoming connections from remote dbvnet connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Remote host name to be used by Dbvnet. By default Dbvnet will use this remote hostname for any remote connections. Dbvnet must be installed and configured on the specified remote host. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi912-vip >>> Please specify the Remote Dbvnet PORT to be used. Dbvnet will connect to the remote server on this specified port. On the remote host Dbvnet will be listening on the specified port for incoming connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Dbvnet Passphrase to be used for secure connections. The passphrase provided must be the same in both the local and remote Dbvnet installations. It is used to establish a secure (encrypted) Dbvnet connections Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVNET configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit DBVNET_LOCAL_HOST kiwi812-vip DBVNET_LOCAL_PORT 7890 DBVNET_REMOTE_HOST kiwi912-vip DBVNET_REMOTE_PORT 7890 DBVNET_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVAGENT ----------------------------------------------------------- >>> Please specify the host name to be used for the Dbvisit Agent. The Dbvisit Agent (Dbvagent) will be listening on this local address. If you are using the Dbvserver (GUI) - connections from the GUI will be established to the Dbvisit Agent. The Dbvisit Agent address must be visible from the Dbvserver (GUI) installation. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi81]: > kiwi812-vip >>> Please specify the listening PORT number for Dbvagent. The Dbvisit Agent (Dbvagent) will listening on the specified port for incoming requests from the GUI (Dbvserver). Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7891 is recommended. Enter a custom value or press ENTER to accept default [7891]: > >>> Please specify passphrase for Dbvagent Each Dbvisit Agent must have a passpharse specified. This passphrase does not have to match between all the servers. It will be used to establish a secure connection between the GUI (Dbvserver) and the Dbvisit Agent. Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVAGENT configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit DBVAGENT_LOCAL_HOST kiwi812-vip DBVAGENT_LOCAL_PORT 7891 DBVAGENT_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit STANDBY ----------------------------------------------------------- NTF repo installed. Component standby installed. ----------------------------------------------------------- About to install Dbvisit DBVNET ----------------------------------------------------------- Component dbvnet installed. ----------------------------------------------------------- About to install Dbvisit DBVAGENT ----------------------------------------------------------- Component dbvagent installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 3 >>> Installation completed Install log /tmp/dbvisit_install.log.201905241042. |
oracle@kiwi91[/home/oracle/dbvisit/installer]: ./install-dbvisit ----------------------------------------------------------- Welcome to the Dbvisit software installer. ----------------------------------------------------------- It is recommended to make a backup of our current Dbvisit software location (Dbvisit Base location) for rollback purposes. Installer Directory /home/oracle/dbvisit >>> Please specify the Dbvisit installation directory (Dbvisit Base). The various Dbvisit products and components - such as Dbvisit Standby, Dbvisit Dbvnet will be installed in the appropriate subdirectories of this path. Enter a custom value or press ENTER to accept default [/usr/dbvisit]: > /acfs/dbvisit DBVISIT_BASE = /acfs/dbvisit ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 not installed dbvnet 9.0.0_1383_g276092d5 not installed dbvagent 9.0.0_1383_g276092d5 not installed dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 1 ----------------------------------------------------------- Summary of the Dbvisit STANDBY configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVNET ----------------------------------------------------------- >>> Please specify the Local host name to be used by Dbvnet on this server. Dbvnet will be listening on the local IP Address on this server which resolve to the host name specified here. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > kiwi912-vip >>> Please specify the Local Dbvnet PORT to be used. Dbvnet will be listening on the specified port for incoming connections from remote dbvnet connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Remote host name to be used by Dbvnet. By default Dbvnet will use this remote hostname for any remote connections. Dbvnet must be installed and configured on the specified remote host. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > kiwi812-vip >>> Please specify the Remote Dbvnet PORT to be used. Dbvnet will connect to the remote server on this specified port. On the remote host Dbvnet will be listening on the specified port for incoming connections. Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7890 is recommended. Enter a custom value or press ENTER to accept default [7890]: > >>> Please specify the Dbvnet Passphrase to be used for secure connections. The passphrase provided must be the same in both the local and remote Dbvnet installations. It is used to establish a secure (encrypted) Dbvnet connections Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVNET configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit DBVNET_LOCAL_HOST kiwi912-vip DBVNET_LOCAL_PORT 7890 DBVNET_REMOTE_HOST kiwi812-vip DBVNET_REMOTE_PORT 7890 DBVNET_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to configure DBVISIT DBVAGENT ----------------------------------------------------------- >>> Please specify the host name to be used for the Dbvisit Agent. The Dbvisit Agent (Dbvagent) will be listening on this local address. If you are using the Dbvserver (GUI) - connections from the GUI will be established to the Dbvisit Agent. The Dbvisit Agent address must be visible from the Dbvserver (GUI) installation. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where dbvnet is installed. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > kiwi912-vip >>> Please specify the listening PORT number for Dbvagent. The Dbvisit Agent (Dbvagent) will listening on the specified port for incoming requests from the GUI (Dbvserver). Please make sure that this port is not already in use or blocked by any firewall. You may choose any value between 1024 and 65535, however the default of 7891 is recommended. Enter a custom value or press ENTER to accept default [7891]: > >>> Please specify passphrase for Dbvagent Each Dbvisit Agent must have a passpharse specified. This passphrase does not have to match between all the servers. It will be used to establish a secure connection between the GUI (Dbvserver) and the Dbvisit Agent. Enter a custom value: > kiwi123 ----------------------------------------------------------- Summary of the Dbvisit DBVAGENT configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit DBVAGENT_LOCAL_HOST kiwi912-vip DBVAGENT_LOCAL_PORT 7891 DBVAGENT_PASSPHRASE kiwi123 Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit STANDBY ----------------------------------------------------------- NTF repo installed. Component standby installed. ----------------------------------------------------------- About to install Dbvisit DBVNET ----------------------------------------------------------- Component dbvnet installed. ----------------------------------------------------------- About to install Dbvisit DBVAGENT ----------------------------------------------------------- Component dbvagent installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 not installed ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 1 Choose component(s): 1 - Core Components (Dbvisit Standby Cli, Dbvnet, Dbvagent) 2 - Dbvisit Standby Core (Command Line Interface) 3 - Dbvnet (Dbvisit Network Communication) 4 - Dbvagent (Dbvisit Agent) 5 - Dbvserver (Dbvisit Central Console) - Not available on Solaris/AIX 6 - Exit Installer Your choice: 5 ----------------------------------------------------------- About to configure DBVISIT DBVSERVER ----------------------------------------------------------- >>> Please specify the host name to be used for Dbvserver The Dbvisit Web Server (Dbvserver) will be listening on this local address. If using a cluster or virtual IP make sure the host name or alias specified here resolve to the IP address local to where Dbvserver is installed. If you are unsure about the remote host name during installation, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi91]: > kiwi912-vip >>> Please specify the listening port number for Dbvserver on the local server You may choose any value between 1024 and 65535. The default recommended value is 4433. Note: if you can not access this port after the installation has finished, then please double-check your server firewall settings to ensure the selected port is open. Enter a custom value or press ENTER to accept default [4433]: > >>> Please specify the host name (or IPv4 address) to be used for Dbvserver public interface In most cases this will be the same as the listener address, if not sure use the same value as the listener address. The Dbvisit Web Server (Dbvserver) will be listening on the local listener address. The public address can be set to an external IP example a firewall address in case the Central Console (Dbvserver) and agents (Primary and Standby Database servers) have a firewall inbetween them. The public interface address will be passed to the agents during communication for sending information back. If you are unsure about the public host address, use the default value which will be the current local hostname. The host name should resolve to IPv4 address, if not you can use an IPv4 IP address instead of host name. Enter a custom value or press ENTER to accept default [kiwi912-vip]: > kiwi912-vip ----------------------------------------------------------- Summary of the Dbvisit DBVSERVER configuration ----------------------------------------------------------- DBVISIT_BASE /acfs/dbvisit DBVSERVER_LOCAL_HOST kiwi912-vip DBVSERVER_LOCAL_PORT 4433 DBVSERVER_PUBLIC_HOST kiwi912-vip Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit DBVSERVER ----------------------------------------------------------- Component dbvserver installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvnet 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvagent 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 dbvserver 9.0.0_1383_g276092d5 9.0.0_1383_g276092d5 ----------------------------------------------------------- What action would you like to perform? 1 - Install component(s) 2 - Uninstall component(s) 3 - Exit Your choice: 3 >>> Installation completed Install log /tmp/dbvisit_install.log.201905241051. |
In this section, we will show you how to add Dbvnet and Dbvagent as cluster resources.
We will make use of an action script for each component, which will then be used to manage these two resources.
Note: these scripts are provided as examples and should be tested in your development or test environments before implementing it into production as each environment is different and they might need to be adjusted for your environment.
The script below is a sample action script that will be used to manage dbvnet.
This script is created in the dbvnet folder /acfs/dbvisit/dbvnet
#!/bin/bash # # Dbvnet Action Script ############################################## # Function to change database environments # Description: # Use oraenv to set the environment if needed # This is optional to set the environment ############################################## ## set following to ensure oraenv is picked up from /usr/local/bin export PATH=/usr/local/bin:$PATH set_env () { export ORAENV_ASK=NO export ORACLE_SID=$1 . oraenv >> /dev/null export ORAENV_ASK=YES } ################# ## Main Section ################# # This is logged to CRSD agent log file echo "`date` Action script '$_CRS_ACTION_SCRIPT' for resource [$_CRS_NAME] called for action $1" # set environment set_env DEV cd /acfs/dbvisit/dbvnet case "$1" in 'start') ./dbvnet -d start RET=0 echo "Running start dbvnet resource with return code $RET" ;; 'stop') NUM=`ps -ef | grep dbvnet | egrep -v 'grep|action-script|resource' | wc -l` if [ $NUM = 0 ]; then ## do a cleanup of pid ./dbvnet -d stop RET=0 else ## now stop the dbvnet ./dbvnet -d stop NUM=`ps -ef | grep dbvnet | grep -v grep | wc -l` if [ $NUM = 0 ]; then RET=0 else RET=1 fi fi echo "Running stop dbvnet resource with return code $RET" ;; 'check') NUM=`ps -ef | grep dbvnet | egrep -v 'grep|action-script|resource' | wc -l` if [ $NUM = 0 ]; then ## return code 1 for check means OFFLINE RET=1 else ## return code 0 for check means ONLINE RET=0 fi echo "Running check dbvnet resource with return code $RET" ;; 'clean') for c1 in `ps -ef|grep dbvnet |egrep -v 'grep|action-script|resource'| awk '{print $2}'` ; do echo "...force kill dbvnet pid $c1" kill -9 $c1 done ## do some cleanup ./dbvnet -d stop RET=0 echo "Running clean dbvnet resource with return code $RET" ;; esac if [ $RET -eq 0 ]; then exit 0 else exit 1 fi |
The script below is a sample action script that will be used to manage dbvagent.
This script is created in the dbvnet folder /acfs/dbvisit/dbvagent
#!/bin/bash # # Dbvagent Action Script ############################################# # Function to change database environments # Description: # Use oraenv to set the environment if needed # This is optional to set the environment ############################################# ## set following to ensure oraenv is picked up from /usr/local/bin export PATH=/usr/local/bin:$PATH set_env () { export ORAENV_ASK=NO export ORACLE_SID=$1 . oraenv >> /dev/null export ORAENV_ASK=YES } ################# ## Main Section ################# # This is logged to CRSD agent log file echo "`date` Action script '$_CRS_ACTION_SCRIPT' for resource [$_CRS_NAME] called for action $1" # set environment set_env DEV cd /acfs/dbvisit/dbvagent case "$1" in 'start') ./dbvagent -d start RET=0 echo "Running start dbvagent resource with return code $RET" ;; 'stop') NUM=`ps -ef | grep dbvagent | egrep -v 'grep|action-script|resource' | wc -l` if [ $NUM = 0 ]; then ## do a cleanup of pid ./dbvagent -d stop RET=0 else ## now stop the agent ./dbvagent -d stop NUM=`ps -ef | grep dbvagent | grep -v grep | wc -l` if [ $NUM = 0 ]; then RET=0 else RET=1 fi fi echo "Running stop dbvagent resource with return code $RET" ;; 'check') NUM=`ps -ef | grep dbvagent | egrep -v 'grep|action-script|resource' | wc -l` if [ $NUM = 0 ]; then ## return code 1 for check means OFFLINE RET=1 else ## return code 0 for check means ONLINE RET=0 fi echo "Running check dbvagent resource with return code $RET" ;; 'clean') for c1 in `ps -ef|grep dbvagent |egrep -v 'grep|action-script|resource'| awk '{print $2}'` ; do echo "...force kill dbvagent pid $c1" kill -9 $c1 done ## do some cleanup of pids ./dbvagent -d stop RET=0 echo "Running clean dbvagent resource with return code $RET" ;; esac if [ $RET -eq 0 ]; then exit 0 else exit 1 fi |
On the Primary cluster node 1 (kiwi81) as the root user run the following commands to add the two resources:
IMPORTANT: The lines below should be on one line, but are shown on separate lines to make it easier to read
crsctl add resource dbvnet -type cluster_resource -attr "ACTION_SCRIPT=/acfs/dbvisit/dbvnet/action-script.scr, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10 ,START_DEPENDENCIES='hard(kiwi812-vip) pullup(kiwi812-vip)' ,STOP_DEPENDENCIES='hard(kiwi812-vip)' ,ACL='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--' ,PLACEMENT='favored' ,HOSTING_MEMBERS='kiwi81 kiwi82'" crsctl add resource dbvagent -type cluster_resource -attr "ACTION_SCRIPT=/acfs/dbvisit/dbvagent/action-script.scr, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10 ,START_DEPENDENCIES='hard(kiwi812-vip) pullup(kiwi812-vip)' ,STOP_DEPENDENCIES='hard(kiwi812-vip)' ,ACL='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--' ,PLACEMENT='favored' ,HOSTING_MEMBERS='kiwi81 kiwi82'" |
On the Standby cluster node 1 (kiwi91) as the root user run the following commands to add the two resources:
IMPORTANT: The lines below should be on one line, but are shown on separate lines to make it easier to read
crsctl add resource dbvnet -type cluster_resource -attr "ACTION_SCRIPT=/acfs/dbvisit/dbvnet/action-script.scr, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10 ,START_DEPENDENCIES='hard(kiwi912-vip) pullup(kiwi912-vip)' ,STOP_DEPENDENCIES='hard(kiwi912-vip)' ,ACL='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--' ,PLACEMENT='favored' ,HOSTING_MEMBERS='kiwi91 kiwi92'" crsctl add resource dbvagent -type cluster_resource -attr "ACTION_SCRIPT=/acfs/dbvisit/dbvagent/action-script.scr, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10 ,START_DEPENDENCIES='hard(kiwi912-vip) pullup(kiwi912-vip)' ,STOP_DEPENDENCIES='hard(kiwi912-vip)' ,ACL='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--' ,PLACEMENT='favored' ,HOSTING_MEMBERS='kiwi91 kiwi92'" |
The following commands can be used to check the status of the cluster resources as well as to start and stop them.
Remember that these two resources are dependant on the Virtual IP address that was added.
If the Virtual IP address is moved (relocated) to the other node, the Dbvnet and Dbvagent resources will be stopped and moved to the other node and started.
IMPORTANT After the dbvagent resource is started, check USER variable in its environment, for example:
If the result is:
Then you will need to add one extra line to change this variable to the dbvagent action script:
Restart dbvagent resource afterwards |
root@kiwi91[/root]: crsctl status resource dbvnet NAME=dbvnet TYPE=cluster_resource TARGET=ONLINE STATE=ONLINE on kiwi91 root@kiwi91[/root]: crsctl status resource dbvagent NAME=dbvagent TYPE=cluster_resource TARGET=ONLINE STATE=ONLINE on kiwi91 root@kiwi91[/root]: crsctl status resource kiwi912-vip NAME=kiwi912-vip TYPE=app.appvip_net1.type TARGET=ONLINE STATE=ONLINE on kiwi91 |
or
root@kiwi91[/root]: crs_stat -t Name Type Target State Host ------------------------------------------------------------ dbvagent clus...esource ONLINE ONLINE kiwi91 dbvnet clus...esource ONLINE ONLINE kiwi91 kiwi912-vip app....t1.type ONLINE ONLINE kiwi91 ... ... ... |
root@kiwi91[/root]: crsctl start resource kiwi912-vip CRS-2672: Attempting to start 'kiwi912-vip' on 'kiwi91' CRS-2676: Start of 'kiwi912-vip' on 'kiwi91' succeeded root@kiwi91[/root]: crsctl start resource dbvnet CRS-2672: Attempting to start 'dbvnet' on 'kiwi91' CRS-2676: Start of 'dbvnet' on 'kiwi91' succeeded root@kiwi91[/root]: crsctl start resource dbvagent CRS-2672: Attempting to start 'dbvagent' on 'kiwi91' CRS-2676: Start of 'dbvagent' on 'kiwi91' succeeded root@kiwi91[/root]: |
root@kiwi91[/root]: crsctl stop resource dbvnet CRS-2673: Attempting to stop 'dbvnet' on 'kiwi91' CRS-2677: Stop of 'dbvnet' on 'kiwi91' succeeded CRS-2679: Attempting to clean 'dbvnet' on 'kiwi91' CRS-2681: Clean of 'dbvnet' on 'kiwi91' succeeded root@kiwi91[/root]: crsctl stop resource dbvagent CRS-2673: Attempting to stop 'dbvagent' on 'kiwi91' CRS-2677: Stop of 'dbvagent' on 'kiwi91' succeeded CRS-2679: Attempting to clean 'dbvagent' on 'kiwi91' CRS-2681: Clean of 'dbvagent' on 'kiwi91' succeeded root@kiwi91[/root]: crsctl stop resource kiwi912-vip CRS-2673: Attempting to stop 'kiwi912-vip' on 'kiwi91' CRS-2677: Stop of 'kiwi912-vip' on 'kiwi91' succeeded |
root@kiwi91[/root]: crsctl relocate resource kiwi912-vip -f CRS-2673: Attempting to stop 'dbvagent' on 'kiwi91' CRS-2673: Attempting to stop 'dbvnet' on 'kiwi91' CRS-2677: Stop of 'dbvnet' on 'kiwi91' succeeded CRS-2679: Attempting to clean 'dbvnet' on 'kiwi91' CRS-2677: Stop of 'dbvagent' on 'kiwi91' succeeded CRS-2679: Attempting to clean 'dbvagent' on 'kiwi91' CRS-2681: Clean of 'dbvnet' on 'kiwi91' succeeded CRS-2681: Clean of 'dbvagent' on 'kiwi91' succeeded CRS-2673: Attempting to stop 'kiwi912-vip' on 'kiwi91' CRS-2677: Stop of 'kiwi912-vip' on 'kiwi91' succeeded CRS-2672: Attempting to start 'kiwi912-vip' on 'kiwi92' CRS-2676: Start of 'kiwi912-vip' on 'kiwi92' succeeded CRS-2672: Attempting to start 'dbvagent' on 'kiwi92' CRS-2676: Start of 'dbvagent' on 'kiwi92' succeeded CRS-2672: Attempting to start 'dbvnet' on 'kiwi92' CRS-2676: Start of 'dbvnet' on 'kiwi92' succeeded |
There are two methods to create the Dbvisit Standby DDC file.
In this example, we will show it via the Central Console.
The Central Console is installed onto its own system and have network access to both the Primary and the Standby RAC clusters.
The two hosts to be added is the Dbvagent connections, which is to the Virtual IP addresses.
Navigate to the Configurations screen and start the creation of the new DDC
The New Configuration will now start as seen below:
From the above image we can see:
The last step is to click on Submit.
Dbvisit Standby will now validate the parameters specified and create a new DDC file as well as a repository (stored in the DBVISIT_BASE/standby/conf directory)
The standby database can either be created via the command line interface (dbvctl -d <DDC> --csd) or via the Central Console.
In this example, we will show the use of the Central Console to create the standby database
The server parameter file (spfile) section does contain a lot of information. Make sure you review the locations of the datafiles, redo logs and spfile.
In this example, the primary and standby systems match exactly from a storage point of view (same disk groups etc) so we do not have to change any parameters.
From the above, we can see that the temporary location /user/tmp was used for the local and remote temp backup locations.
Make sure the locations you specify has sufficient space to hold a full compressed database backup.
In this example, the "Create Standby Database & Template" option is selected.
The new task will be created as shown below:
When using Oracle Standard Edition High Availability or Oracle Restart without ASM (Standby Datafiles are located on ACFS) it is needed after standby database creation to establish dependency on the ACFS disk group. For example if datafiles are located on ACFS volume /u01/app/oradata after standby database creation you'll need to manually create dependency like so:
|
This section will include additional information and recommendations when installing Dbvisit Standby version 8 on an Oracle RAC configuration on Windows.
Please review Oracle Support Note: Doc ID 1339053.1 Running the command " |
On Windows, the setup should be similar to a UNIX based Oracle RAC configuration. You have to install the Oracle software (Clusterware and Database) as per Oracle best practice.
There is one important difference between UNIX based installations of Dbvisit Standby compared to Windows (when installing on a RAC cluster) and this is that on Windows - Services is used, which means we need to create Dbvnet and Dbvagent services on both nodes in the cluster.
Example steps would be:
Example - Below we created a Virtual IP 10.0.2.118 for the VIP Name (host alias) kiwiwin-vip (note this should be added to your DNS). In this example, the RAC cluster was using local accounts and not domain accounts. If domain accounts were used the -user flag should be updated to the domain account.
C:\app\11.2.0\grid\BIN>appvipcfg.bat create -network=1 -ip=10.0.2.118 -vipname=kiwiwin-vip -user=.\oracle roduction Copyright 2007, 2008, Oracle.All rights reserved 017-10-30 02:01:14: Creating Resource Type 017-10-30 02:01:14: Executing C:\app\11.2.0\grid\bin\crsctl add type app.appvip_net1.type -basetype ora.cluster_vip_net1.type -file C:\app\11.2.0\grid/crs/template/appvip.type 017-10-30 02:01:14: Executing cmd: C:\app\11.2.0\grid\bin\crsctl add type app.appvip_net1.type -basetype ora.cluster_vip_net1.type -file C:\app\11.2.0\grid/crs/template/appvip.type 017-10-30 02:01:15: Create the Resource 017-10-30 02:01:15: Executing C:\app\11.2.0\grid\bin\crsctl add resource kiwiwin-vip -type app.appvip_net1.type -attr "USR_ORA_VIP=10.0.2.118,START_DEPENDENCIES=hard(ora.net1.network) pullup(ora.net1.network),STOP_DEPENDENCIES=hard(ora.net1.network),ACL='owner:.\oracle:rwx,pgrp::r-x,other::r--',HOSTING_MEMBERS=kiwiwin01,APPSVIP_FAILBACK=" 017-10-30 02:01:15: Executing cmd: C:\app\11.2.0\grid\bin\crsctl add resource kiwiwin-vip -type app.appvip_net1.type -attr "USR_ORA_VIP=10.0.2.118,START_DEPENDENCIES=hard(ora.net1.network) pullup(ora.net1.network),STOP_DEPENDENCIES=hard(ora.net1.network),ACL='owner:.\oracle:rwx,pgrp::r-x,other::r--',HOSTING_MEMBERS=kiwiwin01,APPSVIP_FAILBACK=" c:\app\11.2.0\grid\BIN>crsctl status resource kiwiwin-vip -p NAME=kiwiwin-vip TYPE=app.appvip_net1.type ACL=owner:.\oracle:rwx,pgrp::r-x,other::r-- ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT= ACTIVE_PLACEMENT=1 AGENT_FILENAME=%CRS_HOME%/bin/orarootagent%CRS_EXE_SUFFIX% APPSVIP_FAILBACK=0 AUTO_START=restore CARDINALITY=1 CHECK_INTERVAL=1 CHECK_TIMEOUT=120 DEFAULT_TEMPLATE=PROPERTY(RESOURCE_CLASS=vip) ELEMENT(HOSTING_MEMBERS=%HOSTING_MEMBERS%) DEGREE=1 DESCRIPTION=Application VIP ENABLED=1 FAILOVER_DELAY=0 FAILURE_INTERVAL=0 FAILURE_THRESHOLD=0 GEN_USR_ORA_STATIC_VIP= GEN_USR_ORA_VIP= HOSTING_MEMBERS=kiwiwin01 LOAD=1 LOGGING_LEVEL=1 NLS_LANG= NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 PLACEMENT=balanced PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=0 SCRIPT_TIMEOUT=60 SERVER_POOLS=* START_DEPENDENCIES=hard(ora.net1.network) pullup(ora.net1.network) START_TIMEOUT=120 STATE_CHANGE_TEMPLATE= STOP_DEPENDENCIES=hard(ora.net1.network) STOP_TIMEOUT=0 TYPE_VERSION=2.2 UPTIME_THRESHOLD=7d USR_ORA_ENV= USR_ORA_VIP=10.0.2.118 VERSION=11.2.0.3.0 c:\app\11.2.0\grid\BIN>ping kiwiwin-vip Pinging kiwiwin-vip.oraclekiwi.co.nz [10.0.2.118] with 32 bytes of data: Control-C ^C c:\app\11.2.0\grid\BIN>crsctl start resource kiwiwin-vip CRS-2672: Attempting to start 'kiwiwin-vip' on 'kiwiwin02' CRS-2676: Start of 'kiwiwin-vip' on 'kiwiwin02' succeeded c:\app\11.2.0\grid\BIN>ping kiwiwin-vip Pinging kiwiwin-vip.oraclekiwi.co.nz [10.0.2.118] with 32 bytes of data: Reply from 10.0.2.118: bytes=32 time<1ms TTL=128 Reply from 10.0.2.118: bytes=32 time<1ms TTL=128 Ping statistics for 10.0.2.118: Packets: Sent = 2, Received = 2, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms Control-C ^C |
In this example the Dbvisit Base was: C:\app\oracle\acfsmounts\acfs_data\dbvisit
ONLY Dbvnet, Dbvagent and Standby Core components are installed. It is not recommended to run the GUI (Central Console) from a RAC Cluster - but rather on a standalone small system or the standby server.
Also, make sure that when you install Dbvnet and the Agent that you configure the listening address as the Virtual IP hostname. This is to ensure that when Dbvnet or the Agent is started, it will listen on this Virtual IP.
Example Action Scripts - Please note these are samples and should be tested in your development or test environments prior to implementing into production:
Dbvnet Action Script: Dbvnet.cmd
@echo off setlocal pushd if "%~1"=="" ( echo Action cannot be empty ... echo: call :HELP ) & (goto :EOF) REM Test if Usage/Help should be displayed if /i {%1}=={/?} (call :HELP) & (goto :EOF) goto :setEnvironment REM ########################################## REM Function to set Environment values REM ########################################## :setEnvironment set action=%~1 for /F "tokens=1,2,3,4 delims=/- " %%a in ('date /t') do set CDATE=%%d%%c%%b for /F "tokens=1,2,3,4 delims=/: " %%a in ('time /t') do set CTIME=%%a%%b%%c set LOGTIME=%CDATE%-%CTIME% set DBVISIT_BASE="C:\app\oracle\acfsmounts\acfs_data\Dbvisit" echo %LOGTIME% GOTO :EndOfSetEnvironment REM ########################################## :EndOfSetEnvironment if "%action%" == "start" goto :start if "%action%" == "stop" goto :stop if "%action%" == "check" goto :check if "%action%" == "clean" goto :clean goto :cleanexit :start %DBVISIT_BASE%\dbvsmgr\dbvsmgr.exe -s dbvnet echo "Running start dbvnet resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :stop %DBVISIT_BASE%\dbvsmgr\dbvsmgr.exe -t dbvnet echo "Running stop dbvnet resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :check echo "Running status check on Dbvnet resource" for /F "tokens=3 delims=: " %%H in ('sc query "Dbvnet" ^| findstr " STATE"') do ( if /I "%%H" NEQ "RUNNING" ( set ERRORLEVEL=1 goto :errorexit ) if /I "%%H" == "RUNNING" ( set ERRORLEVEL=0 goto :cleanexit ) ) :clean %DBVISIT_BASE%\Dbvisit\dbvsmgr\dbvsmgr.exe -t dbvnet echo "Running clean dbvnet resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :cleanexit exit /b 0 :errorexit exit /b 1 :HELP echo USAGE: echo dbvnet.scr [start^|stop^|clean^|check] goto :EOF :EXIT popd endlocal REM echo EXIT %ERRORLEVEL% goto :EOF |
Example Dbvagent action script: dbvagent.cmd
@echo off setlocal pushd if "%~1"=="" ( echo Action cannot be empty ... echo: call :HELP ) & (goto :EOF) REM Test if Usage/Help should be displayed if /i {%1}=={/?} (call :HELP) & (goto :EOF) goto :setEnvironment REM ########################################## REM Function to set Environment values REM ########################################## :setEnvironment set action=%~1 for /F "tokens=1,2,3,4 delims=/- " %%a in ('date /t') do set CDATE=%%d%%c%%b for /F "tokens=1,2,3,4 delims=/: " %%a in ('time /t') do set CTIME=%%a%%b%%c set LOGTIME=%CDATE%-%CTIME% set DBVISIT_BASE="C:\app\oracle\acfsmounts\acfs_data\Dbvisit" echo %LOGTIME% GOTO :EndOfSetEnvironment REM ########################################## :EndOfSetEnvironment if "%action%" == "start" goto :start if "%action%" == "stop" goto :stop if "%action%" == "check" goto :check if "%action%" == "clean" goto :clean goto :cleanexit :start %DBVISIT_BASE%\dbvsmgr\dbvsmgr.exe -s dbvagent echo "Running start dbvagent resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :stop %DBVISIT_BASE%\dbvsmgr\dbvsmgr.exe -t dbvagent echo "Running stop dbvagent resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :check echo "Running status check on Dbvagent resource" for /F "tokens=3 delims=: " %%H in ('sc query "Dbvagent" ^| findstr " STATE"') do ( if /I "%%H" NEQ "RUNNING" ( set ERRORLEVEL=1 goto :errorexit ) if /I "%%H" == "RUNNING" ( set ERRORLEVEL=0 goto :cleanexit ) ) :clean %DBVISIT_BASE%\dbvsmgr\dbvsmgr.exe -t dbvagent echo "Running clean dbvagent resource with return code %ERRORLEVEL%" if %ERRORLEVEL% == 0 (goto :cleanexit) if %ERRORLEVEL% gtr 0 (goto :errorexit) :cleanexit exit /b 0 :errorexit exit /b 1 :HELP echo USAGE: echo dbvagent.scr [start^|stop^|clean^|check] goto :EOF :EXIT popd endlocal REM echo EXIT %ERRORLEVEL% goto :EOF |
Once these scripts are on both RAC nodes in the exact same location, we can register the resource from the first node (Where the Dbvisit Virtual IP that will be used is running).
The commands to add the cluster resource is shown below:
Example: Add Dbvnet Cluster Resource
C:\dbv-scripts>set ORACLE_HOME=c:\app\11.2.0\grid C:\dbv-scripts>C:\app\11.2.0\grid\bin\crsctl add resource dbvnet -type cluster_resource -attr "ACTION_SCRIPT=c:\dbv-scripts\dbvnet.cmd, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10, START_DEPENDENCIES='hard(kiwiwin-vip) pullup(kiwiwin-vip)',STOP_DEPENDENCIES='hard(kiwiwin-vip)' PLACEMENT='favored' HOSTING_MEMBERS='kiwiwin01'" |
Example: Add Dbvagent Cluster Resource
C:\dbv-scripts>set ORACLE_HOME=c:\app\11.2.0\grid C:\dbv-scripts>%ORACLE_HOME%\bin\crsctl add resource dbvagent -type cluster_resource -attr "ACTION_SCRIPT=c:\dbv-scripts\dbvagent.cmd, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10, START_DEPENDENCIES='hard(kiwiwin-vip) pullup(kiwiwin-vip)',STOP_DEPENDENCIES='hard(kiwiwin-vip)' PLACEMENT='favored' HOSTING_MEMBERS='kiwiwin01'" |
More detail example output:
Example - Dbvnet:
C:\dbv-scripts>dbvnet.cmd Action cannot be empty ... USAGE: dbvnet.scr [start|stop|clean|check] C:\dbv-scripts>dbvnet.cmd check 20170411-0713PM Dbvnet service is running Running check dbvnet resource with return code 0 C:\dbv-scripts>dbvnet.cmd stop 20170411-0713PM Stopping Dbvnet service........... Stop Complete Running stop dbvnet resource with return code 0 C:\dbv-scripts>dbvnet.cmd start 20170411-0713PM Starting Dbvnet service Start Complete Running start dbvnet resource with return code 0 C:\dbv-scripts>dbvnet.cmd clean 20170411-0713PM Stopping Dbvnet service........... Stop Complete Running clean dbvnet resource with return code 0 C:\dbv-scripts>dbvnet.cmd check 20170411-0714PM Dbvnet service is not running Running check dbvnet resource with return code 10 C:\dbv-scripts>echo %ERRORLEVEL% 1 C:\dbv-scripts>dbvnet.cmd start 20170411-0714PM Starting Dbvnet service Start Complete Running start dbvnet resource with return code 0 C:\dbv-scripts>set ORACLE_HOME=c:\app\11.2.0\grid C:\dbv-scripts>C:\app\11.2.0\grid\bin\crsctl add resource dbvnet -type cluster_resource -attr "ACTION_SCRIPT=c:\dbv-scripts\dbvnet.cmd, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10, START_DEPENDENCIES='hard(kiwiwin-vip) pullup(kiwiwin-vip)',STOP_DEPENDENCIES='hard(kiwiwin-vip)' PLACEMENT='favored' HOSTING_MEMBERS='kiwiwin01'" C:\dbv-scripts> C:\dbv-scripts>crsctl status resource dbvnet NAME=dbvnet TYPE=cluster_resource TARGET=OFFLINE STATE=OFFLINE C:\dbv-scripts>dbvnet.cmd stop 20170411-0720PM Stopping Dbvnet service........... Stop Complete Running stop dbvnet resource with return code 0 C:\dbv-scripts>crsctl start resource dbvnet CRS-2672: Attempting to start 'dbvnet' on 'kiwiwin01' CRS-2676: Start of 'dbvnet' on 'kiwiwin01' succeeded C:\dbv-scripts>crsctl status resource dbvnet NAME=dbvnet TYPE=cluster_resource TARGET=ONLINE STATE=ONLINE on kiwiwin01 C:\dbv-scripts> C:\dbv-scripts>crsctl status resource dbvnet -p NAME=dbvnet TYPE=cluster_resource ACL=owner:oracle:rwx,pgrp::---,other::r-- ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT=c:\dbv-scripts\dbvnet.cmd ACTIVE_PLACEMENT=0 AGENT_FILENAME=%CRS_HOME%\bin\scriptagent.exe AUTO_START=restore CARDINALITY=1 CHECK_INTERVAL=10 DEFAULT_TEMPLATE= DEGREE=1 DESCRIPTION= ENABLED=1 FAILOVER_DELAY=0 FAILURE_INTERVAL=0 FAILURE_THRESHOLD=0 HOSTING_MEMBERS=kiwiwin01 LOAD=1 LOGGING_LEVEL=1 NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 PLACEMENT=favored PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=3 SCRIPT_TIMEOUT=60 SERVER_POOLS= START_DEPENDENCIES=hard(kiwiwin-vip) pullup(kiwiwin-vip) START_TIMEOUT=60 STATE_CHANGE_TEMPLATE= STOP_DEPENDENCIES=hard(kiwiwin-vip) STOP_TIMEOUT=60 UPTIME_THRESHOLD=1h |
Dbvagent:
C:\dbv-scripts>dbvagent.cmd check 20170411-0723PM Dbvnet service is running Running check dbvagent resource with return code 0" C:\dbv-scripts>dbvagent.cmd clean 20170411-0723PM Stopping Dbvnet service........... Stop Complete Running clean dbvagent resource with return code 0" C:\dbv-scripts>dbvagent.cmd start 20170411-0723PM Starting Dbvnet service Start Complete Running start dbvagent resource with return code 0" C:\dbv-scripts>dbvagent.cmd stop 20170411-0723PM Stopping Dbvnet service........... Stop Complete Running stop dbvagent resource with return code 0" C:\dbv-scripts> C:\dbv-scripts> C:\dbv-scripts>set ORACLE_HOME=c:\app\11.2.0\grid C:\dbv-scripts>%ORACLE_HOME%\bin\crsctl add resource dbvagent -type cluster_resource -attr "ACTION_SCRIPT=c:\dbv-scripts\dbvagent.cmd, RESTART_ATTEMPTS=3, START_TIMEOUT=60, STOP_TIMEOUT=60, CHECK_INTERVAL=10, START_DEPENDENCIES='hard(kiwiwin-vip) pullup(kiwiwin-vip)',STOP_DEPENDENCIES='hard(kiwiwin-vip)' PLACEMENT='favored' HOSTING_MEMBERS='kiwiwin01'" C:\dbv-scripts> C:\dbv-scripts>crsctl status resource dbvagent -p NAME=dbvagent TYPE=cluster_resource ACL=owner:oracle:rwx,pgrp::---,other::r-- ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT=c:\dbv-scripts\dbvagent.cmd ACTIVE_PLACEMENT=0 AGENT_FILENAME=%CRS_HOME%\bin\scriptagent.exe AUTO_START=restore CARDINALITY=1 CHECK_INTERVAL=10 DEFAULT_TEMPLATE= DEGREE=1 DESCRIPTION= ENABLED=1 FAILOVER_DELAY=0 FAILURE_INTERVAL=0 FAILURE_THRESHOLD=0 HOSTING_MEMBERS=kiwiwin01 LOAD=1 LOGGING_LEVEL=1 NOT_RESTARTING_TEMPLATE= OFFLINE_CHECK_INTERVAL=0 PLACEMENT=favored PROFILE_CHANGE_TEMPLATE= RESTART_ATTEMPTS=3 SCRIPT_TIMEOUT=60 SERVER_POOLS= START_DEPENDENCIES=hard(kiwiwin-vip) pullup(kiwiwin-vip) START_TIMEOUT=60 STATE_CHANGE_TEMPLATE= STOP_DEPENDENCIES=hard(kiwiwin-vip) STOP_TIMEOUT=60 UPTIME_THRESHOLD=1h C:\dbv-scripts>crsctl start resource dbvagent CRS-2672: Attempting to start 'dbvagent' on 'kiwiwin01' CRS-2676: Start of 'dbvagent' on 'kiwiwin01' succeeded C:\dbv-scripts>crsctl status resource dbvagent NAME=dbvagent TYPE=cluster_resource TARGET=ONLINE STATE=ONLINE on kiwiwin01 |
Testing Relocation of the Resources:
C:\dbv-scripts>crsctl relocate resource kiwiwin-vip CRS-2529: Unable to act on 'kiwiwin-vip' because that would require stopping or relocating 'dbvnet', but the force option was not specified CRS-4000: Command Relocate failed, or completed with errors. C:\dbv-scripts>crsctl relocate resource kiwiwin-vip -f CRS-2673: Attempting to stop 'dbvagent' on 'kiwiwin01' CRS-2673: Attempting to stop 'dbvnet' on 'kiwiwin01' CRS-2677: Stop of 'dbvnet' on 'kiwiwin01' succeeded CRS-2677: Stop of 'dbvagent' on 'kiwiwin01' succeeded CRS-2673: Attempting to stop 'kiwiwin-vip' on 'kiwiwin01' CRS-2677: Stop of 'kiwiwin-vip' on 'kiwiwin01' succeeded CRS-2672: Attempting to start 'kiwiwin-vip' on 'kiwiwin02' CRS-2676: Start of 'kiwiwin-vip' on 'kiwiwin02' succeeded CRS-2672: Attempting to start 'dbvagent' on 'kiwiwin02' CRS-2676: Start of 'dbvagent' on 'kiwiwin02' succeeded CRS-2672: Attempting to start 'dbvnet' on 'kiwiwin02' CRS-2676: Start of 'dbvnet' on 'kiwiwin02' succeeded C:\dbv-scripts>crs_stat -t Name Type Target State Host ------------------------------------------------------------ dbvagent clus...esource ONLINE ONLINE kiwiwin02 dbvnet clus...esource ONLINE ONLINE kiwiwin02 kiwiwin-vip app....t1.type ONLINE ONLINE kiwiwin02 ora.DATA.dg ora....up.type ONLINE ONLINE kiwiwin01 ora....ER.lsnr ora....er.type ONLINE ONLINE kiwiwin01 ora....N1.lsnr ora....er.type ONLINE ONLINE kiwiwin02 ora....N2.lsnr ora....er.type ONLINE ONLINE kiwiwin01 ora....N3.lsnr ora....er.type ONLINE ONLINE kiwiwin01 ora.OCRVOT.dg ora....up.type ONLINE ONLINE kiwiwin01 ora.asm ora.asm.type ONLINE ONLINE kiwiwin01 ora.cvu ora.cvu.type ONLINE ONLINE kiwiwin01 ora.dev.db ora....se.type ONLINE ONLINE kiwiwin01 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....SM1.asm application ONLINE ONLINE kiwiwin01 ora....01.lsnr application ONLINE ONLINE kiwiwin01 ora....n01.gsd application OFFLINE OFFLINE ora....n01.ons application ONLINE ONLINE kiwiwin01 ora....n01.vip ora....t1.type ONLINE ONLINE kiwiwin01 ora....SM2.asm application ONLINE ONLINE kiwiwin02 ora....02.lsnr application ONLINE ONLINE kiwiwin02 ora....n02.gsd application OFFLINE OFFLINE ora....n02.ons application ONLINE ONLINE kiwiwin02 ora....n02.vip ora....t1.type ONLINE ONLINE kiwiwin02 ora....network ora....rk.type ONLINE ONLINE kiwiwin01 ora.oc4j ora.oc4j.type ONLINE ONLINE kiwiwin01 ora.ons ora.ons.type ONLINE ONLINE kiwiwin01 ora....ry.acfs ora....fs.type ONLINE ONLINE kiwiwin01 ora.scan1.vip ora....ip.type ONLINE ONLINE kiwiwin02 ora.scan2.vip ora....ip.type ONLINE ONLINE kiwiwin01 ora.scan3.vip ora....ip.type ONLINE ONLINE kiwiwin01 C:\dbv-scripts> |
In some environments, without the following steps, the VIP resource would not start and give an error.
set ORACLE_HOME=C:\app\11.2.0\grid C:\app\11.2.0\grid\BIN>crsuser add kiwiwin01\oracle Enter the password for kiwiwin01\oracle: << DO NOT ENTER PASSWORD, JUST PRESS ENTER>> ERROR: The account name is invalid or does not exist, or the password is invalid for the account name specified. CreateService for OracleCRSToken_oracle on node kiwiwin02 failed C:\app\11.2.0\grid\BIN>crsuser list Available nodes kiwiwin01 kiwiwin02 Improperly configured users oracle kiwiwin02: The specified service does not exist as an installed service. |
set ORACLE_HOME=C:\app\11.2.0\grid C:\app\11.2.0\grid\BIN>crsuser add kiwiwin02\oracle Enter the password for kiwiwin02\oracle: << DO NOT ENTER PASSWORD, JUST PRESS ENTER>> ERROR: The account name is invalid or does not exist, or the password is invalid for the account name specified. CreateService for OracleCRSToken_oracle on node kiwiwin01 failed C:\app\11.2.0\grid\BIN>crsuser list Available nodes kiwiwin01 kiwiwin02 Properly configured users oracle |
At this stage - check the OracleCRSToken_oracle service. Update the .\oracle user password for the service, start it on both nodes, then add the VIP and start it. |