{"id":1175,"date":"2014-12-03T10:08:15","date_gmt":"2014-12-03T13:08:15","guid":{"rendered":"http:\/\/www.dbarj.com.br\/?p=1175"},"modified":"2016-03-31T14:20:09","modified_gmt":"2016-03-31T17:20:09","slug":"oracle-data-guard-fast-start-failover-oracle-wallet","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/","title":{"rendered":"Oracle Data Guard Fast-Start Failover and Oracle Wallet"},"content":{"rendered":"<p>The <span style=\"color: #993300;\"><strong>Fast-Start Failover Observer<\/strong><\/span> is an <strong>Oracle Data Guard Broker<\/strong> component that allows the DBA automate failover tasks and have more peaceful nights of sleep. What a few DBA know, however, is that it can work in conjunction with the <strong>Oracle Wallet<\/strong>, so that you can remove the password of your scripts.<\/p>\n<p>Consider the scenario of a Data Guard with 2 hosts separated by cities:<\/p>\n<ol>\n<li><strong>Unique Name: aaasne \/\u00a0<\/strong><strong>IP: 10.2.200.2<\/strong><\/li>\n<li><strong>Unique Name: aaarjo \/\u00a0<\/strong><strong>IP: 10.1.100.1<\/strong><\/li>\n<\/ol>\n<p>Checking the connection settings:<\/p>\n<pre class=\"lang:ps decode:true\">DGMGRL&gt; show database verbose aaasne;\r\n\r\nDatabase - aaasne\r\n...\r\nProperties:\r\n...\r\nDGConnectIdentifier = 'aaasne'\r\nObserverConnectIdentifier = ''\r\nStaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaasne_DGMGRL)(INSTANCE_NAME=aaasne)(SERVER=DEDICATED)))'\r\n...\r\n\r\nDatabase Status:\r\nSUCCESS\r\n\r\nDGMGRL&gt; show database verbose aaarjo;\r\n\r\nDatabase - aaarjo\r\n...\r\nProperties:\r\n...\r\nDGConnectIdentifier = 'aaarjo'\r\nObserverConnectIdentifier = ''\r\nStaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.100.1)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaarjo_DGMGRL)(INSTANCE_NAME=aaarjo)(SERVER=DEDICATED)))'\r\n...\r\n\r\nDatabase Status:\r\nSUCCESS<\/pre>\n<p>The Observer will try to connect the databases using the <strong>ObserverConnectIdentifier<\/strong>.<\/p>\n<p>If this is null, it will use the <strong>DGConnectIdentifier<\/strong>. So our first task is to include these two entries in the <strong>tnsnames.ora<\/strong>\u00a0and in the <strong>Oracle Wallet<\/strong> of\u00a0Observer&#8217;s host.<\/p>\n<p>In this scenario, the client does not allow the user <span style=\"color: #800000;\"><strong>SYS<\/strong><\/span>\u00a0to be used and neither that the passwords remain saved in the script. I then created the user <span style=\"color: #0000ff;\"><strong>dgobserver<\/strong><\/span>, password <span style=\"color: #0000ff;\"><strong>abcd1234<\/strong><\/span> as sysdba and I replicated the pwfile in both environments to reflect this privilege.<\/p>\n<p>Including this user in Wallet:<\/p>\n<pre class=\"lang:ps decode:true\">[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -create\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter password:\r\nEnter password again:\r\n[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential aaarjo dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string1\r\n[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential aaasne dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string2<\/pre>\n<p>Let&#8217;s add in the <strong>sqlnet.ora<\/strong> the path to the Wallet:<\/p>\n<pre class=\"lang:ps decode:true\" title=\"sqlnet.ora\">WALLET_LOCATION =  (SOURCE =    (METHOD = FILE)    (METHOD_DATA =      (DIRECTORY = \/home\/oracle\/wallet_dir)    )  )\r\nSQLNET.WALLET_OVERRIDE = TRUE<\/pre>\n<p>After that, it is already possible to start the Observer without receiving error:<\/p>\n<pre class=\"lang:ps decode:true\">DGMGRL&gt; connect \/@aaarjo\r\nConnected.\r\nDGMGRL&gt; start observer;\r\nObserver started<\/pre>\n<p>We will simulate an error running a &#8220;<em>shutdown abort&#8221;<\/em> in the main instance at the moment (<strong>aaasne<\/strong>):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">[oracle@aaasneserver ~]$ sqlplus \/ as sysdba\r\n\r\nSQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 2 16:51:21 2014\r\n\r\nCopyright (c) 1982, 2013, Oracle.  All rights reserved.\r\n\r\nEnter password:\r\n\r\nConnected to:\r\nOracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production\r\nWith the Partitioning, Oracle Label Security, OLAP, Data Mining,\r\nOracle Database Vault and Real Application Testing options\r\n\r\nSQL&gt; shutdown abort;\r\nORACLE instance shut down.\r\nSQL&gt;<\/pre>\n<p>Now watching the Observer log:<\/p>\n<pre class=\"lang:ps decode:true \">DGMGRL&gt; start observer;\r\nObserver started\r\n\r\n16:52:06.96  Tuesday, December 02, 2014\r\nInitiating Fast-Start Failover to database \"aaarjo\"...\r\nPerforming failover NOW, please wait...\r\nFailover succeeded, new primary is \"aaarjo\"\r\n16:52:18.96  Tuesday, December 02, 2014<\/pre>\n<p>The Observer has successfully made the transition from <strong>aaasne<\/strong> making <strong>aaarjo<\/strong> as the primary database.<\/p>\n<p>Starting the database again in another session:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">[oracle@aaasneserver ~]$ sqlplus \/ as sysdba\r\n\r\nSQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 2 16:55:24 2014\r\n\r\nCopyright (c) 1982, 2013, Oracle.  All rights reserved.\r\n\r\nEnter password:\r\nConnected to an idle instance.\r\n\r\nSQL&gt; startup;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 1069252608 bytes\r\nFixed Size                  2188408 bytes\r\nVariable Size             700455816 bytes\r\nDatabase Buffers          356515840 bytes\r\nRedo Buffers               10092544 bytes\r\nDatabase mounted.\r\nORA-16649: possible failover to another database prevents this database from\r\nbeing opened\r\n\r\n\r\nSQL&gt;<\/pre>\n<p>Though, analyzing the Observer log, we realize that the automatically REINSTATE process fails:<\/p>\n<pre class=\"lang:ps decode:true\">16:56:00.37  Tuesday, December 02, 2014\r\nInitiating reinstatement for database \"aaasne\"...\r\nReinstating database \"aaasne\", please wait...\r\nOperation requires shutdown of instance \"aaasne\" on database \"aaasne\"\r\nShutting down instance \"aaasne\"...\r\nORA-01017: invalid username\/password; logon denied\r\n\r\nWarning: You are no longer connected to ORACLE.\r\n\r\nPlease complete the following steps and reissue the REINSTATE command:\r\n        shut down instance \"aaasne\" of database \"aaasne\"\r\n        start up and mount instance \"aaasne\" of database \"aaasne\"\r\n\r\n16:56:22.21  Tuesday, December 02, 2014<\/pre>\n<p>The problem is that during the <strong>REINSTATE<\/strong> phase, Oracle uses the <strong>StaticConnectIdentifier<\/strong> as connection. This can be seen when we simulate again the reinstate with the Observer in debug mode (<strong>&#8220;<em>dgmgrl -debug&#8221;<\/em><\/strong>):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[W000 12\/02 17:22:24.33] Ping the primary database.\r\n[W000 12\/02 17:22:24.33] Sending command PING to thread P004\r\n[P004 12\/02 17:22:24.33] Executing PING command.\r\n[P004 12\/02 17:22:24.33] {BEGIN dbms_drs.Ping(25640, 248, 0, 194, 0, :version, :flags, :focond, :status); END;}\r\n[P004 12\/02 17:22:24.34] Ping returned REINSTATING\r\n[W000 12\/02 17:22:24.34] Command PING to thread P004 returned status=0\r\n[W000 12\/02 17:22:27.34] Ping the primary database.\r\n[W000 12\/02 17:22:27.34] Sending command PING to thread P004\r\n[P004 12\/02 17:22:27.34] Executing PING command.\r\n[P004 12\/02 17:22:27.34] {BEGIN dbms_drs.Ping(25640, 248, 0, 194, 0, :version, :flags, :focond, :status); END;}\r\nOperation requires shutdown of instance \"aaasne\" on database \"aaasne\"\r\nShutting down instance \"aaasne\"...\r\n[S005 12\/02 17:22:27.34] Connecting to database using (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaasne_DGMGRL)(INSTANCE_NAME=aaasne)(SERVER=DEDICATED))).\r\n[P004 12\/02 17:22:27.36] Ping returned AFO_SUCCESS\r\n[W000 12\/02 17:22:27.36] Command PING to thread P004 returned status=0\r\nORA-01017: invalid username\/password; logon denied\r\n\r\nWarning: You are no longer connected to ORACLE.\r\n\r\nPlease complete the following steps and reissue the REINSTATE command:\r\n        shut down instance \"aaasne\" of database \"aaasne\"\r\n        start up and mount instance \"aaasne\" of database \"aaasne\"\r\n\r\n17:22:28.44  Tuesday, December 02, 2014\r\n[W000 12\/02 17:22:29.36] Command REINSTATE to thread S005 returned status=16661\r\n[W000 12\/02 17:22:29.36] Failed to reinstate database aaasne. Will retry later<\/pre>\n<p>In this case, the Observer tried to connect using the service:<\/p>\n<ul>\n<li>&#8216;<strong>(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaasne_DGMGRL)(INSTANCE_NAME=aaasne)(SERVER=DEDICATED)))<\/strong>&#8216;.<\/li>\n<\/ul>\n<p>To allow the REINSTATE process to work properly, it will be necessary to add to the Wallet the connection strings represented by <strong>StaticConnectIdentifier<\/strong> of both databases:<\/p>\n<pre class=\"lang:ps decode:true\">[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.100.1)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaarjo_dgmgrl)(INSTANCE_NAME=aaarjo)(SERVER=DEDICATED)))' dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string3\r\n[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaasne_dgmgrl)(INSTANCE_NAME=aaasne)(SERVER=DEDICATED)))' dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string4\r\n[oracle@fsfoserver ~]$<\/pre>\n<p>Testing again the REINSTATE automatic process:<\/p>\n<pre class=\"lang:ps decode:true\">DGMGRL&gt; start observer;\r\nObserver started\r\n\r\n17:36:42.59  Tuesday, December 02, 2014\r\nInitiating Fast-Start Failover to database \"aaarjo\"...\r\nPerforming failover NOW, please wait...\r\nFailover succeeded, new primary is \"aaarjo\"\r\n17:36:54.36  Tuesday, December 02, 2014\r\n\r\n17:37:29.72  Tuesday, December 02, 2014\r\nInitiating reinstatement for database \"aaasne\"...\r\nReinstating database \"aaasne\", please wait...\r\nOperation requires shutdown of instance \"aaasne\" on database \"aaasne\"\r\nShutting down instance \"aaasne\"...\r\nORA-01109: database not open\r\n\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\nOperation requires startup of instance \"aaasne\" on database \"aaasne\"\r\nStarting instance \"aaasne\"...\r\nORACLE instance started.\r\nDatabase mounted.\r\nContinuing to reinstate database \"aaasne\" ...\r\nReinstatement of database \"aaasne\" succeeded\r\n17:38:50.59  Tuesday, December 02, 2014\r\n<\/pre>\n<p>Okay, we will not have problems with the FSFO Observer. So far, we have achieved that this process works properly in unattended mode in conjunction with Oracle Wallet.<\/p>\n<p>However, what if we try to manually perform an <strong>switchover<\/strong> between these two database?<\/p>\n<pre class=\"lang:ps decode:true \">[oracle@fsfoserver ~]$ dgmgrl\r\nDGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production\r\n\r\nCopyright (c) 2000, 2009, Oracle. All rights reserved.\r\n\r\nWelcome to DGMGRL, type \"help\" for information.\r\nDGMGRL&gt; connect \/@aaarjo\r\nConnected.\r\nDGMGRL&gt; show configuration;\r\n\r\nConfiguration - timdbubb\r\n\r\n  Protection Mode: MaxAvailability\r\n  Databases:\r\n    aaarjo - Primary database\r\n    aaasne - (*) Physical standby database\r\n\r\nFast-Start Failover: ENABLED\r\n\r\nConfiguration Status:\r\nSUCCESS\r\n\r\nDGMGRL&gt; switchover to aaasne;\r\nPerforming switchover NOW, please wait...\r\nOperation requires a connection to instance \"aaasne\" on database \"aaasne\"\r\nConnecting to instance \"aaasne\"...\r\nUnable to connect to database\r\nORA-12545: Connect failed because target host or object does not exist\r\n\r\nFailed.\r\nWarning: You are no longer connected to ORACLE.\r\n\r\n        connect to instance \"aaasne\" of database \"aaasne\"\r\n\r\nDGMGRL&gt;<\/pre>\n<p>Note that even creating before the 2 entries that use the static listener, we had a new problem. Let&#8217;s analyze it in debug mode:<\/p>\n<pre class=\"lang:ps decode:true\">[oracle@fsfoserver ~]$ dgmgrl -debug\r\nDGMGRL for Linux: Version 11.2.0.4.0 - 64bit Production\r\n\r\nCopyright (c) 2000, 2009, Oracle. All rights reserved.\r\n\r\nWelcome to DGMGRL, type \"help\" for information.\r\nDGMGRL&gt; connect \/@aaarjo\r\n[W000 12\/02 18:27:29.12] Connecting to database using aaarjo.\r\n[W000 12\/02 18:27:29.49] Checking broker version [BEGIN :version := dbms_drs.dg_broker_info('VERSION'); END;].\r\n[W000 12\/02 18:27:29.50] Broker version is '11.2.0.4.0'\r\nConnected.\r\nDGMGRL&gt; switchover to aaasne;\r\nPerforming switchover NOW, please wait...\r\nOperation requires a connection to instance \"aaasne\" on database \"aaasne\"\r\nConnecting to instance \"aaasne\"...\r\n[W000 12\/02 18:27:35.86] Connecting to database using (DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaasne_DGB)(INSTANCE_NAME=aaasne)(SERVER=dedicated))).\r\nORA-01017: invalid username\/password; logon denied\r\n\r\nWarning: You are no longer connected to ORACLE.\r\n\r\n        connect to instance \"aaasne\" of database \"aaasne\"\r\n\r\nDGMGRL&gt;<\/pre>\n<p>By the logs, we can see that in the process of switchover, the Broker tries to use another service:<\/p>\n<ul>\n<li>&#8216;<strong>(DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaasne_DGB)(INSTANCE_NAME=aaasne)(SERVER=dedicated)))<\/strong>&#8216;.<\/li>\n<\/ul>\n<p>This service is derived from the one set in the <strong>DGConnectIdentifier<\/strong>, concatenating &#8220;<strong>_DGB<\/strong>&#8221; to SERVICE_NAME. Therefore, you must also we include this string of both servers in Wallet:<\/p>\n<pre class=\"lang:ps decode:true\">[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential '(DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.100.1)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaarjo_dgb)(INSTANCE_NAME=aaarjo)(SERVER=dedicated)))' dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string5\r\n[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -createCredential '(DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaasne_dgb)(INSTANCE_NAME=aaasne)(SERVER=dedicated)))' dgobserver abcd1234\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nCreate credential oracle.security.client.connect_string6\r\n[oracle@fsfoserver ~]$<\/pre>\n<p>And testing again:<\/p>\n<pre class=\"lang:ps decode:true \">DGMGRL&gt; switchover to aaasne;\r\nPerforming switchover NOW, please wait...\r\nOperation requires a connection to instance \"aaasne\" on database \"aaasne\"\r\nConnecting to instance \"aaasne\"...\r\nConnected.\r\nNew primary database \"aaasne\" is opening...\r\nOperation requires startup of instance \"aaarjo\" on database \"aaarjo\"\r\nStarting instance \"aaarjo\"...\r\nORACLE instance started.\r\nDatabase mounted.\r\nDatabase opened.\r\nSwitchover succeeded, new primary is \"aaasne\"\r\nDGMGRL&gt;<\/pre>\n<p>Agora o Observer est\u00e1 livre para executar as todas as tarefas utilizando o <strong>Oracle Wallet<\/strong>, al\u00e9m de ser poss\u00edvel efetuar opera\u00e7\u00f5es manuais.<br \/>\nNow the Observer is free to perform all tasks using the <strong>Oracle Wallet<\/strong>, as well as being possible to perform manual operations.<\/p>\n<p>Finally, the Wallet was as follows, with 3 entries for each host:<\/p>\n<pre class=\"lang:ps decode:true\">[oracle@fsfoserver ~]$ mkstore -wrl .\/wallet_dir\/ -listCredential\r\nOracle Secret Store Tool : Version 11.2.0.4.0 - Production\r\nCopyright (c) 2004, 2013, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nEnter wallet password:\r\nList credential (index: connect_string username)\r\n6: (DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaasne_dgb)(INSTANCE_NAME=aaasne)(SERVER=dedicated))) dgobserver\r\n5: (DESCRIPTION=(SDU=32767)(SEND_BUF_SIZE=160000)(RECV_BUF_SIZE=160000)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.100.1)(PORT=4378)))(CONNECT_DATA=(SERVICE_NAME=aaarjo_dgb)(INSTANCE_NAME=aaarjo)(SERVER=dedicated))) dgobserver\r\n4: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.200.2)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaasne_dgmgrl)(INSTANCE_NAME=aaasne)(SERVER=DEDICATED))) dgobserver\r\n3: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.1.100.1)(PORT=4378))(CONNECT_DATA=(SERVICE_NAME=aaarjo_dgmgrl)(INSTANCE_NAME=aaarjo)(SERVER=DEDICATED))) dgobserver\r\n2: aaasne dgobserver\r\n1: aaarjo dgobserver\r\n[oracle@fsfoserver ~]$<\/pre>\n<b>Have you enjoyed? Please leave a comment or give a \ud83d\udc4d!<\/b>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-1175 jlk' href='javascript:void(0)' data-task='like' data-post_id='1175' data-nonce='de4404f630' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.dbarj.com.br\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-1175 lc'>+6<\/span><\/a><\/div><\/div> <div class='status-1175 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>The Fast-Start Failover Observer is an Oracle Data Guard Broker component that allows the DBA automate failover tasks and have more peaceful nights of sleep. What a few DBA know, however, is that it can work in conjunction with the Oracle Wallet, so that you can remove the password of your scripts. Consider the scenario &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,20],"tags":[],"class_list":["post-1175","post","type-post","status-publish","format-standard","hentry","category-data-guard-en","category-security-en","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Oracle Data Guard Fast-Start Failover and Oracle Wallet - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"How to setup the Oracle Data Guard to work with Oracle Wallet.\" \/>\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.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Oracle Data Guard Fast-Start Failover and Oracle Wallet\",\"datePublished\":\"2014-12-03T13:08:15+00:00\",\"dateModified\":\"2016-03-31T17:20:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/\"},\"wordCount\":557,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Data Guard\",\"Database Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/\",\"name\":\"Oracle Data Guard Fast-Start Failover and Oracle Wallet - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\"},\"datePublished\":\"2014-12-03T13:08:15+00:00\",\"dateModified\":\"2016-03-31T17:20:09+00:00\",\"description\":\"How to setup the Oracle Data Guard to work with Oracle Wallet.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/12\\\/oracle-data-guard-fast-start-failover-oracle-wallet\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle Data Guard Fast-Start Failover and Oracle Wallet\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"width\":712,\"height\":712,\"caption\":\"DBA RJ\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle Data Guard Fast-Start Failover and Oracle Wallet - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"How to setup the Oracle Data Guard to work with Oracle Wallet.","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.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/","twitter_misc":{"Written by":"DBA RJ","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Oracle Data Guard Fast-Start Failover and Oracle Wallet","datePublished":"2014-12-03T13:08:15+00:00","dateModified":"2016-03-31T17:20:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/"},"wordCount":557,"commentCount":4,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Data Guard","Database Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/","url":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/","name":"Oracle Data Guard Fast-Start Failover and Oracle Wallet - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/#website"},"datePublished":"2014-12-03T13:08:15+00:00","dateModified":"2016-03-31T17:20:09+00:00","description":"How to setup the Oracle Data Guard to work with Oracle Wallet.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/12\/oracle-data-guard-fast-start-failover-oracle-wallet\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Oracle Data Guard Fast-Start Failover and Oracle Wallet"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/en\/#website","url":"https:\/\/www.dbarj.com.br\/en\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","width":712,"height":712,"caption":"DBA RJ"},"logo":{"@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png"}}]}},"_links":{"self":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/1175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/comments?post=1175"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/1175\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/media?parent=1175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/categories?post=1175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/tags?post=1175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}