{"id":12833,"date":"2019-10-23T11:04:04","date_gmt":"2019-10-23T09:04:04","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/"},"modified":"2019-10-23T11:04:04","modified_gmt":"2019-10-23T09:04:04","slug":"adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/","title":{"rendered":"Adding a dbvisit standby database on the ODA in a non-OMF environment"},"content":{"rendered":"<p>I have recently been working on a customer project where I had been challenged adding a dbvisit standby database on an ODA X7-2M, named ODA03. The existing customer environment was composed of Oracle Standard 12.2 version database. The primary database, myDB, is running on server named srv02 and using a non-OMF configuration. On the ODA side we are working with OMF configuration. The dbvisit version available at that time was version 8. You need to know that version 9 is currently the last one and brings some new cool features. Through this blog I would like to share with you my experience, the problem I have been facing and the solution I could put in place.<br \/>\n<!--more--><\/p>\n<h3>Preparing the instance on the ODA<\/h3>\n<p>First of all I have been creating an instance only database on the ODA.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nroot@ODA03 ~]# odacli list-dbhomes\n\nID                                       Name                 DB Version                               Home Location                                 Status   \n---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------\nec33e32a-37d1-4d0d-8c40-b358dcf5660c     OraDB12201_home1     12.2.0.1.180717                          \/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1     Configured\n\n[root@ODA03 ~]# odacli create-database -m -u myDB_03 -dn domain.name -n myDB -r ACFS -io -dh ec33e32a-37d1-4d0d-8c40-b358dcf5660c\nPassword for SYS,SYSTEM and PDB Admin:\n\nJob details\n----------------------------------------------------------------\n                     ID:  96fd4d07-4604-4158-9c25-702c01f4493e\n            Description:  Database service creation with db name: myDB\n                 Status:  Created\n                Created:  May 15, 2019 4:29:15 PM CEST\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\n\n[root@ODA03 ~]# odacli describe-job -i 96fd4d07-4604-4158-9c25-702c01f4493e\n\nJob details\n----------------------------------------------------------------\n                     ID:  96fd4d07-4604-4158-9c25-702c01f4493e\n            Description:  Database service creation with db name: myDB\n                 Status:  Success\n                Created:  May 15, 2019 4:29:15 PM CEST\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nSetting up ssh equivalance               May 15, 2019 4:29:16 PM CEST        May 15, 2019 4:29:16 PM CEST        Success\nCreating volume datmyDB                    May 15, 2019 4:29:16 PM CEST        May 15, 2019 4:29:38 PM CEST        Success\nCreating volume reco                     May 15, 2019 4:29:38 PM CEST        May 15, 2019 4:30:00 PM CEST        Success\nCreating ACFS filesystem for DATA        May 15, 2019 4:30:00 PM CEST        May 15, 2019 4:30:17 PM CEST        Success\nCreating ACFS filesystem for RECO        May 15, 2019 4:30:17 PM CEST        May 15, 2019 4:30:35 PM CEST        Success\nDatabase Service creation                May 15, 2019 4:30:35 PM CEST        May 15, 2019 4:30:51 PM CEST        Success\nAuxiliary Instance Creation              May 15, 2019 4:30:35 PM CEST        May 15, 2019 4:30:47 PM CEST        Success\npassword file creation                   May 15, 2019 4:30:47 PM CEST        May 15, 2019 4:30:49 PM CEST        Success\narchive and redo log location creation   May 15, 2019 4:30:49 PM CEST        May 15, 2019 4:30:49 PM CEST        Success\nupdating the Database version            May 15, 2019 4:30:49 PM CEST        May 15, 2019 4:30:51 PM CEST        Success\n<\/pre>\n<p>Next steps are really common DBA operations : <\/p>\n<ul>\n<li>Create a pfile from the current primary database<\/li>\n<li>Transfer the pfile to the ODA<\/li>\n<li>Update the pfile as needed (path, db_unique_name, &#8230;)<\/li>\n<li>Create a spfile from the pfile on the new ODA database<\/li>\n<li>Apply ODA specific instance parameters<\/li>\n<li>Copy or create the password file with same password<\/li>\n<\/ul>\n<p>The parameters that are mandatory to be set on the ODA instance are the following :<br \/>\n*.db_create_file_dest=&#8217;\/u02\/app\/oracle\/oradata\/myDB_03&#8242;<br \/>\n*.db_create_online_log_dest_1=&#8217;\/u03\/app\/oracle\/redo&#8217;<br \/>\n*.db_recovery_file_dest=&#8217;\/u03\/app\/oracle\/fast_recovery_area&#8217;<\/p>\n<p>Also all the convert parameters should be removed. Using convert parameter is incompatible with OMF.<\/p>\n<h3>Creating the standby database<\/h3>\n<h4>Using dbvisit<\/h4>\n<p>I first tried to use dbvisit to create the standby database.<\/p>\n<p>As usual and common dbvisit operation, I first created the DDC configuration file from the primary server :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [myDB] .\/dbvctl -o setup\n...\n...\n...\nBelow are the list of configuration variables provided during the setup process:\n\nConfiguration Variable             Value Provided\n======================             ==============\nORACLE_SID                         myDB\nORACLE_HOME                        \/opt\/oracle\/product\/12.2.0\n\nSOURCE                             srv02\nARCHSOURCE                         \/u03\/app\/oracle\/dbvisit_arch\/myDB\nRAC_DR                             N\nUSE_SSH                            N\nDESTINATION                        ODA03\nNETPORT                            7890\nDBVISIT_BASE_DR                    \/u01\/app\/dbvisit\nORACLE_HOME_DR                     \/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\nDB_UNIQUE_NAME_DR                  myDB_03\nARCHDEST                           \/u03\/app\/oracle\/dbvisit_arch\/myDB\nORACLE_SID_DR                      myDB\nENV_FILE                           myDBSTD1\n\nAre these variables correct?  [Yes]:\n...\n...\n...\n<\/pre>\n<p>I then used this DDC configuration file to create the standby database :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [myDB] .\/dbvctl -d myDBSTD1 --csd\n\n\n-------------------------------------------------------------------------------\n\nINIT ORA PARAMETERS\n-------------------------------------------------------------------------------\n*              audit_file_dest                         \/u01\/app\/oracle\/admin\/myDB\/adump\n*              compatible                              12.2.0\n*              control_management_pack_access          NONE\n*              db_block_size                           8192\n*              db_create_file_dest                     \/u02\/app\/oracle\/oradata\/myDB_03\n*              db_create_online_log_dest_1             \/u03\/app\/oracle\/redo\n*              db_domain\n*              db_name                                 myDB\n*              db_recovery_file_dest                   \/u03\/app\/oracle\/fast_recovery_area\n*              db_recovery_file_dest_size              240G\n*              db_unique_name                          myDB_03\n*              diagnostic_dest                         \/u01\/app\/oracle\n*              dispatchers                             (PROTOCOL=TCP) (SERVICE=myDBXDB)\n*              instance_mode                           READ-WRITE\n*              java_pool_size                          268435456\n*              log_archive_dest_1                      LOCATION=USE_DB_RECOVERY_FILE_DEST\n*              open_cursors                            3000\n*              optimizer_features_enable               12.2.0.1\n*              pga_aggregate_target                    4194304000\n*              processes                               8000\n*              remote_login_passwordfile               EXCLUSIVE\n*              resource_limit                          TRUE\n*              sessions                                7552\n*              sga_max_size                            53687091200\n*              sga_target                              26843545600\n*              shared_pool_reserved_size               117440512\n*              spfile                                  OS default\n*              statistics_level                        TYPICAL\n*              undo_retention                          300\n*              undo_tablespace                         UNDOTBS1\n\n-------------------------------------------------------------------------------\n\nStatus: VALID\n\nWhat would you like to do:\n   1 - Create standby database using existing saved template\n   2 - View content of existing saved template\n   3 - Return to the previous menu\n   Please enter your choice [1]:\n<\/pre>\n<p>This operation failed with following errors : <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nCannot create standby data or temp file \/usr\/oracle\/oradata\/myDB\/myDB_bi_temp01.dbf for\nprimary file \/usr\/oracle\/oradata\/myDB\/myDB_bi_temp01.dbf as location \/usr\/oracle\/oradata\/myDB\ndoes not exist on the standby.\n<\/pre>\n<p>A per dbvisit documentation, dbvisit standby is certified ODA and fully compatible with non-OMF and OMF databases. This is correct, the only distinction is that the full environment needs to be in same configuration.  That&#8217;s to say that if the primary is OMF, the standby is expected to be OMF. If the primary is running a non-OMF configuration, the standby should be using non-OMF as well.<\/p>\n<h4>Using RMAN<\/h4>\n<p>I decided to duplicate the database using RMAN and a backup that I transferred locally on the ODA. The backup was the previous nightly inc0 backup. Before running the rman duplication I executed a last archive log backup to make sure to have the most recent archive used in the duplication.<\/p>\n<p>I&#8217;m taking this opportunity to highlight that, thanks to ODA NVMe technology, the duplication of the 3 TB database without multiple channel (standard edition) took a bit more than 2 hours only. On the existing servers this took about 10 hours.<\/p>\n<p>I added following tns entry in the tnsnames.ora. <\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nmyDBSRV3 =\n  (DESCRIPTION =\n    (ADDRESS = (PROTOCOL = TCP)(HOST = ODA03.domain.name)(PORT = 1521))\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = myDB)\n      (UR = A)\n    )\n  )\n<\/pre>\n<p>Of course I could have been using a local connection.<\/p>\n<p>I made sure the database to be in nomount status and ran the rman duplication :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@ODA03:\/opt\/oracle\/backup\/ [myDB] rmanh\n\nRecovery Manager: Release 12.2.0.1.0 - Production on Mon May 20 13:24:29 2019\n\nCopyright (c) 1982, 2017, Oracle and\/or its affiliates.  All rights reserved.\n\nRMAN&gt; connect auxiliary sys@myDBSRV3\n\nauxiliary database Password:\nconnected to auxiliary database: myDB (not mounted)\n\nRMAN&gt; run {\n2&gt; duplicate target database for standby dorecover backup location '\/opt\/oracle\/backup\/myDB';\n3&gt; }\n\nStarting Duplicate Db at 20-MAY-2019 13:25:51\n\ncontents of Memory Script:\n{\n   sql clone \"alter system set  control_files =\n  ''\/u03\/app\/oracle\/redo\/myDB_03\/controlfile\/o1_mf_gg4qvpnn_.ctl'' comment=\n ''Set by RMAN'' scope=spfile\";\n   restore clone standby controlfile from  '\/opt\/oracle\/backup\/myDB\/ctl_myDB_myDB_s108013_p1_newbak.ctl';\n}\nexecuting Memory Script\n\nsql statement: alter system set  control_files =   ''\/u03\/app\/oracle\/redo\/myDB_03\/controlfile\/o1_mf_gg4qvpnn_.ctl'' comment= ''Set by RMAN'' scope=spfile\n\nStarting restore at 20-MAY-2019 13:25:51\nallocated channel: ORA_AUX_DISK_1\nchannel ORA_AUX_DISK_1: SID=9186 device type=DISK\n\nchannel ORA_AUX_DISK_1: restoring control file\nchannel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01\noutput file name=\/u03\/app\/oracle\/redo\/myDB_03\/controlfile\/o1_mf_gg4qvpnn_.ctl\nFinished restore at 20-MAY-2019 13:25:52\n\ncontents of Memory Script:\n{\n   sql clone 'alter database mount standby database';\n}\nexecuting Memory Script\n\nsql statement: alter database mount standby database\nreleased channel: ORA_AUX_DISK_1\nallocated channel: ORA_AUX_DISK_1\nchannel ORA_AUX_DISK_1: SID=9186 device type=DISK\n\ncontents of Memory Script:\n{\n   set until scn  49713361973;\n   set newname for clone tempfile  1 to new;\n   set newname for clone tempfile  2 to new;\n   switch clone tempfile all;\n   set newname for clone datafile  1 to new;\n   set newname for clone datafile  2 to new;\n   set newname for clone datafile  3 to new;\n   set newname for clone datafile  4 to new;\n   set newname for clone datafile  5 to new;\n   set newname for clone datafile  6 to new;\n   set newname for clone datafile  7 to new;\n   set newname for clone datafile  8 to new;\n   set newname for clone datafile  10 to new;\n   set newname for clone datafile  11 to new;\n   set newname for clone datafile  12 to new;\n   set newname for clone datafile  13 to new;\n   set newname for clone datafile  14 to new;\n   set newname for clone datafile  15 to new;\n   set newname for clone datafile  16 to new;\n   set newname for clone datafile  17 to new;\n   set newname for clone datafile  18 to new;\n   restore\n   clone database\n   ;\n}\nexecuting Memory Script\n\nexecuting command: SET until clause\n\nexecuting command: SET NEWNAME\n\nexecuting command: SET NEWNAME\n\nrenamed tempfile 1 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_temp_%u_.tmp in control file\nrenamed tempfile 2 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_lx_bi_te_%u_.tmp in control file\n\nexecuting command: SET NEWNAME\n\n...\n...\n...\n\nexecuting command: SET NEWNAME\n\nStarting restore at 20-MAY-2019 13:25:57\nusing channel ORA_AUX_DISK_1\n\nchannel ORA_AUX_DISK_1: starting datafile backup set restore\nchannel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set\nchannel ORA_AUX_DISK_1: restoring datafile 00001 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_system_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00003 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_undotbs1_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00005 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_lxdataid_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00006 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_renderz2_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00007 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_lx_ods_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00008 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_users_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00013 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_renderzs_%u_.dbf\nchannel ORA_AUX_DISK_1: restoring datafile 00015 to \/u02\/app\/oracle\/oradata\/myDB_03\/myDB_03\/datafile\/o1_mf_lx_stagi_%u_.dbf\nchannel ORA_AUX_DISK_1: reading from backup piece \/opt\/oracle\/backup\/myDB\/inc0_myDB_s107963_p1\n...\n...\n...\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58043_987102791.dbf thread=1 sequence=58043\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58044_987102791.dbf thread=1 sequence=58044\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58045_987102791.dbf thread=1 sequence=58045\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58046_987102791.dbf thread=1 sequence=58046\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58047_987102791.dbf thread=1 sequence=58047\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58048_987102791.dbf thread=1 sequence=58048\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58049_987102791.dbf thread=1 sequence=58049\narchived log file name=\/opt\/oracle\/backup\/myDB\/1_58050_987102791.dbf thread=1 sequence=58050\nmedia recovery complete, elapsed time: 00:12:40\nFinished recover at 20-MAY-2019 16:06:22\nFinished Duplicate Db at 20-MAY-2019 16:06:39\n<\/pre>\n<p>I could check and see that my standby database has been successfully created on the ODA :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@ODA03:\/u01\/app\/oracle\/local\/dmk\/etc\/ [myDB] myDB\n********* dbi services Ltd. *********\nSTATUS                 : MOUNTED\nDB_UNIQUE_NAME         : myDB_03\nOPEN_MODE              : MOUNTED\nLOG_MODE               : ARCHIVELOG\nDATABASE_ROLE          : PHYSICAL STANDBY\nFLASHBACK_ON           : NO\nFORCE_LOGGING          : YES\nCDB Enabled            : NO\n*************************************\n<\/pre>\n<p>As a personal note, I really found using oracle RMAN more convenient to duplicate a database. Albeit dbvisit script and tool is really stable, I think that this will give you more flexibility.<\/p>\n<h3>Registering the database in the grid cluster<\/h3>\n<p>As next step I registered the database in the grid.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@ODA03:\/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/ [LX] srvctl add database -db MyDB_03 -oraclehome \/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1 -dbtype SINGLE -instance MyDB -domain team-w.local -spfile \/u02\/app\/oracle\/oradata\/MyDB_03\/dbs\/spfileMyDB.ora -pwfile \/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/orapwMyDB -role PHYSICAL_STANDBY -startoption MOUNT -stopoption IMMEDIATE -dbname MyDB -node ODA03 -acfspath \"\/u02\/app\/oracle\/oradata\/MyDB_03,\/u03\/app\/oracle\"\n<\/pre>\n<p>I stopped the database :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; shutdown immediate;\nORA-01109: database not open\n\n\nDatabase dismounted.\nORACLE instance shut down.\n<\/pre>\n<p>And started it again with the grid infrastructure :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@ODA03:\/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/ [MyDB] MyDB\n********* dbi services Ltd. *********\nSTATUS          : STOPPED\n*************************************\n\noracle@ODA03:\/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/ [MyDB] srvctl status database -d MyDB_03\nInstance MyDB is not running on node ODA03\n\noracle@ODA03:\/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/ [MyDB] srvctl start database -d MyDB_03\n\noracle@ODA03:\/u01\/app\/oracle\/product\/12.2.0.1\/dbhome_1\/dbs\/ [MyDB] srvctl status database -d MyDB_03\nInstance MyDB is running on node ODA03\n<\/pre>\n<h3>dbvisit synchronization<\/h3>\n<p>We now have our standby database created on the ODA. We just need to synchronize it with the primary.<\/p>\n<h4>Run a gap report<\/h4>\n<p>Executing a gap report, we can see that the newly created database is running almost 4 hours behind.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [rdbms12201] .\/dbvctl -d myDBSTD1 -i\n=============================================================\nDbvisit Standby Database Technology (8.0.26_0_g3fdeaadd) (pid 321953)\ndbvctl started on srv02: Mon May 20 16:24:35 2019\n=============================================================\n\n\nDbvisit Standby log gap report for myDB thread 1 at 201905201624:\n-------------------------------------------------------------\nDestination database on ODA03 is at sequence: 58050.\nSource database on srv02 is at log sequence: 58080.\nSource database on srv02 is at archived log sequence: 58079.\nDbvisit Standby last transfer log sequence: .\nDbvisit Standby last transfer at: .\n\nArchive log gap for thread 1:  29.\nTransfer log gap for thread 1: 58079.\nStandby database time lag (DAYS-HH:MI:SS): +03:39:01.\n\n\n=============================================================\ndbvctl ended on srv02: Mon May 20 16:24:40 2019\n=============================================================\n<\/pre>\n<h4>Send the archive logs from primary to the standby database<\/h4>\n<p>I have been shipping the last archive logs from the primary database to the newly created standby.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [rdbms12201] .\/dbvctl -d myDBSTD1\n=============================================================\nDbvisit Standby Database Technology (8.0.26_0_g3fdeaadd) (pid 326409)\ndbvctl started on srv02: Mon May 20 16:29:14 2019\n=============================================================\n\n&gt;&gt;&gt; Obtaining information from standby database (RUN_INSPECT=Y)... done\n    Thread: 1 Archive log gap: 30. Transfer log gap: 58080\n&gt;&gt;&gt; Sending heartbeat message... skipped\n&gt;&gt;&gt; First time Dbvisit Standby runs, Dbvisit Standby configuration will be copied to\n    ODA03...\n&gt;&gt;&gt; Transferring Log file(s) from myDB on srv02 to ODA03 for thread 1:\n\n    thread 1 sequence 58051 (1_58051_987102791.dbf)\n    thread 1 sequence 58052 (1_58052_987102791.dbf)\n...\n...\n...\n    thread 1 sequence 58079 (1_58079_987102791.dbf)\n    thread 1 sequence 58080 (1_58080_987102791.dbf)\n\n=============================================================\ndbvctl ended on srv02: Mon May 20 16:30:50 2019\n=============================================================\n<\/pre>\n<h4>Apply archive logs on the standby database<\/h4>\n<p>Then I could finally apply the archive logs on the standby database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@ODA03:\/u01\/app\/dbvisit\/standby\/ [myDB] .\/dbvctl -d myDBSTD1\n=============================================================\nDbvisit Standby Database Technology (8.0.26_0_g3fdeaadd) (pid 21504)\ndbvctl started on ODA03: Mon May 20 16:33:42 2019\n=============================================================\n\n&gt;&gt;&gt; Sending heartbeat message... skipped\n\n&gt;&gt;&gt; Applying Log file(s) from srv02 to myDB on ODA03:\n\n    thread 1 sequence 58051 (1_58051_987102791.arc)\n    thread 1 sequence 58052 (1_58052_987102791.arc)\n...\n...\n...\n    thread 1 sequence 58079 (1_58079_987102791.arc)\n    thread 1 sequence 58080 (1_58080_987102791.arc)\n    Last applied log(s):\n    thread 1 sequence 58080\n\n    Next SCN required for recovery 49719323442 generated at 2019-05-20:16:27:09 +02:00.\n    Next required log thread 1 sequence 58081\n\n=============================================================\ndbvctl ended on ODA03: Mon May 20 16:36:52 2019\n=============================================================\n<\/pre>\n<h4>Run a gap report<\/h4>\n<p>Running a new gap report, we can see that there is no delta between the primary and the standby database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [rdbms12201] .\/dbvctl -d myDBSTD1 -i\n=============================================================\nDbvisit Standby Database Technology (8.0.26_0_g3fdeaadd) (pid 335068)\ndbvctl started on srv02: Mon May 20 16:37:53 2019\n=============================================================\n\n\nDbvisit Standby log gap report for myDB thread 1 at 201905201637:\n-------------------------------------------------------------\nDestination database on ODA03 is at sequence: 58081.\nSource database on srv02 is at log sequence: 58082.\nSource database on srv02 is at archived log sequence: 58081.\nDbvisit Standby last transfer log sequence: 58081.\nDbvisit Standby last transfer at: 2019-05-20 16:37:36.\n\nArchive log gap for thread 1:  0.\nTransfer log gap for thread 1: 0.\nStandby database time lag (DAYS-HH:MI:SS): +00:00:01.\n\n\n=============================================================\ndbvctl ended on srv02: Mon May 20 16:37:57 2019\n=============================================================\n<\/pre>\n<h3>Preparing the database for switchover<\/h3>\n<p>Are we done? Absolutely not. In order to be able to successfully perform a switchover, 3 main modifications are mandatory on the non-ODA Server (running non-OMF database) :<\/p>\n<ul>\n<li>The future database files should be OMF<\/li>\n<li>The online redo log should be newly created<\/li>\n<li>The temporary file should be newly created<\/li>\n<\/ul>\n<p>Otherwise you might end with unsuccessfull switchover having below errors :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n&gt;&gt;&gt; Starting Switchover between srv02 and ODA03\n\nRunning pre-checks       ... failed\nNo rollback action required\n\n&gt;&gt;&gt; Database on server srv02 is still a Primary Database\n&gt;&gt;&gt; Database on server ODA03 is still a Standby Database\n\n\n&lt;&lt;&lt;&gt;&gt;&gt;\nPID:40386\nTRACEFILE:40386_dbvctl_switchover_myDBSTD1_201905272153.trc\nSERVER:srv02\nERROR_CODE:1\nRemote execution error on ODA03.\n\n====================Remote Output start: ODA03=====================\n&lt;&lt;&lt;&gt;&gt;&gt;\nPID:92292\nTRACEFILE:92292_dbvctl_f_gs_get_info_standby_myDBSTD1_201905272153.trc\nSERVER:ODA03\nERROR_CODE:2146\nDbvisit Standby cannot proceed:\nCannot create standby data or temp file \/usr\/oracle\/oradata\/myDB\/temp01.dbf for primary\nfile \/usr\/oracle\/oradata\/myDB\/temp01.dbf as location \/usr\/oracle\/oradata\/myDB does not\nexist on the standby.\nCannot create standby data or temp file \/usr\/oracle\/oradata\/myDB\/lx_bi_temp01.dbf for\nprimary file \/usr\/oracle\/oradata\/myDB\/lx_bi_temp01.dbf as location \/usr\/oracle\/oradata\/myDB\ndoes not exist on the standby.\nReview the following standby database parameters:\n        db_create_file_dest = \/u02\/app\/oracle\/oradata\/myDB_03\n        db_file_name_convert =\n&gt;&gt;&gt;&gt; Dbvisit Standby terminated &lt;&lt;&lt;&gt;&gt;&gt; Dbvisit Standby terminated &lt;&lt;&lt;&lt;\n<\/pre>\n<h4>Having new OMF configuration<\/h4>\n<p>There is no need to convert the full database into OMF. A database can run having both file naming configuration, non-OMF and OMF. We just need to have the database working now with OMF configuration. For this we will just apply the appropriate value to the init parameter. In my case the existing primary database was storing all data and redo files in the \/opt\/oracle\/oradata directory.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter system set DB_CREATE_FILE_DEST='\/opt\/oracle\/oradata' scope=both;\n\nSystem wurde ge\u00e4ndert.\n\nSQL&gt; alter system set DB_CREATE_ONLINE_LOG_DEST_1='\/opt\/oracle\/oradata' scope=both;\n\nSystem wurde ge\u00e4ndert.\n<\/pre>\n<h4>Refresh the online log<\/h4>\n<p>We will create new OMF redo log files as described below.<\/p>\n<p>The current redo log configuration :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; select v$log.group#, member, v$log.status from v$logfile, v$log where v$logfile.group#=v$log.group#;\n\n    GROUP# MEMBER                                             STATUS\n---------- -------------------------------------------------- ----------\n        12 \/opt\/oracle\/oradata\/myDB\/redo12.log                  ACTIVE\n        13 \/opt\/oracle\/oradata\/myDB\/redo13.log                  CURRENT\n        15 \/opt\/oracle\/oradata\/myDB\/redo15.log                  INACTIVE\n        16 \/opt\/oracle\/oradata\/myDB\/redo16.log                  INACTIVE\n         1 \/opt\/oracle\/oradata\/myDB\/redo1.log                   INACTIVE\n         2 \/opt\/oracle\/oradata\/myDB\/redo2.log                   INACTIVE\n        17 \/opt\/oracle\/oradata\/myDB\/redo17.log                  INACTIVE\n        18 \/opt\/oracle\/oradata\/myDB\/redo18.log                  INACTIVE\n        19 \/opt\/oracle\/oradata\/myDB\/redo19.log                  INACTIVE\n        20 \/opt\/oracle\/oradata\/myDB\/redo20.log                  INACTIVE\n         3 \/opt\/oracle\/oradata\/myDB\/redo3.log                   INACTIVE\n         4 \/opt\/oracle\/oradata\/myDB\/redo4.log                   INACTIVE\n         5 \/opt\/oracle\/oradata\/myDB\/redo5.log                   INACTIVE\n         6 \/opt\/oracle\/oradata\/myDB\/redo6.log                   INACTIVE\n         7 \/opt\/oracle\/oradata\/myDB\/redo7.log                   INACTIVE\n         8 \/opt\/oracle\/oradata\/myDB\/redo8.log                   ACTIVE\n         9 \/opt\/oracle\/oradata\/myDB\/redo9.log                   ACTIVE\n        10 \/opt\/oracle\/oradata\/myDB\/redo10.log                  ACTIVE\n        11 \/opt\/oracle\/oradata\/myDB\/redo11.log                  ACTIVE\n        14 \/opt\/oracle\/oradata\/myDB\/redo14.log                  INACTIVE\n\n<\/pre>\n<p>For all INACTIVE redo log groups, we will be able to drop the group and create it again with the OMF naming convention :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter database drop logfile group 1;\n\nDatenbank wurde ge\u00e4ndert.\n\nSQL&gt; alter database add logfile group 1;\n\nDatenbank wurde ge\u00e4ndert.\n<\/pre>\n<p>In order to move to the next redo group and release the current one, we will run a switch log file :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter system switch logfile;\n\nSystem wurde ge\u00e4ndert.\n<\/pre>\n<p>To move the ACTIVE redo log to INACTIVE we will run a checkpoint :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter system checkpoint;\n\nSystem wurde ge\u00e4ndert.\n<\/pre>\n<p>And then drop and recreate the last INACTIVE redo groups :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter database drop logfile group 10;\n\nDatenbank wurde ge\u00e4ndert.\n\nSQL&gt; alter database add logfile group 10;\n\nDatenbank wurde ge\u00e4ndert.\n<\/pre>\n<p>To finally have all our online log with OMF format :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; select v$log.group#, member, v$log.status from v$logfile, v$log where v$logfile.group#=v$log.group# order by group#;\n\n    GROUP# MEMBER                                                       STATUS\n---------- ------------------------------------------------------------ ----------\n         1 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_1_ggqx5zon_.log       INACTIVE\n         2 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_2_ggqxjky2_.log       INACTIVE\n         3 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_3_ggqxjodl_.log       INACTIVE\n         4 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_4_ggqxkddc_.log       INACTIVE\n         5 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_5_ggqxkj1t_.log       INACTIVE\n         6 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_6_ggqxkmnm_.log       CURRENT\n         7 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_7_ggqxn373_.log       UNUSED\n         8 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_8_ggqxn7b3_.log       UNUSED\n         9 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_9_ggqxnbxd_.log       UNUSED\n        10 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_10_ggqxvlbf_.log      UNUSED\n        11 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_11_ggqxvnyg_.log      UNUSED\n        12 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_12_ggqxvqyp_.log      UNUSED\n        13 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_13_ggqxvv2o_.log      UNUSED\n        14 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_14_ggqxxcq7_.log      UNUSED\n        15 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_15_ggqxxgfg_.log      UNUSED\n        16 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_16_ggqxxk67_.log      UNUSED\n        17 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_17_ggqxypwg_.log      UNUSED\n        18 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_18_ggqy1z78_.log      UNUSED\n        19 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_19_ggqy2270_.log      UNUSED\n        20 \/opt\/oracle\/oradata\/myDB\/onlinelog\/o1_mf_20_ggqy26bj_.log      UNUSED\n\n20 Zeilen ausgew\u00e4hlt.\n<\/pre>\n<h4>Refresh temporary file<\/h4>\n<p>The database was using 2 temp tablespaces : TEMP and MyDB_BI_TEMP.<\/p>\n<p>We first need to add new temp files in OMF format for both tablespaces.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter tablespace TEMP add tempfile size 20G;\n\nTablespace wurde ge\u00e4ndert.\n\nSQL&gt; alter tablespace myDB_BI_TEMP add tempfile size 20G;\n\nTablespace wurde ge\u00e4ndert.\n<\/pre>\n<p>Both tablespace will now include 2 files : a previous non-OMF one and a new OMF one :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; @qdbstbsinf.sql\nEnter a tablespace name filter (US%): TEMP\n\nTABLESPACE_NAME      FILE_NAME                                                    STATUS             SIZE_MB AUTOEXTENSIB MAXSIZE_MB\n-------------------- ------------------------------------------------------------ --------------- ---------- ------------ ----------\nTEMP                 \/opt\/oracle\/oradata\/myDB\/datafile\/o1_mf_temp_ggrjzm9o_.tmp     ONLINE               20480 NO                    0\nTEMP                 \/usr\/oracle\/oradata\/myDB\/temp01.dbf                            ONLINE               20480 NO                    0\n\nSQL&gt; @qdbstbsinf.sql\nEnter a tablespace name filter (US%): myDB_BI_TEMP\n\nTABLESPACE_NAME      FILE_NAME                                                    STATUS             SIZE_MB AUTOEXTENSIB MAXSIZE_MB\n-------------------- ------------------------------------------------------------ --------------- ---------- ------------ ----------\nmyDB_BI_TEMP           \/opt\/oracle\/oradata\/myDB\/datafile\/o1_mf_lx_bi_te_ggrk0wxz_.tmp ONLINE               20480 NO                    0\nmyDB_BI_TEMP           \/usr\/oracle\/oradata\/myDB\/lx_bi_temp01.dbf                      ONLINE               20480 YES                5120\n<\/pre>\n<p>Dropping temporary file will end into error :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; alter database tempfile '\/usr\/oracle\/oradata\/myDB\/temp01.dbf' drop including datafiles;\nalter database tempfile '\/usr\/oracle\/oradata\/myDB\/temp01.dbf' drop including datafiles\n*\nFEHLER in Zeile 1:\nORA-25152: TEMPFILE kann momentan nicht gel\u00f6scht werden\n<\/pre>\n<p>We need to restart the database.  This will only be possible during the maintenance windows scheduled to run the switchover.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt; shutdown immediate;\nDatenbank geschlossen.\nDatenbank dismounted.\nORACLE-Instanz heruntergefahren.\n\nSQL&gt; startup\nORACLE-Instanz hochgefahren.\n\nTotal System Global Area 5,3687E+10 bytes\nFixed Size                 26330584 bytes\nVariable Size            3,3152E+10 bytes\nDatabase Buffers         2,0401E+10 bytes\nRedo Buffers              107884544 bytes\nDatenbank mounted.\nDatenbank ge\u00f6ffnet.\n<\/pre>\n<p>The previous non-OMF temporary file can now be deleted :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt;  alter database tempfile '\/usr\/oracle\/oradata\/myDB\/temp01.dbf' drop including datafiles;\n\nDatenbank wurde ge\u00e4ndert.\n\nSQL&gt; alter database tempfile '\/usr\/oracle\/oradata\/myDB\/lx_bi_temp01.dbf' drop including datafiles;\n\nDatenbank wurde ge\u00e4ndert.\n<\/pre>\n<p>And we only have OMF temporary files now :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL&gt;  @qdbstbsinf.sql\nEnter a tablespace name filter (US%): TEMP\n\nTABLESPACE_NAME      FILE_NAME                                                    STATUS             SIZE_MB AUTOEXTENSIB MAXSIZE_MB\n-------------------- ------------------------------------------------------------ --------------- ---------- ------------ ----------\nTEMP                 \/opt\/oracle\/oradata\/myDB\/datafile\/o1_mf_temp_ggrjzm9o_.tmp     ONLINE               20480 NO                    0\n\nSQL&gt;  @qdbstbsinf.sql\nEnter a tablespace name filter (US%): myDB_BI_TEMP\n\nTABLESPACE_NAME      FILE_NAME                                                    STATUS             SIZE_MB AUTOEXTENSIB MAXSIZE_MB\n-------------------- ------------------------------------------------------------ --------------- ---------- ------------ ----------\nmyDB_BI_TEMP           \/opt\/oracle\/oradata\/myDB\/datafile\/o1_mf_lx_bi_te_ggrk0wxz_.tmp ONLINE               20480 NO                    0\n<\/pre>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n<\/pre>\n<h3>Testing switchover<\/h3>\n<p>We are now ready to test the switchover from current srv02 primary to ODA03 server after making sure both databases are synchronized.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\noracle@srv02:\/u01\/app\/dbvisit\/standby\/ [MyDB] .\/dbvctl -d MyDBSTD1 -o switchover\n=============================================================\nDbvisit Standby Database Technology (8.0.26_0_g3fdeaadd) (pid 12196)\ndbvctl started on srv02: Tue May 28 00:07:34 2019\n=============================================================\n\n&gt;&gt;&gt; Starting Switchover between srv02 and ODA03\n\nRunning pre-checks       ... done\nPre processing           ... done\nProcessing primary       ... done\nProcessing standby       ... done\nConverting standby       ... done\nConverting primary       ... done\nCompleting               ... done\nSynchronizing            ... done\nPost processing          ... done\n\n&gt;&gt;&gt; Graceful switchover completed.\n    Primary Database Server: ODA03\n    Standby Database Server: srv02\n\n&gt;&gt;&gt; Dbvisit Standby can be run as per normal:\n    dbvctl -d MyDBSTD1\n\n\nPID:12196\nTRACE:12196_dbvctl_switchover_MyDBSTD1_201905280007.trc\n\n=============================================================\ndbvctl ended on srv02: Tue May 28 00:13:31 2019\n=============================================================\n<\/pre>\n<h3>Conclusion<\/h3>\n<p>With dbvisit standby it is possible to mix non-OMF and OMF databases after completing several manual steps. The final recommendation would be to run a unique configuration. This is why, after having run a switchover to the new ODA03 database, and making sure the new database is stable, we created from scratch the old primary srv02 database with OMF configuration. Converting a database to OMF using move option is not possible with standard edition.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have recently been working on a customer project where I had been challenged adding a dbvisit standby database on an ODA X7-2M, named ODA03. The existing customer environment was composed of Oracle Standard 12.2 version database. The primary database, myDB, is running on server named srv02 and using a non-OMF configuration. On the ODA [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,59],"tags":[280,23,372,73,79,96],"type_dbi":[],"class_list":["post-12833","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-oracle","tag-database","tag-dba","tag-dbvisit","tag-linux","tag-oda","tag-oracle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Adding a dbvisit standby database on the ODA in a non-OMF environment - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding a dbvisit standby database on the ODA in a non-OMF environment\" \/>\n<meta property=\"og:description\" content=\"I have recently been working on a customer project where I had been challenged adding a dbvisit standby database on an ODA X7-2M, named ODA03. The existing customer environment was composed of Oracle Standard 12.2 version database. The primary database, myDB, is running on server named srv02 and using a non-OMF configuration. On the ODA [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-23T09:04:04+00:00\" \/>\n<meta name=\"author\" content=\"Marc Wagner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Wagner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\"},\"author\":{\"name\":\"Marc Wagner\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"headline\":\"Adding a dbvisit standby database on the ODA in a non-OMF environment\",\"datePublished\":\"2019-10-23T09:04:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\"},\"wordCount\":1113,\"commentCount\":0,\"keywords\":[\"database\",\"DBA\",\"dbvisit\",\"Linux\",\"ODA\",\"Oracle\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\",\"name\":\"Adding a dbvisit standby database on the ODA in a non-OMF environment - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2019-10-23T09:04:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adding a dbvisit standby database on the ODA in a non-OMF environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\",\"name\":\"Marc Wagner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"caption\":\"Marc Wagner\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Adding a dbvisit standby database on the ODA in a non-OMF environment - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/","og_locale":"en_US","og_type":"article","og_title":"Adding a dbvisit standby database on the ODA in a non-OMF environment","og_description":"I have recently been working on a customer project where I had been challenged adding a dbvisit standby database on an ODA X7-2M, named ODA03. The existing customer environment was composed of Oracle Standard 12.2 version database. The primary database, myDB, is running on server named srv02 and using a non-OMF configuration. On the ODA [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/","og_site_name":"dbi Blog","article_published_time":"2019-10-23T09:04:04+00:00","author":"Marc Wagner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Wagner","Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/"},"author":{"name":"Marc Wagner","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"headline":"Adding a dbvisit standby database on the ODA in a non-OMF environment","datePublished":"2019-10-23T09:04:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/"},"wordCount":1113,"commentCount":0,"keywords":["database","DBA","dbvisit","Linux","ODA","Oracle"],"articleSection":["Database Administration &amp; Monitoring","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/","url":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/","name":"Adding a dbvisit standby database on the ODA in a non-OMF environment - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-10-23T09:04:04+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/adding-a-dbvisit-standby-database-on-the-oda-in-a-non-omf-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Adding a dbvisit standby database on the ODA in a non-OMF environment"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628","name":"Marc Wagner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","caption":"Marc Wagner"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12833"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12833\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12833"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}