Dbvisit Standby Command Line Interface (CLI)

1. Introduction

This section will provide you with more information on using the Dbvisit Standby version 8 command line interface.

2.   "dbvctl" Help

The first command you need to be familiar with is the "dbvctl -h" command which will display the syntax and usage options for the Dbvisit Standby command line interface.

You might find it strange that this is the first option to discuss, but it is actually one of the most important.  It is a quick and easy way for you to find out the correct command syntax before executing it.

There are a number of help options available to you:


  • dbvctl                          # display quick help option
  • dbvctl -f                       # display system info
  • dbvctl -h                      # display full help
  • dbvctl -h -f                   # display functions list
  • dbvctl -h -f <function> # display help on <function>
  • dbvctl -h --csd             # display help on CSD
  • dbvctl -h --sync           # display help on SYNC
  • dbvctl -h -o                  # display help on -o options
  • dbvctl -h -L                  # display license agreement
  • dbvctl -V                      # display Dbvisit Standby Version

On this page:



2.1.  The Quick (short) help

The short or quick help option can be obtained by executing the "dbvctl" command without any arguments.

Example:

[oracle@dbv101 /usr/dbvisit/standby]$ ./dbvctl
 Dbvisit Standby Version

 USAGE:
  dbvctl -d <ddc> [--suppress] [-v]
  dbvctl -d <ddc> -i [--silent]
  dbvctl -d <ddc> -l [<new_license_key>] [--force]
  dbvctl -d <ddc> -R (send all archived logs present on primary)
  dbvctl -d <ddc> -r sequence# -t thread#
  dbvctl -d <ddc> -c
  dbvctl -d <ddc> -C

  dbvctl -d <ddc> -o start|stop|status|restart [--database]
  dbvctl -d <ddc> -o open|read
  dbvctl -d <ddc> -o activate [--force] [--nosync]
  dbvctl -d <ddc> -o switchover [--logswitch <logswitch_num>]
  dbvctl -d <ddc> -o update_ddc_file|update_dbenv_file
  dbvctl -d <ddc> -o upgrade
  dbvctl [-d ddc] -o setup [--nolic] [--noprompt] [--mode CLI|GUI] [--action new|install|uninstall]

  dbvctl -d <ddc> --csd [--mode CLI|BATCH|GUI] [--restart] [--noprompt] [-j json_file] [--dump_template template_file]
  dbvctl -d <ddc> --sync [--mode CLI|BATCH|GUI] [--tmp_dir <tmp_dir>] [--tmp_dir_dest <tmp_dir_dest>] [--sync_lag] [--sync_nologging]
  dbvctl -d <ddc> -D start|stop|status

  dbvctl [-d <ddc>] -f <function> [-a <key=value>]...[-a <key=value>] [-j <json_file_name>]
  dbvctl -d <ddc> -f support_package [-a pid=<pid>]

 HELP
  dbvctl -f                 # display system info
  dbvctl -h                 # display full help
  dbvctl -h -f              # display functions list
  dbvctl -h -f <function>   # display help on <function>
  dbvctl -h --csd           # display help on CSD
  dbvctl -h --sync          # display help on SYNC
  dbvctl -h -o              # display help on -o options
  dbvctl -h -L              # display license agreement
  dbvctl -V                 # display Dbvisit version

2.2.  Listing the installed Dbvctl version

There are two ways to list the installed version of the Dbvisit Standby command line interface "dbvctl".  The two options are:

  • dbvctl -V     (short version)
  • dbvctl -f       (detailed version)


Example:

oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -V
8.0.01.18066

oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -f
=============================================================
Dbvisit Standby Database Technology (www.dbvisit.com)
dbvctl: 8.0.01.18066
Dbvisit Standby time is: 201611061642 (YYYYMMDDHH24MI)
Current user is: oracle
Short Server name is: kiwi81
Long Server name is: kiwi81.oraclekiwi.co.nz
Linux 3.8.13-68.3.3.el6uek.x86_64
CPU count: 1 2494 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz

