更改PDB的打开模式

RESTRICT模式

维护时使用,可以让只有RESTRICT权限的用户才能连接到数据库,其他用户无法连接。

ALTER PLUGGABLE DATABASE 数据库名 CLOSE;

ALTER PLUGGABLE DATABASE 数据库名 OPEN RESTRICTED;

SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN RESTRICTED;

Pluggable database altered.

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE YES

只读模式

ALTER PLUGGABLE DATABASE 数据库名 CLOSE;

ALTER PLUGGABLE DATABASE 数据库名 OPEN READ ONLY;

SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN READ ONLY;

Pluggable database altered.

SQL> SHOW PDBS

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ ONLY NO

修改PDB的设置

在PDB1中创建表空间tbs1

SQL> CREATE TABLESPACE tbs1 DATAFILE '/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf' SIZE 100M;

Tablespace created.

SQL> SELECT FILE_NAME FROM DBA_DATA_FILES;

FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf <===新创建的表空间。

数据文件offline与online

ALTER PLUGGABLE DATABASE DATAFILE '数据文件路径' OFFLINE ;

RECOVERY DATAFILE '数据文件路径'

ALTER PLUGGABLE DATABASE DATAFILE '数据文件路径' ONLINE ;

ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf' OFFLINE;
RECOVERY DATAFILE ''/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf';
ALTER PLUGGABLE DATABASE DATAFILE '/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf' ONLINE;

修改默认永久表空间

修改默认永久表空间,可以防止用户登陆后,将数据写在系统表空间上。

ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE 表空间名;

SQL> ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE TBS1;

Pluggable database altered.

SQL>  SELECT NAME, VALUE$ FROM PROPS$ WHERE NAME='DEFAULT_PERMANENT_TABLESPACE';

NAME                           VALUE$
------------------------------ --------------------
DEFAULT_PERMANENT_TABLESPACE TBS1

修改默认临时表空间

ALTER PLUGGABLE DEFAULT TEMPORARY TABLESPACE 临时表空间名;

通过PROPS$ 查看临时表空间
SQL> SELECT NAME, VALUE$ FROM PROPS$ WHERE NAME='DEFAULT_TEMP_TABLESPACE'; NAME VALUE$
------------------------------ --------------------
DEFAULT_TEMP_TABLESPACE TEMP 通过DBA_TEMP_FILES查看临时表空间对应的数据文件
SQL> SELECT FILE_NAME, TABLESPACE_NAME FROM DBA_TEMP_FILES; FILE_NAME TABLESPACE
------------------------------------------------------------ ----------
/u01/app/oracle/oradata/TESTCDB/pdb1/temp01.dbf TEMP 创建新的临时表空间PDB1_TEMP以及数据文件。
SQL> CREATE TEMPORARY TABLESPACE PDB1_TEMP TEMPFILE '/u01/app/oracle/oradata/TESTCDB/pdb1/pdb1_temp01.dbf' SIZE 100M; Tablespace created. 修改默认临时表空间到新创建的临时表空间。
SQL> ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE PDB1_TEMP; Pluggable database altered. 再次查看PROPS$, 默认临时表空间已经修改。
SQL> SELECT NAME, VALUE$ FROM PROPS$ WHERE NAME='DEFAULT_TEMP_TABLESPACE'; NAME VALUE$
------------------------------ --------------------
DEFAULT_TEMP_TABLESPACE PDB1_TEMP 通过DBA_TEMP_FILES查看临时表空间对应的数据文件, 能看到新创建的临时表空间和数据文件。
SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_TEMP_FILES; TABLESPACE FILE_NAME
---------- ------------------------------------------------------------
PDB1_TEMP /u01/app/oracle/oradata/TESTCDB/pdb1/pdb1_temp01.dbf
TEMP /u01/app/oracle/oradata/TESTCDB/pdb1/temp01.dbf

设置PDB的最大容量

一般不会设置最大容量。

ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 2G);

更改PDB的GLOBAL NAME

数据库应当置于 RESTRICT MODE.

在CDB$ROOT下,ALTER PLUGGABLE DATABASE PDB名 OPEN RESTRICTED;

在PDB下, ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO 新PDB名;

