如何连接oracle 12c可插拔数据库

如何连接oracle 12c可插拔数据库,第1张

启动根容器

[oracle@eric ~]$ export ORACLE_SID=cup

[oracle@eric ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Jan 21 16:00:06 2015

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

Connected to an idle instance.

SQL>startup-----不会直接启动所有可插拔数据库,如需启动所有可插拔数据库,执行命令:alter pluggable database all open

ORACLE instance started.

Total System Global Area 767557632 bytes

Fixed Size 2929112 bytes

Variable Size 574623272 bytes

Database Buffers 184549376 bytes

Redo Buffers5455872 bytes

Database mounted.

Database opened.

停止根容器:

SQL>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

查看是否创建了CDB,如果有显示名字:

SQL>select name,cdb from v$database

NAME CDB

--------- ---

CUP YES

SQL>show parameter service

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

service_namesstring cup

查看容器名字,其中有3个容器:根容器、种子容器和自己创建的容器:

SQL>select con_id,name from v$containers

CON_ID NAME

---------- ------------------------------

1 CDB$ROOT---根容器

2 PDB$SEED---种子容器,只可读

3 TEA ---自己创建的可插拔数据库

SQL>select file_name from dba_data_files

FILE_NAME

--------------------------------------------------------------------------------

/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf

SQL>select file_name from cdb_data_files

FILE_NAME

--------------------------------------------------------------------------------

/oracle/app/oradata/CUP/datafile/o1_mf_system_bch07kvz_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_sysaux_bch020oo_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_undotbs1_bch0d2on_.dbf

/oracle/app/oradata/CUP/datafile/o1_mf_users_bch0d15n_.dbf

创建公共用户

SQL>create user c##eric identified by gao

User created.

SQL>conn c##eric/gao

ERROR:

ORA-01045: user C##ERIC lacks CREATE SESSION privilegelogon denied----没有权限,我们可以单独给其赋予权限,也可以给其指定角色。

Warning: You are no longer connected to ORACLE.

SQL>conn / as sysdba

Connected.

SQL>grant dba to c##eric container=all---给其DBA角色,角色范围覆盖所有的容器

Grant succeeded.

SQL>conn c##eric/gao

Connected. ---连接成功

切换容器:

首先启动自己创建的容器数据库:

SQL>alter pluggable database tea open ---首先启动PDB数据库

SQL>alter session set container = tea

Session altered.

SQL>show con_name ---查看当前所在的容器名

CON_NAME

------------------------------

TEA

关闭可插拔数据库:

SQL>alter pluggable database tea close immediate

Pluggable database altered.

12c推出了可插拔库,管理用户也分为两种:本地用户和公用用户。本地用户是指在插拔数据库(PDB)中的用户,和12c之前的版本是没有什么区别。公用用户只存在于可插拔环境中,在传统的数据库环境中不存在这种应用。怎么理解公用用户呢?可以简单的把它当做容器(CDB)用户,可以在各个通用与所有可插拔数据库(PDB)中使用。这个用户就像是小区的物业管理员,由小区物业来任命并且可以管理小区所有用户。

如果第一次登录CDB数据库,用传统方式创建用户会报错,这就是因为在CDB环境创建的用户为公共用户,语法和普通用户不同。

1.使用sqlplus登录可插拔数据库

2.通过con_name能看到当前登录的环境是CDB根库,CDB包含一个名为PDB1的可插拔库。

3.创建公用用户bighero, 需要使用C##作为该用户名的开头。如果使用传统创建用户的方法会报错。

4.将dba权限授权给公用用户bighero

5.下面使用公用用户分别登录CDB、PDB看看是否通用。 登录PDB使用了tnsnames中已经配置好的链接字符串@pdb1。链接字符串如下图所示。

6.在PDB中创建用户和创建普通用户就没有什么区别了

7.CDB和PDB之间的切换方式

PDB全称为Pluggable Database,即可插拔数据库。

打开PDB数据库的方法有两种:

方式1:

SQL>alter pluggable database PDBEPPS open

Pluggable database altered.

SQL>select con_id, dbid, guid, name , open_mode from v$pdbs

CON_ID DBID GUID NAME OPEN_MODE

---------- ---------- -------------------------------- ------------------------------ ----------

2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED READ ONLY

3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS READ WRITE

方式2:

SQL>alter session set container=PDBEPPS

Session altered.

SQL>startup

Pluggable Database opened.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6753217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存