创建应用程序容器 - create application containers

参考文档

https://docs.oracle.com/database/122/ADMIN/creating-removing-application-containers-seeds-with-sql-plus.htm#ADMIN-GUID-3C6D4200-1FEC-4C0F-B335-EFDC655ADABC

40.1.1.3 Creating an Application Container

Example 40-1 Creating an Application Container Using the CDB Seed

CREATE PLUGGABLE DATABASE app_con1 AS APPLICATION CONTAINER ADMIN USER app_admin IDENTIFIED BY oracle
file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdbseed/','/u01/app/oracle12/oradata12/app_con1/');
ALTER PLUGGABLE DATABASE app_con1 OPEN;


SYS@orcl12c>conn / as sysdba
Connected.
CREATE PLUGGABLE DATABASE app_con1 AS APPLICATION CONTAINER ADMIN USER app_admin IDENTIFIED BY oracle
  2  file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdbseed/','/u01/app/oracle12/oradata12/app_con1/');

Pluggable database created.

SYS@orcl12c>


SYS@orcl12c>show pdbs

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

Example 40-2 Creating an Application Container by Cloning a Local PDB


CREATE PLUGGABLE DATABASE APP_CON2 AS APPLICATION CONTAINER FROM PDBS 
  FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1/', '/u01/app/oracle12/oradata12/app_con2/');



CREATE PLUGGABLE DATABASE APP_CON2 AS APPLICATION CONTAINER FROM PDBS 
  FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/app_con2');

CREATE PLUGGABLE DATABASE APP_CON2 AS APPLICATION CONTAINER FROM PDBS
*
ERROR at line 1:
ORA-65169: error encountered while attempting to copy file
ORA-01013: user requested cancel of current operation



SYS@mynewdb>
CREATE PLUGGABLE DATABASE APP_CON2 AS APPLICATION CONTAINER FROM PDBS 
  2    FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1/', '/u01/app/oracle12/oradata12/app_con2/');

Pluggable database created.

SYS@mynewdb>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBS 			  READ WRITE NO
	 4 APP_CON1			  MOUNTED
	 5 APP_CON2			  MOUNTED
SYS@mynewdb>

40.1.2.2 Unplugging an Application Container

ALTER PLUGGABLE DATABASE APP_CON1 UNPLUG INTO '/home/oracle/APP_CON1.xml';

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

Pluggable database altered.

SYS@mynewdb>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBS 			  READ WRITE NO
	 4 APP_CON1			  MOUNTED
	 5 APP_CON2			  MOUNTED
SYS@mynewdb>select pdb_name,status from dba_pdbs where PDB_NAME='APP_CON1'
  2  ;

PDB_NAME
--------------------------------------------------------------------------------
STATUS
----------
APP_CON1
UNPLUGGED


SYS@mynewdb>

plug in application container

create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy;


SYS@mynewdb>create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy;
create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy
*
ERROR at line 1:
ORA-19505: failed to identify file
"/u01/app/oracle12/oradata12/app_con1/system01.dbf"
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 7


SYS@mynewdb>create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy;
create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy
*
ERROR at line 1:
ORA-27038: created file already exists
ORA-01119: error in creating database file
'/u01/app/oracle12/oradata12/app_con1/temp01.dbf'

SYS@mynewdb>create pluggable database pdb_test using '/home/oracle/APP_CON1.xml' nocopy tempfile reuse;

Pluggable database created.

SYS@mynewdb>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBS 			  READ WRITE NO
	 5 APP_CON2			  MOUNTED
	 7 PDB_TEST			  MOUNTED
SYS@mynewdb>
SYS@mynewdb>select pdb_name,status from dba_pdbs where PDB_NAME='PDB_TEST'
  2  ;

PDB_NAME
--------------------------------------------------------------------------------
STATUS
----------
PDB_TEST
NEW


Example 40-7 Creating an Application Seed From the CDB Seed

CREATE PLUGGABLE DATABASE AS SEED ADMIN USER app_con1_admin IDENTIFIED BY oracle
FILE_NAME_CONVERT=('/u01/app/oracle12/oradata12/orcl12c/pdbseed/','/u01/app/oracle12/oradata12/APPSEED/');
ALTER PLUGGABLE DATABASE APP_CON1$SEED OPEN;
ALTER SESSION SET CONTAINER=APP_CON1$SEED;
ALTER PLUGGABLE DATABASE APPLICATION ALL SYNC;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;

ERROR at line 1:
ORA-65190: operation allowed only from within an application root

SYS@orcl12c>alter pluggable database APP_CON1 open;

Pluggable database altered.

CREATE PLUGGABLE DATABASE AS SEED ADMIN USER app_con1_admin IDENTIFIED BY oracle
  2  FILE_NAME_CONVERT=('/u01/app/oracle12/oradata12/orcl12c/pdbseed/','/u01/app/oracle12/oradata12/APPSEED/');

