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.
    
    
     
    
     
  • 相关阅读:
    3dsmax不同版本 pyside qt UI 设置max窗口为父窗口的方法
    oracle中的数据库和实例
    oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
    什么是WSE
    Server.Transfer,Response.Redirect的区别
    Oracle 中的几个数据类型介绍
    oracle中的连接字符串
    Oracle中的 单引号 和 双引号
    接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
    聚簇索引
  • 原文地址:https://www.cnblogs.com/zx3212/p/6739035.html
Copyright © 2011-2022 走看看