zoukankan      html  css  js  c++  java
  • Upgrade a Non-CDB To a PDB on CDB

    1、Stop the cluster database and start database on one node with read noly
    [oracle@raca1 admin]$ srvctl stop database -d racdb
    [oracle@raca1 admin]$ 
    [oracle@raca1 admin]$ 
    [oracle@raca1 admin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 19 10:58:17 2017
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 7.8920E+10 bytes
    Fixed Size                 12169704 bytes
    Variable Size            7516196376 bytes
    Database Buffers         4.5366E+10 bytes
    Redo Buffers              256262144 bytes
    In-Memory Area           2.5770E+10 bytes
    Database mounted.
    SQL> alter database open read only;
    
    Database altered.
    
    2Create XML for PDB,and you can choose any path to locate you XML file,this XML depends on you source database.
    SQL> exec DBMS_PDB.DESCRIBE('/home/oracle/racdb.xml');
    
    PL/SQL procedure successfully completed.
    
    3close your source database.
    SQL> shutdown immediate
    
    4、change the environment to new cdb,and check the pdb is or not compatible
    [oracle@raca1 ~]$ export ORACLE_SID=raca1
    [oracle@raca1 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 19 16:18:36 2017
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    
    SQL> show con_name  
    
    CON_NAME
    ------------------------------
    CDB$ROOT
    
    SQL> set serveroutput on
    SQL> DECLARE
      2     compatible CONSTANT VARCHAR2(3) :=
      3  CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
      4   pdb_descr_file => '/home/oracle/racdb.xml',
      5  pdb_name       => 'RACDB')
      6  WHEN TRUE 
      7  THEN 'YES'
      8  ELSE 'NO'
      9   END;
     10   BEGIN
     11     DBMS_OUTPUT.PUT_LINE(compatible);
     12   END;
     13  /
    YES
    
    PL/SQL procedure successfully completed.
    
    5Thencreate the pluggable database, and to plug the database into the CDB
    ###ERROE
    SQL> CREATE PLUGGABLE DATABASE racdb USING '/home/oracle/racdb.xml' NOCOPY TEMPFILE REUSE;
    CREATE PLUGGABLE DATABASE racdb USING '/home/oracle/racdb.xml' NOCOPY TEMPFILE REUSE
    *
    ERROR at line 1:
    ORA-65139: Mismatch between XML metadata file and data file
    +DATA/racdb/datafile/system01.dbf for value of fcpsb (180939629 in the plug XML
    file, 181038820 in the data file)
    
    6Some metadata file and data file is not correct,I prefer to generate a new XML:
    [oracle@raca1 ~]$ export ORACLE_SID=racdb1
    [oracle@raca1 ~]$ echo $ORACLE_SID
    racdb1
    [oracle@raca1 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 19 16:47:51 2017
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 7.8920E+10 bytes
    Fixed Size                 12169704 bytes
    Variable Size            7516196376 bytes
    Database Buffers         4.5366E+10 bytes
    Redo Buffers              256262144 bytes
    In-Memory Area           2.5770E+10 bytes
    Database mounted.
    SQL> alter database open read only;
    
    Database altered.
    
    SQL> exec DBMS_PDB.DESCRIBE('/home/oracle/racdb.xml');
    
    PL/SQL procedure successfully completed.
    
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    
    
    7、change the environment to new ORACLE_HOME and ORACLE_SID,Use the following command syntax to create the pluggable database, and to plug the database into the CDB:
    [oracle@raca1 ~]$ export ORACLE_SID=raca1
    [oracle@raca1 ~]$ sqlplus / as sysdba
    SQL>  CREATE PLUGGABLE DATABASE racdb USING '/home/oracle/racdb.xml' NOCOPY TEMPFILE REUSE;
    
    Pluggable database created.
    
    SQL> alter session set container=racdb;
    
    Session altered.
    
    SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
    
    8、remove the source non-cdb from crs,you must use root account
    [grid@racd2 ~]$ srvctl remove database -d racdb
    Remove the database racdb? (y/[n]) y
    PRKO-3077 : Failed to remove database racdb: PRCD-1032 : Failed to remove database resource racdb
    PRCR-1028 : Failed to remove resource ora.racdb.db
    PRCR-1072 : Failed to unregister resource ora.racdb.db
    CRS-0245:  User does not have enough privilege to perform the operation
    [grid@racd2 ~]$ exit
    logout
    [root@racd2 ~]# cd /u01/grid/app/12.2.0/bin/
    [root@racd2 bin]# ./srvctl remove database -d racdb
    
    [root@racd2 bin]# su - grid
    Last login: Thu Apr 20 15:35:31 CST 2017
    [grid@racd2 ~]$ crs_stat -t
    Name           Type           Target    State     Host        
    ------------------------------------------------------------
    ora....SM.lsnr ora....er.type ONLINE    ONLINE    racd1       
    ora.DATA.dg    ora....up.type ONLINE    ONLINE    racd1       
    ora....ER.lsnr ora....er.type ONLINE    ONLINE    racd1       
    ora....AF.lsnr ora....er.type OFFLINE   OFFLINE               
    ora....N1.lsnr ora....er.type ONLINE    ONLINE    racd1       
    ora.MGMT.dg    ora....up.type ONLINE    ONLINE    racd1       
    ora.MGMTLSNR   ora....nr.type ONLINE    ONLINE    racd1       
    ora.VOTE.dg    ora....up.type ONLINE    ONLINE    racd1       
    ora.asm        ora.asm.type   ONLINE    ONLINE    racd1       
    ora.chad       ora.chad.type  ONLINE    ONLINE    racd1       
    ora.cvu        ora.cvu.type   ONLINE    ONLINE    racd1       
    ora.mgmtdb     ora....db.type ONLINE    ONLINE    racd1       
    ora....network ora....rk.type ONLINE    ONLINE    racd1       
    ora.ons        ora.ons.type   ONLINE    ONLINE    racd1       
    ora.qosmserver ora....er.type ONLINE    ONLINE    racd1       
    ora.racd.db    ora....se.type ONLINE    ONLINE    racd1       
    ora....D1.lsnr application    ONLINE    ONLINE    racd1       
    ora.racd1.ons  application    ONLINE    ONLINE    racd1       
    ora.racd1.vip  ora....t1.type ONLINE    ONLINE    racd1       
    ora....D2.lsnr application    ONLINE    ONLINE    racd2       
    ora.racd2.ons  application    ONLINE    ONLINE    racd2       
    ora.racd2.vip  ora....t1.type ONLINE    ONLINE    racd2       
    ora.scan1.vip  ora....ip.type ONLINE    ONLINE    racd1       
    
    
    [oracle@racd2 ~]$ echo $ORACLE_SID
    racdb2
    [oracle@racd2 ~]$ export ORACLE_SID=racd2
    [oracle@racd2 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production on Thu Apr 20 15:46:33 2017
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    
    SQL> alter session set container=racdb;
    
    Session altered.
    
    SQL> select instance_name,status from gv$instance;
    
    INSTANCE_NAME    STATUS
    ---------------- ------------
    racd2            MOUNTED
    racd1            MOUNTED
    
    SQL> alter pluggable database racdb open;
    
    Pluggable database altered.
    
    SQL> alter pluggable database racdb save state;
    
    Pluggable database altered.
    
    
     
    
     
  • 相关阅读:
    02-三种布局方式/触屏事件/BFC
    02-单点登录(移动端)
    02-转>>chunk-vendors过大导致首屏加载太慢的优化
    15-转>pc端和h5端多页面配置
    14-转>publicPath
    04-GitHub上上传自己的项目
    03-合并到master后打tag
    final关键字
    重载(Overloading)与覆写(Override)的区别?
    腾讯微博
  • 原文地址:https://www.cnblogs.com/zx3212/p/6739035.html
Copyright © 2011-2022 走看看