ORACLE 12C ——03 PDB(Pluggable Database)的创建

首先,我们先来看一下使用dbca进行对pdb的创建。
在创建之前,我们需要检查CDB是否已经启动,如果没有启动,我们先要启动CDB。
oracle@solaris:~$ sqlplus / as sysoper

SQL*Plus: Release 12.1.0.2.0 Production on Mon Sep 8 10:16:30 2014

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.
Database mounted.
Database opened.
SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
oracle@solaris:~$
启动完成了。下面,我们运行dbca命令,进入如下画面。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 选择“Mange Pluggable Database”,然后下一步。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 选择“Create a Pluggable Database”,然后进入下一步。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 指定我们的容器数据库,然后点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 到这里,我们需要输入pdb的名称与pdb的管理用户名及密码。输入完成后,点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 点击Finish,进行开始创建pdb。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 开始创建pdb。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 创建完成后,点击Close,关闭即可。

下面,我们来看一下新创建的这个pdb的一些属性。
SQL> select name,open_mode,restricted
  2  from v$pdbs
  3  /

NAME                           OPEN_MODE  RES
------------------------------ ---------- ---
PDB$SEED                       READ ONLY  NO
PDB1                           READ WRITE NO

SQL>
它是以Read Write的模式打开的,也就是说,可以对这个pdb进行读写操作。
SQL> select account_status,created,con_id
  2  from cdb_users
  3  where username = 'PDB_ADMIN'
  4  /

ACCOUNT_STATUS                   CREATED       CON_ID
-------------------------------- --------- ----------
OPEN                             08-SEP-14          3

SQL> select account_status,created
  2  from dba_users
  3  where username = 'PDB_ADMIN'
  4  /

no rows selected

SQL>
在创建pdb的时候,会有一个pdb管理的用户名需要输入。通过上述查询,我们发现,这个用户不属于CDB直属的用户。而这个用户真正是属于pdb下的用户。下面,我们来进行一个连接,测试一下。
SQL> conn pdb_admin/pdb_admin
ERROR:
ORA-01017: invalid username/password; logon denied


Warning: You are no longer connected to ORACLE.
SQL> conn pdb_admin/pdb_admin@192.168.88.22:1521/pdb1
Connected.
SQL>
连接成功了。
下面,我们再来看一下这个用户的权限。
SQL> select granted_role,con_id
  2  from cdb_role_privs
  3  where grantee = 'PDB_ADMIN'
  4  /

GRANTED_ROLE             CON_ID
-------------------- ----------
PDB_DBA                       3

SQL>
用户 PDB_ADMIN拥有 PDB_DBA  角色。我们来看一下这个角色有那些权限。
SQL> select privilege
  2  from cdb_sys_privs
  3  where con_id = 3
  4    and grantee = 'PDB_DBA'
  5  /

PRIVILEGE
----------------------------------------
SET CONTAINER
CREATE SESSION
CREATE PLUGGABLE DATABASE

SQL>
有这三组权限。我们再看一下直接授予的系统权限。
SQL> select privilege
  2  from cdb_sys_privs
  3  where con_id = 3
  4    and grantee = 'PDB_ADMIN'
  5  /

no rows selected

SQL>
没有,那说明,它只有上述的三种权限。
上述是我们在创建的过程中直接接触到一些属性,关于CDB,PDB的管理,我会在后续的博客中进行说明,这里先进行一个认识。

关于PDB的一个重要的操作,我们这里也介绍一下,那就是拔去(unplug)与插入(plugin)。
同样,我们先使用dbca来进行操作。
运行dbca命令,进行如下画面。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
  Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 选择“Unplug a Pluggable Database”,然后点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
  Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 选择要拔去的数据库,然后指定文件,这里,我们采用默认就可以,当然了,也可以改一下目录。然后点击Next。接着点击Finish,进入如下画面。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 开始执行了。执行完成以后,点击close,即可。我们来查看一下。
SQL> select name,open_mode,con_id
  2  from v$pdbs
  3  /

NAME                           OPEN_MODE      CON_ID
------------------------------ ---------- ----------
PDB$SEED                       READ ONLY           2

SQL>
通过查询我们发现,它已经成功被拔去了。

