unplug / plug PDBS

参考文档

https://docs.oracle.com/database/122/ADMIN/creating-and-removing-pdbs-with-sql-plus.htm#ADMIN13553


-- unplug PDB后, 会产生一个xml文件。 plug的时候,要using这个XML文件。然后file name convert 即可 。

--  -- pdb2 在CDB mynewdb下,将其uplug, 然后plug到Orcl12c CDB下

SYS@mynewdb>ALTER PLUGGABLE DATABASE PDB2 UNPLUG INTO '/home/oracle/PDB2.xml';

Pluggable database altered.

SYS@mynewdb>drop pluggable database PDB2 keep datafiles;

Pluggable database dropped.

SYS@mynewdb>

-- 检查兼容性

-- 先检查是否兼容,,如果不兼容,则在视图PDB_PLUG_IN_VIOLATIONS中查看信息。这里是兼容的

SET SERVEROUTPUT ON
DECLARE
  v_result BOOLEAN;
BEGIN
  v_result := DBMS_PDB.check_plug_compatibility(
                pdb_descr_file => '/home/oracle/PDB2.xml',
                pdb_name       => 'PDB2');

  IF v_result THEN
    DBMS_OUTPUT.PUT_LINE('compatible');
  ELSE
    DBMS_OUTPUT.PUT_LINE('incompatible');
  END IF;
END;


SYS@orcl12c>
SET SERVEROUTPUT ON
DECLARE
  v_result BOOLEAN;
BEGIN
  v_result := DBMS_PDB.check_plug_compatibility(
                pdb_descr_file => '/home/oracle/PDB2.xml',
                pdb_name       => 'PDB2');

  IF v_result THEN
    DBMS_OUTPUT.PUT_LINE('compatible');
  ELSE
    DBMS_OUTPUT.PUT_LINE('incompatible');
  END IF;
SYS@orcl12c>  2    3    4    5    6    7    8    9   10   11   12   13  END;
 14  /
compatible

PL/SQL procedure successfully completed.

SYS@orcl12c>

-- plug 到orcl12c cdb库上

CREATE PLUGGABLE DATABASE pdb_plugged USING '/home/oracle/PDB2.xml'
  FILE_NAME_CONVERT=('/u01/app/oracle12/oradata12/pdb2/','/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/');

SYS@orcl12c>
CREATE PLUGGABLE DATABASE pdb_plugged USING '/home/oracle/PDB2.xml'
  2    FILE_NAME_CONVERT=('/u01/app/oracle12/oradata12/pdb2/','/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/');
CREATE PLUGGABLE DATABASE pdb_plugged USING '/home/oracle/PDB2.xml'
*
ERROR at line 1:
ORA-04031: unable to allocate 1048848 bytes of shared memory ("shared
pool","unknown object","PDB Dynamic He","alls-ktimcem")

-- 查看错误,在alert log 中,没有可以参考的信息。和这个提示一样。 看 oerr 错误信息

-- 注意,这个pdb ,unplug之前所在的cdb memory是800, plug到的CDB 的Memory为600M ,可能和这个有关 ?


SYS@orcl12c>!oerr ORA 04031
04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")"
// *Cause:  More shared memory is needed than was allocated in the shared
//          pool or Streams pool.
// *Action: If the shared pool is out of memory, either use the
//          DBMS_SHARED_POOL package to pin large packages,
//          reduce your use of shared memory, or increase the amount of
//          available shared memory by increasing the value of the
//          initialization parameters SHARED_POOL_RESERVED_SIZE and 
//          SHARED_POOL_SIZE.
//          If the large pool is out of memory, increase the initialization
//          parameter LARGE_POOL_SIZE.  
//          If the error is issued from an Oracle Streams or XStream process, 
//          increase the initialization parameter STREAMS_POOL_SIZE or increase
//          the capture or apply parameter MAX_SGA_SIZE.

SYS@orcl12c>

-- Memory

SYS@orcl12c>show parameter mem

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address	     integer	 0
inmemory_adg_enabled		     boolean	 TRUE
inmemory_clause_default 	     string
inmemory_expressions_usage	     string	 ENABLE
inmemory_force			     string	 DEFAULT
inmemory_max_populate_servers	     integer	 0
inmemory_query			     string	 ENABLE
inmemory_size			     big integer 0
inmemory_trickle_repopulate_servers_ integer	 1
percent
inmemory_virtual_columns	     string	 MANUAL

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
memory_max_target		     big integer 600M
memory_target			     big integer 600M
optimizer_inmemory_aware	     boolean	 TRUE
shared_memory_address		     integer	 0
SYS@orcl12c>

-- 查看PDB 的状态 ,并且打开PDB

SYS@orcl12c>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB_PLUGGED			  MOUNTED
SYS@orcl12c>



SYS@orcl12c>alter pluggable database pdb_plugged open;

Pluggable database altered.

SYS@orcl12c>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB_PLUGGED			  READ WRITE NO
SYS@orcl12c>

-- 查看数据文件,原来的CDB上,数据文件还是存在的 。 不过plugged到的PDB上多了temp文件。




-- 补充,这个可能和mynewdb有关,这个CDB库是手工创建的,运行CATCDB.sql出错。待确定

-- 从null,插入到12.2.0 。和之前的刚好相反 。



end







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值