2.3.  Creating a Support Package

There are multiple options to create a support package:

  • Creating a general support package
  • Creating a support package for a specific process (PID) - which is for a task that was already executed.

The command to execute the support package is:

dbvctl -d <ddc> -f support_package [-a pid=<pid>]


Once the support package is created, it will be located in the DBVISIT_BASE/standby/support directory.


Example:

oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -d DEV -f support_package -a pid=28375
Support package /acfs/dbvisit/standby/support/28375_201611061724.tar.gz created.
oracle@kiwi81[/acfs/dbvisit/standby]: ls -al support/28375_201611061724.tar.gz
-rw-r--r-- 1 oracle oinstall 102363 Nov  6 17:24 support/28375_201611061724.tar.gz


3.  Sending and Applying Logs

3.1.  Sending Logs 

Sending archive logs to the standby database can be done by running the following command:  ./dbvctl -d <DDC>

3.1.1.  Example 1:  Single Instance Environment

[oracle@dbv101 /usr/dbvisit/standby]$ ./dbvctl -d DEV
=============================================================
Dbvisit Standby Database Technology (8.0.01.17364) (pid 522)
dbvctl started on dbv101: Wed Sep  7 10:25:17 2016
=============================================================

>>> Obtaining information from standby database (RUN_INSPECT=Y)... done
>>> Note FORCE_LOGGING is disabled in the primary database.

>>> Sending heartbeat message... skipped

    Performing a log switch...

>>> Transferring Log file(s) from DEV on dbv101 to dbv102 for thread 1:

    o1_mf_1_10_cwztg2dv_.arc.gz

=============================================================
dbvctl ended on dbv101: Wed Sep  7 10:26:18 2016
=============================================================

[oracle@dbv101 /usr/dbvisit/standby]$

3.1.1.  Example 2:  Oracle RAC Primary Environment

When running Dbvisit Standby on an Oracle RAC primary Dbvisit Standby will send logs for all Oracle RAC threads to the standby site.  In Dbvisit Standby version 8, it is recommended to make use of shared storage and run Dbvisit Standby off only one of the Oracle RAC nodes.

In the example below, all Dbvisit Standby processes are running on node 1 in the cluster:

oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -d DEV
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 25361)
dbvctl started on kiwi812-vip: Sun Nov  6 15:41:30 2016
=============================================================

>>> Obtaining information from standby database (RUN_INSPECT=Y)... done
>>> Note FORCE_LOGGING is disabled in the primary database.

    Performing a log switch...


>>> Transferring Log file(s) from DEV1 on kiwi812-vip to kiwi912-vip for thread 1:

    thread 1 sequence 45 (thread_1_seq_45.306.927214909)

>>> Transferring Log file(s) from DEV1 on kiwi812-vip to kiwi912-vip for thread 2:

    thread 2 sequence 27 (thread_2_seq_27.307.927214909)

=============================================================
dbvctl ended on kiwi812-vip: Sun Nov  6 15:41:56 2016
=============================================================


3.2.  Applying Logs

Applying archive logs on the standby database run the following command:  ./dbvctl -d <DDC>

Example:

[oracle@dbv102 /usr/dbvisit/standby]$ ./dbvctl -d DEV
=============================================================
Dbvisit Standby Database Technology (8.0.01.17364) (pid 902)
dbvctl started on dbv102: Wed Sep  7 10:26:21 2016
=============================================================

>>> Sending heartbeat message... skipped

>>> Applying Log file(s) from dbv101 to DEV on dbv102:

    1_10_920690658.arc

=============================================================
dbvctl ended on dbv102: Wed Sep  7 10:26:58 2016
=============================================================
[oracle@dbv102 /usr/dbvisit/standby]$


IMPORTANT:  Regarding Scheduling or running the Dbvisit Standby version 8 Daemon (Background process) please see Dbvisit Standby Scheduling#4.RunningDbvisitStandbyintheBackground


4.  The log gap report

