{"id":52861,"date":"2022-10-27T17:45:03","date_gmt":"2022-10-27T17:45:03","guid":{"rendered":"https:\/\/dbtut.com\/?p=52861"},"modified":"2022-10-27T17:52:32","modified_gmt":"2022-10-27T17:52:32","slug":"upgrade-with-physical-standby","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/","title":{"rendered":"Upgrade With Physical Standby"},"content":{"rendered":"<p>The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby are as follows.<\/p>\n<p>1. We set up a Physical Standby database.<\/p>\n<p>2. We are preparing Primary and Standby databases for Upgrade. For this, the first thing to do is to activate the Flashback database in both databases.<\/p>\n<p>Flashback database must be activated in Primary. Because the main flashback before starting one of the steps, upgrade, will be returned.<\/p>\n<p>In the standby database, the reason for commissioning is to return to the guarantee restore point that we will create our system in case of possible failure.<\/p>\n<p>a. We are querying whether the Flashback Database feature is enabled.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:08:19] SQL&gt; select flashback_on from v$database;\r\n\r\nFLASHBACK_ON\r\n------------------\r\nNO\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 10:08:19] SQL&gt; select flashback_on from v$database;\r\n\r\nFLASHBACK_ON\r\n------------------\r\nNO\r\n<\/pre>\n<p>b. We activate Flashback Database in primary database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:17:09] SQL&gt; alter database flashback on;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>c. We activate Flashback Database in standby database.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 10:18:54] SQL&gt; alter database recover managed standby database cancel;\r\n\r\nDatabase altered.\r\n\r\n[Standby - 26-04-2017 10:19:05] SQL&gt; alter database flashback on;\r\n\r\nDatabase altered.\r\n\r\n[Standby - 26-04-2017 10:19:07] SQL&gt; alter database recover managed standby database using current logfile disconnect;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>d. We are questioning whether Flashback Database is activated in databases.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:18:26] SQL&gt; select flashback_on from v$database;\r\n\r\nFLASHBACK_ON\r\n------------------\r\nYES\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 10:19:43] SQL&gt; select flashback_on from v$database;\r\n\r\nFLASHBACK_ON\r\n------------------\r\nYES\r\n<\/pre>\n<p>3. We define Restore Points in Primary and Standby databases.<\/p>\n<p class=\"lang:default decode:true \">a. We are making identification in the primary database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:19:40] SQL&gt; create restore point pre_upgrade guarantee flashback database;\r\n\r\nRestore point created.\r\n<\/pre>\n<p>b. We are making identification in the standby database.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 10:22:11] SQL&gt; alter database recover managed standby database cancel;\r\n\r\nDatabase altered.\r\n\r\n[Standby - 26-04-2017 10:22:19] SQL&gt; create restore point pre_upgrade_physcl guarantee flashback database;\r\n\r\nRestore point created.\r\n\r\n[Standby - 26-04-2017 10:22:21] SQL&gt; alter database recover managed standby database using current logfile disconnect;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>4. The Physical Standby database is converted to a Logical Standby database. The only difference in the conversion process is that the &#8220;KEEP IDENTITY&#8221; statement will be used.<\/p>\n<p>This means that although Physical Standby is converted to Logical, it is temporary, so it should not forget its ID (DB_NAME and DB_ID) and will be converted back to Physical.<\/p>\n<p>a. We create a LogMiner dictionary in the primary database so that SQL Apply can correctly interpret the transactional changes.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:21:13] SQL&gt; exec dbms_logstdby.build;\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>b. Redo Apply is stopped in the standby database and the instance is put into MOUNT mode.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 10:22:30] SQL&gt; alter database recover managed standby database cancel;\r\n\r\nDatabase altered.\r\n\r\n[Standby - 26-04-2017 10:27:42] SQL&gt; shutdown immediate;\r\nDatabase closed.\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\n[Standby - 26-04-2017 10:28:07] SQL&gt; startup mount;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3273641984 bytes\r\nFixed Size                  2257680 bytes\r\nVariable Size             738200816 bytes\r\nDatabase Buffers         2516582400 bytes\r\nRedo Buffers               16601088 bytes\r\nDatabase mounted.\r\n<\/pre>\n<p>c. The Physical Standby database is converted to Logical.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; alter database recover to logical standby keep identity;\r\n<\/pre>\n<p>This command just waits without any feedback at this stage. The reason is that it searches for LogMiner Dictionary in logs. For this reason, LogMiner Dictionary is created again in the Primary database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:27:11] SQL&gt; exec dbms_logstdby.build;\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>As soon as the PL\/SQL Procedure is completed, the conversion command to Logical is also completed.<\/p>\n<p>d. The conversion process is concluded by opening the database.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; alter database open;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>e. We pass to the controls.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; select status from v$instance;\r\n\r\nSTATUS\r\n------------\r\nOPEN\r\n\r\n[Standby - 26-APR-17] SQL&gt; select open_mode, database_role from v$database;\r\n\r\nOPEN_MODE            DATABASE_ROLE\r\n-------------------- ----------------\r\nREAD WRITE           LOGICAL STANDBY\r\n\r\n[Standby - 26-APR-17] SQL&gt; alter database start logical standby apply immediate;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>f. By creating a table in the primary database, we check whether it is reflected in the Standby database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:33:05] SQL&gt; create table test.employees_yedek as select * from hr.employees;\r\n\r\nTable created.\r\n\r\n[Source - 26-04-2017 10:33:26] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n------------------------------\r\nEMPLOYEES_YEDEK\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n------------------------------\r\nEMPLOYEES_YEDEK\r\n<\/pre>\n<p>5. Automatic deletion of Foreign Archive Logs is disabled, in case of need during the upgrade.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; EXECUTE DBMS_LOGSTDBY.APPLY_SET('LOG_AUTO_DELETE', 'FALSE');\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>6. Preparations before Upgrade are completed in the Logical Standby database.<\/p>\n<p>a. Sending logs to Logical Standby is prevented.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:33:43] SQL&gt; alter system set log_archive_dest_state_2=DEFER scope=memory;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>b. By stopping SQL Apply, a guaranteed restore point is defined.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; alter database stop logical standby apply;\r\n\r\nDatabase altered.\r\n\r\n[Standby - 26-APR-17] SQL&gt; create restore point pre_upgrade_logical guarantee flashback database;\r\n\r\nRestore point created.\r\n<\/pre>\n<p>c. We are creating some tables to see that the transactions coming during the upgrade are processed to Logical Standby after the SQL Apply is started after the Upgrade.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 10:37:46] SQL&gt; create table test.jobs_yedek as select * from hr.jobs;\r\n\r\nTable created.\r\n\r\n[Source - 26-04-2017 10:41:54] SQL&gt; create table test.job_history_yedek as select * from hr.job_history;\r\n\r\nTable created.\r\n<\/pre>\n<p>d. We create the paths where the new version will be installed.<\/p>\n<pre class=\"lang:default decode:true \">[root@standby ~]# mkdir -p \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n[root@standby ~]# chown -R oracle:oinstall \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n[root@standby ~]# chmod -R 775 \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n<\/pre>\n<p>7. 12cR1&#8217;s Software is installed on Logical Standby.<\/p>\n<p>8. Go to 12cR1&#8217;s ORACLE_HOME\/bin directory and run DBUA.<\/p>\n<pre class=\"lang:default decode:true \">.\/dbua<\/pre>\n<p>9. We question whether the upgrade has taken place.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:41:01] SQL&gt; select banner from v$version;\r\n\r\nBANNER\r\n----------------------------------------------------------------------------\r\nOracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production\r\nPL\/SQL Release 12.1.0.2.0 - Production\r\nCORE    12.1.0.2.0      Production\r\nTNS for Linux: Version 12.1.0.2.0 - Production\r\nNLSRTL Version 12.1.0.2.0 - Production\r\n<\/pre>\n<p>10. The log flow from the Primary database to Standby is provided again and it is questioned whether the Standby database is SYNC with the Primary.<\/p>\n<p>a. Log flow of Primary to Standby is started.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:13:44] SQL&gt; alter system set log_archive_dest_state_2=ENABLE scope=memory;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>b. SQL Apply starts on the standby database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:12:30] SQL&gt; alter database start logical standby apply immediate;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>c. We check whether the tables created in Primary during the upgrade are formed in Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:15:51] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n------------------------------\r\nEMPLOYEES_YEDEK\r\nJOBS_YEDEK\r\nJOB_HISTORY_YEDEK\r\n\r\n[Standby- 26-04-2017 13:15:51] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n--------------------------------------------------------------------------------\r\nJOB_HISTORY_YEDEK\r\nJOBS_YEDEK\r\nEMPLOYEES_YEDEK\r\n<\/pre>\n<p>d. The Primary&#8217;s Standby and SYNC are checked.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:25:57] SQL&gt; SELECT SYSDATE, APPLIED_TIME FROM V$LOGSTDBY_PROGRESS;\r\n\r\nSYSDATE             APPLIED_TIME\r\n------------------- -------------------\r\n26-04-2017 13:26:06 26-04-2017 13:26:05\r\n<\/pre>\n<p>11. We question whether the logs go from Primary to Standby without any problems.<\/p>\n<p>a. Existing Log sequence numbers are queried.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:15:54] SQL&gt; select max(sequence#) from v$archived_log group by thread#;\r\n\r\nMAX(SEQUENCE#)\r\n--------------\r\n            27\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby- 26-04-2017 13:16:15] SQL&gt; select max(sequence#), applied from dba_logstdby_log group by thread#, applied;\r\n\r\nMAX(SEQUENCE#) APPLIED\r\n-------------- --------\r\n            27 YES\r\n<\/pre>\n<p>b. Log Switch operation is performed in Primary.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:16:48] SQL&gt; alter system switch logfile;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>c. We are checking whether the logs go to Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:17:54] SQL&gt; select max(sequence#) from v$archived_log group by thread#;\r\n\r\nMAX(SEQUENCE#)\r\n--------------\r\n            28\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby- 26-04-2017 13:17:35] SQL&gt; select max(sequence#), applied from dba_logstdby_log group by thread#, applied;\r\n\r\nMAX(SEQUENCE#) APPLIED\r\n-------------- --------\r\n            28 YES\r\n<\/pre>\n<p>12. Logical Standby, which is passed to 12cR1 with Switchover, is made Primary and Standby is made in Primary, which is 11gR2.<\/p>\n<p>a. We question the compatibility of Primary with Switchover.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:30:52] SQL&gt; SELECT SWITCHOVER_STATUS FROM V$DATABASE;\r\n\r\nSWITCHOVER_STATUS\r\n--------------------\r\nSESSIONS ACTIVE\r\n<\/pre>\n<p>b. Primary database is converted to Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:31:00] SQL&gt; alter database commit to switchover to logical standby;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>c. We question the suitability of Logical Standby to Primary.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:26:47] SQL&gt; select switchover_status from v$database;\r\n\r\nSWITCHOVER_STATUS\r\n--------------------\r\nTO PRIMARY\r\n<\/pre>\n<p>d. Converted to Logical Standby Primary.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:32:07] SQL&gt; ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>e. We pass to the controls.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:31:55] SQL&gt; select status from v$instance;\r\n\r\nSTATUS\r\n------------\r\nOPEN\r\n\r\n[Source - 26-04-2017 13:33:27] SQL&gt; select open_mode, database_role from v$database;\r\n\r\nOPEN_MODE            DATABASE_ROLE\r\n-------------------- ----------------\r\nREAD WRITE           LOGICAL STANDBY\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:33:07] SQL&gt; select status from v$instance;\r\n\r\nSTATUS\r\n------------\r\nOPEN\r\n\r\n[Standby - 26-04-2017 13:33:27] SQL&gt; select open_mode, database_role from v$database;\r\n\r\nOPEN_MODE            DATABASE_ROLE\r\n-------------------- ----------------\r\nREAD WRITE           PRIMARY\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:33:39] SQL&gt; select recovery_mode from v$archive_dest_status where dest_id &lt;2;\r\n\r\nRECOVERY_MODE\r\n-----------------------\r\nIDLE\r\n<\/pre>\n<p>f. Tables are created in the new Primary.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 13:34:03] SQL&gt; create table test.regions_yedek as select * from hr.regions;\r\n\r\nTable created.\r\n\r\n[Standby - 26-04-2017 13:38:01] SQL&gt; create table test.locations_yedek as select * from hr.locations;\r\n\r\nTable created.\r\n<\/pre>\n<p>13. The new Logical Standby database is flashbacked to the Restore Point taken before the Upgrade. The reason for this operation is to initially bring the database to the moment of the Physical Standby database before it is pulled to Logical.<\/p>\n<p>Thus, when I complete the conversion from Logical to Physical, the old Primary database will be a Physical Standby that came before the Upgrade.<\/p>\n<p>a. We get the original Primary database MOUNT mod.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 13:45:03] SQL&gt; shutdown immediate;\r\nDatabase closed.\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\n[Source - 26-04-2017 13:55:41] SQL&gt; startup mount;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3273641984 bytes\r\nFixed Size                  2257680 bytes\r\nVariable Size             738200816 bytes\r\nDatabase Buffers         2516582400 bytes\r\nRedo Buffers               16601088 bytes\r\nDatabase mounted.\r\n<\/pre>\n<p>b. Restore Point&#8217;s information is learned.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; desc v$restore_point;\r\n Name                                      Null?    Type\r\n ----------------------------------------- -------- ----------------------------\r\n SCN                                                NUMBER\r\n DATABASE_INCARNATION#                              NUMBER\r\n GUARANTEE_FLASHBACK_DATABASE                       VARCHAR2(3)\r\n STORAGE_SIZE                                       NUMBER\r\n TIME                                               TIMESTAMP(9)\r\n RESTORE_POINT_TIME                                 TIMESTAMP(9)\r\n PRESERVED                                          VARCHAR2(3)\r\n NAME                                               VARCHAR2(128)\r\n \r\n[Source - 26-APR-17] SQL&gt; select max(length(name)) from v$restore_point;\r\n\r\nMAX(LENGTH(NAME))\r\n-----------------\r\n               11\r\n\r\n[Source - 26-APR-17] SQL&gt; column name format a11\r\n\r\n\r\n[Source - 26-APR-17] SQL&gt; select SCN, DATABASE_INCARNATION#, GUARANTEE_FLASHBACK_DATABASE, TIME, RESTORE_POINT_TIME, NAME from v$restore_point;\r\n\r\n       SCN DATABASE_INCARNATION# GUA TIME                                                                        RESTORE_POINT_TIME                                                          NAME\r\n---------- --------------------- --- --------------------------------------------------------------------------- --------------------------------------------------------------------------- -----------\r\n   1082928                     2 YES 26-APR-17 10.21.13.000000000 AM                                                                                                                         PRE_UPGRADE\r\n<\/pre>\n<p>c. We are doing a flashback to Restore Point.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 14:00:35] SQL&gt; flashback database to restore point pre_upgrade;\r\n\r\nFlashback complete.\r\n<\/pre>\n[Source]&#8211;&gt;ALERT_LOG<\/p>\n<pre class=\"lang:default decode:true \">Wed Apr 26 14:01:21 2017\r\nflashback database to restore point pre_upgrade\r\nFlashback Restore Start\r\nFlashback Restore Complete\r\nFlashback Media Recovery Start\r\n started logmerger process\r\nParallel Media Recovery started with 4 slaves\r\nFlashback Media Recovery Log \/u01\/app\/oracle\/fast_recovery_area\/SOURCE\/archivelog\/2017_04_26\/o1_mf_1_15_dj0lyc6d_.arc\r\nWed Apr 26 14:01:23 2017\r\nIncomplete Recovery applied until change 1082929 time 04\/26\/2017 10:21:13\r\nFlashback Media Recovery Complete\r\nCompleted: flashback database to restore point pre_upgrade\r\n<\/pre>\n<p>14. In the original Primary database, the paths where 12cR1 will be loaded are created.<\/p>\n<pre class=\"lang:default decode:true \">[root@source ~]# mkdir -p \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n[root@source ~]# chown -R oracle:oinstall \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n[root@source ~]# chmod -R 775 \/u01\/app\/oracle\/product\/12.1.0\/db_1\r\n<\/pre>\n<p>15. 12cR1&#8217;s Software is installed in the original Primary database.<\/p>\n<p>16. We are editing some files as there is no 12cR1 database in the Original Primary database yet.<\/p>\n<p>a. There are no files like LISTENER, TNSNAMES. We copy such files to new paths.<\/p>\n<pre class=\"lang:default decode:true \">[root@source ~]# su - oracle\r\n[oracle@source ~]$ cp \/u01\/app\/oracle\/product\/11.2.0\/db_1\/dbs\/orapwsource \/u01\/app\/oracle\/product\/12.1.0\/db_1\/dbs\/\r\n[oracle@source ~]$ cp \/u01\/app\/oracle\/product\/11.2.0\/db_1\/dbs\/spfilesource.ora \/u01\/app\/oracle\/product\/12.1.0\/db_1\/dbs\/\r\n[oracle@source ~]$ cd \/u01\/app\/oracle\/product\/12.1.0\/db_1\/dbs\/\r\n[oracle@source dbs]$ ll\r\ntotal 12\r\n-rw-r--r-- 1 oracle oinstall 2992 Feb  3  2012 init.ora\r\n-rw-r----- 1 oracle oinstall 1536 Apr 26 14:16 orapwsource\r\n-rw-r----- 1 oracle oinstall 3584 Apr 26 14:16 spfilesource.ora\r\n<\/pre>\n<p>b. It is organized according to Bash Profile 12cR1.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@source ~]$ vi .bash_profile \r\n# .bash_profile\r\n\r\n# Get the aliases and functions\r\nif [ -f ~\/.bashrc ]; then\r\n        . ~\/.bashrc\r\nfi\r\n\r\n# User specific environment and startup programs\r\n\r\nPATH=$PATH:$HOME\/bin\r\n\r\nexport PATH\r\n\r\nTMP=\/tmp; export TMP\r\nTMPDIR=$TMP; export TMPDIR\r\n\r\nORACLE_UNQNAME=source; export ORACLE_UNQNAME\r\nORACLE_BASE=\/u01\/app\/oracle; export ORACLE_BASE\r\nDB_HOME=$ORACLE_BASE\/product\/12.1.0\/db_1; export DB_HOME\r\nORACLE_HOME=$DB_HOME; export ORACLE_HOME\r\nORACLE_SID=source; export ORACLE_SID\r\nORACLE_TERM=xterm; export ORACLE_TERM\r\nBASE_PATH=\/usr\/sbin:$PATH; export BASE_PATH\r\nPATH=$ORACLE_HOME\/bin:$GRID_HOME\/bin:$BASE_PATH; export PATH\r\nLD_LIBRARY_PATH=$ORACLE_HOME\/lib:\/lib:\/usr\/lib; export LD_LIBRARY_PATH\r\nCLASSPATH=$ORACLE_HOME\/JRE:$ORACLE_HOME\/jlib:$ORACLE_HOME\/rdbms\/jlib; export CLASSPATH\r\n\r\nulimit -u 65536\r\nulimit -n 65536\r\n\r\nalias log='cd \/u01\/app\/oracle\/diag\/rdbms\/source\/source\/trace; pwd'\r\nalias oh='cd $ORACLE_HOME; pwd'\r\n<\/pre>\n<p>c. Bash Profile is enabled to be active. We check if the change has taken place.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@source ~]$ . .bash_profile<\/pre>\n<pre class=\"lang:default decode:true \">[oracle@source ~]$ echo $ORACLE_HOME\r\n\/u01\/app\/oracle\/product\/12.1.0\/db_1<\/pre>\n<p>17. In the new Software location, we connect to the database and MOUNT.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@source ~]$ sqlplus \/ as sysdba\r\n\r\nSQL*Plus: Release 12.1.0.2.0 Production on Wed Apr 26 14:23:23 2017\r\n\r\nCopyright (c) 1982, 2014, Oracle.  All rights reserved.\r\n\r\nConnected to an idle instance.\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; startup mount;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3288334336 bytes\r\nFixed Size                  2929744 bytes\r\nVariable Size             738200496 bytes\r\nDatabase Buffers         2533359616 bytes\r\nRedo Buffers               13844480 bytes\r\nORA-00205: error in identifying control file, check alert log for more info<\/pre>\n[Source]&#8211;&gt;ALERT_LOG<\/p>\n<pre class=\"lang:default decode:true \">Wed Apr 26 14:48:46 2017\r\nORA-00210: cannot open the specified control file\r\nORA-00202: control file: '\/u01\/app\/oracle\/fast_recovery_area\/source\/control02.ctl'\r\nORA-27086: unable to lock file - already in use\r\nLinux-x86_64 Error: 11: Resource temporarily unavailable\r\nAdditional information: 8\r\nAdditional information: 27431\r\nORA-00210: cannot open the specified control file\r\nORA-00202: control file: '\/u01\/app\/oracle\/oradata\/source\/control01.ctl'\r\nORA-27086: unable to lock file - already in use\r\nLinux-x86_64 Error: 11: Resource temporarily unavailable\r\nAdditional information: 8\r\nAdditional information: 27431\r\nORA-205 signalled during: ALTER DATABASE   MOUNT...\r\n<\/pre>\n<p>18. It turns out that the error is related to the control file locations. The control file location is reduced to one and the problem is solved by changing its name.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 14:50:27] SQL&gt; shu immediate;\r\nORA-01507: database not mounted\r\n\r\n\r\nORACLE instance shut down.\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; startup mount pfile='\/u01\/app\/oracle\/product\/12.1.0\/db_1\/dbs\/initsource.ora';\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3288334336 bytes\r\nFixed Size                  2929744 bytes\r\nVariable Size             738200496 bytes\r\nDatabase Buffers         2533359616 bytes\r\nRedo Buffers               13844480 bytes\r\nDatabase mounted.\r\n<\/pre>\n<p>19. The original database is now converted to Physical Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; alter database convert to physical standby;\r\n\r\nDatabase altered.\r\n<\/pre>\n<p>20. The database is closed and taken to the MOUNT step.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; shu immediate;\r\nORA-01109: database not open\r\n\r\n\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\n[Source - 26-APR-17] SQL&gt; startup mount;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3288334336 bytes\r\nFixed Size                  2929744 bytes\r\nVariable Size             738200496 bytes\r\nDatabase Buffers         2533359616 bytes\r\nRedo Buffers               13844480 bytes\r\nDatabase mounted.\r\n<\/pre>\n<p>21. We are checking whether the database has passed to Physical Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; select open_mode, database_role from v$database;\r\n\r\nOPEN_MODE            DATABASE_ROLE\r\n-------------------- ----------------\r\nMOUNTED              PHYSICAL STANDBY\r\n\r\n[Source - 26-APR-17] SQL&gt; select recovery_mode from v$archive_dest_status where dest_id&lt;2;\r\n\r\nRECOVERY_MODE\r\n-----------------------\r\nIDLE\r\n<\/pre>\n<p>22. It is ensured that the logs come from Primary to Standby and Redo Apply is started.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 15:17:00] SQL&gt; alter system set log_archive_dest_2='SERVICE=source SYNC REOPEN=15 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=source' scope=both;\r\n\r\nSystem altered.\r\n\r\n[Standby - 26-04-2017 15:17:55] SQL&gt; alter system set log_archive_dest_state_2=ENABLE scope=both;\r\n\r\nSystem altered.\r\n<\/pre>\n[Standby]&#8211;&gt;ALERT_LOG<\/p>\n<pre class=\"lang:default decode:true \">Fatal NI connect error 12504, connecting to:\r\n (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=)(CID=(PROGRAM=oracle)(HOST=standby.tivibulab.local)(USER=oracle)))(ADDRESS=(PROTOCOL=TCP)(HOST=172.20.42.67)(PORT=1521)))\r\n\r\n  VERSION INFORMATION:\r\n        TNS for Linux: Version 12.1.0.2.0 - Production\r\n        TCP\/IP NT Protocol Adapter for Linux: Version 12.1.0.2.0 - Production\r\n  Time: 26-APR-2017 15:20:21\r\n  Tracing not turned on.\r\n  Tns error struct:\r\n    ns main err code: 12564\r\n    \r\nTNS-12564: TNS:connection refused\r\n    ns secondary err code: 0\r\n    nt main err code: 0\r\n    nt secondary err code: 0\r\n    nt OS err code: 0\r\nWed Apr 26 15:20:21 2017\r\nError 12504 received logging on to the standby\r\n<\/pre>\n<p>There are some points to check when redos are not sent. These are, respectively,<\/p>\n<p>TNSNAMES.ORA, LISTENER.ORA, PASSWORD FILES,<\/p>\n<p>a. We check the TNSNAMES.ORA file in Primary.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@standby admin]$ cat tnsnames.ora \r\n# tnsnames.ora Network Configuration File: \/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/tnsnames.ora\r\n# Generated by Oracle configuration tools.\r\n\r\nSTANDBY =\r\n  (DESCRIPTION =\r\n    (ADDRESS = (PROTOCOL = TCP)(HOST = standby.tivibulab.local)(PORT = 1521))\r\n    (CONNECT_DATA =\r\n      (SERVER = DEDICATED)\r\n      (SERVICE_NAME = standby)\r\n    )\r\n  )\r\n\r\nLISTENER_STANDBY =\r\n  (ADDRESS = (PROTOCOL = TCP)(HOST = standby.tivibulab.local)(PORT = 1521))\r\n<\/pre>\n<p>b. It is understood that there is no Standby and the Standby database is added to TNSNAMES.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@standby admin]$ vi tnsnames.ora \r\n# tnsnames.ora Network Configuration File: \/u01\/app\/oracle\/productk\/12.1.0\/db_1\/network\/admin\/tnsnames.ora\r\n# Generated by Oracle configuration tools.\r\n\r\nSTANDBY =\r\n  (DESCRIPTION =\r\n    (ADDRESS = (PROTOCOL = TCP)(HOST = standby.tivibulab.local)(PORT = 1521))\r\n    (CONNECT_DATA =\r\n      (SERVER = DEDICATED)\r\n      (SERVICE_NAME = standby)\r\n    )\r\n  )\r\n\r\nSOURCE =\r\n  (DESCRIPTION =\r\n    (ADDRESS = (PROTOCOL = TCP)(HOST = source.tivibulab.local)(PORT = 1521))\r\n    (CONNECT_DATA =\r\n      (SERVER = DEDICATED)\r\n      (SERVICE_NAME = source)\r\n    )\r\n  )\r\n\r\nLISTENER_STANDBY =\r\n  (ADDRESS = (PROTOCOL = TCP)(HOST = standby.tivibulab.local)(PORT = 1521))\r\n<\/pre>\n<p>c. Good versions of these files are sent to the Standby database.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@standby admin]$ scp tnsnames.ora sqlnet.ora source:\/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/\r\nThe authenticity of host 'source (172.20.42.67)' can't be established.\r\nRSA key km is c8:91:c0:8b:44:d7:4b:c6:1b:07:ed:48:a6:d1:4a:6d.\r\nAre you sure you want to continue connecting (yes\/no)? yes\r\nWarning: Permanently added 'source,172.20.42.67' (RSA) to the list of known hosts.\r\noracle@source's password: \r\ntnsnames.ora                                                                    100%  632     0.6KB\/s   00:00    \r\nsqlnet.ora                                                                      100%  198     0.2KB\/s   00:00<\/pre>\n<pre class=\"lang:default decode:true \">[oracle@standby admin]$ scp listener.ora source:\/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/\r\noracle@source's password: \r\nlistener.ora                                                                    100%  347     0.3KB\/s   00:00\r\n<\/pre>\n<p>d. On the standby side, we update the LISTENER.ORA file.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@source admin]$ vi listener.ora \r\n# listener.ora Network Configuration File: \/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/listener.ora\r\n# Generated by Oracle configuration tools.\r\n\r\nLISTENER =\r\n  (DESCRIPTION_LIST =\r\n    (DESCRIPTION =\r\n      (ADDRESS = (PROTOCOL = TCP)(HOST = source.tivibulab.local)(PORT = 1521)) De \r\n      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))\r\n    )\r\n  )\r\n<\/pre>\n<p>e. Listener STOP is START.<\/p>\n<pre class=\"lang:default decode:true \">[oracle@source admin]$ lsnrctl\r\n\r\nLSNRCTL for Linux: Version 12.1.0.2.0 - Production on 26-APR-2017 15:44:58\r\n\r\nCopyright (c) 1991, 2014, Oracle.  All rights reserved.\r\n\r\nWelcome to LSNRCTL, type \"help\" for information.\r\n\r\nLSNRCTL&gt; status\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source.tivibulab.local)(PORT=1521)))\r\nSTATUS of the LISTENER\r\n------------------------\r\nAlias                     LISTENER\r\nVersion                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production\r\nStart Date                26-APR-2017 09:03:12\r\nUptime                    0 days 6 hr. 41 min. 47 sec\r\nTrace Level               off\r\nSecurity                  ON: Local OS Authentication\r\nSNMP                      OFF\r\nListener Parameter File   \/u01\/app\/oracle\/product\/11.2.0\/db_1\/network\/admin\/listener.ora\r\nListener Log File         \/u01\/app\/oracle\/diag\/tnslsnr\/source\/listener\/alert\/log.xml\r\nListening Endpoints Summary...\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=source.tivibulab.local)(PORT=1521)))\r\nServices Summary...\r\nService \"source\" has 1 instance(s).\r\n  Instance \"source\", status UNKNOWN, has 1 handler(s) for this service...\r\nService \"source_DGMGRL\" has 1 instance(s).\r\n  Instance \"source\", status UNKNOWN, has 1 handler(s) for this service...\r\nThe command completed successfully\r\nLSNRCTL&gt; stop\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source.tivibulab.local)(PORT=1521)))\r\nThe command completed successfully\r\nLSNRCTL&gt; status\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source.tivibulab.local)(PORT=1521)))\r\nTNS-12541: TNS:no listener\r\n TNS-12560: TNS:protocol adapter error\r\n  TNS-00511: No listener\r\n   Linux Error: 111: Connection refused\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))\r\nTNS-12541: TNS:no listener\r\n TNS-12560: TNS:protocol adapter error\r\n  TNS-00511: No listener\r\n   Linux Error: 2: No such file or directory\r\n<\/pre>\n<pre class=\"lang:default decode:true \">LSNRCTL&gt; start\r\nStarting \/u01\/app\/oracle\/product\/12.1.0\/db_1\/bin\/tnslsnr: please wait...\r\n\r\nTNSLSNR for Linux: Version 12.1.0.2.0 - Production\r\nSystem parameter file is \/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/listener.ora\r\nLog messages written to \/u01\/app\/oracle\/diag\/tnslsnr\/source\/listener\/alert\/log.xml\r\nListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=source.tivibulab.local)(PORT=1521)))\r\nListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))\r\n\r\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source.tivibulab.local)(PORT=1521)))\r\nSTATUS of the LISTENER\r\n------------------------\r\nAlias                     LISTENER\r\nVersion                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production\r\nStart Date                26-APR-2017 15:47:58\r\nUptime                    0 days 0 hr. 0 min. 0 sec\r\nTrace Level               off\r\nSecurity                  ON: Local OS Authentication\r\nSNMP                      OFF\r\nListener Parameter File   \/u01\/app\/oracle\/product\/12.1.0\/db_1\/network\/admin\/listener.ora\r\nListener Log File         \/u01\/app\/oracle\/diag\/tnslsnr\/source\/listener\/alert\/log.xml\r\nListening Endpoints Summary...\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=source.tivibulab.local)(PORT=1521)))\r\n  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))\r\nThe listener supports no services\r\nThe command completed successfully\r\n<\/pre>\n<p>f. With all these operations, the logs were sent to Standby successfully and there were no errors left in the logs. We check whether the logs go to the standby side.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 15:53:02] SQL&gt; select max(sequence#) from v$archived_log group by thread#;\r\n\r\nMAX(SEQUENCE#)\r\n--------------\r\n           147\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 15:53:02] SQL&gt; select max(sequence#),applied from v$archived_log group by thread#,applied;\r\n\r\nMAX(SEQUENCE#) APPLIED\r\n-------------- ---------\r\n           147 NO\r\n            28 YES\r\n<\/pre>\n<p>23. Redo Apply is started and with this process, 12cR1 Upgrade in Standby database is completed.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 15:54:21] SQL&gt; alter database recover managed standby database using current logfile disconnect;\r\n\r\nDatabase altered.\r\n<\/pre>\n[Source]&#8211;&gt;ALERT_LOG<\/p>\n<pre class=\"lang:default decode:true \">Wed Apr 26 15:59:17 2017\r\nMedia Recovery Log \/u01\/app\/oracle\/fast_recovery_area\/SOURCE\/archivelog\/2017_04_26\/o1_mf_1_44_dj15sj8c_.arc\r\nResize operation completed for file# 3, old size 737280K, new size 747520K\r\nResize operation completed for file# 3, old size 747520K, new size 752640K\r\nResize operation completed for file# 3, old size 752640K, new size 762880K\r\nResize operation completed for file# 3, old size 762880K, new size 773120K\r\nWed Apr 26 15:59:20 2017\r\nMedia Recovery Log \/u01\/app\/oracle\/fast_recovery_area\/SOURCE\/archivelog\/2017_04_26\/o1_mf_1_45_dj15sjog_.arc\r\nResize operation completed for file# 3, old size 773120K, new size 783360K\r\nResize operation completed for file# 3, old size 783360K, new size 793600K\r\nResize operation completed for file# 3, old size 793600K, new size 798720K\r\nWed Apr 26 15:59:22 2017\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 15:57:14] SQL&gt; select recovery_mode from v$archive_dest_status where dest_id&lt;2;\r\n\r\nRECOVERY_MODE\r\n-----------------------\r\nMANAGED REAL TIME APPLY\r\n<\/pre>\n<p>24. The standby database is opened and it is seen whether the tables have come or not.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 16:04:19] SQL&gt; alter database recover managed standby database cancel;\r\n\r\nDatabase altered.\r\n\r\n[Source - 26-04-2017 16:05:07] SQL&gt; alter database open;\r\n\r\nDatabase altered.\r\n\r\n[Source - 26-04-2017 16:05:21] SQL&gt; alter database recover managed standby database using current logfile disconnect;\r\n\r\nDatabase altered.\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 16:04:46] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n--------------------------------------------------------------------------------\r\nREGIONS_YEDEK\r\nJOB_HISTORY_YEDEK\r\nJOBS_YEDEK\r\nLOCATIONS_YEDEK\r\nEMPLOYEES_YEDEK\r\n\r\n[Source - 26-04-2017 16:05:35] SQL&gt; select table_name from dba_tables where owner='TEST';\r\n\r\nTABLE_NAME\r\n--------------------------------------------------------------------------------\r\nEMPLOYEES_YEDEK\r\nLOCATIONS_YEDEK\r\nJOBS_YEDEK\r\nJOB_HISTORY_YEDEK\r\nREGIONS_YEDEK\r\n<\/pre>\n<p>25. We check if the upgrade is running smoothly in both databases.<\/p>\n<p>a.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 16:05:54] SQL&gt; select banner from v$version;\r\n\r\nBANNER\r\n--------------------------------------------------------------------------------\r\nOracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production\r\nPL\/SQL Release 12.1.0.2.0 - Production\r\nCORE    12.1.0.2.0      Production\r\nTNS for Linux: Version 12.1.0.2.0 - Production\r\nNLSRTL Version 12.1.0.2.0 - Production\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 16:05:54] SQL&gt; select banner from v$version;\r\n\r\nBANNER\r\n--------------------------------------------------------------------------------\r\nOracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production\r\nPL\/SQL Release 12.1.0.2.0 - Production\r\nCORE    12.1.0.2.0      Production\r\nTNS for Linux: Version 12.1.0.2.0 - Production\r\nNLSRTL Version 12.1.0.2.0 - Production\r\n<\/pre>\n<p>b.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 16:06:50] SQL&gt; SELECT version FROM v$instance;\r\n\r\nVERSION\r\n-----------------\r\n12.1.0.2.0\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 16:06:50] SQL&gt; SELECT version FROM v$instance;\r\n\r\nVERSION\r\n-----------------\r\n12.1.0.2.0\r\n<\/pre>\n<p>c.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 16:09:44] SQL&gt; column PRODUCT format a39\r\n[Standby - 26-04-2017 16:10:00] SQL&gt; column VERSION format a10\r\n[Standby - 26-04-2017 16:10:10] SQL&gt; column STATUS format a16\r\n[Standby - 26-04-2017 16:10:20] SQL&gt; select * from product_component_version;\r\n\r\nPRODUCT                                 VERSION    STATUS\r\n--------------------------------------- ---------- ----------------\r\nNLSRTL                                  12.1.0.2.0 Production\r\nOracle Database 12c Enterprise Edition  12.1.0.2.0 64bit Production\r\nPL\/SQL                                  12.1.0.2.0 Production\r\nTNS for Linux:                          12.1.0.2.0 Production\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 16:08:45] SQL&gt; column PRODUCT format a39\r\n[Source - 26-04-2017 16:10:00] SQL&gt; column VERSION format a10\r\n[Source - 26-04-2017 16:10:10] SQL&gt; column STATUS format a16\r\n[Source - 26-04-2017 16:10:20] SQL&gt; select * from product_component_version;\r\n\r\nPRODUCT                                 VERSION    STATUS\r\n--------------------------------------- ---------- ----------------\r\nNLSRTL                                  12.1.0.2.0 Production\r\nOracle Database 12c Enterprise Edition  12.1.0.2.0 64bit Production\r\nPL\/SQL                                  12.1.0.2.0 Production\r\nTNS for Linux:                          12.1.0.2.0 Production\r\n<\/pre>\n<p>d.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 23:09:51] SQL&gt; select database_role from v$database;\r\n\r\nDATABASE_ROLE\r\n----------------\r\nPHYSICAL STANDBY\r\n\r\n[Source - 26-04-2017 23:10:21] SQL&gt; alter database recover managed standby database cancel;\r\n\r\nDatabase altered.\r\n\r\n[Source - 26-04-2017 23:10:35] SQL&gt; select recovery_mode from v$archive_Dest_status where dest_id&lt;2;\r\n\r\nRECOVERY_MODE\r\n-----------------------\r\nIDLE\r\n<\/pre>\n<pre class=\"lang:default decode:true \">[Source - 26-04-2017 23:11:04] SQL&gt; alter database recover managed standby database disconnect;\r\n\r\nDatabase altered.\r\n\r\n[Source - 26-04-2017 23:11:23] SQL&gt; select recovery_mode from v$archive_Dest_status where dest_id&lt;2;\r\n\r\nRECOVERY_MODE\r\n-----------------------\r\nMANAGED REAL TIME APPLY\r\n<\/pre>\n<p>Starting the recovery just by typing &#8220;disconnect&#8221; came in 12c. This is proof that we have passed to healthy 12c.<\/p>\n<p>26. Compatible parameters of databases are increased.<\/p>\n<p>a. We DROP Restore Point in Standby.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; drop restore point pre_upgrade;\r\n\r\nRestore point dropped.<\/pre>\n<p>b. We change the Compatible parameter.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; alter system set compatible='12.1.0.2.0' scope=spfile;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>c. We close and open the database.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; shu immediate;\r\nDatabase closed.\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\n[Source - 26-APR-17] SQL&gt; startup;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3288334336 bytes\r\nFixed Size                  2929744 bytes\r\nVariable Size             738200496 bytes\r\nDatabase Buffers         2533359616 bytes\r\nRedo Buffers               13844480 bytes\r\nDatabase mounted.\r\nDatabase opened.\r\n<\/pre>\n<p>d. We check for changes.<\/p>\n<pre class=\"lang:default decode:true \">[Source - 26-APR-17] SQL&gt; show parameter compatible\r\n\r\nNAME                                 TYPE        VALUE\r\n------------------------------------ ----------- ------------------------------\r\ncompatible                           string      12.1.0.2.0\r\nnoncdb_compatible                    boolean     FALSE\r\n<\/pre>\n<p>e. We are querying the Restore Points in Primary.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 23:10:21] SQL&gt; select name from v$restore_point;\r\n\r\nNAME\r\n--------------------------------------------------------------------------------\r\nPRE_UPGRADE_PHYSCL\r\nPRE_UPGRADE_LOGICAL\r\n<\/pre>\n<p>f. Restore Points in Primary are DROPed.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 23:25:44] SQL&gt; drop restore point PRE_UPGRADE_PHYSCL;\r\n\r\nRestore point dropped.\r\n\r\n[Standby - 26-04-2017 23:25:59] SQL&gt; drop restore point PRE_UPGRADE_LOGICAL;\r\n\r\nRestore point dropped.\r\n<\/pre>\n<p>g. We change the Compatible parameter.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 23:26:10] SQL&gt; alter system set compatible='12.1.0.2.0' scope=spfile;\r\n\r\nSystem altered.\r\n<\/pre>\n<p>h. By closing the database, the parameter is activated.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-04-2017 23:26:16] SQL&gt; shu immediate;\r\nDatabase closed.\r\nDatabase dismounted.\r\nORACLE instance shut down.\r\n[Standby - 26-04-2017 23:26:40] SQL&gt; startup;\r\nORACLE instance started.\r\n\r\nTotal System Global Area 3288334336 bytes\r\nFixed Size                  2929744 bytes\r\nVariable Size             788532144 bytes\r\nDatabase Buffers         2483027968 bytes\r\nRedo Buffers               13844480 bytes\r\nDatabase mounted.\r\nDatabase opened.\r\n<\/pre>\n<p>I. We check for changes.<\/p>\n<pre class=\"lang:default decode:true \">[Standby - 26-APR-17] SQL&gt; show parameter compatible\r\n\r\nNAME                                 TYPE        VALUE\r\n------------------------------------ ----------- ------------------------------\r\ncompatible                           string      12.1.0.2.0\r\nnoncdb_compatible                    boolean     FALSE\r\n<\/pre>\n<p>27. Summary of All Our Work<\/p>\n<p id=\"LbomLKm\"><img loading=\"lazy\" decoding=\"async\" width=\"1466\" height=\"594\" class=\"size-full wp-image-52868 aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/img_635ac2d3a5267.png\" alt=\"\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_52861\" class=\"pvc_stats all  \" data-element-id=\"52861\" 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>The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby are as follows. 1. We set up a Physical Standby database. 2. We are preparing Primary and Standby databases for Upgrade. For this, the first thing to do is to activate the Flashback database in &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_52861\" class=\"pvc_stats all  \" data-element-id=\"52861\" 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":52869,"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":[],"class_list":["post-52861","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-oracle"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Upgrade With Physical Standby - Database Tutorials<\/title>\n<meta name=\"description\" content=\"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby\" \/>\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\/2022\/10\/27\/upgrade-with-physical-standby\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upgrade With Physical Standby - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-27T17:45:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-27T17:52:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png\" \/>\n\t<meta property=\"og:image:width\" content=\"772\" \/>\n\t<meta property=\"og:image:height\" content=\"348\" \/>\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=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\"},\"author\":{\"name\":\"Onur ARDAHANLI\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6\"},\"headline\":\"Upgrade With Physical Standby\",\"datePublished\":\"2022-10-27T17:45:03+00:00\",\"dateModified\":\"2022-10-27T17:52:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\"},\"wordCount\":1167,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png\",\"articleSection\":[\"ORACLE\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\",\"name\":\"Upgrade With Physical Standby - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png\",\"datePublished\":\"2022-10-27T17:45:03+00:00\",\"dateModified\":\"2022-10-27T17:52:32+00:00\",\"description\":\"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png\",\"width\":772,\"height\":348},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upgrade With Physical Standby\"}]},{\"@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":"Upgrade With Physical Standby - Database Tutorials","description":"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby","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\/2022\/10\/27\/upgrade-with-physical-standby\/","og_locale":"en_US","og_type":"article","og_title":"Upgrade With Physical Standby - Database Tutorials","og_description":"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby","og_url":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/","og_site_name":"Database Tutorials","article_published_time":"2022-10-27T17:45:03+00:00","article_modified_time":"2022-10-27T17:52:32+00:00","og_image":[{"width":772,"height":348,"url":"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png","type":"image\/png"}],"author":"Onur ARDAHANLI","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Onur ARDAHANLI","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/"},"author":{"name":"Onur ARDAHANLI","@id":"https:\/\/dbtut.com\/#\/schema\/person\/7fcd466cd0d347ec64aaa48f18f780c6"},"headline":"Upgrade With Physical Standby","datePublished":"2022-10-27T17:45:03+00:00","dateModified":"2022-10-27T17:52:32+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/"},"wordCount":1167,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png","articleSection":["ORACLE"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/","url":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/","name":"Upgrade With Physical Standby - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png","datePublished":"2022-10-27T17:45:03+00:00","dateModified":"2022-10-27T17:52:32+00:00","description":"The database upgrade stages with almost zero interruption from the current Data Guard configuration Single Node Primary and Physical Standby","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#primaryimage","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2022\/10\/Ekran-goruntusu-2022-10-27-204409.png","width":772,"height":348},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2022\/10\/27\/upgrade-with-physical-standby\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"Upgrade With Physical Standby"}]},{"@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\/52861","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=52861"}],"version-history":[{"count":2,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/52861\/revisions"}],"predecessor-version":[{"id":52870,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/52861\/revisions\/52870"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media\/52869"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=52861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=52861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=52861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}