19c ADG环境中主库PDB调整SGA_TARGET自动同步到备库

来源:这里教程网 时间:2026-03-03 18:20:17 作者:

基础环境:Oracle 19c RAC+ADG场景描述:19c 主库PDB中设置SGA_TARGET,可以自动同步到备库中,无需DBA再干预。 Oracle中SGA_TARGET 指定所有SGA 组件的总大小,19c中可以在CDB和PDB级设置该参数。一、检查SGA_TARGET参数1、在根容器cdb$root中检查

SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL>select p.name,s.NAME,s.ISSES_MODIFIABLE,s.ISSYS_MODIFIABLE,s.ISPDB_MODIFIABLE,s.CON_ID from 
v$system_parameter s,v$pdbs p
where s.name='sga_target'
and s.con_id=p.con_id;
NAME                 NAME                 ISSES ISSYS_MOD ISPDB     CON_ID
-------------------- -------------------- ----- --------- ----- ----------
PDB$SEED             sga_target           FALSE IMMEDIATE TRUE           2
HRPDB                   sga_target           FALSE IMMEDIATE TRUE             3
SQL> show parameter sga_target
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target     big integer 2352M

该环境cdb中sga_target总大小为2352m,sga_target参数支持在PDB中设置。2、在主库pdb中设置sga_target 切换到hrpdb中

SQL> alter session set container=hrpdb;
Session altered.

修改前pdb中 sga_target是默认值为0

SQL> show parameter sga_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 0
SQL>
SQL>  alter system set sga_target=1G;
System altered.
SQL>

3、主库中查询sga_target

SQL> set linesize 120
column pdb_name format a10
column name format a30
column value$ format a30
select ps.db_uniq_name,
       ps.pdb_uid,
       p.name as pdb_name,
       ps.name,
       ps.value$
from   pdb_spfile$ ps
       join v$pdbs p on ps.pdb_uid = p.con_uid
order by 1, 2, 3;
DB_UNIQ_NAME  PDB_UID PDB_NAME   NAME    VALUE$
------------------------------ ---------- ---------- ------------------------------ ------------------------------
*                         3293159541 HRPDB     sga_target                   1073741824
SQL> show parameter sga_target
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target     big integer 1G
SQL>

在主库PDB中sga_target已经是1G。4、备 库中查询sga_target

SQL> set linesize 120
column pdb_name format a10
column name format a30
column value$ format a30
select ps.db_uniq_name,
       ps.pdb_uid,
       p.name as pdb_name,
       ps.name,
       ps.value$
from   pdb_spfile$ ps
       join v$pdbs p on ps.pdb_uid = p.con_uid
order by 1, 2, 3;
DB_UNIQ_NAME  PDB_UID PDB_NAME   NAME    VALUE$
------------------------------ ---------- ---------- ------------------------------ ------------------------------
*                         3293159541 HRPDB     sga_target                   1073741824
SQL> show parameter sga_target
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target     big integer 1G
SQL>

在备库PDB中sga_target已经是1G,主库pdb级调整的sga_target已成功同步到备库。

     在生产环境中,有些主备环境的配置不一样,比如备库的CPU和内存等资源比主库低,这样的场景能否使用主库pdb修改sga_target同步到备库呢?

     答案是可以。

     1、可以通过隐藏参数让主库PDB级修改的sga_target参数同步到备库不应用到PDB中      SQL> alter system set "_parameter_spfile_sync"=false;     2、主库调整的sga_target超过了备库的内存大小,备库pdb会自动使用sga_max_size的值主库PDB中 SQL> alter system set sga_target=2g;备库PDB中

SQL> show parameter sga
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
allow_group_access_to_sga     boolean FALSE
lock_sga             boolean FALSE
pre_page_sga         boolean TRUE
sga_max_size         big integer 1G
sga_min_size         big integer 0
sga_target             big integer 1G
unified_audit_sga_queue_size integer 1048576
SQL>

    -the end-

相关推荐