To ensure the primary and standby databases are up to date, you can run the Log Gap Report using the following command from the primary database server:./dbvctl -d <DDC> -i 

4.1.  Single Instance Environment

Below is an example of running a Log Gap report in a Single Instance Primary environment.  

Information for only one thread will be shown.

[oracle@dbv101 /usr/dbvisit/standby]$ ./dbvctl -d DEV -i
=============================================================
Dbvisit Standby Database Technology (8.0.01.17364) (pid 555)
dbvctl started on dbv101: Wed Sep  7 10:30:17 2016
=============================================================

Dbvisit Standby log gap report for DEV thread 1 at 201609071030:
-------------------------------------------------------------
Destination database on dbv102 is at sequence: 10.
Source database on dbv101 is at log sequence: 11.
Source database on dbv101 is at archived log sequence: 10.
Dbvisit Standby last transfer log sequence: 10.
Dbvisit Standby last transfer at: 2016-09-07 10:26:11.

Archive log gap for DEV:  0.
Transfer log gap for DEV: 0.
Standby database time lag (DAYS-HH:MI:SS): +0:00:33.

=============================================================
dbvctl ended on dbv101: Wed Sep  7 10:30:22 2016
=============================================================

[oracle@dbv101 /usr/dbvisit/standby]$

4.2.  Oracle RAC Primary Environment

Running the log gap report in an Oracle RAC environment will list information about all the threads in the Oracle RAC cluster.  

The command to be executed is the same, but the result as you can see below will include information for all threads.

oracle@kiwi92[/acfs/dbvisit/standby]: ./dbvctl -d DEV -i
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 2545)
dbvctl started on kiwi912-vip: Sun Nov  6 13:49:09 2016
=============================================================

Dbvisit Standby log gap report for DEV thread 1 at 201611061349:
-------------------------------------------------------------
Destination database on kiwi812-vip is at sequence: 36.
Source database on kiwi912-vip is at log sequence: 38.
Source database on kiwi912-vip is at archived log sequence: 37.
Dbvisit Standby last transfer log sequence: 37.
Dbvisit Standby last transfer at: 2016-11-06 13:47:11.

Archive log gap for DEV2:  1.
Transfer log gap for DEV2: 0.
Standby database time lag (DAYS-HH:MI:SS): +0:00:09.

Dbvisit Standby log gap report for DEV thread 2 at 201611061349:
-------------------------------------------------------------
Destination database on kiwi812-vip is at sequence: 20.
Source database on kiwi912-vip is at log sequence: 21.
Source database on kiwi912-vip is at archived log sequence: 20.
Dbvisit Standby last transfer log sequence: 20.
Dbvisit Standby last transfer at: 2016-11-06 13:47:12.

Archive log gap for DEV2:  0.
Transfer log gap for DEV2: 0.
Standby database time lag (DAYS-HH:MI:SS): +0:00:09.


=============================================================
dbvctl ended on kiwi912-vip: Sun Nov  6 13:49:11 2016
=============================================================


5.  Start a Database

5.1.  Start a Primary Database

To start the Primary Database in read-write mode run the command "dbvctl -d <DDC> -o start". Dbvisit uses RMAN to start a database. Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o start
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 281)
dbvctl started on dbv1: Sun Nov  6 02:52:41 2016
=============================================================

Starting instance DEV...
Primary Instance DEV started

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:52:47 2016
=============================================================

5.2.  Start a Standby Database

To start a standby database, run the command "dbvctl -d <DDC> -o start". Dbvisit uses RMAN to start a database. The standby database will be started in a mounted state, ready for recovery, example:

[oracle@dbv2 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o start
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 281)
dbvctl started on dbv2: Sun Nov  6 02:52:41 2016
=============================================================

Starting instance DEV...
Standby Instance DEV started

=============================================================
dbvctl ended on dbv2: Sun Nov  6 02:52:47 2016
=============================================================

5.3.   Start an Oracle RAC database

