随笔 - 832  文章 - 2  评论 - 31  阅读 - 167万

Oracle 12c创建PDB用户并设置默认表空间

Oracle12c 中,增加了可插接数据库的概念,即PDB,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为 ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可插拔数据库。下面是官方文档关于CDB与PDB的关系图。

在CDB中,只能创建以c##或C##开头的用户,如果不加c##,则会提示错误“ORA-65096:公用用户名或角色名无效”,只有在PDB数据库中才能创建我们习惯性命名的用户,oracle称之为Local User,前者称之为Common User。本文主要解决如何创建DPB用户并设置默认表空间全过程。

1、创建PDB

在12C安装时,会提示你是否安装可插接式数据库,如下图所示:

 

该项为默认安装,如果当时没有安装,可以用以下语句创建:

 

CREATE pluggable DATABASE pdborcl admin USER pdbadmin identified BY Learning roles=(connect)
file_name_convert= ('D:\App\Oracle\oradata\orcl\pdbseed', 'D:\App\Oracle\oradata\orcl\pdborcl');  

 

其中pdborcl是我创建的可插接式数据库,pdbadmin是创建的用户,Learning是密码。file_name_convert换成相应目录。至此PDB创建成功。

 

2、启动PDB数据库

 

1)打开SQL Plus, 以system用户登录,注意输入密码后面加入“as sysdba”;

这是如果创建普通用户则会提示“ORA-65096:公用用户名或角色名无效”。

输入

show con_name

 

显示如下图:

可以看出当前容器为CDB。

2)输入以下代码,启动PDB数据库:

 alter session set container=pdborcl; 
 startup;

 

 如果需要创建个人账户,运行以下代码

 

--Oracle创建用户权限
--创建用户  
create user pdbadmin identified by pdbadmin default tablespace test;  

 

3)修改tnsnames.ora:

在"D:\App\Oracle\product\12.1.0\dbhome_1\NETWORK\ADMIN"目录下,用记事本打开tnsnames.ora,在最后添加

复制代码
复制代码
PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBORCL)
    )
  )
复制代码
复制代码

 

保存后退出。

3、pl/sql developer登陆

 这里要注意Database的选择。

 

4、创建默认表空间

1)用dba账户登陆

2)创建表空间,并修改用户默认表空间

复制代码
复制代码
 1 -- 创建临时空间
 2 create temporary tablespace pdbadmin_temp
 3 tempfile 'D:\App\Oracle\oradata\orcl\pdborcl\pdbadmin_temp01.dbf'
 4 size 32m
 5 autoextend on
 6 next 32m MAXSIZE unlimited  
 7 extent management local;
 8 
 9 
10 -- 创建数据表空间
11 create tablespace pdbadmin_data
12 logging
13 datafile 'D:\App\Oracle\oradata\orcl\pdborcl\pdbadmin_data01.dbf'
14 size 10240m
15 autoextend on
16 next 100m MAXSIZE unlimited  
17 extent management local;
18 
19 -- 更改用户默认表空间
20 alter user pdbadmin default tablespace pdbadmin_data temporary tablespace pdbadmin_temp;
复制代码
复制代码
posted on   小破孩楼主  阅读(2098)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2019-11-16 (转)Tomcat与Jetty区别
2019-11-16 pom文件详解(自己没看过)
2019-11-16 Spring Boot中以代码方式配置Tomcat
2019-11-16 js常用方法总结(以后遇到再进一步总结)
2019-11-16 localStorage的使用
2019-11-16 巧用Ajax的beforeSend 提高用户体验
2019-11-16 四种会话跟踪技术
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

点击右上角即可分享
微信分享提示