SQL> CONN SYS/ORACLE AS SYSDBA
Connected.
SQL> ALTER PLUGGABLE DATABASE PDB1 CLOSE; Pluggable database altered. SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN RESTRICTED; Pluggable database altered. SQL> ALTER SESSION SET CONTAINER=PDB1; Session altered. SQL> ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO PDB_OPERA; Pluggable database altered. SQL> SHOW PDBS CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB_OPERA READ WRITE YES SQL> ! lsnrctl status
Service "pdb_opera" has 1 instance(s).
Instance "testcdb", status READY, has 1 handler(s) for this service... 改名后,并不会改变文件存放的位置。
SQL> SELECT FILE_NAME , TABLESPACE_NAME FROM CDB_DATA_FILES; FILE_NAME TABLESPACE
------------------------------------------------------------ ----------
/u01/app/oracle/oradata/TESTCDB/pdb1/system01.dbf SYSTEM
/u01/app/oracle/oradata/TESTCDB/pdb1/sysaux01.dbf SYSAUX
/u01/app/oracle/oradata/TESTCDB/pdb1/undotbs01.dbf UNDOTBS1
/u01/app/oracle/oradata/TESTCDB/pdb1/users01.dbf USERS
/u01/app/oracle/oradata/TESTCDB/pdb1/tbs1_1.dbf TBS1

PDB级别修改初始化参数

查看一个参数是否可以在PDB级别修改,查询V$PARAMETER里面的ISPDB_MODIFIABLE字段。

SQL> SELECT NAME, ISPDB_MODIFIABLE FROM V$PARAMETER WHERE NAME='ddl_lock_timeout';

NAME ISPDB


ddl_lock_timeout TRUE

CDB级别,DDL_LOCK_TIMEOUT是0.

SQL> SHOW PARAMETER DDL_LOCK_TIMEOUT;

NAME TYPE VALUE


ddl_lock_timeout integer 0

切换到PDB级别,修改初始化参数为10

SQL> ALTER SESSION SET CONTAINER=PDB1;

Session altered.

SQL> ALTER SYSTEM SET DDL_LOCK_TIMEOUT=10;

System altered.

切换回CDB级别, 看到初始化参数仍然为0.

SQL> CONN / AS SYSDBA;

Connected.

SQL> SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME ='ddl_lock_timeout';

NAME VALUE


ddl_lock_timeout 0


可以通过V$SYSTEM_PARAMETER查看各个PDB的参数值。

SQL> SELECT NAME, VALUE, ISPDB_MODIFIABLE, CON_ID FROM V$SYSTEM_PARAMETER

2 WHERE NAME='ddl_lock_timeout';

NAME VALUE ISPDB CON_ID


ddl_lock_timeout 0 TRUE 0

ddl_lock_timeout 10 TRUE 3


# ALTER SYSTEM命令对应的PDB级别
- ALTER SYSTEM FLUSH SHARED_POOL 只影响PDB级别
- ALTER SYSTEM FLUSH BUFFER_CACHE 只影响PDB级别
- ALTER SYSTEM ENABLE RESTRICTED SESSION 只影响PDB级别
- ALTER SYSTEM KILL SESSION 只影响PDB级别
- ALTER SYSTEM SET 参数 只影响PDB级别 - ALTER SYSTEM CHECKPOINT 无论在哪执行,影响CDB级别。
- ALTER SYSTEM SWITCH LOGFILE 不允许在PDB级别执行。 # 删除PDB
关闭PDB
ALTER PLUGGABLE DATABASE PDB名 CLOSE; 删除PDB并关联删除数据文件。
DROP PLUGGABLE DATABASE PDB名 INCLUDING DATAFILES # CDB的默认管理用户
当创建一个不包含PDB的CDB时,只会创建sys和system用户作为管理用户。当创建一个或多个PDB的时候,会创建PDBADMIN管理用户。
PDBADMIN的默认权限是PDB_DBA,实际运作中,需要再给他授权DBA角色。

SQL> conn sys/oracle@pdb1 as sysdba

Connected.

SQL> GRANT DBA TO PDBADMIN;

Grant succeeded.

