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.
    
    
     
    
     
  • 相关阅读:
    Kudu vs HBase
    数据分析怎么更直观?十分钟构建数据看板
    The Beam Model:Stream & Tables翻译(上)
    3分钟掌握一个有数小技能:收入贡献分析
    猛犸机器学习开发实践
    SparkSQL大数据实战:揭开Join的神秘面纱
    细说Mammut大数据系统测试环境Docker迁移之路
    python中的闭包与装饰器
    import详解
    python中的with与上下文管理器
  • 原文地址:https://www.cnblogs.com/zx3212/p/6739035.html
Copyright © 2011-2022 走看看