By Mouhamadou Diaw
dbvisit 9 is released since a few months. And one new feature I tested is the Automatic Failover. In this blog I suppose that dbvisit 9 is already installed and that the standby database is already created. Indeed I will not describe nor dbvisit installation neither the standby creation as it is the same as the previous versions.
For more info about dbvisit installation and/or dbvisit standby creation please see these steps in my previous blog or dbvisit documentation
The new feature Autamatic Failover needs to install an observer which main functions are:
-Provide remote monitoring of existing DDCs, and inform the DBA of problems in close to real-time
-Automatically perform a Failover of the DDC if previously-specified conditions are met.
We will describe observer installation and configuration later
We describe below the configuration we are using
dbvisit1: primary server with Oracle 19c
dbvisit2: standby server with Oracle 19c
dbvisitconsole : Host of the dbvisit console (dbvserver) and for the observer
As specified earlier, we need to install an observer. It is very easy to do this, just launch the install_dbvisit executable and follow the instructions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
[oracle@dbvisitconsole installer]$ pwd /home/oracle/dbvisit/installer [oracle@dbvisitconsole 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 ]: > /u01/app/dbvisit DBVISIT_BASE = /u01/app/dbvisit ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.02_0_gbd40c486 not installed dbvnet 9.0.02_0_gbd40c486 not installed dbvagent 9.0.02_0_gbd40c486 not installed dbvserver 9.0.02_0_gbd40c486 9.0.02_0_gbd40c486 observer 1.02 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 - Dbvisit Observer (Automatic Failover Option) - Not available on Solaris /AIX Press ENTER to exit Installer Your choice: 6 ----------------------------------------------------------- Summary of the Dbvisit OBSERVER configuration ----------------------------------------------------------- DBVISIT_BASE /u01/app/dbvisit Press ENTER to continue ----------------------------------------------------------- About to install Dbvisit OBSERVER ----------------------------------------------------------- Component observer installed. ----------------------------------------------------------- Component Installer Version Installed Version ----------------------------------------------------------- standby 9.0.02_0_gbd40c486 not installed dbvnet 9.0.02_0_gbd40c486 not installed dbvagent 9.0.02_0_gbd40c486 not installed dbvserver 9.0.02_0_gbd40c486 9.0.02_0_gbd40c486 observer 1.02 1.02 ----------------------------------------------------------- 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.201907231647. [oracle@dbvisitconsole installer]$ |
And once the installation done, we can start it
1
2
3
4
5
6
7
|
[oracle@dbvisitconsole observer]$ . /observersvc start & [1] 2866 [oracle@dbvisitconsole observer]$ ps -ef | grep obser oracle 2866 2275 0 14:25 pts /0 00:00:01 . /observersvc start oracle 2921 2275 0 14:29 pts /0 00:00:00 grep --color=auto obser [oracle@dbvisitconsole observer]$ |
After starting the observer we have to add the observer server. This is done from the MANAGE CONFIGURATION TAB from the MENU
From the Configuration TAB, choose the NEW on the left to add a dbvisit observer
And then fill the informations. Note that the default passphrase for the observer is admin900 and then save
To monitor our configuration by the observer, let’s click on Monitor
And then specify the poll interval and the number of retries before a failover happens. In our case
The observer will monitor the configuration every 60 s and will retry 5 times if there is any error.
If after 5 minutes (5×60 secondes), the probleme is not fixed, than an automatic failover will happen.
The observer logfile is located on the observer server
1
2
3
4
5
6
7
8
9
10
|
[oracle@dbvisitconsole log]$ pwd /u01/app/dbvisit/observer/log [oracle@dbvisitconsole log]$ ls -l total 8 -rw-r--r--. 1 oracle oinstall 1109 Jul 25 15:24 observer.log -rw-r--r--. 1 oracle oinstall 97 Jul 25 15:24 orcl_1_observer.log [oracle@dbvisitconsole log]$ [oracle@dbvisitconsole log]$ tail -f orcl_1_observer.log 2019 /07/25 13:24:46 DDC: DDC #1(orcl): Started watchdog: Watchdog successfully started monitoring |
Now let’s break the primary database and normally a failover should happen after 5 minutes
1
2
3
4
5
6
7
|
[oracle@dbvisit1 log]$ ps -ef | grep pmon oracle 1887 1 0 14:03 ? 00:00:00 ora_pmon_orcl oracle 18199 1733 0 15:31 pts /0 00:00:00 grep --color=auto pmon [oracle@dbvisit1 log]$ kill -9 1887 [oracle@dbvisit1 log]$ ps -ef | grep pmon oracle 18304 1733 0 15:32 pts /0 00:00:00 grep --color=auto pmon [oracle@dbvisit1 log]$ |
In the observer logfile we can see that the standby was promoted after 5 retries.
1
2
3
4
5
6
7
8
9
10
11
|
[oracle@dbvisitconsole log]$ tail -f orcl_1_observer.log 2019 /07/25 13:24:46 DDC: DDC #1(orcl): Started watchdog: Watchdog successfully started monitoring 2019 /07/25 13:33:51 DDC: DDC #1(orcl): rules failing (1/5): primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:34:51 DDC: DDC #1(orcl): rules failing (2/5): primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:35:51 DDC: DDC #1(orcl): rules failing (3/5): primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:36:51 DDC: DDC #1(orcl): rules failing (4/5): primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:37:51 DDC: DDC #1(orcl): rules failing (5/5): primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:37:51 DDC: DDC #1(orcl): configuration failed after 5 retries: primary: error on dbvisit1:7891: unexpected database status for DDC orcl: got: "Database is down", expected: "Regular database open in read write mode" 2019 /07/25 13:37:51 DDC: DDC #1(orcl): watchdog shutting down: activation imminent 2019 /07/25 13:37:51 DDC: DDC #1(orcl): ACTIVATION started: conditions for activation satisfied 2019 /07/25 13:38:41 DDC: DDC #1(orcl): ACTIVATION successful: ACTIVATION OK: standby activated, activation took: 50.043794192s |
And we can verify that the standby is now open in read write mode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[oracle@dbvisit2 trace]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 25 15:49:38 2019 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> select db_unique_name,open_mode from v $database; DB_UNIQUE_NAME OPEN_MODE ------------------------------ -------------------- orcl READ WRITE SQL> |
Note that we can use a user defined script with the observer. For more information please see dbvisit documentation