Pluggable database created.

SYS@orcl12c>
SYS@orcl12c>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 4 APP_CON1			  READ WRITE NO
	 5 APP_CON1$SEED		  MOUNTED
SYS@orcl12c>
SYS@orcl12c>ALTER SESSION SET CONTAINER=APP_CON1$SEED;

Session altered.

SYS@orcl12c>ALTER PLUGGABLE DATABASE APPLICATION ALL SYNC;

Pluggable database altered.

SYS@orcl12c>

Example 40-8 Creating an Application Seed From an Application PDB

CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED
file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/','/u01/app/oracle12/oradata12/pdbseed1');
ALTER PLUGGABLE DATABASE salesact$SEED OPEN;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;

SYS@orcl12c>show pdbs

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

SYS@orcl12c>
CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED 
  2  file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/','/u01/app/oracle12/oradata12/pdbseed1');
CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED
*
ERROR at line 1:
ORA-65012: Pluggable database APP_CON1$SEED already exists.

-- drop 

SYS@orcl12c>drop pluggable database APP_CON1$SEED;
drop pluggable database APP_CON1$SEED
*
ERROR at line 1:
ORA-65179: cannot keep datafiles for a pluggable database that is not unplugged


SYS@orcl12c>drop pluggable database APP_CON1$SEED  including datafiles;

Pluggable database dropped.

-- create plug

SYS@orcl12c>conn / as sysdba
Connected.
SYS@orcl12c>alter pluggable database PDB_PLUGGED open;

Pluggable database altered.

CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED 
  2  file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/','/u01/app/oracle12/oradata12/pdbseed1');
CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED
*
ERROR at line 1:
ORA-65190: operation allowed only from within an application root


SYS@orcl12c>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB_PLUGGED			  READ WRITE NO
	 4 APP_CON1			  READ WRITE NO
SYS@orcl12c>alter session set container=APP_CON1;

Session altered.

CREATE PLUGGABLE DATABASE AS SEED FROM PDB_PLUGGED 
  2  file_name_convert=('/u01/app/oracle12/oradata12/orcl12c/pdg_plugged/','/u01/app/oracle12/oradata12/pdbseed1');

Pluggable database created.

SYS@orcl12c>

SYS@orcl12c>show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB_PLUGGED			  READ WRITE NO
	 4 APP_CON1			  READ WRITE NO
	 7 APP_CON1$SEED		  MOUNTED

Example 40-9 Creating an Application Seed From an Application Root

--drop

SYS@orcl12c>drop pluggable database APP_CON1$SEED including datafiles;

Pluggable database dropped.


CREATE PLUGGABLE DATABASE AS SEED FROM APP_CON1  
file_name_convert=('/u01/app/oracle12/oradata12/app_con1/','/u01/app/oracle12/oradata12/pdbseed1')
ALTER PLUGGABLE DATABASE APP_CON1$SEED OPEN;
ALTER SESSION SET CONTAINER=APP_CON1$SEED;
@$ORACLE_HOME/rdbms/admin/pdb_to_apppdb.sql
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;


SYS@orcl12c>alter session set container=APP_CON1;

Session altered.

CREATE PLUGGABLE DATABASE AS SEED FROM APP_CON1  
  2  file_name_convert=('/u01/app/oracle12/oradata12/app_con1/','/u01/app/oracle12/oradata12/pdbseed1')
  3  ;

Pluggable database created.

SYS@orcl12c>

SYS@orcl12c>show pdbs

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

-- @SQL ,执行sql

40.3 Creating an Application PDB

CREATE PLUGGABLE DATABASE app_con_pdb from APP_CON1
file_name_convert=('/u01/app/oracle12/oradata12/app_con1/','/u01/app/oracle12/oradata12/pdbseed1/')


SYS@orcl12c>alter session set container=APP_CON1;

Session altered.

SYS@orcl12c>show con_name

CON_NAME
------------------------------
APP_CON1
CREATE PLUGGABLE DATABASE app_con_pdb from APP_CON1
  2  file_name_convert=('/u01/app/oracle12/oradata12/app_con1/','/u01/app/oracle12/oradata12/pdbseed1/')
  3  ;
CREATE PLUGGABLE DATABASE app_con_pdb from APP_CON1
*
ERROR at line 1:
ORA-04031: unable to allocate 1048848 bytes of shared memory ("shared
pool","unknown object","PDB Dynamic He","alls-ktimcem")


SYS@orcl12c>show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 APP_CON1                       READ WRITE NO
         5 APP_CON1$SEED                  READ WRITE YES
         6 APP_CON_PDB                    MOUNTED
SYS@orcl12c>


总结 ,应用程序PDB,要在应用程序root容器下创建 。
END 。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值