To start an Oracle RAC database run the command "dbvctl -d <DDC> -o start --database". Dbvisit uses SRVCTL utility to start an Oracle RAC database.

To start a local RAC database instance run the command "dbvctl -d <DDC> -o start".


You can also use the SRVCTL utility, example:  "srvctl start database -d DEV". 

For more detail on the SRVCTL utility, please see the Oracle Documentation or the command line help of the utility by running: "srvctl start database -h"

When starting a standby Oracle RAC database using SRVCTL utility, you must specify the "-o mount" option to start the standby database in a mounted state, where it will be ready for recovery.


6.  Restart a Database

6.1.  Restart a Primary Database

The primary database can be restarted using the command "dbvctl -d <DDC> -o restart". Dbvisit Standby will detect based on the DDC file if the database is to be started as a primary or standby based on the SOURCE and DESTINATION values and taking into account on which system the command is being executed.  This command will restart the primary database into a read/write open state.

Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o restart
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 178)
dbvctl started on dbv1: Sun Nov  6 02:49:05 2016
=============================================================

Stopping instance DEV...
Primary Instance DEV shutdown successfully on dbv1.
Starting instance DEV...
Primary Instance DEV started

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:49:13 2016
=============================================================

6.2.  Restart a Standby Database

To restart the standby database, use the following command: "dbvctl -d <DDC> -o restart".  Dbvisit Standby will detect based on the DDC file if the database is to be started as a primary or standby based on the SOURCE and DESTINATION values and taking into account on which system the command is being executed.  The standby database will be restarted into a mounted state, ready for recovery.  Example: 

[oracle@dbv2 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o restart
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 178)
dbvctl started on dbv2: Sun Nov  6 02:49:05 2016
=============================================================

Stopping instance DEV...
Standby Instance DEV shutdown successfully on dbv1.
Starting instance DEV...
Standby Instance DEV started

=============================================================
dbvctl ended on dbv2: Sun Nov  6 02:49:13 2016
=============================================================


7.  Stop a Database

7.1.  Stop a Primary Database

To stop the primary database, execute the command: "dbvctl -d <DDC> -o stop".  A shutdown immediate command will be used to stop the database.  Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o stop
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 262)
dbvctl started on dbv1: Sun Nov  6 02:52:07 2016
=============================================================

Stopping instance DEV...
Primary Instance DEV shutdown successfully on dbv1.

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:52:09 2016
=============================================================

7.2.  Stop a Standby Database

To stop the standby database, execute the command: "dbvctl -d <DDC> -o stop".  A shutdown abort command will be used to stop the database.  Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o stop
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 262)
dbvctl started on dbv1: Sun Nov  6 02:52:07 2016
=============================================================

Stopping instance DEV...
Standby Instance DEV shutdown successfully on dbv1.

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:52:09 2016
=============================================================

7.3.   Stop an Oracle RAC database

To stop an Oracle RAC database run the command "dbvctl -d <DDC> -o stop -database". Dbvisit uses SRVCTL utility to stop an Oracle RAC database.

To stop a local RAC database instance run the command "dbvctl -d <DDC> -o stop".

You can also use the SRVCTL utility, example:  "srvctl stop database -d DEV". 

For more detail on the SRVCTL utility, please see the Oracle Documentation or the command line help of the utility by running: "srvctl start database -h"


8.  Open Standby Database Read-only

If a standby database is in a consistent state, you should be able to open the standby database into a read-only state.  

The examples below show the attempt to enable read-only when the standby database is down.  We first need to start the standby database into a mounted state, and then we can use the "open" command that will attempt to open the standby database read-only.

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o open
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 376)
dbvctl started on dbv1: Sun Nov  6 02:54:08 2016
=============================================================

Database DEV on dbv1 is down. Need to start first.

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:54:08 2016
=============================================================



[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o start
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 388)
dbvctl started on dbv1: Sun Nov  6 02:54:17 2016
=============================================================

Starting instance DEV...
Standby Instance DEV started

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:54:23 2016
=============================================================



