目录
一、更改PDB的不同模式和设置
1、关闭PDB后,请在以下模式下打开PDB
SQL> CONNECT sys@pdb1 AS SYSDBA SQL> ALTER PLUGGABLE DATABASE CLOSE;
(1)受限模式
只有管理员可以访问
SQL> ALTER PLUGGABLE DATABASE OPEN RESTRICTED;
(2)正常读/写模式
SQL> ALTER PLUGGABLE DATABASE OPEN ;
(3)只读模式(所有库/也可以某个库)
SQL> CONNECT / AS SYSDBA SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY ;
2、查看模式
SQL> SELECT name,open_ mode FROM v$pdbs ;
3、修改PDB设置
(1)联机PDB数据文件
SQL> ALTER PLUGGABLE DATABASE DATAFILE '/u03/pdb1_01.dbf' ONLINE;
(2)更改PDB默认表空间
SQL> ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE pdb1 tbs ;
(3)更改PDB默认临时表空间
SQL> ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE temp tbs;
(4)设置PDB存储限制
SQL> ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 2G);
(5)更改全局名称(在受限模式进行修改)
SQL>alter pluggable database pdb1 close immediate; SQL>alter pluggable database pdb1 open restricted; SQL> ALTER PLUGGABLE DATABASE RENAME GLOBAL NAME TO pdbAPP1;
二、更改初始化参数的影响
1、每个CDB只有一个服务器参数文件(SPFILE)
2、PDB值更改
(1)字典v$system_parameter中
仅当ispdb_ modifiable=true时,可以进行更改。
SQL>select name,con_id,ISPDB_MODIFIABLE from v$system_parameter where con_id=5; NAME CON_ID ISPDB_MODIFIABL ------------------------ ---------- --------------- cpu_min_count 5 TRUE sga_min_size 5 TRUE shared_pool_size 5 TRUE resource_manager_plan 5 TRUE db_performance_profile 5 TRUE sga_target 5 TRUE db_cache_size 5 TRUE undo_tablespace 5 TRUE db_securefile 5 TRUE tde_configuration 5 TRUE private_temp_table_prefix 5 TRUE unified_audit_systemlog 5 TRUE parallel_servers_target 5 TRUE common_user_prefix 5 TRUE multishard_query_data_consistency 5 TRUE multishard_query_partial_results 5 TRUE
16 rows selected.
(2)更改后
在PDB关闭后加载到内存中; 在CDB关闭后存储在字典中;
3、案例
SQL> CONNECT sys@pdb1 AS SYSDBA; SQL> ALTER SYSTEM SET ddl_lock_timeout=10; SQL> SHOW PARAMETER ddl_lock_timeout;
三、在PDB中使用alter system
1、某些语句会改变PDB的操作方式:
仅更改影响PDB的系统 受影响的物体 更改系统刷新 SHARED_POOL 仅适用于PDB的对象 ALTER SYSTEM FLUSH BUFFER CACHE 仅适用于PDB的缓冲区 ALTER SYSTEM Enable/Di sable受限会话 仅适用于PDB的会话 更改系统终止会话 仅适用于PDB的会话 更改系统设置参数 仅适用于PDB的参数
2、某些ALTER SYSTEM语句可以在PDB中执行,但会影响整个CDB:
更改系统检查点 影响除只读或脱机文件外的所有数据文件
3、所有其他ALTER SYSTEM语句都会影响整个CDB,并且必须由CDB root中的普通用户。
更改系统切换日志文件 不允许从可插拔数据库中进行操作
四、配置每个PDB的主机名和端口号
1、设置主机名
SQL> ALTER PLUGGABLE DATABASE CONTAINERS HOST = host name> ; SQL> ALTER PLUGGABLE DATABASE CONTAINERS PORT =< port nb> ;
2、重置主机名和端口号
SQL> ALTER PLUGGABLE DATABASE CONTAINERS HOST RESET ; SQL> ALTER PLUGGABLE DATABASE CONTAINERS PORT RESET ;
五、删除PDB
六、关于归档日志
pdb单独没有归档日志,所有pdb共享归档日志
pdb下不允许执行SQL>alter system switch logfile的;
pdb和cdb共享redo,archivelog,fra,spfile;
七、CDB下通过其他pdb克隆新的pdb
1、db_create_file_dest设置的情况下
(1)查看db_create_file_dest
11:24:35 SYS@ocporcl>show parameter db_create_file_dest; NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ db_create_file_dest string /oracle/pdbtest
(2)直接克隆
SQL>create pluggable database orclpdb3_clone from orclpdb3;
(3)打开新克隆pdb
SQLalter pluggable database orclpdb3_clone open;
2、db_create_file_dest未设置的情况下,使用create_file_dest参数指定目标地址
SQL>create pluggable database orclpdb3_clone2 from orclpdb3 create_file_dest='/oracle/pdbtest';
3、db_create_file_dest未设置的情况下,使用file_name_convert(不建议使用)
SQL> create pluggable database orclpdb3_clone2 from orclpdb3 file_name_convert=('/oracle/pdbtest','/oracle/pdbtest') ;
ERROR at line 1:
ORA-01276: Cannot add file /oracle/pdbtest/OCPORCL/E13D476B05DC65EFE055C72F45483EB2/datafile/o1_mf_system_kbcd2jp2_.dbf. File has an Oracle Managed Files file name.
所以:file_name_convert模式,数据文件必须是非OMF格式才可以使用。
使用非OMF格式可以(有时会报错::ORA-01537: cannot add file '/oracle/pdbtest/oradata/orclpdb1/system01.dbf' - file already part of database
SQL> create pluggable database orclpdb1_clone3 from orclpdb1 file_name_convert=('/oracle/app/oracle','/oracle/pdbtest');
八、删除PDB
SQL>alter pluggable database ORCLPDB1_CLONE9 close;
SQL>drop pluggable database ORCLPDB1_CLONE9 including datafiles;