[Oracle19C 数据库管理] 管理PDB的更多相关文章

  1. 十四、oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  2. oracle 数据库管理--管理表空间和数据文件

    一.概念表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库数据则是存放在表空间中,表空间由一个或多个数据文件组成. 二.数据库的逻辑结构oracle中逻辑结构包括 ...

  3. 管理表空间和数据文件<六>

    数据库管理 -- 管理表空间和数据文件  介绍 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,表 空间由一个或多个数据文件组成. 数据库 ...

  4. 版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB

    实验测试:快速创建一个数据库PDB2: 实验环境:12.2.0.1.0版本数据库,dbca图形化安装,现有环境,CDB容器数据库ORCL,PDB可插拔数据库ABC   ---查询CDB名称,状态 SQ ...

  5. oracle 笔记

    1.Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create databas ...

  6. oracle8

    数据库管理 -- 管理表空间和数据文件 表空间是数据库的逻辑组成部分.从物理上讲,数据库数据存放在数据文件中:从逻辑上讲,数据库则是存放在表空间中,数据管理是以表空间管理的,表空间由一个或多个数据文件 ...

  7. 最全的ORACLE-SQL笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unloc ...

  8. 韩顺平Oracle笔记

    韩顺平Oracle笔记 分类: DataBase2011-09-07 10:24 3009人阅读 评论(0) 收藏 举报 oracle数据库sqljdbcsystemstring   目录(?)[-] ...

  9. Orcle 查询语句

    首先,以超级管理员的身份登录oracle       sqlplus sys/bjsxt as sysdba   --然后,解除对scott用户的锁       alter user scott ac ...

  10. oracle rm -fr datafile 数据文件被误删的场景恢复(没有rman备份)

    环境: Linux release 7.5 oracle19c (无pdb,从11.2.0.4升级上去的) 一:单个非系统表空间的数据文件被删除 我先备份一下,虽然是测试环境. [oracle@19c ...

随机推荐

  1. 四川九联代工M301H hi3798 mv300 mt7668魔百和 强刷和TTL线刷(救砖)经验分享

    以下都是本次自己操作后的一些经验,不是技术分享,也是看来很多水教程后总结的精华. 四川九联代工M301H hi3798 mv300 mt7668魔百和  一.强刷 1.强刷的教程网上有很多,自己百度. ...

  2. Postgresql索引浅析

    一.摘要 1.索引是提高数据库性能的常用途径.比起没有索引,使用索引可以让数据库服务器更快找到并获取特定行.但是索引同时也会增加数据库系统的日常管理负担,因此我们应该聪明地使用索引. 2.索引其实就是 ...

  3. 对服务器进行心跳检测 python django

    (由于春节期间连不上服务器,但又不知道是不是服务器关机了,因此写一个心跳检测功能遇到问题时可以排查部分原因) 具体来说分为客户端和服务端,客户端为校园服务器,服务端为我们自己搭建的http服务器.客户 ...

  4. DataTransfer.setDragImage()自定义拖拽图像遇到的坑

    发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针.这个图片是自动创建的,你不需要自己去创建它.然而,如果想要设置为自定义图像,那么 DataTran ...

  5. 洛谷P3933 Chtholly Nota Seniorious

    题目 https://www.luogu.com.cn/problem/P3933 顺便:中国珂学院 思路 看到此题先大喊一声"我永远喜欢珂朵莉!" 好了然后我们思考一下如何做此题 ...

  6. CF1098D 题解

    题意 传送门 对于一个元素个数大于 \(1\) 的可重集,每次取出两个数 \(x,y\) 合并.若 \(x\le y\le 2x\),则称其为危险合并.重复上述操作至无法合并. 给你一个初始为空的可重 ...

  7. 面向对象继承---复习:包含继承关系,里氏转换,ArrayList与Hashtable集合,文件处理

    using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...

  8. VUE学习-mixin混入

    mixin混入 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能. 组件式混入 // 定义一个混入对象 var myMixin = { created: functi ...

  9. Property or method "scope" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components

    报错如下 属性或方法"范围"不是在实例上定义的,而是在呈现期间引用的. 通过初始化属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件. 原因在template中未 ...

  10. 有关谷歌下载PDF文件而不是直接打开预览的问题

    找了很多帖子,都不行, 解决方法把链接处理成blob文件再调用下载. 但是仍然不行,最终原因找到: 缺少了这一部创建,需要把二进制数据重新用 Blob对象申明下 let data = new Blob ...