[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o open
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 464)
dbvctl started on dbv1: Sun Nov  6 02:54:27 2016
=============================================================

Open Standby Database DEV in READ ONLY mode...
Standby Database DEV opened in READ ONLY mode.
Log files cannot be applied to Database while in READ ONLY mode.
Database tempfile(s) may need to be added to this database.

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:54:27 2016
=============================================================

8.1.  Open Read-only for Multitenant Database

The following only applies to Oracle 12.1.0.2 or newer.

When opening the multitenant standby database Dbvisit Standby doesn't interfere with PDBs, but respects the user's settings from the primary database.
Generally, when opening CDB, Oracle uses PDB's SAVE STATE option to determine the required open mode for each and every PDB. By default SAVE STATE option is not set for PDBs, hence PDBs are opened in MOUNT state. Run the following query to determine primary database settings:

SQL> select a.con_id,a.name,a.open_mode,a.restricted,b.state as saved_state from v$pdbs a, cdb_pdb_saved_states b where a.con_id=b.con_id(+);

    CON_ID NAME                 OPEN_MODE  RES SAVED_STATE
---------- -------------------- ---------- --- --------------
         2 PDB$SEED             READ ONLY  NO
         3 PDBX                 MOUNTED

If you require "dbvctl -d <DDC> -o open" to open certain PDB in READ ONLY you need to instruct the standby database to do so:

On primary open the PDB in READ ONLY and then run:

SQL> alter pluggable database <pdb_name> save state;
SQL> select a.con_id,a.name,a.open_mode,a.restricted,b.state as saved_state from v$pdbs a, cdb_pdb_saved_states b where a.con_id=b.con_id(+);

    CON_ID NAME                 OPEN_MODE  RES SAVED_STATE
---------- -------------------- ---------- --- --------------
         3 PDBX                 READ ONLY  NO  OPEN READ ONLY
         2 PDB$SEED             READ ONLY  NO

Dbvisit Standby will apply these settings to the standby database. Next time you open the standby database using "dbvctl -d <DDC> -o open"  the standby PDB will be opened in READ ONLY mode.


9.  Database Status Check

There are various options to review the status of the databases. The Dbvisit Standby version 8 command is: "dbvctl -d <DDC> -o status"

9.1.  Status Check Example - Primary

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o status
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 262)
dbvctl started on dbv1: Sun Nov  6 02:52:07 2016
=============================================================

Database Instance DEV on dbv1 status: Regular database open in read write mode

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:52:09 2016
=============================================================

9.2.  Status Check Example - Standby

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o status
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 262)
dbvctl started on dbv1: Sun Nov  6 02:52:07 2016
=============================================================

Database Instance DEV on dbv1 status: Regular database open in recovery mode

=============================================================
dbvctl ended on dbv1: Sun Nov  6 02:52:09 2016
=============================================================

9.3.  Status Checks in an Oracle RAC configuration

Check the status of the local database instance using dbvctl:

oracle@dbvrlin301: dbvctl -d DEV34 -o status
=============================================================
Dbvisit Standby Database Technology (8.0.01.17942) (pid 6561)
dbvctl started on dbvrlin3012-vip: Tue Nov  8 15:12:37 2016
=============================================================

Database Instance DEV1 on dbvrlin3012-vip status: Regular database open in read write 
mode 

=============================================================
dbvctl ended on dbvrlin3012-vip: Tue Nov  8 15:12:38 2016
=============================================================

Check the status of the database using dbvctl:

oracle@dbvrlin301: dbvctl -d DEV34 -o status --database
=============================================================
Dbvisit Standby Database Technology (8.0.01.17942) (pid 6561)
dbvctl started on dbvrlin3012-vip: Tue Nov  8 15:12:37 2016
=============================================================

Instance DEV1 is running on node dbvrlin301. Instance status: Open. 
Instance DEV2 is running on node dbvrlin302. Instance status: Open.

=============================================================
dbvctl ended on dbvrlin3012-vip: Tue Nov  8 15:12:38 2016
=============================================================

