19c ADG環境中主庫PDB調整SGA_TARGET自動同步到備庫

xfhuangfu發表於2023-01-31

基礎環境:

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-

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28373936/viewspace-2933448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章