{"id":15189,"date":"2020-11-18T20:09:27","date_gmt":"2020-11-18T19:09:27","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/"},"modified":"2020-11-18T20:09:27","modified_gmt":"2020-11-18T19:09:27","slug":"configure-data-guard-with-odacli-on-oda","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/","title":{"rendered":"Configure Data Guard with odacli on ODA"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>I always thought integration of Data Guard was a missing feature on Oracle Database Appliance. For sure, you can configure Data Guard manually as you do on a classic server, but as an appliance, ODA should have proposed an easier way for configuring that. After years of waiting for this feature, it&#8217;s now available, and I just tested it. And I&#8217;m here to give you my feedback.<\/p>\n<h2>Disclaimer<\/h2>\n<p>You&#8217;ll need 2 ODAs for building such configuration. Data Guard on a single ODA is not supported and wouldn&#8217;t make sense.<\/p>\n<p>I did this test on 2 brand new X8-2M ODAs deployed with the latest version 19.9. It should also work starting from 19.8, as it was the first version to include this feature. <\/p>\n<p>The DEMO database used in this test is also version 19.9. I don&#8217;t know if it should work with previous versions, it&#8217;s probably OK for 18c and 12.2, but I&#8217;m not sure for 12.1 and 11.2.<br \/>\n<em><br \/>\nUpdate on the 4th of December, 2020: I successfully validated that it works fine for 12.2 and 12.1 too, but not on older 11.2 (multiple errors starting from the irestore-database)<\/em><\/p>\n<p>This configuration through odacli is linked to your ODA system configuration, especially regarding the domain. If you do not want to use the db_domain on your primary database and you removed this parameter, you&#8217;ll have to know that the standby will anyway be configured with this db_domain inherited from the system&#8217;s db domain. And the Data Guard configuration will fail at step 7. <\/p>\n<p>Another piece of advice regarding the use of this feature: you&#8217;ll need db_create_online_log_dest_1 parameter to be set. I&#8217;m used to remove this parameter to allow multiplexing of the redologs between db_create_file_dest and db_recovery_file_dest (the default behavior when no db_create_online_log_dest_X is configured) but it&#8217;s better to use both db_create_online_log_dest_1 and db_create_online_log_dest_2 for using the odacli&#8217;s Data Guard feature. <\/p>\n<p>You should be aware that if you already have your own backup configuration without using odacli can be a problem. Make sure to understand that creating a backup configuration for a database with odacli will interfere with your existing backup configuration.<\/p>\n<p>Data Guard configuration is related to a database: you&#8217;ll need to apply this procedure for each database for which you want a disaster recovery option.<\/p>\n<p>Data Guard is free of charge on Enterprise Edition, but make sure to never open your standby database in read only mode. For opening a standby database read only while applying the changes from primary, the Active Guard option is needed. Standard Edition does not support Data Guard, but you can use Dbvisit standby as a third party disaster recovery solution.<\/p>\n<p>Finally, I would recommend to test this feature before applying it to your production databases. The goal being to be able to decide if this feature fits your needs or not. You can still configure Data Guard manually as you always did.<\/p>\n<h2>Create a backup configuration for your database<\/h2>\n<p>If you&#8217;re not familiar with backup configuration on ODA, you just need to know that you can manage your backup from odacli. It&#8217;s not a new feature, it&#8217;s not used very often but it can simplify your job and it relies on RMAN, meaning that it&#8217;s reliable.<\/p>\n<p>For configuring Data Guard on ODA you first need to create a backup configuration for your primary. You can do the backup to OCI (the Oracle public Cloud) or nfs, most of us will probably use a classic nfs share. Let&#8217;s consider a nfs share \/Rback\/DEMO for our DEMO database, and a 10-day retention:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli create-backupconfig -n nfsRbackDEMO -w 10 -d NFS -c \/Rback\/DEMO<\/pre>\n<p>Backupconfig creation is fast:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli describe-job -i \"15066dd7-485c-4bd9-9cdb-4259252b9ede\"\n\nJob details\n----------------------------------------------------------------\n                     ID:  15066dd7-485c-4bd9-9cdb-4259252b9ede\n            Description:  create backup config:nfsRbackDEMO\n                 Status:  Success\n                Created:  November 18, 2020 9:06:46 AM CET\n                Message:  backup config creation\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nBackup config metadata persist           November 18, 2020 9:06:47 AM CET    November 18, 2020 9:06:47 AM CET    Success\n<\/pre>\n<h2>Associate the backup config to the database<\/h2>\n<p>This backup configuration now needs to be linked to your DEMO database:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli modify-database -in DEMO -bin nfsRbackDEMO\n\nodacli describe-job -i \"b8f70d11-bc2f-49e2-81e3-5072305302ef\"\n\nJob details\n----------------------------------------------------------------\n                     ID:  b8f70d11-bc2f-49e2-81e3-5072305302ef\n            Description:  Modify database : DEMO\n                 Status:  Success\n                Created:  November 18, 2020 9:14:29 AM CET\n                Message:  Modify database\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nValidate OMF parameter values            November 18, 2020 9:14:31 AM CET    November 18, 2020 9:14:32 AM CET    Success\nupdate db with backupconfig attributes   November 18, 2020 9:14:39 AM CET    November 18, 2020 9:14:42 AM CET    Success\nEnable Database Autobackup               November 18, 2020 9:14:42 AM CET    November 18, 2020 9:14:42 AM CET    Success\nEnable Archivelog Autobackup             November 18, 2020 9:14:42 AM CET    November 18, 2020 9:14:42 AM CET    Success\nConfigure Control file Auto Backup Format November 18, 2020 9:14:42 AM CET    November 18, 2020 9:14:44 AM CET    Success\nBackup Current Control file              November 18, 2020 9:14:44 AM CET    November 18, 2020 9:14:50 AM CET    Success\nUpdate metadata for database:DEMO        November 18, 2020 9:14:50 AM CET    November 18, 2020 9:14:50 AM CET    Success\n<\/pre>\n<p>As you can see, applying this backup configuration will change some RMAN parameters, for example the path for the autobackup of the controfile.<\/p>\n<h2>Create a first backup of your primary with odacli<\/h2>\n<p>Now you can easily take an incremental level 0 backup of your database, an incremental level 0 being actually a full backup. The -ka option is for keeping archivelogs on disk:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli create-backup --backupType Regular-L0 -in DEMO -ka\n\nodacli describe-job -i 56a941f7-2f26-4d87-b159-1e02de183db6\n\nJob details\n----------------------------------------------------------------\n                     ID:  56a941f7-2f26-4d87-b159-1e02de183db6\n            Description:  Create Regular-L0 Backup with TAG-auto for Db:DEMO in NFS:\/Rback\/DEMO\/orabackups\/oda00770p\/database\/3800776698\/DEMO_770P\n                 Status:  Success\n                Created:  November 18, 2020 9:18:07 AM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nValidate backup config                   November 18, 2020 9:18:09 AM CET    November 18, 2020 9:18:09 AM CET    Success\nNFS location existence validation        November 18, 2020 9:18:09 AM CET    November 18, 2020 9:18:09 AM CET    Success\nBackup Validations                       November 18, 2020 9:18:09 AM CET    November 18, 2020 9:18:11 AM CET    Success\nRecovery Window validation               November 18, 2020 9:18:11 AM CET    November 18, 2020 9:18:13 AM CET    Success\nArchivelog deletion policy configuration November 18, 2020 9:18:13 AM CET    November 18, 2020 9:18:14 AM CET    Success\nDatabase backup                          November 18, 2020 9:18:14 AM CET    November 18, 2020 9:19:00 AM CET    Success\n<\/pre>\n<p>Backup can take few minutes to few hours depending on your database size.<\/p>\n<h2>Export the backup report to a json file<\/h2>\n<p>Each backup done with odacli generates a backup report, you&#8217;ll need to save backup report&#8217;s description in a json file that will be used on standby server. In this example, I put the json file on the nfs share to avoid having to copy the file from primary to standby server.<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli list-backupreports | tail -n 2 | grep -v ^$ | awk '{print $1}'\n1b64bcc5-dec7-4373-bf95-f8bdd18bdf08\n\nodacli describe-backupreport -i 1b64bcc5-dec7-4373-bf95-f8bdd18bdf08 &gt; \/Rback\/DEMO\/br_DEMO_`date +\"%Y%m%d_%H%M%S\"`.json\n<\/pre>\n<h2>Restore the database on standby server<\/h2>\n<p>Assuming your standby server has also the same nfs share mounted, you can restore the database on it. The irestore-database feature will create the database with odacli, and you may know that if you don&#8217;t specify a dbhome, a new dbhome will be created. So don&#8217;t forget to pick up the dbhome corresponding to your needs if you don&#8217;t want a new dbhome. You also need to give to odacli a new db_unique_name for your database (having different db_unique_names for primary and standby is a requirement for Data Guard) and specify the database role: STANDBY. <\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli list-dbhomes\n\nodacli irestore-database -dh 82559355-db72-4616-b968-13b8509466fc -r \/Rback\/DEMO\/br_DEMO_20201118_092635.json -u DEMO_769P -ro STANDBY\nPassword for SYS user:\n{\n  \"jobId\" : \"775b58d4-8296-41fa-9c89-7d8761c0b69b\",\n  \"status\" : \"Created\",\n  \"message\" : null,\n  \"reports\" : [ ],\n  \"createTimestamp\" : \"November 18, 2020 11:35:20 AM CET\",\n  \"resourceList\" : [ ],\n  \"description\" : \"Database service recovery with db name: DEMO\",\n  \"updatedTime\" : \"November 18, 2020 11:35:20 AM CET\"\n}\n<\/pre>\n<p>The restore can take minutes to hours depending on the size of the database.<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli describe-job -i \"775b58d4-8296-41fa-9c89-7d8761c0b69b\"\n\nJob details\n----------------------------------------------------------------\n                     ID:  775b58d4-8296-41fa-9c89-7d8761c0b69b\n            Description:  Database service recovery with db name: DEMO\n                 Status:  Success\n                Created:  November 18, 2020 11:35:20 AM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nCheck if cluster ware is running         November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nCreating DbStorage for DbRestore         November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nValidating DiskSpace for DATA            November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nGenerating SSH key                       November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nSSH key                                  November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nSSH key scan                             November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nCreate TDE And Audit Dir Locations       November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nCreate pfile for Auxiliary Instance      November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:21 AM CET   Success\nDeleting FRA                             November 18, 2020 11:35:21 AM CET   November 18, 2020 11:35:22 AM CET   Success\nRman duplicate                           November 18, 2020 11:35:22 AM CET   November 18, 2020 11:37:49 AM CET   Success\nDelete RECO FileGroup DEMO_769P          November 18, 2020 11:37:49 AM CET   November 18, 2020 11:37:50 AM CET   Success\nCreate RECO FileGroup DEMO_769P          November 18, 2020 11:37:50 AM CET   November 18, 2020 11:37:50 AM CET   Success\nDelete RECO FileGroup DEMO_769P_9999     November 18, 2020 11:37:50 AM CET   November 18, 2020 11:37:50 AM CET   Success\nCreating pfile from spfile               November 18, 2020 11:37:50 AM CET   November 18, 2020 11:37:51 AM CET   Success\nSet PFile Ownership                      November 18, 2020 11:37:51 AM CET   November 18, 2020 11:37:51 AM CET   Success\nCustomize Db Parameters                  November 18, 2020 11:37:51 AM CET   November 18, 2020 11:37:52 AM CET   Success\nShutdown And Start database              November 18, 2020 11:37:52 AM CET   November 18, 2020 11:38:33 AM CET   Success\nCreate spfile for restore db             November 18, 2020 11:38:33 AM CET   November 18, 2020 11:38:34 AM CET   Success\nSet PFile Ownership                      November 18, 2020 11:38:34 AM CET   November 18, 2020 11:38:34 AM CET   Success\nShutdown And Mount database              November 18, 2020 11:38:34 AM CET   November 18, 2020 11:39:19 AM CET   Success\nEnable block change tracking             November 18, 2020 11:39:19 AM CET   November 18, 2020 11:39:27 AM CET   Success\nRegister Database taskflow               November 18, 2020 11:39:37 AM CET   November 18, 2020 11:42:11 AM CET   Success\nCreate SPFile in shared loc              November 18, 2020 11:39:37 AM CET   November 18, 2020 11:39:52 AM CET   Success\nDelete Local Spfile                      November 18, 2020 11:39:52 AM CET   November 18, 2020 11:39:52 AM CET   Success\nRegister DB with clusterware             November 18, 2020 11:39:52 AM CET   November 18, 2020 11:40:36 AM CET   Success\nSet SysPassword and Create PwFile        November 18, 2020 11:40:36 AM CET   November 18, 2020 11:40:38 AM CET   Success\nCreating pfile                           November 18, 2020 11:40:38 AM CET   November 18, 2020 11:40:38 AM CET   Success\nUpdating db env                          November 18, 2020 11:40:38 AM CET   November 18, 2020 11:40:39 AM CET   Success\nEnable DbSizing Template                 November 18, 2020 11:40:39 AM CET   November 18, 2020 11:41:25 AM CET   Success\nCreate tns entry                         November 18, 2020 11:41:25 AM CET   November 18, 2020 11:41:26 AM CET   Success\nRunning datapatch                        November 18, 2020 11:41:26 AM CET   November 18, 2020 11:41:27 AM CET   Success\nSet CPU pool                             November 18, 2020 11:41:27 AM CET   November 18, 2020 11:41:27 AM CET   Success\nReset Associated Networks                November 18, 2020 11:42:11 AM CET   November 18, 2020 11:42:13 AM CET   Success\nCopy Pwfile to Shared Storage            November 18, 2020 11:42:13 AM CET   November 18, 2020 11:42:17 AM CET   Success\n<\/pre>\n<h2>Copy the TrustStore file from standby server to primary<\/h2>\n<p>You need to copy a file from standby server to primary server. This file will only be used during initial Data Guard configuration:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">scp \/opt\/oracle\/dcs\/dcscli\/cacerts root@oda00770p.intranet.ch:\/opt\/oracle\/dcs\/dcscli\/cacerts.oda00769p<\/pre>\n<h2>Create a json file for Data Guard configuration<\/h2>\n<p>You can configure Data Guard in interactive mode, but it&#8217;s better to prepare a json file with all the parameters. You can later duplicate this json file for your other databases.<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">vi \/home\/oracle\/scripts\/DEMO_DTG.json\n\n{\n  \"name\": \"DEMO_DTG\",\n  \"protectionMode\": \"MAX_AVAILABILITY\",\n  \"enableFlashback\": true,\n  \"enableActiveDg\": false,\n  \"replicationGroups\": [\n    {\n      \"sourceEndPoints\": [\n        {\n          \"endpointType\": \"PRIMARY\",\n          \"hostName\": \"oda00770p.intranet.ch\",\n          \"listenerPort\": 1521,\n          \"databaseUniqueName\": \"DEMO_770P\",\n          \"ipAddress\": \"125.150.226.239\"\n        }\n      ],\n      \"targetEndPoints\": [\n        {\n          \"endpointType\": \"STANDBY\",\n          \"hostName\": \"oda00769p.intranet.ch\",\n          \"listenerPort\": 1521,\n          \"databaseUniqueName\": \"DEMO_769P\",\n          \"ipAddress\": \"125.150.226.237\"\n        }\n      ],\n      \"transportType\": \"SYNC\"\n    }\n  ]\n}\n<\/pre>\n<h2>Configure Data Guard with odacli<\/h2>\n<p>Now you can configure Data Guard with your json file as an input. You will be asked to manually give the standby server&#8217;s name, the password of the ODA webconsole, the path of the file you copied from standby to primary (the TrustStore file), the password of this TrustStore, and the primary SYS password. The password for the TrustStore can be found on standby server here:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">cat \/opt\/oracle\/dcs\/dcscli\/dcscli.conf  | grep TrustStorePassword\nTrustStorePassword=changeit\n\n\nodacli configure-dataguard -r \/home\/oracle\/scripts\/DEMO_DTG.json\nStandby site address: oda00769p.intranet.ch\nBUI username for Standby site (default: oda-admin):\nBUI password for Standby site:\nTrustStore path for Standby DCS server: \/opt\/oracle\/dcs\/dcscli\/cacerts.oda00769p\nTrustStore password for Standby DCS server:\nPrimary database syspassword:\nThe TrustStore of the Standby site should be removed unless it is necessary for some other purpose. Do you want to delete it? (Y\/N, default:Y): N\nAs a requirement, Standby database\u2019s SYS password will be set to Primary database\u2019s after Data Guard configuration. Are you sure you want to proceed with Data Guard configuration? (Y\/N): Y\n*******************************************************************************************\nConfigure Data Guard DEMO_DTG started\n*******************************************************************************************\nStep 1: Validate Data Guard configuration request (Primary site)\nDescription: Validate DG Config Creation\nJob ID: b666ee0c-225a-4228-aadf-64eb14ef2dff\nStarted November 18, 2020 15:29:54 PM CET\nValidate create Data Guard configuration request\nFinished November 18, 2020 15:29:58 PM CET\n*******************************************************************************************\nStep 2: Validate Data Guard configuration request (Standby site)\nDescription: Validate DG Config Creation\nJob ID: 5bca9b36-9920-4991-ba23-b45043af639c\nStarted November 18, 2020 15:29:58 PM CET\nValidate create Data Guard configuration request\nFinished November 18, 2020 15:30:00 PM CET\n*******************************************************************************************\nStep 3: Download password file from Primary database (Primary site)\nDescription: Download orapwd file from Primary database\nStarted November 18, 2020 15:30:00 PM CET\nPrepare orapwd file for Primary database DEMO\nFinished November 18, 2020 15:30:04 PM CET\n*******************************************************************************************\nStep 4: Upload password file to Standby database (Standby site)\nDescription: Upload orapwd file to Standby database\nStarted November 18, 2020 15:30:04 PM CET\nWrite orapwd file to Standby database DEMO\nFinished November 18, 2020 15:30:10 PM CET\n*******************************************************************************************\nStep 5: Configure Primary database (Primary site)\nDescription: DG Config service creation - ConfigurePrimary\nJob ID: de288bc9-579f-4a1c-8db4-0328d3cfcc1e\nStarted November 18, 2020 15:30:10 PM CET\nConfigure host DNS on primary env\nConfigure Data Guard Tns on primary env\nEnable Data Guard related Db parameters for primary env\nEnable force logging and archivelog mode in primary env\nEnable FlashBack\nConfigure network parameters for local listener on primary env\nRestart listener on primary env\nCreate services for primary db\nFinished November 18, 2020 15:30:24 PM CET\n*******************************************************************************************\nStep 6: Configure Standby database (Standby site)\nDescription: DG Config service creation - ConfigureStandby\nJob ID: 0b3dbf45-5023-4b5f-a978-a8a512e58c5f\nStarted November 18, 2020 15:30:24 PM CET\nConfigure Data Guard Tns on standby env\nConfigure host DNS on standby env\nClear Data Guard related Db parameters for standby env\nEnable Data Guard related Db parameters for standby env\nEnable force logging and archivelog mode in standby env\nPopulate standby database metadata\nConfigure network parameters for local listener on standby env\nReset Db sizing and hidden parameters for ODA best practice\nRestart Listener on standby env\nCreate services for standby db\nFinished November 18, 2020 15:31:42 PM CET\n*******************************************************************************************\nStep 7: Configure and enable Data Guard (Primary site)\nDescription: DG Config service creation - ConfigureDg\nJob ID: c89f51ef-7dc5-410b-8421-f7892353babc\nStarted November 18, 2020 15:31:42 PM CET\nConfig and enable Data Guard\nPost check Data Guard configuration\nFinished November 18, 2020 15:33:09 PM CET\n*******************************************************************************************\nStep 8: Enable Flashback (Standby site)\nDescription: DG Config service creation - EnableFlashback\nJob ID: cdd1899c-f7be-40e9-8bc1-0396acd62c20\nStarted November 18, 2020 15:33:09 PM CET\nEnable FlashBack\nFinished November 18, 2020 15:33:19 PM CET\n*******************************************************************************************\nStep 9: Re-enable Data Guard (Primary site)\nDescription: DG Config service creation - ReenableDg\nJob ID: 391fe101-b286-4664-85a7-09a9679a5027\nStarted November 18, 2020 15:33:19 PM CET\nPost check Data Guard configuration\nFinished November 18, 2020 15:33:21 PM CET\n*******************************************************************************************\nStep 10: Create Data Guard status (Primary site)\nDescription: DG Status service creation - NewDgconfig\nJob ID: 587f7f95-8a4f-4be6-aaa4-a1b6f4fdffa3\nStarted November 18, 2020 15:33:21 PM CET\nCreate Data Guard status\nFinished November 18, 2020 15:33:23 PM CET\n*******************************************************************************************\nStep 11: Create Data Guard status (Standby site)\nDescription: DG Status service creation - NewDgconfig\nJob ID: d1cee908-3333-4f1b-b91d-70ae9f13f7dd\nStarted November 18, 2020 15:33:23 PM CET\nCreate Data Guard status\nFinished November 18, 2020 15:33:25 PM CET\n*******************************************************************************************\nConfigure Data Guard DEMO_DTG completed\n*******************************************************************************************\n<\/pre>\n<p>Now configuration is done. Note that this configuration is not a unique job but an interactive process that will span multiple jobs on your 2 ODAs.<\/p>\n<h2>Is it really working?<\/h2>\n<p>It was my first question. Let&#8217;s check that:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">oracle@oda00770p:\/home\/oracle\/ [DEMO] dgmgrl \/\nDGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Nov 18 15:54:40 2020\nVersion 19.9.0.0.0\n\nCopyright (c) 1982, 2019, Oracle and\/or its affiliates.  All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nConnected to \"DEMO_770P\"\nConnected as SYSDG.\nDGMGRL&gt; show configuration;\n\nConfiguration - DEMO_DTG\n\n  Protection Mode: MaxAvailability\n  Members:\n  DEMO_770P - Primary database\n    DEMO_769P - Physical standby database\n\nFast-Start Failover:  Disabled\n\nConfiguration Status:\nSUCCESS   (status updated 19 seconds ago)\n\n\n\n\nDGMGRL&gt; show database 'DEMO_769P';\n\nDatabase - DEMO_769P\n\n  Role:               PHYSICAL STANDBY\n  Intended State:     APPLY-ON\n  Transport Lag:      0 seconds (computed 1 second ago)\n  Apply Lag:          0 seconds (computed 1 second ago)\n  Average Apply Rate: 0 Byte\/s\n  Real Time Query:    OFF\n  Instance(s):\n    DEMO\n\nDatabase Status:\nSUCCESS\n<\/pre>\n<p>Yes it&#8217;s working fine.<\/p>\n<h2>Switchover test<\/h2>\n<p>To make sure it&#8217;s working, let&#8217;s do a switchover from primary server. You first need to pick up the dataguardstatus id:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">odacli list-dataguardstatus\n\nID                                       Name                             Database Name        Role       Protection Mode    Apply Lag       Transport Lag   Apply Rate      Status\n---------------------------------------- -------------------------------- -------------------- ---------- ------------------ --------------- --------------- --------------- ----------\nd859288f-29fd-45a6-b1b3-c4bb8b52dfd7     DEMO_DTG                         DEMO                 Primary    MaxAvailability    12 seconds      0 seconds       528.00 KByte\/s  Configured\n\nodacli describe-dataguardstatus -i d859288f-29fd-45a6-b1b3-c4bb8b52dfd7\nDataguard Status details\n----------------------------------------------------------------\n                     ID: d859288f-29fd-45a6-b1b3-c4bb8b52dfd7\n                   Name: DEMO_DTG\n          Database Name: DEMO\n                   Role: Primary\n        Protection Mode: MaxAvailability\n              Apply Lag: 0 seconds\n          Transport Lag: 0 seconds\n             Apply Rate: 0 Byte\/s\n                 Status: Configured\n           Updated Time: November 18, 2020 3:56:37 PM CET\n\n\nodacli switchover-dataguard -i d859288f-29fd-45a6-b1b3-c4bb8b52dfd7 -u DEMO_769P\n\n\nodacli describe-job -i \"11d03cf3-d9a1-467b-8226-4363732161d5\"\n\nJob details\n----------------------------------------------------------------\n                     ID:  11d03cf3-d9a1-467b-8226-4363732161d5\n            Description:  Dataguard Lifecycle operation service - SwitchoverDg\n                 Status:  Success\n                Created:  November 18, 2020 3:59:18 PM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nPrecheck switchover DataGuard            November 18, 2020 3:59:18 PM CET    November 18, 2020 3:59:21 PM CET    Success\nSwitchover DataGuard                     November 18, 2020 3:59:21 PM CET    November 18, 2020 4:00:15 PM CET    Success\nPostcheck switchover DataGuard           November 18, 2020 4:00:15 PM CET    November 18, 2020 4:00:16 PM CET    Success\nCheck if DataGuard config is updated     November 18, 2020 4:00:16 PM CET    November 18, 2020 4:00:36 PM CET    Success\n<\/pre>\n<p>Switchover is OK. Let&#8217;s check with dgmgrl:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">oracle@oda00769p:\/home\/oracle\/ [DEMO] dgmgrl \/\nDGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Nov 18 16:16:14 2020\nVersion 19.9.0.0.0\n\nCopyright (c) 1982, 2019, Oracle and\/or its affiliates.  All rights reserved.\n\nWelcome to DGMGRL, type \"help\" for information.\nConnected to \"DEMO_769P\"\nConnected as SYSDG.\nDGMGRL&gt; show configuration;\n\nConfiguration - DEMO_DTG\n\n  Protection Mode: MaxAvailability\n  Members:\n  DEMO_769P - Primary database\n    DEMO_770P - Physical standby database\n\nFast-Start Failover:  Disabled\n\nConfiguration Status:\nSUCCESS   (status updated 37 seconds ago)\n\nDGMGRL&gt; show database 'DEMO_770P';\n\nDatabase - DEMO_770P\n\n  Role:               PHYSICAL STANDBY\n  Intended State:     APPLY-ON\n  Transport Lag:      0 seconds (computed 1 second ago)\n  Apply Lag:          0 seconds (computed 1 second ago)\n  Average Apply Rate: 14.00 KByte\/s\n  Real Time Query:    OFF\n  Instance(s):\n    DEMO\n\nDatabase Status:\nSUCCESS\n<\/pre>\n<p>Nice!<\/p>\n<h2>Switchback test<\/h2>\n<p>Now I&#8217;m quite confident for the switchback. Let&#8217;s try from standby server:<\/p>\n<pre class=\"brush: actionscript3; gutter: false; first-line: 1\">[root@oda00769p ~]# odacli list-dataguardstatus\n\nID                                       Name                             Database Name        Role       Protection Mode    Apply Lag       Transport Lag   Apply Rate      Status\n---------------------------------------- -------------------------------- -------------------- ---------- ------------------ --------------- --------------- --------------- ----------\nd859288f-29fd-45a6-b1b3-c4bb8b52dfd7     DEMO_DTG                         DEMO                 Standby    MaxAvailability    0 seconds       0 seconds       2.00 KByte\/s    Configured\n\n[root@oda00769p ~]# odacli describe-dataguardstatus -i d859288f-29fd-45a6-b1b3-c4bb8b52dfd7\nDataguard Status details\n----------------------------------------------------------------\n                     ID: d859288f-29fd-45a6-b1b3-c4bb8b52dfd7\n                   Name: DEMO_DTG\n          Database Name: DEMO\n                   Role: Primary\n        Protection Mode: MaxAvailability\n              Apply Lag: 0 seconds\n          Transport Lag: 0 seconds\n             Apply Rate: 14.00 KByte\/s\n                 Status: Configured\n           Updated Time: November 18, 2020 4:17:12 PM CET\n\n\n\n\n[root@oda00769p ~]#  odacli switchover-dataguard -i d859288f-29fd-45a6-b1b3-c4bb8b52dfd7 -u DEMO_770P\nPassword for target database:\n{\n  \"jobId\" : \"99bbbaff-4716-4d84-ada6-1da256a93242\",\n  \"status\" : \"Created\",\n  \"message\" : null,\n  \"reports\" : [ ],\n  \"createTimestamp\" : \"November 18, 2020 16:19:15 PM CET\",\n  \"resourceList\" : [ ],\n  \"description\" : \"Dataguard Lifecycle operation service - SwitchoverDg\",\n  \"updatedTime\" : \"November 18, 2020 16:19:15 PM CET\"\n}\nYou have new mail in \/var\/spool\/mail\/root\n[root@oda00769p ~]# odacli describe-job -i \"99bbbaff-4716-4d84-ada6-1da256a93242\"\n\n\nJob details\n----------------------------------------------------------------\n                     ID:  99bbbaff-4716-4d84-ada6-1da256a93242\n            Description:  Dataguard Lifecycle operation service - SwitchoverDg\n                 Status:  Success\n                Created:  November 18, 2020 4:19:15 PM CET\n                Message:\n\nTask Name                                Start Time                          End Time                            Status\n---------------------------------------- ----------------------------------- ----------------------------------- ----------\nPrecheck switchover DataGuard            November 18, 2020 4:19:15 PM CET    November 18, 2020 4:19:18 PM CET    Success\nSwitchover DataGuard                     November 18, 2020 4:19:18 PM CET    November 18, 2020 4:20:06 PM CET    Success\nPostcheck switchover DataGuard           November 18, 2020 4:20:06 PM CET    November 18, 2020 4:20:07 PM CET    Success\nCheck if DataGuard config is updated     November 18, 2020 4:20:07 PM CET    November 18, 2020 4:20:27 PM CET    Success\n<\/pre>\n<p>Yes it worked. Brilliant. You can also check with dgmgrl or by querying current_scn on standby database. Everything is fine regarding this feature.<\/p>\n<h2>Conclusion<\/h2>\n<p>The Data Guard configuration with odacli is a game changer. Compared to manual configuration, it&#8217;s much easier to do, it&#8217;s faster to deploy on all your databases and it&#8217;s as reliable because it&#8217;s just an interface on top of DGMGRL and RMAN. I highly recommend using this feature! Good job Oracle&#8217;s ODA team! You just made ODA even better.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction I always thought integration of Data Guard was a missing feature on Oracle Database Appliance. For sure, you can configure Data Guard manually as you do on a classic server, but as an appliance, ODA should have proposed an easier way for configuring that. After years of waiting for this feature, it&#8217;s now available, [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[2180,221,999,2043,790,79,2181,365,857,2144,1532,1533,1534,1535,1330,1331,1332,1697,1698,1699],"type_dbi":[],"class_list":["post-15189","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-active-guard","tag-data-guard","tag-dataguard","tag-dgmgrl","tag-disaster-recovery","tag-oda","tag-odacli-configure-dataguard","tag-oracle-database-appliance","tag-switchover","tag-x5-2ha","tag-x6-2ha","tag-x6-2l","tag-x6-2m","tag-x6-2s","tag-x7-2ha","tag-x7-2m","tag-x7-2s","tag-x8-2ha","tag-x8-2m","tag-x8-2s"],"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>Configure Data Guard with odacli on ODA - 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\/configure-data-guard-with-odacli-on-oda\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configure Data Guard with odacli on ODA\" \/>\n<meta property=\"og:description\" content=\"Introduction I always thought integration of Data Guard was a missing feature on Oracle Database Appliance. For sure, you can configure Data Guard manually as you do on a classic server, but as an appliance, ODA should have proposed an easier way for configuring that. After years of waiting for this feature, it&#8217;s now available, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-18T19:09:27+00:00\" \/>\n<meta name=\"author\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00e9r\u00f4me Dubar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 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\/configure-data-guard-with-odacli-on-oda\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\"},\"author\":{\"name\":\"J\u00e9r\u00f4me Dubar\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"headline\":\"Configure Data Guard with odacli on ODA\",\"datePublished\":\"2020-11-18T19:09:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\"},\"wordCount\":1233,\"commentCount\":3,\"keywords\":[\"active guard\",\"Data Guard\",\"DataGuard\",\"dgmgrl\",\"disaster recovery\",\"ODA\",\"odacli configure-dataguard\",\"Oracle database appliance\",\"switchover\",\"X5-2HA\",\"x6-2ha\",\"x6-2l\",\"x6-2m\",\"x6-2s\",\"X7-2HA\",\"X7-2M\",\"X7-2S\",\"x8-2ha\",\"x8-2m\",\"x8-2s\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\",\"name\":\"Configure Data Guard with odacli on ODA - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2020-11-18T19:09:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure Data Guard with odacli on ODA\"}]},{\"@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\/0fb4bbf128b4cda2f96d662dec2baedd\",\"name\":\"J\u00e9r\u00f4me Dubar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g\",\"caption\":\"J\u00e9r\u00f4me Dubar\"},\"description\":\"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Configure Data Guard with odacli on ODA - 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\/configure-data-guard-with-odacli-on-oda\/","og_locale":"en_US","og_type":"article","og_title":"Configure Data Guard with odacli on ODA","og_description":"Introduction I always thought integration of Data Guard was a missing feature on Oracle Database Appliance. For sure, you can configure Data Guard manually as you do on a classic server, but as an appliance, ODA should have proposed an easier way for configuring that. After years of waiting for this feature, it&#8217;s now available, [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/","og_site_name":"dbi Blog","article_published_time":"2020-11-18T19:09:27+00:00","author":"J\u00e9r\u00f4me Dubar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"J\u00e9r\u00f4me Dubar","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/"},"author":{"name":"J\u00e9r\u00f4me Dubar","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"headline":"Configure Data Guard with odacli on ODA","datePublished":"2020-11-18T19:09:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/"},"wordCount":1233,"commentCount":3,"keywords":["active guard","Data Guard","DataGuard","dgmgrl","disaster recovery","ODA","odacli configure-dataguard","Oracle database appliance","switchover","X5-2HA","x6-2ha","x6-2l","x6-2m","x6-2s","X7-2HA","X7-2M","X7-2S","x8-2ha","x8-2m","x8-2s"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/","url":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/","name":"Configure Data Guard with odacli on ODA - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2020-11-18T19:09:27+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0fb4bbf128b4cda2f96d662dec2baedd"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/configure-data-guard-with-odacli-on-oda\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Configure Data Guard with odacli on ODA"}]},{"@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\/0fb4bbf128b4cda2f96d662dec2baedd","name":"J\u00e9r\u00f4me Dubar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efaa5a7def0aa4cdaf49a470fb4a7641a3ea6e378ae1455096a0933f99f46d6b?s=96&d=mm&r=g","caption":"J\u00e9r\u00f4me Dubar"},"description":"J\u00e9r\u00f4me Dubar has more than 15 years of experience in the field of Information Technology. Ten years ago, he specialized in the Oracle Database technology. His expertise is focused on database architectures, high availability (RAC), disaster recovery (DataGuard), backups (RMAN), performance analysis and tuning (AWR\/statspack), migration, consolidation and appliances, especially ODA (his main projects during the last years). Prior to joining dbi services, J\u00e9r\u00f4me Dubar worked in a Franco-Belgian IT service company as Database team manager and main consultant for 7 years. He also worked for 5 years in a software editor company as technical consultant across France. He was also teaching Oracle Database lessons for 9 years. J\u00e9r\u00f4me Dubar holds a Computer Engineering degree from the Lille Sciences and Technologies university in northern France. His branch-related experience covers the public sector, retail, industry, banking, health, e-commerce and IT sectors.","url":"https:\/\/www.dbi-services.com\/blog\/author\/jerome-dubar\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15189","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\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=15189"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15189\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=15189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=15189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=15189"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=15189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}