Check the status of all database instances using SRVCTL:

Example to check status for a Primary Oracle RAC cluster database:

oracle@kiwi81[/acfs/dbvisit/standby]: srvctl status database -d DEV -v
Instance DEV1 is running on node kiwi81. Instance status: Open.
Instance DEV2 is running on node kiwi82. Instance status: Open.

Example to check status for a Standby Oracle RAC cluster database:

oracle@kiwi92[/acfs/dbvisit/standby]: srvctl status database -d DEV -v
Instance DEV1 is running on node kiwi91. Instance status: Mounted (Closed).
Instance DEV2 is running on node kiwi92. Instance status: Mounted (Closed).


9.2.4.  Status Check for Multitenant Database

When running a status check on a 12c Multitenant database you will see a status update for the pluggable databases listed as well.

The example below is from a 12c Database running on a Windows-based system.

C:\Program Files\Dbvisit\Standby>dbvctl -d DEV -o status
=============================================================
Dbvisit Standby Database Technology (8.0.08.18494) (pid 112)
dbvctl started on KIWI301: Tue Jan 17 00:03:24 2017
=============================================================

Database Instance DEV on KIWI301 status: Regular database open in read write mode

CON_ID  NAME                          OPEN_MODE
     1  CDB$ROOT                      READ WRITE
     2  PDB$SEED                      READ ONLY
     3  DEVPDB                        MOUNTED

=============================================================
dbvctl ended on KIWI301: Tue Jan 17 00:03:24 2017
=============================================================



10.  Activate a Standby Database (Failover)

Activating a standby database is also known as performing a failover.  This is totally different than performing a Graceful Switchover.  

During Activation an "open resetlogs" is performed on the standby database while an attempt is made to open the standby database read-write.

If the database is in a consistent state, activation should be possible.   A quick way to test the state is by opening the standby database read-only.  If that is possible, you will be able to activate the standby database.

The command to activate the standby database is:  "dbvctl -d <DDC> -o activate"

Activating a standby database will result in it becoming a primary database. If the original primary database is still fully functional and you are only performing a DR test, it is recommended to backup the standby database prior to the activation. Once the standby database is activated, you must either restore from a backup on the standby database, or you have to recreate the standby database.

Data loss is possible when performing an activation if you have not been able to apply all redo from the primary to the standby database.

Dbvisit Standby cannot operate in Zero Dataloss mode.


The command to Activate a Standby database is:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o activate
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 607)
dbvctl started on dbv1: Sun Nov  6 03:05:51 2016
=============================================================

Activating means this database will become a Primary Database.
It will no longer be a Standby Database for DEV on dbv2.
Activation cannot be reversed.
=>Activate Standby Database on dbv1? <Yes/No> [No]: Yes
Are you sure? <Yes/No> [No]: Yes
>>> Activating now...

File /usr/dbvisit/standby/conf/dbv_DEV.env copied to /usr/dbvisit/standby/conf/dbv_DEV.env.201611060305.

>>> Activation complete. Please ensure a backup of this Database is made
>>> Old archives from before the activation should be removed to avoid mix-up between new
    and old archive logs


>>> If the Dbvisit Standby process is to be reversed, then database on dbv2 will need to be
    rebuilt as a Standby Database

=============================================================
dbvctl ended on dbv1: Sun Nov  6 03:06:10 2016
=============================================================


[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o status
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 723)
dbvctl started on dbv1: Sun Nov  6 03:06:31 2016
=============================================================

Database Instance DEV on dbv1 status: Regular database open in read write mode

=============================================================
dbvctl ended on dbv1: Sun Nov  6 03:06:31 2016
=============================================================




11.  Copy DDC file to the standby

If changes were made to the DDC file, you can run the following command on the primary system to copy the DDC file to the standby server.  Remember the DDC file on the primary server is considered the "master copy" : "dbvctl -d <DDC> -c"

Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -c
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 916)
dbvctl started on dbv1: Sun Nov  6 03:31:15 2016
=============================================================

