12C CBD模式下参数文件管理
Posted wenzhongyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12C CBD模式下参数文件管理相关的知识,希望对你有一定的参考价值。
在12C数据库和11G以前版本的数据库一样只存在一个初始化参数文件,一个服务器参数文件可以被认为是一个数据库的初始化参数,维护系统运行的数据库服务器。通过设计一个服务器端的初始化参数文件。在一个服务器参数文件中存储的初始化参数是持久的,在任何更改的参数的情况下,当一个实例正在运行时,可以持续整个实例关机和启动。此安排不需要手动更新初始化参数,可以使用ALTER SYSTEM语句更改并永久的生效,在12C的参数文件与11G之前的参数文件区别在于12CPDB继承CDB数据库的参数设置,我们通过以下案例来学习12C数据库的参数文件管理是。[oracle@12crac2 ~]$ sqlplus / "as sysdba"
SQL*Plus: Release 12.1.0.1.0 Production on 星期五 5月 20 16:22:53 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SQL> col pdb_name for a30
SQL> SELECT PDB_NAME,CON_UID,PDB_ID,STATUS FROM DBA_PDBS;
PDB_NAME CON_UID PDB_ID STATUS
------------------------------ ---------- ---------- -------------
PDBORCL 2355717672 3 NORMAL
PDB$SEED 4151145250 2 NORMAL
PDB数据库状态
SQL> select name,con_id,open_mode from v$pdbs;
NAME CON_ID OPEN_MODE
------------------------------ ---------- ----------
PDB$SEED 2 READ ONLY
PDBORCL 3 READ WRITE
在这里举例修改optimizer_index_cost_adj参数,来验证PBD数据的继承关系,我们在CDB$ROOT容器修有改optimizer_index_cost_adj参数值为20,同时pdborcl拔插数据库optimizer_index_cost_adj的值也被更改为20, 但我们在PDB数据库修改参数不影响CDB$ROOT容器数据库的参数。
SQL> show con_Name
CON_NAME
------------------------------
CDB$ROOT
SQL> show parameter optimizer_index_cost_adj
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 100
SQL> alter session set container=pdborcl;
会话已更改。
SQL> show parameter index
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 100
SQL> alter session set container=cdb$root;
会话已更改。
SQL> alter system set optimizer_index_cost_adj=20;
系统已更改。
SQL> alter session set container=pdborcl;
会话已更改。
SQL> show parameter optimizer_index_cost_adj
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 20
SQL> alter system set optimizer_index_cost_adj=30;
系统已更改。
SQL> show parameter optimizer_index_cost_adj
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 30
SQL> alter session set container=cdb$root
2 ;
会话已更改。
SQL> show parameter optimizer_index_cost_adj
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 20
参数文件中的参数并不是所有的参数可以在PDB数据库中进行修改,可以通过视图V$paramter中的ISPDB_MODIFIABLE字段判断,值为FALSE时参数不能在PDB数据库中修有改,值为TRUE可被修有改。本例以参数processes为实验 。
SQL> SELECT NAME,ISPDB_MODIFIABLE FROM V$PARAMETER WHERE NAME='processes';
NAME ISPDB
-------------------- -----
processes FALSE
SQL> alter system set processes=1000 scope=spfile;
alter system set processes=1000 scope=spfile
*
第 1 行出现错误:
ORA-65040: 不允许从可插入数据库内部执行该操作
我们来看下最关心的一些内存参数的情况
SQL> SELECT name, ispdb_modifiable
2 FROM V$PARAMETER
3 WHERE NAME like '%sga%'
4 or NAME like '%buffer%'
5 or name like '%pga%'
6 /
NAME ISPDB_MODIFIABLE
-------------------------------------------------------------------------------- ----------------
sga_max_size FALSE
pre_page_sga FALSE
use_indirect_data_buffers FALSE
lock_sga FALSE
pga_aggregate_limit FALSE
sga_target FALSE
db_block_buffers FALSE
buffer_pool_keep FALSE
buffer_pool_recycle FALSE
log_buffer FALSE
unified_audit_sga_queue_size FALSE
pga_aggregate_target FALSE
12 rows selected
可以看到全是FALSE这就意为着,PDB模式下的内存管理全都是由CDB统一管理分配,如果你想单独对某个PDB指定内存使用的进行分配限制,就需要通过ORACLE的资源管理器进行操作。
以上是关于12C CBD模式下参数文件管理的主要内容,如果未能解决你的问题,请参考以下文章