{"id":12826,"date":"2019-10-01T07:47:10","date_gmt":"2019-10-01T05:47:10","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/"},"modified":"2019-10-01T07:47:10","modified_gmt":"2019-10-01T05:47:10","slug":"migrating-oracle-database-from-windows-to-oda","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/","title":{"rendered":"Migrating Oracle database from windows to ODA"},"content":{"rendered":"<p>Nowadays I have been working on an interesting customer project where I had to migrate windows oracle standard databases to ODA. The ODAs are X7-2M Models, running version 18.5. This version is coming with Red Hat Enterprise Linx 6.10 (Santiago). Both windows databases and target ODA databases are running PSU 11.2.0.4.190115. But this would definitively also be working for oracle 12c and oracle 18c databases. The databases are licensed with Standard Edition, so migrating through data guard was not possible. Through this blog I would like to share the experience I could get on this topic as well as the method and steps I have been using to successfully migrate those databases.<br \/>\n<!--more--><\/p>\n<h3>Limitations<\/h3>\n<p>Windows and Linux platform been on the same endian, I have been initially thinking that it would not be more complicated than simply duplicating the windows database to an ODA instance using the last backup. ODA databases are OMF databases, so can not be easier, as no convert parameter is needed.<br \/>\nAfter having created a single instance database on the ODA, exported the current database pfile and adapted it for the ODA, created the needed TNS connections, I have been running a single RMAN duplicate command :<br \/>\n<code><br \/>\nRMAN&gt; run {<br \/>\n2&gt; set newname for database to new;<br \/>\n3&gt; duplicate target database to 'ODA_DBNAME' backup location '\/u99\/app\/oracle\/backup';<br \/>\n4&gt; }<br \/>\n<\/code><\/p>\n<p><em>Note : If the database is huge, as for example, more than a Tera bytes, and your sga is small, you might want to increase it. Having a bigger sga size will lower the restore time. Minimum 50 GB would be a good compromise. Also if your ODA is from the ODA-X7 family you will benefit from the NVMe technologie. As per my experience, a duplication of 1.5 TB database, with backup stored locally, did not take more than 40 minutes.<\/em><\/p>\n<p>I have been more than happy to see the first duplication step been successfully achieved :<br \/>\n<code><br \/>\nFinished restore at 17-JUL-2019 16:45:10<br \/>\n<\/code><\/p>\n<p>And I was expecting the same for the next recovery part.<\/p>\n<p>Unfortunately, this didn&#8217;t end as expected and I quickly got following restore errors :<br \/>\n<code><br \/>\nErrors in memory script<br \/>\nRMAN-03015: error occurred in stored script Memory Script<br \/>\nRMAN-06136: ORACLE error from auxiliary database: ORA-01507: database not mounted<br \/>\nORA-06512: at \"SYS.X$DBMS_RCVMAN\", line 13661<br \/>\nORA-06512: at line 1<br \/>\nRMAN-03015: error occurred in stored script Memory Script<br \/>\nRMAN-20000: abnormal termination of job step<br \/>\nRMAN-11003: failure during parse\/execution of SQL statement: alter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_07_17\/o1_mf_1_25514_glyf3yd3_.arc'<br \/>\nRMAN-11001: Oracle Error:<br \/>\nORA-10562: Error occurred while applying redo to data block (file# 91, block# 189)<br \/>\nORA-10564: tablespace DBVISIT<br \/>\nORA-01110: data file 91: '\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_dbvisit_glyczqcj_.dbf'<br \/>\nORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 501874<br \/>\nORA-00600: internal error code, arguments: [4502], [0], [], [], [], [], [], [], [], [], [], []<br \/>\nRMAN-00571: ===========================================================<br \/>\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============<br \/>\nRMAN-00571: ===========================================================<br \/>\nRMAN-03002: failure of Duplicate Db command at 07\/17\/2019 16:45:32<br \/>\nRMAN-05501: aborting duplication of target database<br \/>\n<\/code><\/p>\n<p>Troubleshooting the problem I could understand that migrating database from Windows to Linux might not be so simple. Following oracle Doc ID is describing the problem :<br \/>\nRestore From Windows To Linux using RMAN Fails (Doc ID 2003327.1)<br \/>\nCross-Platform Database Migration (across same endian) using RMAN Transportable Database (Doc ID 1401921.1)<br \/>\nRMAN DUPLICATE\/RESTORE\/RECOVER Mixed Platform Support (Doc ID 1079563.1)<br \/>\nRestore From Windows To Linux using RMAN Fails (Doc ID 2003327.1)<\/p>\n<p>The problem is coming from the fact that recovering redo transactions between windows and linux platform is not supported if the database is not a standby one. For standard database version, the only possibility would be to go through a cold backup which, in my case, was impossible knowing the database size, the time taken to execute a backup and the short maintenance windows.<\/p>\n<p>Looking for other solution and doing further tests, I could find a solution that I&#8217;m going to describe in the next steps.<\/p>\n<h3>Restoring the database from the last backup<\/h3>\n<p>In order to restore the database, I have been running next steps.<\/p>\n<ol>\n<li>Start the ODA instance in no mount :<\/li>\n<p><code><br \/>\nSQL&gt; startup nomount<br \/>\n<\/code><\/p>\n<li>Restore the last available control file from backup with rman :<\/li>\n<p><code><br \/>\nRMAN&gt; connect target \/<br \/>\n&nbsp;<br \/>\nRMAN&gt; restore controlfile from '\/mnt\/backupNFS\/oracle\/ODA_DBNAME\/20190813_233004_CTL_ODA_DBNAME_1179126808_S2864_P1.BCK';<br \/>\n<\/code><\/p>\n<li>Mount the database :<\/li>\n<p><code><br \/>\nSQL&gt; alter database mount;<br \/>\n<\/code><\/p>\n<li>Catalog the backup path :<\/li>\n<p><code><br \/>\nRMAN&gt; connect target \/<br \/>\n&nbsp;<br \/>\nRMAN&gt; catalog start with '\/mnt\/backupNFS\/oracle\/ODA_DBNAME';<br \/>\n<\/code><\/p>\n<li>And finally restore the database :<\/li>\n<p><code><br \/>\nRMAN&gt; connect target \/<br \/>\n&nbsp;<br \/>\nRMAN&gt; run {<br \/>\n2&gt; set newname for database to new;<br \/>\n3&gt; restore database;<br \/>\n4&gt; switch datafile all;<br \/>\n5&gt; }<br \/>\n<\/code>\n<\/ol>\n<h3>Convert the primary database to a physical standby database<\/h3>\n<p>In order to be able to recover the database we will convert the primary database to a physical standby one.<\/p>\n<ol>\n<li>We can check the actual status and see that our database is a primary one in mounted state :<\/li>\n<p><code><br \/>\nSQL&gt; select status,instance_name,database_role,open_mode from v$database,v$Instance;<br \/>\n&nbsp;<br \/>\nSTATUS       INSTANCE_NAME       DATABASE_ROLE       OPEN_MODE<br \/>\n------------ ----------------    ----------------    --------------------<br \/>\nMOUNTED      ODA_DBNAME          PRIMARY             MOUNTED<br \/>\n<\/code><\/p>\n<li>We will convert the database to a physical standby<\/li>\n<p><code><br \/>\nSQL&gt; alter database convert to physical standby;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>We need to restart the database.<\/li>\n<p><code><br \/>\nSQL&gt; shutdown immediate<br \/>\n&nbsp;<br \/>\nSQL&gt; startup mount<br \/>\n<\/code><\/p>\n<li>We can check new database status<\/li>\n<p><code><br \/>\nSQL&gt; select status,instance_name,database_role,open_mode from v$database,v$Instance;<br \/>\n&nbsp;<br \/>\nSTATUS       INSTANCE_NAME    DATABASE_ROLE    OPEN_MODE<br \/>\n------------ ---------------- ---------------- --------------------<br \/>\nMOUNTED      ODA_DBNAME          PHYSICAL      STANDBY MOUNTED<br \/>\n<\/code>\n<\/ol>\n<h3> Get the current windows SCN database<\/h3>\n<p>We are now ready to recover the database and the application can be stopped. The next steps will now be executed during the maintenance windows. The windows database listener can be stopped to make sure there is no new connection.<\/p>\n<ol>\n<li>We will make sure there is no existing application session on the database :<\/li>\n<p><code><br \/>\nSQL&gt; set linesize 300<br \/>\nSQL&gt; set pagesize 500<br \/>\nSQL&gt; col machine format a20<br \/>\nSQL&gt; col service_name format a20<br \/>\n&nbsp;<br \/>\nSQL&gt; select SID, serial#, username, machine, process, program, status, service_name, logon_time from v$session where username not in ('SYS', 'PUBLIC') and username is not null order by status, username;<br \/>\n<\/code><\/p>\n<li>We will create a restore point :<\/li>\n<p><code><br \/>\nSQL&gt; create restore point for_migration_14082019;<br \/>\n&nbsp;<br \/>\nRestore point created.<br \/>\n<\/code><\/p>\n<li>We will get the last online log transactions archived :<\/li>\n<p><code><br \/>\nSQL&gt; ALTER SYSTEM ARCHIVE LOG CURRENT;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n<\/code><\/p>\n<li>We will retrieve the SCN corresponding to the restore point :<\/li>\n<p><code><br \/>\nSQL&gt; col scn format 999999999999999<br \/>\n&nbsp;<br \/>\nSQL&gt; select scn from v$restore_point where lower(name)='for_migration_14082019';<br \/>\n&nbsp;<br \/>\n             SCN<br \/>\n----------------<br \/>\n     13069540631<br \/>\n<\/code><\/p>\n<li>We will backup the last archive log. This will be executed on the windows database using our dbi services internal DMK tool (<a href=\"http:\/\/dbi services dmk tool\">https:\/\/www.dbi-services.com\/offering\/products\/dmk-management-kit\/<\/a>) :<\/li>\n<p><code><br \/>\nservicedbi@win_srv:E:apporaclelocaldmk_custombin [ODA_DBNAME] .\/rman_backup_ODA_DBNAME_arc.bat<br \/>\n&nbsp;<br \/>\nE:apporaclelocaldmk_custombin&gt;powershell.exe -command \"E:apporaclelocaldmk_habincheck_primary.ps1 ODA_DBNAME 'dmk_rman.ps1 -s ODA_DBNAME -t bck_arc.rcv -c E:apporacleadminODA_DBNAMEetcrman.cfg<br \/>\n&nbsp;<br \/>\n[OK]::KSBL::RMAN::dmk_dbbackup::ODA_DBNAME::bck_arc.rcv<br \/>\n&nbsp;<br \/>\nLogfile is : E:apporacleadminODA_DBNAMElogODA_DBNAME_bck_arc_20190814_141754.log<br \/>\n&nbsp;<br \/>\nRMAN return Code: 0<br \/>\n2019-08-14_02:19:01::check_primary.ps1::MainProgram    ::INFO ==&gt; Program completed<br \/>\n<\/code>\n<\/ol>\n<h3>Recover the database<\/h3>\n<p>The database can now be recovered till our 13069540631 SCN number.<\/p>\n<ol>\n<li>We will first need to catalog new archive log backups :<\/li>\n<p><code><br \/>\nRMAN&gt; connect target \/<br \/>\n&nbsp;<br \/>\nRMAN&gt; catalog start with '\/mnt\/backupNFS\/oracle\/ODA_DBNAME';<br \/>\n<\/code><\/p>\n<li>And recover the database till SCN 13069540632 :<\/li>\n<p><code><br \/>\nRMAN&gt; connect target \/<br \/>\n&nbsp;<br \/>\nRMAN&gt; run {<br \/>\n2&gt; set until scn 13069540632;<br \/>\n3&gt; recover database;<br \/>\n4&gt; }<br \/>\n&nbsp;<br \/>\narchived log file name=\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30098_go80084r_.arc RECID=30124 STAMP=1016289320<br \/>\narchived log file name=\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30099_go80084x_.arc thread=1 sequence=30099<br \/>\nchannel default: deleting archived log(s)<br \/>\narchived log file name=\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30099_go80084x_.arc RECID=30119 STAMP=1016289320<br \/>\narchived log file name=\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30100_go8008bg_.arc thread=1 sequence=30100<br \/>\nchannel default: deleting archived log(s)<br \/>\narchived log file name=\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30100_go8008bg_.arc RECID=30121 STAMP=1016289320<br \/>\nmedia recovery complete, elapsed time: 00:00:02<br \/>\nFinished recover at 14-AUG-2019 14:35:23<br \/>\n<\/code><\/p>\n<li>We can check the alert log and see that recovering has been performed until SCN 13069540632 :<\/li>\n<p><code><br \/>\noracle@ODA02:\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/ [ODA_DBNAME] taa<br \/>\nORA-279 signalled during: alter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30098_go80084r_.arc'...<br \/>\nalter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30099_go80084x_.arc'<br \/>\nMedia Recovery Log \/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30099_go80084x_.arc<br \/>\nORA-279 signalled during: alter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30099_go80084x_.arc'...<br \/>\nalter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30100_go8008bg_.arc'<br \/>\nMedia Recovery Log \/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30100_go8008bg_.arc<br \/>\nWed Aug 14 14:35:23 2019<br \/>\nIncomplete Recovery applied until change 13069540632 time 08\/14\/2019 14:13:46<br \/>\nMedia Recovery Complete (ODA_DBNAME)<br \/>\nCompleted: alter database recover logfile '\/u03\/app\/oracle\/fast_recovery_area\/ODA_DBNAME_RZA\/archivelog\/2019_08_14\/o1_mf_1_30100_go8008bg_.arc'<\/code><\/p>\n<li>We can check the new ODA database current SCN :<\/li>\n<p><code><br \/>\nSQL&gt; col current_scn format 999999999999999<br \/>\n&nbsp;<br \/>\nSQL&gt; select current_scn from v$database;<br \/>\n&nbsp;<br \/>\n     CURRENT_SCN<br \/>\n----------------<br \/>\n     13069540631<br \/>\n<\/code>\n<\/ol>\n<h3> Convert database to primary again<\/h3>\n<p>Database can now be converted back to primary.<br \/>\n<code><br \/>\nSQL&gt; alter database activate standby database;<br \/>\n&nbsp;<br \/>\nDatabase altered.<\/code><\/p>\n<p><code><br \/>\nSQL&gt; select status,instance_name,database_role,open_mode from v$database,v$Instance;<br \/>\n&nbsp;<br \/>\nSTATUS       INSTANCE_NAME    DATABASE_ROLE    OPEN_MODE<br \/>\n------------ ---------------- ---------------- --------------------<br \/>\nMOUNTED      ODA_DBNAME          PRIMARY          MOUNTED<br \/>\n<\/code><\/p>\n<p><em>At this step if the windows source database would be running 11.2.0.3 version, we could successfully upgrade the new ODA database to 11.2.0.4 following common oracle database upgrade process.<\/em><\/p>\n<p>And finally we can open our database and have the database been migrated from windows to linux.<\/p>\n<p><code><br \/>\nSQL&gt; alter database open;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<p><code><br \/>\nSQL&gt; select status,instance_name,database_role,open_mode from v$database,v$Instance;<br \/>\n&nbsp;<br \/>\nSTATUS       INSTANCE_NAME    DATABASE_ROLE    OPEN_MODE<br \/>\n------------ ---------------- ---------------- --------------------<br \/>\nOPEN         ODA_DBNAME          PRIMARY          READ WRITE<br \/>\n<\/code><\/p>\n<p><code><br \/>\noracle@ODA02:\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/ [ODA_DBNAME] ODA_DBNAME<br \/>\n********* dbi services Ltd. *********<br \/>\nSTATUS                 : OPEN<br \/>\nDB_UNIQUE_NAME         : ODA_DBNAME_RZA<br \/>\nOPEN_MODE              : READ WRITE<br \/>\nLOG_MODE               : ARCHIVELOG<br \/>\nDATABASE_ROLE          : PRIMARY<br \/>\nFLASHBACK_ON           : NO<br \/>\nFORCE_LOGGING          : YES<br \/>\nVERSION                : 11.2.0.4.0<br \/>\n*************************************<br \/>\n<\/code><\/p>\n<h3>Post migration steps<\/h3>\n<p>There will be a few post migration steps to be executed.<\/p>\n<h4>Created redo logs again<\/h4>\n<p>Redo logs are still stamped with windows path and therefore have been created in $ORACLE_HOME\/dbs folder. In this steps we will create new OMF one again.<\/p>\n<ol>\n<li>Checking current online log members :<\/li>\n<p><code><br \/>\nSQL&gt; set linesize 300<br \/>\nSQL&gt; set pagesize 500<br \/>\nSQL&gt; col member format a100<br \/>\n&nbsp;<br \/>\nSQL&gt; select a.GROUP#, b.member, a.status, a.bytes\/1024\/1024 MB from v$log a, v$logfile b where a.GROUP#=b.GROUP#;<br \/>\n&nbsp;<br \/>\n    GROUP# MEMBER                                                                                               STATUS                   MB<br \/>\n---------- ---------------------------------------------------------------------------------------------------- ---------------- ----------<br \/>\n         6 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_6_1.LOG UNUSED                  500<br \/>\n         6 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_6_2.LOG UNUSED                  500<br \/>\n         5 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_5_2.LOG UNUSED                  500<br \/>\n         5 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_5_1.LOG UNUSED                  500<br \/>\n         4 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_4_2.LOG UNUSED                  500<br \/>\n         4 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_4_1.LOG UNUSED                  500<br \/>\n         3 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_3_2.LOG UNUSED                  500<br \/>\n         3 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_3_1.LOG UNUSED                  500<br \/>\n         2 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_2_2.LOG UNUSED                  500<br \/>\n         2 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_2_1.LOG UNUSED                  500<br \/>\n         1 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_1_2.LOG CURRENT                 500<br \/>\n         1 \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_1_1.LOG CURRENT                 500<br \/>\n<\/code><\/p>\n<li>Drop the first unused redo log group keeping only one :<\/li>\n<p><code><br \/>\nSQL&gt; alter database drop logfile group 6;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database drop logfile group 5;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database drop logfile group 4;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database drop logfile group 3;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 3 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>Create the recent dropped group again :<\/li>\n<p><code><br \/>\nSQL&gt; alter database add logfile group 3 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 4 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 5 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 6 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>Drop the last unused redo log group and create it again :<\/li>\n<p><code><br \/>\nSQL&gt;  alter database drop logfile group 2;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 2 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>Execute a switch log file and checkpoint so the current redo group becomes unused :<\/li>\n<p><code><br \/>\nSQL&gt; alter system switch logfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system checkpoint;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n<\/code><\/p>\n<li>Drop it and create it again :<\/li>\n<p><code><br \/>\nSQL&gt;  alter database drop logfile group 1;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database add logfile group 1 size 500M;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>Check redo group members :<\/li>\n<p><code><br \/>\nSQL&gt; select a.GROUP#, b.member, a.status, a.bytes\/1024\/1024 MB from v$log a, v$logfile b where a.GROUP#=b.GROUP#;<br \/>\n&nbsp;<br \/>\n    GROUP# MEMBER                                                                                               STATUS                   MB<br \/>\n---------- ---------------------------------------------------------------------------------------------------- ---------------- ----------<br \/>\n         3 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_3_go81rj4t_.log                                     INACTIVE                500<br \/>\n         3 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_3_go81rjqn_.log                 INACTIVE                500<br \/>\n         4 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_4_go81ron1_.log                                     UNUSED                  500<br \/>\n         4 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_4_go81rp6o_.log                 UNUSED                  500<br \/>\n         5 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_5_go81rwhs_.log                                     UNUSED                  500<br \/>\n         5 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_5_go81rx1g_.log                 UNUSED                  500<br \/>\n         6 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_6_go81s1rk_.log                                     UNUSED                  500<br \/>\n         6 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_6_go81s2bx_.log                 UNUSED                  500<br \/>\n         2 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_2_go81sgdf_.log                                     CURRENT                 500<br \/>\n         2 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_2_go81sgxd_.log                 CURRENT                 500<br \/>\n         1 \/u03\/app\/oracle\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_1_go81vpls_.log                                     UNUSED                  500<br \/>\n         1 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/redo\/ODA_DBNAME_RZA\/onlinelog\/o1_mf_1_go81vq4v_.log                 UNUSED                  500<br \/>\n<\/code><\/p>\n<li>Delete the wrong previous redo log members files :<\/li>\n<p><code><br \/>\noracle@ODA02:\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/ [ODA_DBNAME] cdh<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/ [ODA_DBNAME] cd dbs<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] ls -ltrh *REDO*.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_6_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_6_1.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_5_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_5_1.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_4_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_4_1.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_3_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_3_1.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_2_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 14:59 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_2_1.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 15:05 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_1_2.LOG<br \/>\n-rw-r----- 1 oracle asmadmin 501M Aug 14 15:05 I:FAST_RECOVERY_AREAODA_DBNAME_SITE1ONLINELOGREDO_1_1.LOG<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] rm *REDO*.LOG<br \/>\n<\/code>\n<\/ol>\n<h4>Created temp file again<\/h4>\n<ol>\n<li>Checking current temp file we can see that the path is still the windows one :<\/li>\n<p><code><br \/>\nSQL&gt; set linesize 300<br \/>\nSQL&gt; col name format a100<br \/>\n&nbsp;<br \/>\nSQL&gt; select b.name, b.status, b.bytes\/1024\/1024 MB, a.name from v$tablespace a, v$tempfile b where a.TS#=b.TS#;<br \/>\n&nbsp;<br \/>\nNAME                                                                                                 STATUS          MB NAME<br \/>\n---------------------------------------------------------------------------------------------------- ------- ---------- -------------------------------------------<br \/>\nF:ORADATAODA_DBNAMETEMPORARY_DATA_1.DBF                                                              ONLINE        8192 TEMPORARY_DATA<br \/>\n<\/code><\/p>\n<li>We can check that the default temporary tablespace is TEMPORARY_DATA<\/li>\n<p><code><br \/>\nSQL&gt; col property_value format a50<br \/>\n&nbsp;<br \/>\nSQL&gt; select property_name, property_value from database_properties where property_name like '%DEFAULT%TABLESPACE%';<br \/>\n&nbsp;<br \/>\nPROPERTY_NAME                  PROPERTY_VALUE<br \/>\n------------------------------ --------------------------------------------------<br \/>\nDEFAULT_TEMP_TABLESPACE        TEMPORARY_DATA<br \/>\nDEFAULT_PERMANENT_TABLESPACE   USER_DATA<br \/>\n<\/code><\/p>\n<li>Let&#8217;s create a new temp tablespace and make it the default one<\/li>\n<p><code><br \/>\nSQL&gt; create temporary tablespace TEMP tempfile size 8G;<br \/>\n&nbsp;<br \/>\nTablespace created.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database default temporary tablespace TEMP;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; select property_name, property_value from database_properties where property_name like '%DEFAULT%TABLESPACE%';<br \/>\n&nbsp;<br \/>\nPROPERTY_NAME                  PROPERTY_VALUE<br \/>\n------------------------------ --------------------------------------------------<br \/>\nDEFAULT_TEMP_TABLESPACE        TEMP<br \/>\nDEFAULT_PERMANENT_TABLESPACE   USER_DATA<br \/>\n<\/code><\/p>\n<li>Drop previous TEMPORARY_DATA tablespace<\/li>\n<p><code><br \/>\nSQL&gt; drop tablespace TEMPORARY_DATA including contents and datafiles;<br \/>\n&nbsp;<br \/>\nTablespace dropped.<br \/>\n&nbsp;<br \/>\nSQL&gt; select b.file#, b.name, b.status, b.bytes\/1024\/1024 MB, a.name from v$tablespace a, v$tempfile b where a.TS#=b.TS#;<br \/>\n&nbsp;<br \/>\n     FILE# NAME                                                                                                 STATUS          MB NAME<br \/>\n---------- ---------------------------------------------------------------------------------------------------- ------- ----------<br \/>\n         3 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_temp_go83m1tp_.tmp                    ONLINE        8192 TEMP<br \/>\n<\/code><\/p>\n<li>Create TEMPORARY_DATA tablespace again and make it the default one :<\/li>\n<p><code><br \/>\nSQL&gt;  create temporary tablespace TEMPORARY_DATA tempfile size 8G;<br \/>\n&nbsp;<br \/>\nTablespace created.<br \/>\n&nbsp;<br \/>\nSQL&gt; select b.file#, b.name, b.status, b.bytes\/1024\/1024 MB, a.name from v$tablespace a, v$tempfile b where a.TS#=b.TS#;<br \/>\n&nbsp;<br \/>\n     FILE# NAME                                                                                                 STATUS          MB NAME<br \/>\n---------- ---------------------------------------------------------------------------------------------------- ------- ----------<br \/>\n         1 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_temporar_go83wfd7_.tmp                ONLINE        8192 TEMPORARY_DATA<br \/>\n         3 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_temp_go83m1tp_.tmp                    ONLINE        8192 TEMP<br \/>\n&nbsp;<br \/>\nSQL&gt; alter database default temporary tablespace TEMPORARY_DATA;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; select property_name, property_value from database_properties where property_name like '%DEFAULT%TABLESPACE%';<br \/>\n&nbsp;<br \/>\nPROPERTY_NAME                  PROPERTY_VALUE<br \/>\n------------------------------ --------------------------------------------------<br \/>\nDEFAULT_TEMP_TABLESPACE        TEMPORARY_DATA<br \/>\nDEFAULT_PERMANENT_TABLESPACE   USER_DATA<br \/>\n<\/code><\/p>\n<li>And finally drop the intermediare temp tablespace :<\/li>\n<p><code><br \/>\nSQL&gt; drop tablespace TEMP including contents and datafiles;<br \/>\n&nbsp;<br \/>\nTablespace dropped.<br \/>\n&nbsp;<br \/>\nSQL&gt; select b.file#, b.name, b.status, b.bytes\/1024\/1024 MB, a.name from v$tablespace a, v$tempfile b where a.TS#=b.TS#;<br \/>\n&nbsp;<br \/>\n     FILE# NAME                                                                                                 STATUS          MB NAME<br \/>\n---------- ---------------------------------------------------------------------------------------------------- ------- ----------<br \/>\n         1 \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_temporar_go83wfd7_.tmp                ONLINE        8192 TEMPORARY_DATA<br \/>\n<\/code><\/p>\n<li>Appropriate max size can be given to the new created temp tablespace<\/li>\n<p><code><br \/>\nSQL&gt;  alter database tempfile '\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/ODA_DBNAME_RZA\/datafile\/o1_mf_temporar_go83wfd7_.tmp' autoextend on maxsize 31G;<br \/>\n&nbsp;<br \/>\nDatabase altered.<br \/>\n<\/code><\/p>\n<li>Remove wrong temp file stored in $ORACLE_HOME\/dbs<\/li>\n<p><code><br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] ls -ltr<br \/>\n-rw-r--r-- 1 oracle oinstall       2851 May 15  2009 init.ora<br \/>\n-rw-r--r-- 1 oracle oinstall         64 Jul 25 08:10 initODA_DBNAME.ora.old<br \/>\n-rw-r----- 1 oracle oinstall       2048 Jul 25 08:10 orapwODA_DBNAME<br \/>\n-rw-r--r-- 1 oracle oinstall         67 Jul 25 08:31 initODA_DBNAME.ora<br \/>\n-rw-r----- 1 oracle asmadmin 8589942784 Aug 14 08:14 F:ORADATAODA_DBNAMETEMPORARY_DATA_1.DBF<br \/>\n-rw-rw---- 1 oracle asmadmin       1544 Aug 14 14:59 hc_ODA_DBNAME.dat<br \/>\n-rw-r----- 1 oracle asmadmin   43466752 Aug 14 15:48 snapcf_ODA_DBNAME.f<br \/>\n&nbsp;<br \/>\noracle@RZA-ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] rm F:ORADATAODA_DBNAMETEMPORARY_DATA_1.DBF<br \/>\n<\/code>\n<\/ol>\n<h4> Apply specific ODA parameters<\/h4>\n<p>Following specific ODA parameters can be updated to the new created instance.<\/p>\n<p><code><br \/>\nSQL&gt; alter system set \"_datafile_write_errors_crash_instance\"=false scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_db_writer_coalesce_area_size\"=16777216 scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_disable_interface_checking\"=TRUE scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_ENABLE_NUMA_SUPPORT\"=FALSE scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_FILE_SIZE_INCREASE_INCREMENT\"=2143289344 scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_gc_policy_time\"=0 scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set \"_gc_undo_affinity\"=FALSE scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set db_block_checking='FULL' scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set db_block_checksum='FULL' scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set db_lost_write_protect='TYPICAL' scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set sql92_security=TRUE scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n&nbsp;<br \/>\nSQL&gt; alter system set use_large_pages='only' scope=spfile;<br \/>\n&nbsp;<br \/>\nSystem altered.<br \/>\n<\/code><\/p>\n<p>&#8220;_fix_control&#8221;parameter is specific to Oracle12c and not compatible Oracle 11g. See Doc ID 2145105.1.<\/p>\n<h4> Register database in grid<\/h4>\n<p>After applying specific ODA instance parameters, we can register the database in the grid and start it with the grid.<\/p>\n<p><code><br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl add database -d ODA_DBNAME_RZA -o \/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1 -c SINGLE -i ODA_DBNAME -x RZA-ODA02 -m ksbl.local -p \/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA\/dbs\/spfileODA_DBNAME.ora -r PRIMARY -s OPEN -t IMMEDIATE -n ODA_DBNAME -j \"\/u02\/app\/oracle\/oradata\/ODA_DBNAME_RZA,\/u03\/app\/oracle\"<br \/>\n&nbsp;<br \/>\nSQL&gt; shutdown immediate<br \/>\nDatabase closed.<br \/>\nDatabase dismounted.<br \/>\nORACLE instance shut down.<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl start database -d ODA_DBNAME_RZA<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl status database -d ODA_DBNAME_RZA<br \/>\nInstance ODA_DBNAME is running on node rza-oda02<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] ODA_DBNAME<br \/>\n********* dbi services Ltd. *********<br \/>\nSTATUS                 : OPEN<br \/>\nDB_UNIQUE_NAME         : ODA_DBNAME_RZA<br \/>\nOPEN_MODE              : READ WRITE<br \/>\nLOG_MODE               : ARCHIVELOG<br \/>\nDATABASE_ROLE          : PRIMARY<br \/>\nFLASHBACK_ON           : NO<br \/>\nFORCE_LOGGING          : YES<br \/>\nVERSION                : 11.2.0.4.0<br \/>\n*************************************<br \/>\n<\/code><\/p>\n<p>We can check the well functionning :<br \/>\n<code><br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl stop database -d ODA_DBNAME_RZA<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl status database -d ODA_DBNAME_RZA<br \/>\nInstance ODA_DBNAME is not running on node rza-oda02<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] ODA_DBNAME<br \/>\n********* dbi services Ltd. *********<br \/>\nSTATUS          : STOPPED<br \/>\n*************************************<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl start database -d ODA_DBNAME_RZA<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] srvctl status database -d ODA_DBNAME_RZA<br \/>\nInstance ODA_DBNAME is running on node rza-oda02<br \/>\n&nbsp;<br \/>\noracle@ODA02:\/u01\/app\/oracle\/product\/11.2.0.4\/dbhome_1\/dbs\/ [ODA_DBNAME] ODA_DBNAME<br \/>\n********* dbi services Ltd. *********<br \/>\nSTATUS                 : OPEN<br \/>\nDB_UNIQUE_NAME         : ODA_DBNAME_RZA<br \/>\nOPEN_MODE              : READ WRITE<br \/>\nLOG_MODE               : ARCHIVELOG<br \/>\nDATABASE_ROLE          : PRIMARY<br \/>\nFLASHBACK_ON           : NO<br \/>\nFORCE_LOGGING          : YES<br \/>\nVERSION                : 11.2.0.4.0<br \/>\n*************************************<\/code><\/p>\n<h3>Conclusion<\/h3>\n<p>Going through a physical standby database, I was able to migrate successfully the windows databases into ODA linux one. I have been able to achieve migration of source 11.2.0.4 databases but also 11.2.0.3 database by adding an upgrade step in the process.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nowadays I have been working on an interesting customer project where I had to migrate windows oracle standard databases to ODA. The ODAs are X7-2M Models, running version 18.5. This version is coming with Red Hat Enterprise Linx 6.10 (Santiago). Both windows databases and target ODA databases are running PSU 11.2.0.4.190115. But this would definitively [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,59],"tags":[280,23,73,15,79,96,17,988,209,1184,270],"type_dbi":[],"class_list":["post-12826","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-oracle","tag-database","tag-dba","tag-linux","tag-migration","tag-oda","tag-oracle","tag-oracle-11g","tag-oracle-12-2","tag-oracle-12c","tag-oracle-18c","tag-rman"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Migrating Oracle database from windows to ODA - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrating Oracle database from windows to ODA\" \/>\n<meta property=\"og:description\" content=\"Nowadays I have been working on an interesting customer project where I had to migrate windows oracle standard databases to ODA. The ODAs are X7-2M Models, running version 18.5. This version is coming with Red Hat Enterprise Linx 6.10 (Santiago). Both windows databases and target ODA databases are running PSU 11.2.0.4.190115. But this would definitively [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-01T05:47:10+00:00\" \/>\n<meta name=\"author\" content=\"Marc Wagner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Wagner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\"},\"author\":{\"name\":\"Marc Wagner\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"headline\":\"Migrating Oracle database from windows to ODA\",\"datePublished\":\"2019-10-01T05:47:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\"},\"wordCount\":1115,\"commentCount\":0,\"keywords\":[\"database\",\"DBA\",\"Linux\",\"Migration\",\"ODA\",\"Oracle\",\"Oracle 11g\",\"Oracle 12.2\",\"Oracle 12c\",\"Oracle 18c\",\"RMAN\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\",\"name\":\"Migrating Oracle database from windows to ODA - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2019-10-01T05:47:10+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrating Oracle database from windows to ODA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628\",\"name\":\"Marc Wagner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"caption\":\"Marc Wagner\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Migrating Oracle database from windows to ODA - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/","og_locale":"en_US","og_type":"article","og_title":"Migrating Oracle database from windows to ODA","og_description":"Nowadays I have been working on an interesting customer project where I had to migrate windows oracle standard databases to ODA. The ODAs are X7-2M Models, running version 18.5. This version is coming with Red Hat Enterprise Linx 6.10 (Santiago). Both windows databases and target ODA databases are running PSU 11.2.0.4.190115. But this would definitively [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/","og_site_name":"dbi Blog","article_published_time":"2019-10-01T05:47:10+00:00","author":"Marc Wagner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Wagner","Est. reading time":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/"},"author":{"name":"Marc Wagner","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"headline":"Migrating Oracle database from windows to ODA","datePublished":"2019-10-01T05:47:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/"},"wordCount":1115,"commentCount":0,"keywords":["database","DBA","Linux","Migration","ODA","Oracle","Oracle 11g","Oracle 12.2","Oracle 12c","Oracle 18c","RMAN"],"articleSection":["Database Administration &amp; Monitoring","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/","url":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/","name":"Migrating Oracle database from windows to ODA - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-10-01T05:47:10+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/migrating-oracle-database-from-windows-to-oda\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Migrating Oracle database from windows to ODA"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628","name":"Marc Wagner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","caption":"Marc Wagner"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12826"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12826\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12826"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}