>>> Dbvisit Standby configuration copied to dbv2...

=============================================================
dbvctl ended on dbv1: Sun Nov  6 03:31:16 2016
=============================================================

12.  Refresh a Standby datafile from the Primary

It is possible to refresh one specific datafile on the standby database server from the primary.  The command to do this is: "dbvctl -f refresh_datafile -d DEV -a file_id=<file_id>"

Example:

oracle@kiwi81[/acfs/dbvisit/standby]: ./dbvctl -f refresh_datafile -d DEV -a file_id=4

>>> Back up datafile 4... done

>>> Transfer backup of datafile 4 to standby server... done

>>> Catalog backup... done

>>> Restore datafile 4... done

>>> Datafile 4 refresh complete
From: +DATA/dev/datafile/users.259.927128717 on kiwi812-vip
To  : +DATA/dev/datafile/system.262.927158669 on kiwi912-vip

13.  Cleanup repository

A new function is added starting from version 8.0.14 to clean up Dbvisit Standby repository tables DBV_TRANSFER_LOG and DBV_SEQUENCE_LOG. Below are the new global variables introduced and the default values set.

REPO_MAINTAIN_DAYS = 1 (default value)

REPO_KEEP_DAYS = 30 (default value)

The cleanup function is called during the first run of the day on the primary server. If any records have been deleted, it will attempt to copy the repository to the standby server. If copy fails, processing still continues.

A new repository table DBV_MAINTAIN_REPO is introduced as well which logs the information of the cleanup function.


To run the repo maintenance function manually, use below syntax:

dbvctl -d <DDC> -f repo_maintain [-a days2keep=N]


Example:

oracle@dbvlab01[/usr/dbvisit/standby]: ./dbvctl -d testdb8 -f repo_maintain -a days2keep=1

14.  Export DBV_TRANSFER_LOG into JSON

In Dbvisit Standby version 8.0.14 a new function was introduced to export the DBV_TRANSFER_LOG table into JSON output.

The command is: 

dbvctl -d <DDC> -f repo_export_table -a table=DBV_TRANSFER_LOG -a out=json


Example:

[oracle@dbv1 /usr/dbvisit/standby]$ ./dbvctl -d DEV -f repo_export_table -a table=DBV_TRANSFER_LOG -a out=json
{
"DBV_TRANSFER_LOG" : [
{
"archive_name" : "/u01/app/oracle/fast_recovery_area/DEV/archivelog/2018_01_07/o1_mf_1_10_f557t6vo_.arc",
"sequence" : "10",
"thread_num" : "1",
"start_epoch" : "1515364174",
"size_in_bytes" : "26114048",
"destination_host" : "DBV2",
"end_timestamp" : "2018-01-07 22:29:36",
"process_completed" : "Y",
"source_host" : "DBV1",
"log_id" : "958682698",
"checksum" : "0",
"oracle_sid" : "DEV",
"db_unique_name" : "DEV",
"process_id" : "301",
"db_unique_name_dr" : "DEV",
"id" : "1",
"process" : "TRANSFER",
"start_timestamp" : "2018-01-07 22:29:34"
},
{
"archive_name" : "/u01/app/oracle/fast_recovery_area/DEV/archivelog/2018_01_07/o1_mf_1_11_f557v1oh_.arc",
"sequence" : "11",
"thread_num" : "1",
"start_epoch" : "1515364196",
"size_in_bytes" : "1024",
"destination_host" : "DBV2",
"end_timestamp" : "2018-01-07 22:29:57",
"process_completed" : "Y",
"source_host" : "DBV1",
"log_id" : "958682698",
"checksum" : "0",
"oracle_sid" : "DEV",
"db_unique_name" : "DEV",
"process_id" : "531",
"db_unique_name_dr" : "DEV",
"id" : "2",
"process" : "TRANSFER",
"start_timestamp" : "2018-01-07 22:29:56"
}
]
}