Steps to Migrate Non-Container Database to Container Pluggable Database
Migrating to cdb database needs downtime, in order to reduce downtime we can create cdb database beforehand.
Details:
cdb database: TCDB011
non-cdb database: VSTORE
version: 19c
Step 1: Shutdown the VSTORE(non-cdb) database
Step 2: Start the database in read only mode.
SQL > Startup open read only
Step3 - Generate XML file for VSTORE database.
SQL> exec DBMS_PDB.DESCRIBE(pdb_descr_file => '/tmp/vstore_manifest.xml');
Step4 - Shut down the VSTORE database
SQL> Shutdown immediate
Note - From here, all steps will be performed on the Container database TCDB011
Step 5 - Start TESTDB database (container database) if not running
Step 6 - Check vstore (non-container database) compatibility with TCDB011 (container database)
SET SERVEROUTPUT ON
DECLARE
compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/tmp/vstore_manifest.xml')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
Step7 - Check for any errors resulting from the above step
col name for a10
col cause for a10
col type for a20
col message for a80
set lines 230
SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='VSTORE';
Note: If there are any errors, fix them before proceeding.
common errors like parameter mismatch, component mismatch between non-cdb and cdb, patch level difference between non-cdb and cbd.
Step 8 - Plug the vstore database into container TCDB011
create pluggable database TCSTAGE using '/tmp/vstore_manifest.xml' NOCOPY tempfile reuse;
COPY - With this option, VSTORE will remain intact. All data files will remain untouched. For PDB files will be copied to the new location, provided with the parameter FILE_NAME_CONVERT.
NOCOPY - Existing files will be used and after completion of the operation, VSTORE will not remain usable. As new PDB is using the same data files.
MOVE - using parameter FILE_NAME_CONVERT, existing datafiles will be moved to the new location, hence after the operation completion, VSTORE will not be usable.
Step 9 - Run the PDB conversion script provided by Oracle
sqlplus / as sysdba
alter session set container=VSTORE;
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
Step 10 - Start PDB and verify the state
ask application team to verify the database by starting application.
Make necessary changes into configuration management, OEM. Initiate the fresh backup for the vstore database.