Some of major use cases that can benefit from V2P :
- Benchmarking the new application code released on VDB into UAT before deploying to production
- Accelerate the cloud adoption by easing data movement (terabytes even more) between on prems. DCs or to cloud.
- Production database recovery.
And so ...
Let's start by creating our physical target tree directories to host database files.
Identify all the source database files directories to remap
cd /u02/oradata [delphix@linuxtarget ~]$ cd /u02/oradata/ mkdir ctl data temp undo [oracle@linuxtarget oradata]$ tree /u02/oradata/ /u02/oradata/ ctl data redo temp undo
Identify all the source database files directories to remap
[oracle@linuxtarget ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 24 10:03:26 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning option SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/system01.dbf /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/sysaux01.dbf /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/undotbs01.dbf /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/users01.dbf /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/APEX_2276431178881901.dbf SQL> SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/control01.ctl SQL> SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /mnt/provision/devdb/datafile/DEVDB/onlinelog/o1_mf_3_df7b5wtx_.log /mnt/provision/devdb/datafile/DEVDB/onlinelog/o1_mf_2_df7b5w9q_.log /mnt/provision/devdb/datafile/DEVDB/onlinelog/o1_mf_1_df7b5vn1_.log SQL>
It's time to do fun things, connect to delphix admin console select the vdb subject to be convert and click on the "V2P" button image
Complete the screen parameter with the required values as per the following.
Adjust the directories values as needed (i'm configuring only specific directory for the temporary file)
Now, have to remap my database file as following
/mnt/provision/devdb/datafile/u01/app/oracle/oradata/orcl/system01.dbf
=> the red part is the source file mapping
That we will be replacing using
/u02/oradata/data/system01.dbf
Notice, that you can use a one time replacement mapping if you have all files under the same directory. This is not my case as all of my files aren't at the same directory level specifically undo and ctl
Once done validate the summary screen
Let's check our new converted database.
Unfortunatly, the redolog mapping is not possible directly in V2P process. But, you can workaround that with moving the redologs at the end of the process to the needed directory using database classical process.
[oracle@linuxtarget oradata]$ tree /u02/oradata/ [oracle@linuxtarget oradata]$ tree /u02/oradata/ /u02/oradata/ 1_11_939365500.dbf 1_12_939365500.dbf 1_13_939365500.dbf 1_1_939471323.dbf 1_2_939471323.dbf ctl control01.ctl data APEX_2276431178881901.dbf sysaux01.dbf system01.dbf users01.dbf DEVDB onlinelog o1_mf_1_df7b5vn1_.log o1_mf_2_df7b5w9q_.log o1_mf_3_df7b5wtx_.log init.ora init.ora.createControlfile init.ora.recovery init.ora.rename PDEVDB onlinelog o1_mf_4_dfbkjlv6_.log o1_mf_5_dfbkjlyn_.log redo script pdevdb archive-log-current.sh change-archivelog-mode.sh check-vdb-status.sh doCreateControlFile.sh doCreateLogFiles.sh doCreateSPFile.sh doCreateTempfiles.sh doDisableFlashback.sh doEnableInstances.sh doGenerateNewDbid.sh doIncompleteRecovery.sh doOpenDatabase.sh doRecoveryWithBackupCF.sh doRecoveryWithCreatedCF.sh doRenameDatafiles.sh doRenameReadOnlyDataFiles.sh doShutdownOracleInstance.sh functions.sh initpdevdb.ora mount-vdb-instance.sh old_datafiles.txt open-database-read-only.sh open-vdb.sh recover-vdb.sh register-listeners.sh restart_vdb_19702.log restart-vdb.sh rmanRenameCmd setup-oraenv.sh shutdown-abort-vdb.sh shutdown-delete-vdb.sh shutdown-vdb.sh sqlplusRenameCmd.sql start-no-resetlogs-vdb.sh source_init.ora spfile.ora temp temp1.dbf undo undotbs01.dbf 11 directories, 57 files [oracle@linuxtarget oradata]$ [oracle@linuxtarget oradata]$ ps -ef | grep pdevdb delphix 19746 1 0 12:15 ? 00:00:00 ora_pmon_pdevdb delphix 19748 1 0 12:15 ? 00:00:00 ora_vktm_pdevdb delphix 19752 1 0 12:15 ? 00:00:00 ora_gen0_pdevdb delphix 19754 1 0 12:15 ? 00:00:00 ora_diag_pdevdb delphix 19756 1 0 12:15 ? 00:00:00 ora_dbrm_pdevdb delphix 19758 1 0 12:15 ? 00:00:00 ora_psp0_pdevdb delphix 19760 1 0 12:15 ? 00:00:00 ora_dia0_pdevdb delphix 19762 1 0 12:15 ? 00:00:00 ora_mman_pdevdb delphix 19764 1 0 12:15 ? 00:00:00 ora_dbw0_pdevdb delphix 19766 1 0 12:15 ? 00:00:00 ora_lgwr_pdevdb delphix 19768 1 0 12:15 ? 00:00:00 ora_ckpt_pdevdb delphix 19770 1 0 12:15 ? 00:00:00 ora_smon_pdevdb delphix 19772 1 0 12:15 ? 00:00:00 ora_reco_pdevdb delphix 19774 1 0 12:15 ? 00:00:00 ora_mmon_pdevdb delphix 19776 1 0 12:15 ? 00:00:00 ora_mmnl_pdevdb delphix 19831 1 0 12:15 ? 00:00:00 ora_p000_pdevdb delphix 19833 1 0 12:15 ? 00:00:00 ora_p001_pdevdb delphix 19835 1 0 12:15 ? 00:00:00 ora_arc0_pdevdb delphix 19837 1 0 12:15 ? 00:00:00 ora_arc1_pdevdb delphix 19839 1 0 12:15 ? 00:00:00 ora_arc2_pdevdb delphix 19841 1 0 12:15 ? 00:00:00 ora_arc3_pdevdb delphix 19843 1 0 12:15 ? 00:00:00 ora_qmnc_pdevdb delphix 19872 1 0 12:15 ? 00:00:00 ora_cjq0_pdevdb delphix 19888 1 0 12:15 ? 00:00:00 ora_q000_pdevdb delphix 19890 1 0 12:15 ? 00:00:00 ora_q001_pdevdb oracle 19899 8629 0 12:16 pts/0 00:00:00 grep pdevdb [oracle@linuxtarget oradata]$ [oracle@linuxtarget oradata]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 24 12:17:10 2017 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning option SQL> select status from v$instance; STATUS ------------ OPEN SQL> SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /u02/oradata/data/system01.dbf /u02/oradata/data/sysaux01.dbf /u02/oradata/undo/undotbs01.dbf /u02/oradata/data/users01.dbf /u02/oradata/data/APEX_2276431178881901.dbf SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /u02/oradata/temp/temp1.dbf SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /u02/oradata/ctl/control01.ctl SQL> select member from v$logfile 2 ; MEMBER -------------------------------------------------------------------------------- /u02/oradata/DEVDB/onlinelog/o1_mf_3_df7b5wtx_.log /u02/oradata/DEVDB/onlinelog/o1_mf_2_df7b5w9q_.log /u02/oradata/DEVDB/onlinelog/o1_mf_1_df7b5vn1_.log /u02/oradata/PDEVDB/onlinelog/o1_mf_4_dfbn4qgb_.log /u02/oradata/PDEVDB/onlinelog/o1_mf_5_dfbn4qhv_.log SQL>
No comments:
Post a Comment