下面,我们再把它插上来。同样,运行dbca命令,到如下画面。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
  Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 这里,我们要选择“Create a Pluggable Database”,然后点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
  Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 这里,指定我们拔去的那个元数据文件与数据文件的备份。然后点击Next。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 这里,我们要重新指定pdb的名称与管理用户的用户名及密码,然后点击Next。接着点Finish,进行如下画面。
Oracle PDB(Pluggable Database)的创建 - 东方醉仙 - 东方醉仙 的博客
 完成以后,点击Close即可。
我们来查看一下。
SQL> select name,open_mode,con_id
  2  from v$pdbs
  3  /

NAME                           OPEN_MODE      CON_ID
------------------------------ ---------- ----------
PDB$SEED                       READ ONLY           2
PDB1                           READ WRITE          3

SQL>
插入成功。

下面,我们采用命令的方式进行一次创建。
SQL> create pluggable database pdb2
  2  admin user pdb_admin identified by pdb_admin
  3  roles=(DBA)
  4  default tablespace pdb2_users
  5  datafile '/u01/app/oracle/oradata/cdb12/pdb2/pdb2_users01.dbf' size 200M
  6  file_name_convert = ('/u01/app/oracle/oradata/cdb12/pdbseed/','/u01/app/oracle/oradata/cdb12/pdb2/')
  7  /

Pluggable database created.

SQL>
说明:pdb2为所创建pdb的名称,指定了一个默认的表空间为pdb2_users。这里有一个参数file_name_convert,它是用来进行文件的转换,也就是说,把pdbseed目录的下文件转换到pdb2目录的文件。pdbseed目录包括我们的一个pdb种子的系统文件。roles=(DBA)用来指定角色,表示把PDB_DBA角色授予pdb2的管理用户pdb_admin,
下面,我们来看一下新创建的PDB。
SQL> select name,open_mode,con_id
  2  from v$pdbs
  3  /

NAME                           OPEN_MODE      CON_ID
------------------------------ ---------- ----------
PDB$SEED                       READ ONLY           2
PDB1                           READ WRITE          3
PDB2                           MOUNTED             4

SQL>
它还没有打开,下面,我们来打开一下。
SQL> alter pluggable database pdb2 open read write
  2  /

Pluggable database altered.

SQL> select open_mode from v$pdbs where con_id = 4
  2  /

OPEN_MODE
----------
READ WRITE

SQL>
打开完成。
查看一下用户pdb_admin的角色。
SQL> select granted_role
  2  from cdb_role_privs
  3  where grantee = 'PDB_ADMIN'
  4    and con_id = 4
  5  /

GRANTED_ROLE
--------------------------------------------------------------------------------
PDB_DBA

SQL>

有一个问题注意一下,在ASM文件系统下创建PDB,不需要 file_name_convert这个参数,直接创建就是了。
下面, 我们来看个例子。
SQL> create pluggable database pdb1
  2  admin user pdb1_admin identified by "pdb1_admin"
  3  roles=(DBA)
  4  default tablespace pdb1_users
  5  datafile '+datadg' size 200M
  6  /

Pluggable database created.

SQL> alter pluggable database pdb1 open read write
  2  /

Warning: PDB altered with errors.

SQL> select con_id,name,open_mode
  2  from v$pdbs
  3  /

    CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------
         2 PDB$SEED                       READ ONLY
         3 PDB1                           READ WRITE

SQL> 
创建完成。
我们来看一下它的数据文件,
SQL> select name from v$datafile where con_id = 3
  2  /

NAME
--------------------------------------------------------------------------------
+DATADG/CDB/19BE5ECF51681E42E053020CA8AC93A4/DATAFILE/system.270.883781621
+DATADG/CDB/19BE5ECF51681E42E053020CA8AC93A4/DATAFILE/sysaux.271.883781631
+DATADG/CDB/19BE5ECF51681E42E053020CA8AC93A4/DATAFILE/pdb1_users.273.883781663

SQL> select name from v$tempfile where con_id = 3
  2  /

NAME
--------------------------------------------------------------------------------
+DATADG/CDB/19BE5ECF51681E42E053020CA8AC93A4/TEMPFILE/temp.272.883781659

SQL> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值