前言

由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用。

一、修改listener.ora , tnsnames.ora

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
###listener.ora###
LISTENER =
(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 (CONNECT_DATA = (SERVICE_NAME = orcl))
)
#sid list列举cdb和所有pdb的数据库名,所有sid与oracle环境变量保持一致#
SID_LIST_LISTENER =
(SID_LIST =
 (SID_DESC =
 (GLOBAL_DBNAME = orcl) #cdb db_name
 (SID_NAME = orcl)
 )
 (SID_DESC =
 (GLOBAL_DBNAME = pdborcl) #pdb db_name
 (SID_NAME = orcl)
 )
)
###listener.ora###
 
##tnsnames.ora###
#cdb
orcl =
(DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )
 (CONNECT_DATA =
 (SERVICE_NAME = orcl) #cdb的db_name
 )
)
#pdb
pdborcl =
(DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME = pdborcl) #pdb的db_name
 )
)
##tnsnames.ora###

在客户端连接时使用“service_name+domain_name”连接。如果出现ora-01017,很有可能是

二、创建pdb

cdb相当于操作系统,调用并管理各个pdb。pdb相当于真正提供业务需求的数据库实例。oracle 12c安装后只创建了cdb,需要自己生成相应的pdb。

1、创建pdb

在sqlplus下:

1
2
3
4
create pluggable database pdborcl
admin user pdbadmin identified by pdbadmin
role=(resource)
file_name_convert=( 'PDB$SEED's directory' , 'PDBOrcl's directory' );

2、同步文件

1
select pdb_name,status from cdb_pdbs

若pdb状态为need sync,则需要:

1
alter sesseion set container=pdborcl

shutdown immediate或者alter pluggable database pdborcl close immediate ;

1
2
alter pluggable database pdborcl open restricted ;
exec dbms_pdb.sync_pdb ; #调用dbms_pdb进行pdb

3、新增用户

1
2
create user scott account unlock identified by tiger ;
grant resource to scott ;

按照上述方法创建用户,如果出现ora-01017,很有可能是1、没有指定连接的service_name到具体pdb,或者oracle对密码大小写敏感。前者检查listener.ora中sid_list是否已经列出该pdb,并检查连接字符串是否在tnsnames.ora指定。后者如果无法修改前端程序,可以使用

1
alter system set SEC_CASE_SENSITIVE_LOGON = false ;

强制关闭oracle的大小写检查进行确认。

三、常用命令

show pdbs:查看当前数据库container中包含有多少个pdb。如果session在某个pdb中,可以查看当前的pdb。

1
alter session set container=PDBNAME

切换当前会话到某个pdb中。切换后才可使用当前pdb的私有用户进行操作

1
startup/shutdown immediate

关闭当前会话所在的cdb/pdb

1
alter pluggable database PDBNAME open ;

打开指定pdb

1
alter pluggable database PDBNAME close immediate ;

关闭指定pdb

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

oracle 12c创建可插拔数据库(PDB)与用户详解的更多相关文章

  1. Oracle 12c的可插拔数据库PDB

    1. 默认安装之后会有一个可插拔数据库:pdborcl 2. 启动根容器: [oracle@eric ~]$ export ORACLE_SID=orcl [oracle@eric ~]$ sqlpl ...

  2. oracle 12c创建可插拔数据库(PDB)及用户

    由于oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使用. 一.修改listener.or ...

  3. Oracle12cr1新特性之容器数据库(CDB)和可插拔数据库(PDB) 的启动和关闭

    Oracle12c中引入的多宿主选项(multitenant option)允许一个容器数据库容纳多个独立的可插拔数据库(PDB).本文将说明如何启动和关闭容器数据库(CDB)和可插拔数据库(PDB) ...

  4. oracle 12c新特性 FETCH FIRST、WITH TIES 关键字详解

    几乎都是官方文档上的内容.     [ OFFSET offset { ROW | ROWS} ] [ FETCH { FIRST | NEXT }[ { rowcount | percent PER ...

  5. oracle12c新特点之可插拔数据库(Pluggable Database,PDB)

    1.    12c PDB新特点的优势 1)    可以把多个PDB集成进一个平台. 2)    可以快速提供一个新的PDB或一个已有PDB的克隆. 3)    通过拔插技术,可以快速把存在的数据库重 ...

  6. oracle 12C的新特性-CDB和PDB

    1.前言 CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插 ...

  7. Oracle 12C 新特性 - “可插拔数据库”功能

    Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积 ...

  8. 12c可插拔数据库CDB与PDB管理总结

    12c可插拔数据库CDB与PDB管理总结 创建pdb1.直接创建 CREATE PLUGGABLE DATABASE pdb2 ADMIN USER boswll IDENTIFIED BY orac ...

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

    启动根容器:[oracle@eric ~]$ export ORACLE_SID=cup[oracle@eric ~]$ sqlplus / as sysdbaSQL*Plus: Release 12 ...

随机推荐

  1. SQL Server 2008 R2 常用系统函数学习

    /******************************************* * 聚合函数 *******************************************/ SEL ...

  2. C++ STL--顺序容器(vector)

    STL(标准模板库) 一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表.队列.栈. C++标准模板库的核心包含以下组件: ...

  3. QT开发基础教程

    http://www.qter.org/portal.php?mod=view&aid=11

  4. SpringMVC之数据绑定

    SpringMVC之数据绑定 #数据绑定:Spring MVC会根据客户端请求参数的不同,将请求信息以一定的方式转换并绑定 到控制器类中的方法参数上. #说明:这里的“以一定的方式”应该指的是什么?过 ...

  5. Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFa ...

  6. redis 配置详解

    # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k => 1000 bytes # 1kb ...

  7. Jenkins实现SVN+Maven+Java项目的持续集成

    Jenkins 2.46.1 Centos 7.3 JDK 7 安装jdk/maven/svn 在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量: export ...

  8. win7 powershell配色方案

    首先我是参考微软的word的, look~ Windows PowerShell 配置文件 要配置powershell很简单, 就几步 1.显示 Windows PowerShell 配置文件的路径 ...

  9. ubuntu查看文件和文件夹大小

    在实际使用ubuntu时候,经常要碰到需要查看文件以及文件夹大小的情况. 有时候,自己创建压缩文件,可以使用 ls -hl 查看文件大小.参数-h 表示Human-Readable,使用GB,MB等易 ...

  10. Python3基础 filter+lambda 筛选出1-20之间的奇数

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...