通过种子数据库创建pdb

可以通过create pluggable database 语句创建pdb通过使用种子seed数据库的文件,通过拷贝种子数据库的文件到一个新的位置,如下图展示创建的过程



1.创建pdb要cdb下创建当前容器要是root
  
在pdb1下创建pdb报错ORA-65040: 不允许从可插入数据库内部执行该操作如下
C:\Users\Administrator>sqlplus sys/Wangwei123@pdb1 as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 星期四 12月 25 09:38:50 2014

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions
SQL> show pdbs


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE NO
SQL>
SQL>
SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2 IDENTIFIED BY pdb2
  2    STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
  3    DEFAULT TABLESPACE pdb2
  4      DATAFILE 'D:\app\oracle12c\oradata\ORACLE12C\pdb2\pdb201.dbf' SIZE 250M
 AUTOEXTEND ON
  5    PATH_PREFIX = 'D:\app\oracle12c\oradata\ORACLE12C\pdb2'
  6    FILE_NAME_CONVERT = ('D:\app\oracle12c\oradata\ORACLE12C\DATAFILE', 'D:\a
pp\oracle12c\oradata\ORACLE12C\pdb2');
CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2 IDENTIFIED BY pdb2
*
第 1 行出现错误:
ORA-65040: 不允许从可插入数据库内部执行该操作

切换到root容器创建
SQL> alter session set container=cdb$root;

会话已更改。

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL>
SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2 IDENTIFIED BY pdb2
  2    STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
  3    DEFAULT TABLESPACE pdb2
  4      DATAFILE 'D:\app\oracle12c\oradata\ORACLE12C\pdb2\pdb201.dbf' SIZE 250M
 AUTOEXTEND ON
  5    PATH_PREFIX = 'D:\app\oracle12c\oradata\ORACLE12C\pdb2'
  6    FILE_NAME_CONVERT = ('D:\app\oracle12c\oradata\ORACLE12C\DATAFILE', 'D:\a
pp\oracle12c\oradata\ORACLE12C\pdb2');
CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2 IDENTIFIED BY pdb2
*
第 1 行出现错误:
ORA-01276: 无法添加文件
D:\APP\ORACLE12C\ORADATA\ORACLE12C\PDB2\O1_MF_SYSTEM_B9GXSYNO_.DBF。相应文件具有一个 Oracle Managed Files 文件名。
报错了原因是之前创建种子数据库时用的omf创建的


解决把种子数据库的文件查出来,进行文件对应的转换就可以了,如下:

SQL>
SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb2 IDENTIFIED BY pdb2
  2    STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
  3    DEFAULT TABLESPACE pdb2
  4      DATAFILE 'D:\app\oracle12c\oradata\ORACLE12C\pdb2\pdb201.dbf' SIZE 250M
 AUTOEXTEND ON
  5    PATH_PREFIX = 'D:\app\oracle12c\oradata\ORACLE12C\pdb2'
  6    FILE_NAME_CONVERT = ('D:\APP\ORACLE12C\ORADATA\ORACLE12C\DATAFILE\O1_MF_S
YSTEM_B9GXSYNO_.DBF', 'D:\app\oracle12c\oradata\ORACLE12C\pdb2\system01.dbf'
  7    ,'D:\APP\ORACLE12C\ORADATA\ORACLE12C\DATAFILE\O1_MF_SYSAUX_B9GXSYLX_.DBF'
,'D:\app\oracle12c\oradata\ORACLE12C\pdb2\sysaux01.dbf'
  8    ,'D:\APP\ORACLE12C\ORADATA\ORACLE12C\DATAFILE\PDBSEED_TEMP012014-12-22_09
-43-55-AM.dbf','D:\app\oracle12c\oradata\ORACLE12C\pdb2\temp01.dbf');

插接式数据库已创建。

SQL>

2.打开新创建的pdb数据库pdb2

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           MOUNTED
SQL> alter pluggable database pdb2 open;

插接式数据库已变更。

SQL> show pdbs


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
SQL>

pdb数据库创建完成,接下来可以进行操作了


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