{"id":15506,"date":"2020-05-14T16:38:49","date_gmt":"2020-05-14T16:38:49","guid":{"rendered":"https:\/\/dbtut.com\/?p=15506"},"modified":"2020-05-15T02:07:27","modified_gmt":"2020-05-15T02:07:27","slug":"how-to-convert-physical-standby-database-to-logical-standby-database","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/","title":{"rendered":"How To Convert Physical Standby Database to Logical Standby Database"},"content":{"rendered":"<p>Logical Standby Database does not support replication of all data types, tables, commands and PL \/ SQL Packages. Therefore, before converting a Physical Standby database to Logical Standby, a series of checks must be made.<\/p>\n<h2>Pre Checks Before Converting Physical Standby Database to Logical Standby Database<\/h2>\n<p>Since the Redo Flow is from the Primary side to the Standby side, the controls will be made on the Primary side.<\/p>\n<h3>PreCheck1:<\/h3>\n<p>Internal Schemas that will not be replicated are queried. If the tables in these Schemes are created by Oracle, the same information is reflected to the Logical Standby side, but if it is created by the User, the data in those tables is not replicated to the Logical Standby side.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1]\nSQL&gt; select owner from dba_logstdby_skip where statement_opt='INTERNAL SCHEMA' order by owner;\n\nOWNER\n------------------------------\nANONYMOUS\nAPEX_030200\nAPPQOSSYS\nBI\nCTXSYS\nDBSNMP\nDIP\nEXFSYS\nMDSYS\nMGMT_VIEW\nOLAPSYS\n\nOWNER\n------------------------------\nORACLE_OCM\nORDDATA\nORDPLUGINS\nORDSYS\nOUTLN\nOWBSYS\nSI_INFORMTN_SCHEMA\nSYS\nSYSMAN\nSYSTEM\nWMSYS\n\nOWNER\n------------------------------\nXDB\nXS$NULL\n\n24 rows selected.\n<\/pre>\n<p>The tables of these users can also be seen as follows.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1]\nSQL&gt; select owner, table_name from dba_tables where owner in (select owner from dba_logstdby_skip where statement_opt='INTERNAL SCHEMA');\n\n...\nOWNER                          TABLE_NAME\n------------------------------ ------------------------------\nDBSNMP                         MGMT_LATEST\nDBSNMP                         MGMT_CAPTURE_SQL\nDBSNMP                         MGMT_CAPTURE\nDBSNMP                         MGMT_BASELINE_SQL\n\n2809 rows selected.<\/pre>\n<h3>PreCheck2:<\/h3>\n<p>Tables that are not supported by Log Apply Services are queried.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1]\nSQL&gt; SELECT DISTINCT OWNER,TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED ORDER BY OWNER,TABLE_NAME;\n\nOWNER                          TABLE_NAME\n------------------------------ ------------------------------\nIX                             AQ$_ORDERS_QUEUETABLE_G\nIX                             AQ$_ORDERS_QUEUETABLE_H\nIX                             AQ$_ORDERS_QUEUETABLE_I\nIX                             AQ$_ORDERS_QUEUETABLE_L\nIX                             AQ$_ORDERS_QUEUETABLE_S\nIX                             AQ$_ORDERS_QUEUETABLE_T\nIX                             AQ$_STREAMS_QUEUE_TABLE_C\nIX                             AQ$_STREAMS_QUEUE_TABLE_G\nIX                             AQ$_STREAMS_QUEUE_TABLE_H\nIX                             AQ$_STREAMS_QUEUE_TABLE_I\nIX                             AQ$_STREAMS_QUEUE_TABLE_L\n\nOWNER                          TABLE_NAME\n------------------------------ ------------------------------\nIX                             AQ$_STREAMS_QUEUE_TABLE_S\nIX                             AQ$_STREAMS_QUEUE_TABLE_T\nIX                             ORDERS_QUEUETABLE\nIX                             STREAMS_QUEUE_TABLE\nOE                             CATEGORIES_TAB\nOE                             CUSTOMERS\nOE                             PURCHASEORDER\nOE                             WAREHOUSES\nPM                             ONLINE_MEDIA\nPM                             PRINT_MEDIA\nSH                             DIMENSION_EXCEPTIONS\n\n22 rows selected.<\/pre>\n<h3>PreCheck3:<\/h3>\n<p>Tables and columns whose data types are not supported are queried. DML operations performed in these tables are not replicated to the Logical Standby side and no error messages are returned.<\/p>\n<pre class=\"lang:default decode:true \">[Primary-1]\nSQL&gt; set linesize 500\nSQL&gt; column DATA_TYPE format a20\nSQL&gt; SELECT table_name, column_name, data_type FROM dba_logstdby_unsupported ORDER BY OWNER,TABLE_NAME;\n\n...\nTABLE_NAME                     COLUMN_NAME                    DATA_TYPE\n------------------------------ ------------------------------ --------------------\nONLINE_MEDIA                   PRODUCT_VIDEO                  OBJECT\nONLINE_MEDIA                   PRODUCT_PHOTO                  OBJECT\nONLINE_MEDIA                   PRODUCT_TESTIMONIALS           OBJECT\nONLINE_MEDIA                   PRODUCT_THUMBNAIL              OBJECT\nPRINT_MEDIA                    AD_HEADER                      OBJECT\nPRINT_MEDIA                    AD_GRAPHIC                     BFILE\nPRINT_MEDIA                    AD_TEXTDOCS_NTAB               NESTED TABLE\nDIMENSION_EXCEPTIONS           BAD_ROWID                      ROWID\n\n190 rows selected.<\/pre>\n<h3>PreCheck4:<\/h3>\n<p>Commands that will not be executed on the Logical Standby when run on the primary side must be known before the Convert operation takes place. These commands need to be run separately in Logical Standby.<\/p>\n<ul>\n<li>ALTER DATABASE<\/li>\n<li>ALTER MATERIALIZED VIEW<\/li>\n<li>ALTER MATERIALIZED VIEW LOG<\/li>\n<li>ALTER SESSION<\/li>\n<li>ALTER SYSTEM<\/li>\n<li>EXPLAIN<\/li>\n<li>LOCK TABLE<\/li>\n<li>SET CONSTRAINTS<\/li>\n<li>SET ROLE<\/li>\n<li>SET TRANSACTION<\/li>\n<li>CREATE CONTROL FILE<\/li>\n<li>CREATE DATABASE<\/li>\n<li>CREATE DATABASE LINK<\/li>\n<li>CREATE PFILE FROM SPFILE<\/li>\n<li>CREATE MATERIALIZED VIEW<\/li>\n<li>CREATE MATERIALIZED VIEW LOG<\/li>\n<li>CREATE SCHEMA AUTHORIZATION<\/li>\n<li>CREATE SPFILE FROM PFILE<\/li>\n<li>DROP DATABASE LINK<\/li>\n<li>DROP MATERIALIZED VIEW<\/li>\n<li>DROP MATERIALIZED VIEW LOG<\/li>\n<\/ul>\n<h3>PreCheck5<\/h3>\n<p>The following PL\/SQL packages that can change System Metadata or create a record for Archive Logs are also not supported in Logical Standby.<\/p>\n<ul>\n<li>DBMS_JAVA<\/li>\n<li>DBMS_REGISTRY<\/li>\n<li>DBMS_ALERT<\/li>\n<li>DBMS_SPACE_ADMIN<\/li>\n<li>DBMS_REFRESH<\/li>\n<li>DBMS_REDEFINITION<\/li>\n<li>DBMS_AQ<\/li>\n<\/ul>\n<h3>PreCheck6:<\/h3>\n<p>Since rowids will not be the same on primary and logical sides, a healthy replication is done with primary keys or unique indexes. For this reason, columns without Primary ID and Unique index should also be known and precautions should be taken.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1]\nSQL&gt; column owner format a10\nSQL&gt; column bad_column format a11\nSQL&gt; SELECT * FROM dba_logstdby_not_unique;\n\nOWNER      TABLE_NAME                     BAD_COLUMN\n---------- ------------------------------ -----------\nSCOTT      BONUS                          N\nSCOTT      SALGRADE                       N\nSH         COSTS                          N\nSH         SALES                          N\nSH         SUPPLEMENTARY_DEMOGRAPHICS     N\nTEST       DBA_TABLES                     N\nTEST       EMPLOYEES_YEDEK                N\nTEST       COUNTRIES_YEDEK                N\nTEST       REGIONS_YEDEK                  N\n\n9 rows selected.\n<\/pre>\n<p>In the BAD_COLUMN column;<\/p>\n<p>If the values in the columns other than &#8220;Y: LOB&#8221; are the same for 2 rows, the transfer to the Logical side cannot be performed properly and SQL Apply stops.<\/p>\n<p>Although there is no obstacle for &#8220;N: SQL Apply&#8221; to work, it is recommended by Oracle to put Primary Key or Unique Index in these tables in order to make replication efficiently.<\/p>\n<p>Also, adding &#8220;DISABLE RELY Constraint&#8221; to these tables can be considered. With the column information I will give when defining RELY Constraint, I want to say that there is a unique here to Oracle, trust me. Thus, Oracle does not make a full table scan and makes the necessary changes in the first record it finds.<\/p>\n<h3>How To Add RELY DISABLE CONSTRAINT<\/h3>\n<p>a)Tables that are not unique are queried.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1] SQL&gt; select * from dba_logstdby_not_unique;\n\nOWNER                          TABLE_NAME                     B\n------------------------------ ------------------------------ -\nSCOTT                          BONUS                          N\nSCOTT                          SALGRADE                       N\nSH                             COSTS                          N\nSH                             SALES                          N\nSH                             SUPPLEMENTARY_DEMOGRAPHICS     N\nSH                             TOAD_PLAN_TABLE                Y\nINSPIRIT                       STANDBY_STATS                  N\nINSPIRIT                       LOG_SWITCH                     N\nIPTVMWC                        COD_HISTORY                    N\nIPTVMWC                        ACCOUNT_TO_FAVOURITE_COD       N\nIPTVMWC                        PURCHASED_COD_HISTORY          N\n\nOWNER                          TABLE_NAME                     B\n------------------------------ ------------------------------ -\nIPTVMWC                        COD_TO_CODGROUP                N\nIPTVMWC                        CHANNEL_GENRE_DEFINITIONS      N\nIPTVMWC                        COD_STAT                       N\nIPTVMWC                        EPG_PROVIDER_CHANNEL           N\nIPTVMWC                        LATEST_FM_VERSION              N\nIPTVMWC                        PPV_PROGRAM_CATEGORY_RELATION  N\nIPTVMWC                        TSTV_PROGRAM_CATEGORY_RELATION N\nTEST                           JOB_HISTORY_YEDEK              N\nTEST                           COUNTRIES_YEDEK                N\nTEST                           EMPLOYEES_YEDEK                N\nTEST                           DEPARTMENTS_YEDEK              N\n\n22 rows selected.<\/pre>\n<p>b) Add RELY DISABLE constraint.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1] SQL&gt; alter table test.employees_yedek add primary key  (employee_id, last_name) rely disable;\n\nTable altered.<\/pre>\n<p>c) Query non-unique tables again.<\/p>\n<pre class=\"lang:default decode:true\">[Primary-1] SQL&gt; select * from dba_logstdby_not_unique;\n\nOWNER                          TABLE_NAME                     B\n------------------------------ ------------------------------ -\nSCOTT                          BONUS                          N\nSCOTT                          SALGRADE                       N\nSH                             COSTS                          N\nSH                             SALES                          N\nSH                             SUPPLEMENTARY_DEMOGRAPHICS     N\nSH                             TOAD_PLAN_TABLE                Y\nINSPIRIT                       STANDBY_STATS                  N\nINSPIRIT                       LOG_SWITCH                     N\nIPTVMWC                        COD_HISTORY                    N\nIPTVMWC                        ACCOUNT_TO_FAVOURITE_COD       N\nIPTVMWC                        PURCHASED_COD_HISTORY          N\n\nOWNER                          TABLE_NAME                     B\n------------------------------ ------------------------------ -\nIPTVMWC                        COD_TO_CODGROUP                N\nIPTVMWC                        CHANNEL_GENRE_DEFINITIONS      N\nIPTVMWC                        COD_STAT                       N\nIPTVMWC                        EPG_PROVIDER_CHANNEL           N\nIPTVMWC                        LATEST_FM_VERSION              N\nIPTVMWC                        PPV_PROGRAM_CATEGORY_RELATION  N\nIPTVMWC                        TSTV_PROGRAM_CATEGORY_RELATION N\nTEST                           JOB_HISTORY_YEDEK              N\nTEST                           COUNTRIES_YEDEK                N\nTEST                           DEPARTMENTS_YEDEK              N\n\t\t\n21 rows selected.<\/pre>\n<h2>Convert Physical Standby Database to Logical Standby Database<\/h2>\n<p>Logical Standby Database cannot be created directly. Physical Standby Database must be installed and then this Database must be converted to Logical.<\/p>\n<p>A Physical Standby Database is converted to Logical as follows.<\/p>\n<h3>Step1:<\/h3>\n<p>Install Physical Standby Database. After installation, tnsnames.ora, oracle and grid bash_profile, listener.ora, pfile files of Physical Standby Database are as follows.<\/p>\n<pre class=\"lang:default decode:true \">#ORACLE BASH_PROFILE\n\n[Logical-1]\n\n[oracle@logical1 ~]$ cat .bash_profile\n# .bash_profile\n\n# Get the aliases and functions\nif [ -f ~\/.bashrc ]; then\n        . ~\/.bashrc\nfi\n\n# User specific environment and startup programs\n\nPATH=$PATH:$HOME\/bin\n\nexport PATH\n\nTMP=\/tmp; export TMP\nTMPDIR=$TMP; export TMPDIR\n\nORACLE_UNQNAME=logical; export ORACLE_UNQNAME\nORACLE_BASE=\/u01\/app\/oracle; export ORACLE_BASE\nGRID_HOME=\/u01\/11.2.0\/grid; export GRID_HOME\nDB_HOME=$ORACLE_BASE\/product\/11.2.0\/db_1; export DB_HOME\nORACLE_HOME=$DB_HOME; export ORACLE_HOME\nORACLE_SID=primary1; export ORACLE_SID\nORACLE_TERM=xterm; export ORACLE_TERM\nBASE_PATH=\/usr\/sbin:$PATH; export BASE_PATH\nPATH=$ORACLE_HOME\/bin:$GRID_HOME\/bin:$BASE_PATH; export PATH\nLD_LIBRARY_PATH=$ORACLE_HOME\/lib:\/lib:\/usr\/lib; export LD_LIBRARY_PATH\nCLASSPATH=$ORACLE_HOME\/JRE:$ORACLE_HOME\/jlib:$ORACLE_HOME\/rdbms\/jlib; export CLASSPATH\n\nulimit -u 65536\nulimit -n 65536\n\nalias log='cd \/u01\/app\/oracle\/diag\/rdbms\/logical\/logical1\/trace; pwd'\nalias oh='cd $ORACLE_HOME; pwd'\n<\/pre>\n<pre class=\"lang:default decode:true \">[Logical-2]\n\n[oracle@logical2 ~]$ cat .bash_profile\n# .bash_profile\n\n# Get the aliases and functions\nif [ -f ~\/.bashrc ]; then\n        . ~\/.bashrc\nfi\n\n# User specific environment and startup programs\n\nPATH=$PATH:$HOME\/bin\n\nexport PATH\n\nTMP=\/tmp; export TMP\nTMPDIR=$TMP; export TMPDIR\n\nORACLE_UNQNAME=logical; export ORACLE_UNQNAME\nORACLE_BASE=\/u01\/app\/oracle; export ORACLE_BASE\nGRID_HOME=\/u01\/11.2.0\/grid; export GRID_HOME\nDB_HOME=$ORACLE_BASE\/product\/11.2.0\/db_1; export DB_HOME\nORACLE_HOME=$DB_HOME; export ORACLE_HOME\nORACLE_SID=primary2; export ORACLE_SID\nORACLE_TERM=xterm; export ORACLE_TERM\nBASE_PATH=\/usr\/sbin:$PATH; export BASE_PATH\nPATH=$ORACLE_HOME\/bin:$GRID_HOME\/bin:$BASE_PATH; export PATH\nLD_LIBRARY_PATH=$ORACLE_HOME\/lib:\/lib:\/usr\/lib; export LD_LIBRARY_PATH\nCLASSPATH=$ORACLE_HOME\/JRE:$ORACLE_HOME\/jlib:$ORACLE_HOME\/rdbms\/jlib; export CLASSPATH\n\nulimit -u 65536\nulimit -n 65536\n\nalias log='cd \/u01\/app\/oracle\/diag\/rdbms\/logical\/logical2\/trace; pwd'\nalias oh='cd $ORACLE_HOME; pwd'\n<\/pre>\n<pre class=\"lang:default decode:true \">#GRID BASH_PROFILE\n\n[Logical-1]\n\n[grid@logical1 ~]$ cat .bash_profile\n# .bash_profile\n\n# Get the aliases and functions\nif [ -f ~\/.bashrc ]; then\n        . ~\/.bashrc\nfi\n\n# User specific environment and startup programs\n\nPATH=$PATH:$HOME\/bin\n\nexport PATH\n\nTMP=\/tmp; export TMP\nTMPDIR=$TMP; export TMPDIR\n\nORACLE_UNQNAME=logical; export ORACLE_UNQNAME\nORACLE_BASE=\/u01\/app\/oracle; export ORACLE_BASE\nORACLE_HOME=\/u01\/11.2.0\/grid; export ORACLE_HOME\nGRID_HOME=\/u01\/11.2.0\/grid; export GRID_HOME\nORACLE_SID=+ASM1; export ORACLE_SID\nORACLE_TERM=xterm; export ORACLE_TERM\nBASE_PATH=\/usr\/sbin:$PATH; export BASE_PATH\nPATH=$ORACLE_HOME\/bin:$GRID_HOME\/bin:$BASE_PATH; export PATH\nLD_LIBRARY_PATH=$ORACLE_HOME\/lib:\/lib:\/usr\/lib; export LD_LIBRARY_PATH\nCLASSPATH=$ORACLE_HOME\/JRE:$ORACLE_HOME\/jlib:$ORACLE_HOME\/rdbms\/jlib; export CLASSPATH\n\nulimit -u 65536\nulimit -n 65536\n\nalias log='cd \/u01\/11.2.0\/grid\/log\/logical01; pwd'\nalias oh='cd $ORACLE_HOME; pwd'\n<\/pre>\n<pre class=\"lang:default decode:true \">[Logical-2]\n\n[grid@logical2 ~]$ cat .bash_profile\n# .bash_profile\n\n# Get the aliases and functions\nif [ -f ~\/.bashrc ]; then\n        . ~\/.bashrc\nfi\n\n# User specific environment and startup programs\n\nPATH=$PATH:$HOME\/bin\n\nexport PATH\n\nTMP=\/tmp; export TMP\nTMPDIR=$TMP; export TMPDIR\n\nORACLE_UNQNAME=logical; export ORACLE_UNQNAME\nORACLE_BASE=\/u01\/app\/oracle; export ORACLE_BASE\nORACLE_HOME=\/u01\/11.2.0\/grid; export ORACLE_HOME\nGRID_HOME=\/u01\/11.2.0\/grid; export GRID_HOME\nORACLE_SID=+ASM2; export ORACLE_SID\nORACLE_TERM=xterm; export ORACLE_TERM\nBASE_PATH=\/usr\/sbin:$PATH; export BASE_PATH\nPATH=$ORACLE_HOME\/bin:$GRID_HOME\/bin:$BASE_PATH; export PATH\nLD_LIBRARY_PATH=$ORACLE_HOME\/lib:\/lib:\/usr\/lib; export LD_LIBRARY_PATH\nCLASSPATH=$ORACLE_HOME\/JRE:$ORACLE_HOME\/jlib:$ORACLE_HOME\/rdbms\/jlib; export CLASSPATH\n\nulimit -u 65536\nulimit -n 65536\n\nalias log='cd \/u01\/11.2.0\/grid\/log\/logical02; pwd'\nalias oh='cd $ORACLE_HOME; pwd'\n<\/pre>\n<pre class=\"lang:default decode:true \">#LOGICAL STANDBY DATABASE PFILE\n\n[Logical -1]\n\n[oracle@logical1 dbs]$ cat initlogical.ora \n*.audit_file_dest='\/u01\/app\/oracle\/admin\/logical\/adump'\n*.audit_trail='db'\n*.cluster_database=true\n*.compatible='11.2.0.4.0'\n*.control_files='+DATA\/logical\/controlfile\/control01.ctl'\n*.db_block_size=8192\n*.db_create_file_dest='+DATA'\n*.db_create_online_log_dest_1='+DATA'\n*.db_create_online_log_dest_2='+FRA'\n*.db_domain=''\n*.db_file_name_convert='logical','primary'\n*.db_name='primary'\n*.db_unique_name='logical'\n*.db_recovery_file_dest='+FRA'\n*.db_recovery_file_dest_size=42949672960\n*.diagnostic_dest='\/u01\/app\/oracle'\n*.dispatchers='(PROTOCOL=TCP) (SERVICE=primaryXDB)'\n*.fal_server='PRIMARY'\nprimary1.instance_number=1\nprimary2.instance_number=2\n*.log_archive_config='DG_CONFIG=(primary,standby,logical)'\n*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=logical'\n*.log_archive_dest_2='SERVICE=primary SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary'\n*.log_archive_format='%t_%s_%r.arc'\n*.log_archive_max_processes=8\n*.log_file_name_convert='primary','logical'\n*.open_cursors=300\n*.pga_aggregate_target=2167406592\n*.processes=150\n*.remote_listener='logical-scan.mycompanylab.local:1521'\n*.remote_login_passwordfile='exclusive'\n*.sga_target=6502219776\n*.standby_file_management='AUTO'\nprimary2.thread=2\nprimary1.thread=1\nprimary2.undo_tablespace='UNDOTBS2'\nprimary1.undo_tablespace='UNDOTBS1'\n<\/pre>\n<pre class=\"lang:default decode:true \"># TNSNAMES.ORA\n\n[Primary 1-2 &amp; Logical 1-2]\n\n[oracle@logical1 admin]$ cat tnsnames.ora \n# tnsnames.ora Network Configuration File: \/u01\/app\/oracle\/product\/11.2.0\/db_1\/network\/admin\/tnsnames.ora\n# Generated by Oracle configuration tools.\n\nPRIMARY =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = primary-scan.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = primary)\n    )\n  )\n\nPRMARY =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = mvpdb-scan.mycompanylab.local)(PORT = 1521))\n    )\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = prmary)\n    )\n  )\n\nSTANDBY2 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = standby2-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = standby)\n    )\n  )\n\nSTANDBY1 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = standby1-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = standby)\n    )\n  )\n\nPRIMARY2 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = primary2-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = primary)\n    )\n  )\n\nLOGICAL2 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = logical2-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = logical)\n    )\n  )\n\nPRIMARY1 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = primary1-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = primary)\n    )\n  )\n\nLOGICAL1 =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = logical1-vip.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = logical)\n    )\n  )\n\nSTANDBY =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = standby-scan.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = standby)\n    )\n  )\n\nLOGICAL =\n  (DESCRIPTION =\n    (ADDRESS_LIST =\n      (ADDRESS = (PROTOCOL = TCP)(HOST = logical-scan.mycompanylab.local)(PORT = 1521)(SEND_BUF_SIZE = 10485760)(RECV_BUF_SIZE = 10485760))\n    )\n    (SDU = 65535)\n    (CONNECT_DATA =\n      (SERVER = DEDICATED)\n      (SERVICE_NAME = logical)\n    )\n  )\n<\/pre>\n<pre class=\"lang:default decode:true \"># LISTENER.ORA\n\n[Logical-1-2]  \n\n[grid@logical1 admin]$ cat listener.ora\nLISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))))            # line added by Agent\nLISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3))))                # line added by Agent\nLISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2))))                # line added by Agent\nLISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1))))                # line added by Agent\nENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON                # line added by Agent\nENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON                # line added by Agent\nENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON                # line added by Agent\nENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON              # line added by Agent\n<\/pre>\n<h3>Step2:<\/h3>\n<p>On the primary side, I am also editing the LOG_ARCHIVE_DEST_3 parameter to send the archives to Logical, and the LOG_ARCHIVE_CONFIG parameter to include Logical in my DATA GUARD Environment.<\/p>\n<pre class=\"lang:default decode:true \">[Primary-1]\nSQL&gt; alter system set log_archive_dest_3='SERVICE=logical SYNC REOPEN=15 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=logical' scope=both sid='*';\n\nSystem altered.\n\nSQL&gt; alter system set log_archive_config='DG_CONFIG=(primary,standby,logical)'  sid='*' scope=both;\n\nSystem altered.<\/pre>\n<h3>Step3:<\/h3>\n<p>Physical Standby Database will be installed, whose DB_NAME is PRIMARY and DB_UNIQUE_NAME is LOGICAL.<\/p>\n<h3>Step4:<\/h3>\n<p>After installing Physical Standby Database with LOGICAL DB_UNIQUE_NAME, database, recovery and protection mode are queried.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; select DATABASE_MODE, RECOVERY_MODE, PROTECTION_MODE from v$archive_dest_status;\n\nDATABASE_MODE   RECOVERY_MODE           PROTECTION_MODE\n--------------- ----------------------- --------------------\nMOUNTED-STANDBY MANAGED REAL TIME APPLY MAXIMUM PERFORMANCE\n<\/pre>\n<h3>Step5:<\/h3>\n<p>Check whether redo transport can be done without any problem by doing log switch operation from primary side.<\/p>\n<pre class=\"lang:default decode:true \">[Primary-1-2]\nSQL&gt; alter system switch logfile;\n\nSystem altered.<\/pre>\n<pre class=\"lang:default decode:true \">[Primary-1-2&amp;Standby-1-2&amp;Logical-1-2]\nSQL&gt; SELECT MAX(SEQUENCE#), THREAD# FROM V$ARCHIVED_LOG GROUP BY THREAD#;\n\nMAX(SEQUENCE#)    THREAD#\n-------------- ----------\n           321          1\n           184          2\n<\/pre>\n<h3>Step6:<\/h3>\n<p>On the Logical Standby side, the Recovery is stopped to Convert to Logical.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; alter database recover managed standby database cancel;\n\nDatabase altered.<\/pre>\n<h3>Step7:<\/h3>\n<p>Enable LogMiner on the Primary side since the logic of Logical Standby is SQL-Apply and it does this by opening the Redos with LogMiner.<\/p>\n<pre class=\"lang:default decode:true \">[Primary-1-2]\nSQL&gt; execute dbms_logstdby.build;\n\nPL\/SQL procedure successfully completed.<\/pre>\n<h3>Step8:<\/h3>\n<p>Since we are working in RAC structure, close all other instances except one of the instances, set the Cluster Database as FALSE.<\/p>\n<p>Then ALTER to Recovery Logical and finally set the Cluster Database to TRUE.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE;\n\nSystem altered.\n\nSQL&gt; shutdown abort;\nORACLE instance shut down.\nSQL&gt; STARTUP MOUNT EXCLUSIVE;\nORACLE instance started.\n\nTotal System Global Area 6480490496 bytes\nFixed Size                  2265384 bytes\nVariable Size            1241517784 bytes\nDatabase Buffers         5217714176 bytes\nRedo Buffers               18993152 bytes\nDatabase mounted.\nSQL&gt; ALTER DATABASE RECOVER TO LOGICAL STANDBY LOGICAL;\n\nDatabase altered.\n\nSQL&gt; ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=SPFILE; \n\nSystem altered.\n\nSQL&gt; shutdown immediate;\nORA-01507: database not mounted\n\n\nORACLE instance shut down.\nSQL&gt; startup mount;\nORACLE instance started.\n\nTotal System Global Area 6480490496 bytes\nFixed Size                  2265384 bytes\nVariable Size            1241517784 bytes\nDatabase Buffers         5217714176 bytes\nRedo Buffers               18993152 bytes\nDatabase mounted.\n<\/pre>\n<pre class=\"lang:default decode:true \">[Logical-2]\nSQL&gt; startup mount;\nORACLE instance started.\n\nTotal System Global Area 6480490496 bytes\nFixed Size                  2265384 bytes\nVariable Size            1241517784 bytes\nDatabase Buffers         5217714176 bytes\nRedo Buffers               18993152 bytes\nDatabase mounted.<\/pre>\n<h3>Step9:<\/h3>\n<p>I leave LOG_ARCHIVE _DEST_2 empty because I don&#8217;t want to use Logical Standby when Switchover and Failover occur.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; show parameter log_archive_dest                   \n\nNAME                                 TYPE        VALUE\n------------------------------------ ----------- ------------------------------\nlog_archive_dest                     string\nlog_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_\n                                                 DEST VALID_FOR=(ALL_LOGFILES,A\n                                                 LL_ROLES) DB_UNIQUE_NAME=logic\n                                                 al\nlog_archive_dest_10                  string\nlog_archive_dest_11                  string\nlog_archive_dest_12                  string\nlog_archive_dest_13                  string\nlog_archive_dest_14                  string\nlog_archive_dest_15                  string\n\nNAME                                 TYPE        VALUE\n------------------------------------ ----------- ------------------------------\nlog_archive_dest_16                  string\nlog_archive_dest_17                  string\nlog_archive_dest_18                  string\nlog_archive_dest_19                  string\nlog_archive_dest_2                   string      SERVICE=primary SYNC VALID_FOR\n                                                 =(ONLINE_LOGFILES,PRIMARY_ROLE\n                                                 ) DB_UNIQUE_NAME=primary<\/pre>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; alter system set log_archive_dest_2='' scope=both sid='*';\n\nSystem altered.\n\nSQL&gt; show parameter log_archive_dest_2\n\nNAME                                 TYPE        VALUE\n------------------------------------ ----------- ------------------------------\nlog_archive_dest_2                   string<\/pre>\n<h3>Step10:<\/h3>\n<p>Open Logical Standby Database in RESETLOGS and start Recovery. Thus, we converted Physical Standby Database to Logical Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; alter database open resetlogs;\n\nDatabase altered.\n\nSQL&gt; alter database start logical standby apply immediate;\n\nDatabase altered.\n<\/pre>\n<h3>Step11:<\/h3>\n<p>Query the OPEN mode, ROLE and RECOVERY mode of the database.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1-2]\nSQL&gt; select OPEN_MODE, DATABASE_ROLE from v$database;\n\nOPEN_MODE            DATABASE_ROLE\n-------------------- ----------------\nREAD WRITE           LOGICAL STANDBY\n<\/pre>\n<pre class=\"lang:default decode:true \">[Logical-1-2]\nSQL&gt; select DATABASE_MODE, RECOVERY_MODE, PROTECTION_MODE from v$archive_dest_status;\n\nDATABASE_MODE   RECOVERY_MODE           PROTECTION_MODE\n--------------- ----------------------- --------------------\nOPEN            LOGICAL REAL TIME APPLY MAXIMUM PERFORMANCE\n<\/pre>\n<h2>LOGICAL STANDBY DATABASE CHECK QUERIES<\/h2>\n<h3>Check Redos are transferred from Primary Database to Logical Standby Database?<\/h3>\n<p>Learn Archive Redo Log numbers in Primary Database.<\/p>\n<pre class=\"lang:default decode:true \">[Primary-1]\nSQL&gt; select max(sequence#),thread# from v$archived_log group by thread#;\n\nMAX(SEQUENCE#)    THREAD#\n-------------- ----------\n           353          1\n           214          2<\/pre>\n<p>Query the existence and apply states of these sequences in Logical Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; alter session set nls_date_format='DD-MM-YYYY HH24:MI:SS';\n\nSession altered.\n\nSQL&gt; set linesize 500\nSQL&gt; column dict_begin format a10\nSQL&gt; column dict_end format a10\nSQL&gt; select sysdate from dual;\n\nSYSDATE\n-------------------\n10-01-2017 14:21:19\n\nSQL&gt; SELECT sequence#, first_time, next_time, dict_begin, dict_end, applied FROM dba_logstdby_log ORDER BY sequence#;\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       186 10-01-2017 10:17:01 10-01-2017 10:17:07 NO         NO         YES\n       187 10-01-2017 10:17:07 10-01-2017 10:17:10 NO         NO         YES\n       188 10-01-2017 10:17:10 10-01-2017 10:17:13 NO         NO         YES\n       189 10-01-2017 10:17:13 10-01-2017 10:17:19 NO         NO         YES\n       190 10-01-2017 10:17:19 10-01-2017 10:19:35 NO         NO         YES\n       191 10-01-2017 10:19:35 10-01-2017 10:19:37 NO         NO         YES\n       192 10-01-2017 10:19:37 10-01-2017 10:19:41 YES        NO         YES\n       193 10-01-2017 10:19:41 10-01-2017 10:19:43 NO         YES        YES\n       194 10-01-2017 10:19:43 10-01-2017 10:19:59 NO         NO         YES\n       195 10-01-2017 10:19:59 10-01-2017 10:22:29 NO         NO         YES\n       196 10-01-2017 10:22:29 10-01-2017 10:29:39 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       197 10-01-2017 10:29:39 10-01-2017 10:35:37 NO         NO         YES\n       198 10-01-2017 10:35:37 10-01-2017 10:40:53 NO         NO         YES\n       199 10-01-2017 10:40:53 10-01-2017 10:49:24 NO         NO         YES\n       200 10-01-2017 10:49:24 10-01-2017 10:50:31 NO         NO         YES\n       201 10-01-2017 10:50:31 10-01-2017 10:54:35 NO         NO         YES\n       202 10-01-2017 10:54:35 10-01-2017 10:54:38 NO         NO         YES\n       203 10-01-2017 10:54:38 10-01-2017 10:57:54 NO         NO         YES\n       204 10-01-2017 10:57:54 10-01-2017 10:57:56 NO         NO         YES\n       205 10-01-2017 10:57:56 10-01-2017 11:05:33 NO         NO         YES\n       206 10-01-2017 11:05:33 10-01-2017 11:06:01 NO         NO         YES\n       207 10-01-2017 11:06:01 10-01-2017 11:32:57 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       208 10-01-2017 11:32:57 10-01-2017 11:34:34 NO         NO         YES\n       209 10-01-2017 11:34:34 10-01-2017 11:38:59 NO         NO         YES\n       210 10-01-2017 11:38:59 10-01-2017 11:39:09 NO         NO         YES\n       211 10-01-2017 11:39:09 10-01-2017 11:47:33 NO         NO         YES\n       212 10-01-2017 11:47:33 10-01-2017 11:47:46 NO         NO         YES\n       213 10-01-2017 11:47:46 10-01-2017 12:22:48 NO         NO         YES\n       214 10-01-2017 12:22:48 10-01-2017 12:38:31 NO         NO         YES\n       324 10-01-2017 10:17:03 10-01-2017 10:17:08 YES        NO         YES\n       325 10-01-2017 10:17:08 10-01-2017 10:17:11 NO         YES        YES\n       326 10-01-2017 10:17:11 10-01-2017 10:17:14 NO         NO         YES\n       327 10-01-2017 10:17:14 10-01-2017 10:19:35 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       328 10-01-2017 10:19:35 10-01-2017 10:19:42 NO         NO         YES\n       329 10-01-2017 10:19:42 10-01-2017 10:19:55 NO         NO         YES\n       330 10-01-2017 10:19:55 10-01-2017 10:22:25 NO         NO         YES\n       331 10-01-2017 10:22:25 10-01-2017 10:29:38 NO         NO         YES\n       332 10-01-2017 10:29:38 10-01-2017 10:35:35 NO         NO         YES\n       333 10-01-2017 10:35:35 10-01-2017 10:40:51 NO         NO         YES\n       334 10-01-2017 10:40:51 10-01-2017 10:49:22 NO         NO         YES\n       335 10-01-2017 10:49:22 10-01-2017 10:50:30 NO         NO         YES\n       336 10-01-2017 10:50:30 10-01-2017 10:54:25 NO         NO         YES\n       337 10-01-2017 10:54:25 10-01-2017 10:54:31 NO         NO         YES\n       338 10-01-2017 10:54:31 10-01-2017 10:57:47 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       339 10-01-2017 10:57:47 10-01-2017 10:57:50 NO         NO         YES\n       340 10-01-2017 10:57:50 10-01-2017 11:05:33 NO         NO         YES\n       341 10-01-2017 11:05:33 10-01-2017 11:05:57 NO         NO         YES\n       342 10-01-2017 11:05:57 10-01-2017 11:29:15 NO         NO         YES\n       343 10-01-2017 11:29:15 10-01-2017 11:32:51 NO         NO         YES\n       344 10-01-2017 11:32:51 10-01-2017 11:32:53 NO         NO         YES\n       345 10-01-2017 11:32:53 10-01-2017 11:34:33 NO         NO         YES\n       346 10-01-2017 11:34:33 10-01-2017 11:38:53 NO         NO         YES\n       347 10-01-2017 11:38:53 10-01-2017 11:39:10 NO         NO         YES\n       348 10-01-2017 11:39:10 10-01-2017 11:47:29 NO         NO         YES\n       349 10-01-2017 11:47:29 10-01-2017 11:47:47 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       350 10-01-2017 11:47:47 10-01-2017 12:22:43 NO         NO         YES\n       351 10-01-2017 12:22:43 10-01-2017 12:37:18 NO         NO         YES\n       352 10-01-2017 12:37:18 10-01-2017 12:37:22 NO         NO         YES\n       353 10-01-2017 12:37:22 10-01-2017 13:55:16 NO         NO         YES\n\n59 rows selected.<\/pre>\n<p>Perform log switch operation in Primary.<\/p>\n<pre class=\"lang:default decode:true  \">[Primary-1]\nSQL&gt; ALTER SYSTEM ARCHIVE LOG CURRENT;\n\nSystem altered.\n\nSQL&gt; select max(sequence#),thread# from v$archived_log group by thread#;\n\nMAX(SEQUENCE#)    THREAD#\n-------------- ----------\n           354          1\n           215          2<\/pre>\n<p>Check if it&#8217;s coming to Logical.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; SELECT sequence#, first_time, next_time, dict_begin, dict_end, applied FROM dba_logstdby_log ORDER BY sequence#;\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       186 10-01-2017 10:17:01 10-01-2017 10:17:07 NO         NO         YES\n       187 10-01-2017 10:17:07 10-01-2017 10:17:10 NO         NO         YES\n       188 10-01-2017 10:17:10 10-01-2017 10:17:13 NO         NO         YES\n       189 10-01-2017 10:17:13 10-01-2017 10:17:19 NO         NO         YES\n       190 10-01-2017 10:17:19 10-01-2017 10:19:35 NO         NO         YES\n       191 10-01-2017 10:19:35 10-01-2017 10:19:37 NO         NO         YES\n       192 10-01-2017 10:19:37 10-01-2017 10:19:41 YES        NO         YES\n       193 10-01-2017 10:19:41 10-01-2017 10:19:43 NO         YES        YES\n       194 10-01-2017 10:19:43 10-01-2017 10:19:59 NO         NO         YES\n       195 10-01-2017 10:19:59 10-01-2017 10:22:29 NO         NO         YES\n       196 10-01-2017 10:22:29 10-01-2017 10:29:39 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       197 10-01-2017 10:29:39 10-01-2017 10:35:37 NO         NO         YES\n       198 10-01-2017 10:35:37 10-01-2017 10:40:53 NO         NO         YES\n       199 10-01-2017 10:40:53 10-01-2017 10:49:24 NO         NO         YES\n       200 10-01-2017 10:49:24 10-01-2017 10:50:31 NO         NO         YES\n       201 10-01-2017 10:50:31 10-01-2017 10:54:35 NO         NO         YES\n       202 10-01-2017 10:54:35 10-01-2017 10:54:38 NO         NO         YES\n       203 10-01-2017 10:54:38 10-01-2017 10:57:54 NO         NO         YES\n       204 10-01-2017 10:57:54 10-01-2017 10:57:56 NO         NO         YES\n       205 10-01-2017 10:57:56 10-01-2017 11:05:33 NO         NO         YES\n       206 10-01-2017 11:05:33 10-01-2017 11:06:01 NO         NO         YES\n       207 10-01-2017 11:06:01 10-01-2017 11:32:57 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       208 10-01-2017 11:32:57 10-01-2017 11:34:34 NO         NO         YES\n       209 10-01-2017 11:34:34 10-01-2017 11:38:59 NO         NO         YES\n       210 10-01-2017 11:38:59 10-01-2017 11:39:09 NO         NO         YES\n       211 10-01-2017 11:39:09 10-01-2017 11:47:33 NO         NO         YES\n       212 10-01-2017 11:47:33 10-01-2017 11:47:46 NO         NO         YES\n       213 10-01-2017 11:47:46 10-01-2017 12:22:48 NO         NO         YES\n       214 10-01-2017 12:22:48 10-01-2017 12:38:31 NO         NO         YES\n       215 10-01-2017 12:38:31 10-01-2017 14:23:53 NO         NO         YES\n       324 10-01-2017 10:17:03 10-01-2017 10:17:08 YES        NO         YES\n       325 10-01-2017 10:17:08 10-01-2017 10:17:11 NO         YES        YES\n       326 10-01-2017 10:17:11 10-01-2017 10:17:14 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       327 10-01-2017 10:17:14 10-01-2017 10:19:35 NO         NO         YES\n       328 10-01-2017 10:19:35 10-01-2017 10:19:42 NO         NO         YES\n       329 10-01-2017 10:19:42 10-01-2017 10:19:55 NO         NO         YES\n       330 10-01-2017 10:19:55 10-01-2017 10:22:25 NO         NO         YES\n       331 10-01-2017 10:22:25 10-01-2017 10:29:38 NO         NO         YES\n       332 10-01-2017 10:29:38 10-01-2017 10:35:35 NO         NO         YES\n       333 10-01-2017 10:35:35 10-01-2017 10:40:51 NO         NO         YES\n       334 10-01-2017 10:40:51 10-01-2017 10:49:22 NO         NO         YES\n       335 10-01-2017 10:49:22 10-01-2017 10:50:30 NO         NO         YES\n       336 10-01-2017 10:50:30 10-01-2017 10:54:25 NO         NO         YES\n       337 10-01-2017 10:54:25 10-01-2017 10:54:31 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       338 10-01-2017 10:54:31 10-01-2017 10:57:47 NO         NO         YES\n       339 10-01-2017 10:57:47 10-01-2017 10:57:50 NO         NO         YES\n       340 10-01-2017 10:57:50 10-01-2017 11:05:33 NO         NO         YES\n       341 10-01-2017 11:05:33 10-01-2017 11:05:57 NO         NO         YES\n       342 10-01-2017 11:05:57 10-01-2017 11:29:15 NO         NO         YES\n       343 10-01-2017 11:29:15 10-01-2017 11:32:51 NO         NO         YES\n       344 10-01-2017 11:32:51 10-01-2017 11:32:53 NO         NO         YES\n       345 10-01-2017 11:32:53 10-01-2017 11:34:33 NO         NO         YES\n       346 10-01-2017 11:34:33 10-01-2017 11:38:53 NO         NO         YES\n       347 10-01-2017 11:38:53 10-01-2017 11:39:10 NO         NO         YES\n       348 10-01-2017 11:39:10 10-01-2017 11:47:29 NO         NO         YES\n\n SEQUENCE# FIRST_TIME          NEXT_TIME           DICT_BEGIN DICT_END   APPLIED\n---------- ------------------- ------------------- ---------- ---------- --------\n       349 10-01-2017 11:47:29 10-01-2017 11:47:47 NO         NO         YES\n       350 10-01-2017 11:47:47 10-01-2017 12:22:43 NO         NO         YES\n       351 10-01-2017 12:22:43 10-01-2017 12:37:18 NO         NO         YES\n       352 10-01-2017 12:37:18 10-01-2017 12:37:22 NO         NO         YES\n       353 10-01-2017 12:37:22 10-01-2017 13:55:16 NO         NO         YES\n       354 10-01-2017 13:55:16 10-01-2017 14:23:50 NO         NO         YES\n\n61 rows selected.<\/pre>\n<p>The APPLIED column here is checked.<\/p>\n<p><strong>YES:<\/strong> The relevant archive has been applied to Logical Standby and this archive is no longer needed.<\/p>\n<p><strong>CURRENT:<\/strong> The relevant archive is currently being processed to Logical Standby.<\/p>\n<p><strong>NO:<\/strong> It means that the related archive has not been started to be processed to Logical Standby yet.<\/p>\n<p><strong>FETCHING:<\/strong> Indicates that a corruption is encountered while reading redo records from the relevant archive and tries to get the relevant archive from Primary using automatic GAP resolution.<\/p>\n<p><strong>CORRUPT:<\/strong> It indicates that a corruption is encountered while reading the redo records from the relevant archive, and that the archive received from Primary does not solve the problem, and manual intervention is required.<\/p>\n<h3>Query Statistics,current_state and Status Related SQL-Apply<\/h3>\n<p>We can see information such as statistics, current_state and status related to SQL-Apply from V $ LOGSTDBY_STATS view.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; column name format a33\nSQL&gt; column value format a20\nSQL&gt; select * from v$logstdby_stats;\n\nNAME                              VALUE\n--------------------------------- --------------------\nlogminer session id               1\nnumber of preparers               1\nnumber of appliers                5\nserver processes in use           9\nmaximum SGA for LCR cache (MB)    30\nmaximum events recorded           10000\npreserve commit order             TRUE\ntransaction consistency           FULL\nrecord skipped errors             Y\nrecord skipped DDLs               Y\nrecord applied DDLs               N\n\nNAME                              VALUE\n--------------------------------- --------------------\nrecord unsupported operations     N\nrealtime apply                    Y\napply delay (minutes)             0\npeak apply rate (bytes\/sec)       16517240\ncurrent apply rate (bytes\/sec)    8232708\ncoordinator state                 IDLE\ncoordinator startup time          10-01-2017 10:51:00\ncoordinator uptime (seconds)      14020\ntxns received from logminer       920\ntxns assigned to apply            920\ntxns applied                      920\n\nNAME                              VALUE\n--------------------------------- --------------------\ntxns discarded during restart     0\nlarge txns waiting to be assigned 0\nsession restart SCN               3544575\nrolled back txns mined            299\nDDL txns mined                    8\nCTAS txns mined                   1\nbytes of redo mined               64740224\nbytes paged out                   0\npageout time (seconds)            0\nbytes checkpointed                77328081\ncheckpoint time (seconds)         0\n\nNAME                              VALUE\n--------------------------------- --------------------\nsystem idle time (seconds)        11715\nstandby redo logs mined           2\narchived logs mined               59\ngap fetched logs mined            25\nstandby redo log reuse detected   32\nlogfile open failures             0\ncurrent logfile wait (seconds)    0\ntotal logfile wait (seconds)      0\nthread enable mined               0\nthread disable mined              0\ndistinct txns in queue            0\n\n44 rows selected.\n<\/pre>\n<p>If the value of the Coordinator state is IDLE, it means that everything is fine and that it is Primary and SYNC.<\/p>\n<pre class=\"lang:default decode:true \">Logical-1]\nSQL&gt; SELECT name, value FROM v$logstdby_stats WHERE name = 'coordinator state';\n\nNAME                              VALUE\n--------------------------------- --------------------\ncoordinator state                 IDLE<\/pre>\n<p>Query the status of SQL-Apply processes from V $ LOGSTDBY_PROCESS view<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; column spid format a7\nSQL&gt; column type format a12\nSQL&gt; column status format a57\nSQL&gt; set linesize 500\nSQL&gt; select sid, serial#, spid, type, status from v$logstdby_process;\n\n       SID    SERIAL# SPID    TYPE         STATUS\n---------- ---------- ------- ------------ ---------------------------------------------------------\n       143          9 25012   COORDINATOR  ORA-16116: no work available\n        24         17 25387   ANALYZER     ORA-16116: no work available\n        89         29 25391   APPLIER      ORA-16116: no work available\n       148         17 25395   APPLIER      ORA-16116: no work available\n       213         11 25399   APPLIER      ORA-16116: no work available\n        27         11 25403   APPLIER      ORA-16116: no work available\n        93         13 25407   APPLIER      ORA-16116: no work available\n       208         11 25223   READER       ORA-16242: Processing log file (thread# 1, sequence# 355)\n        23         11 25227   BUILDER      ORA-16116: no work available\n        87         19 25231   PREPARER     ORA-16116: no work available\n\n10 rows selected.<\/pre>\n<p>In the STATUS column;<\/p>\n<p>&#8220;<span style=\"color: #ff0000;\"><em>ORA-16116: no work available<\/em><\/span>&#8221; Indicates that SQL Apply processes are IDLE.<\/p>\n<p>&#8220;<span style=\"color: #ff0000;\"><em>ORA-16242: Processing log file (thread # 1, sequence # 355)<\/em><\/span>&#8221; Indicates that READER Process is reading logs from logfile.<\/p>\n<p>We can see the progress of SQL Apply services in <strong>V$LOGSTDBY_PROGRESS<\/strong> view.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; select sysdate from dual;\n\nSYSDATE\n-------------------\n10-01-2017 15:19:17\n\nSQL&gt; SELECT * FROM v$logstdby_progress;\n\nAPPLIED_SCN APPLIED_TIME        RESTART_SCN RESTART_TIME        LATEST_SCN LATEST_TIME         MINING_SCN MINING_TIME         RESETLOGS_ID\n----------- ------------------- ----------- ------------------- ---------- ------------------- ---------- ------------------- ------------\n    3602487 10-01-2017 15:19:12     3602489 10-01-2017 15:19:13    3602503 10-01-2017 15:19:18    3602502 10-01-2017 15:19:15    932222810<\/pre>\n<p><strong>APPLIED_TIME:<\/strong> It is the time of the last applied transaction.<\/p>\n<p><strong>LATEST_TIME:<\/strong> It is the time of the highest SCN encountered in the Logical Standby Database.<\/p>\n<p><strong>MINING_TIME:<\/strong> It is the time of the SCN of the last redo record processed by the BUILDER process.<\/p>\n<p>We can see a summary of the current status of SQL Apply from the <strong>V$LOGSTDBY_STATE<\/strong> view.<\/p>\n<pre class=\"lang:default decode:true \">[Logical-1]\nSQL&gt; column REALTIME_APPLY format a15\nSQL&gt; column state format a7\nSQL&gt; SELECT * FROM V$LOGSTDBY_STATE;\n\nPRIMARY_DBID SESSION_ID REALTIME_APPLY  STATE\n------------ ---------- --------------- -------\n  1769705496          1 Y               IDLE<\/pre>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_15506\" class=\"pvc_stats all  \" data-element-id=\"15506\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Logical Standby Database does not support replication of all data types, tables, commands and PL \/ SQL Packages. Therefore, before converting a Physical Standby database to Logical Standby, a series of checks must be made. Pre Checks Before Converting Physical Standby Database to Logical Standby Database Since the Redo Flow is from the Primary side &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_15506\" class=\"pvc_stats all  \" data-element-id=\"15506\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":484,"featured_media":15511,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[4],"tags":[9568,9570,9572,9561,9569,9562,9563,9564,9571,9566,9567],"class_list":["post-15506","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-oracle","tag-convert-physical-standby-database-to-logical-standby-database","tag-how-do-you-convert-physical-standby-database-to-logical-standby-database","tag-how-do-you-create-a-logical-standby-database","tag-how-to-add-rely-disable-constraint","tag-how-to-convert-physical-standby-database-to-logical-standby-database","tag-ora-16116-no-work-available","tag-ora-16242-processing-log-file-thread-1","tag-sequence-355","tag-steps-to-convert-physical-standby-in-to-logical-standy-database","tag-vlogstdby_progress","tag-vlogstdby_state"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials<\/title>\n<meta name=\"description\" content=\"How To Convert Physical Standby Database to Logical Standby Database\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"How To Convert Physical Standby Database to Logical Standby Database\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-14T16:38:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-15T02:07:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"897\" \/>\n\t<meta property=\"og:image:height\" content=\"520\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Onur ARDAHANLI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Onur ARDAHANLI\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"25 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\"},\"author\":{\"name\":\"Onur ARDAHANLI\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6\"},\"headline\":\"How To Convert Physical Standby Database to Logical Standby Database\",\"datePublished\":\"2020-05-14T16:38:49+00:00\",\"dateModified\":\"2020-05-15T02:07:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\"},\"wordCount\":1116,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png\",\"keywords\":[\"Convert Physical Standby Database to Logical Standby Database\",\"How do you convert physical standby database to logical standby database?\",\"How do you create a logical standby database?\",\"How To Add RELY DISABLE CONSTRAINT\",\"How To Convert Physical Standby Database to Logical Standby Database\",\"ORA-16116: no work available:\",\"ORA-16242: Processing log file (thread # 1\",\"sequence # 355)\",\"STEPS TO CONVERT PHYSICAL STANDBY IN TO LOGICAL STANDY DATABASE\",\"V$LOGSTDBY_PROGRESS\",\"V$LOGSTDBY_STATE\"],\"articleSection\":[\"ORACLE\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\",\"name\":\"How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png\",\"datePublished\":\"2020-05-14T16:38:49+00:00\",\"dateModified\":\"2020-05-15T02:07:27+00:00\",\"description\":\"How To Convert Physical Standby Database to Logical Standby Database\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png\",\"width\":897,\"height\":520},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To Convert Physical Standby Database to Logical Standby Database\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbtut.com\/#website\",\"url\":\"https:\/\/dbtut.com\/\",\"name\":\"Database Tutorials\",\"description\":\"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux\",\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbtut.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dbtut.com\/#organization\",\"name\":\"dbtut\",\"url\":\"https:\/\/dbtut.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"width\":223,\"height\":36,\"caption\":\"dbtut\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6\",\"name\":\"Onur ARDAHANLI\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ecd20c3e1374ced4e1aefc82101cce4cd437be8fd957d1be3d106668b8a1b990?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ecd20c3e1374ced4e1aefc82101cce4cd437be8fd957d1be3d106668b8a1b990?s=96&d=mm&r=g\",\"caption\":\"Onur ARDAHANLI\"},\"url\":\"https:\/\/dbtut.com\/index.php\/author\/onurardahanli\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials","description":"How To Convert Physical Standby Database to Logical Standby Database","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:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/","og_locale":"en_US","og_type":"article","og_title":"How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials","og_description":"How To Convert Physical Standby Database to Logical Standby Database","og_url":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/","og_site_name":"Database Tutorials","article_published_time":"2020-05-14T16:38:49+00:00","article_modified_time":"2020-05-15T02:07:27+00:00","og_image":[{"width":897,"height":520,"url":"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png","type":"image\/png"}],"author":"Onur ARDAHANLI","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Onur ARDAHANLI","Est. reading time":"25 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/"},"author":{"name":"Onur ARDAHANLI","@id":"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6"},"headline":"How To Convert Physical Standby Database to Logical Standby Database","datePublished":"2020-05-14T16:38:49+00:00","dateModified":"2020-05-15T02:07:27+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/"},"wordCount":1116,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png","keywords":["Convert Physical Standby Database to Logical Standby Database","How do you convert physical standby database to logical standby database?","How do you create a logical standby database?","How To Add RELY DISABLE CONSTRAINT","How To Convert Physical Standby Database to Logical Standby Database","ORA-16116: no work available:","ORA-16242: Processing log file (thread # 1","sequence # 355)","STEPS TO CONVERT PHYSICAL STANDBY IN TO LOGICAL STANDY DATABASE","V$LOGSTDBY_PROGRESS","V$LOGSTDBY_STATE"],"articleSection":["ORACLE"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/","url":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/","name":"How To Convert Physical Standby Database to Logical Standby Database - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png","datePublished":"2020-05-14T16:38:49+00:00","dateModified":"2020-05-15T02:07:27+00:00","description":"How To Convert Physical Standby Database to Logical Standby Database","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#primaryimage","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2020\/05\/Ads\u0131z-2.png","width":897,"height":520},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2020\/05\/14\/how-to-convert-physical-standby-database-to-logical-standby-database\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"How To Convert Physical Standby Database to Logical Standby Database"}]},{"@type":"WebSite","@id":"https:\/\/dbtut.com\/#website","url":"https:\/\/dbtut.com\/","name":"Database Tutorials","description":"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux","publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbtut.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dbtut.com\/#organization","name":"dbtut","url":"https:\/\/dbtut.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","width":223,"height":36,"caption":"dbtut"},"image":{"@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6","name":"Onur ARDAHANLI","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ecd20c3e1374ced4e1aefc82101cce4cd437be8fd957d1be3d106668b8a1b990?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ecd20c3e1374ced4e1aefc82101cce4cd437be8fd957d1be3d106668b8a1b990?s=96&d=mm&r=g","caption":"Onur ARDAHANLI"},"url":"https:\/\/dbtut.com\/index.php\/author\/onurardahanli\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/15506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/users\/484"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=15506"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/15506\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media\/15511"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=15506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=15506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=15506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}