Oracle ADG环境下备库temp表空间扩容

来源:这里教程网 时间:2026-03-03 22:42:22 作者:

适用范围 Oracle Database 11g及以上版本 场景描述 日常生产环境中如果使用了ADG备库,在备库执行查询业务或部署同步工具,就使用到了temp表空间。如果备库temp临时表空间不足,如何进行扩容?

image.png 解决方案 11g,12c,19c的ADG环境中,standby_file_management设置为AUTO,主库表空间扩容后data file会自动同步到备库,TEMP表空间扩容tempfile不会自动同步到备库。23ai开始ADG环境中主库temp表空间扩容后temp file会自动同步到备库。 1、23ai以前的ADG环境(11g,12c,19c) (1)检查数据库状态 连接到主库 SQL> select db_unique_name,name,open_mode,LOG_MODE,FLASHBACK_ON,database_role from v$database; 数据库运行在READ WRITE状态 datab_role是PRIMARY。 连接到备库 SQL> select db_unique_name,name,open_mode,LOG_MODE,FLASHBACK_ON,database_role from v$database; 数据库运行在READ ONLY WITH APPLY状态 datab_role是PHYSICAL STANDBY。 检查ADG同步状态 SQL> SELECT name, value, time_computed FROM v$dataguard_stats; (2)检查tempfile 主备环境分别执行执行

set line 200 pages 200col serial for 99col CON_ID for 99col container for a10col OPEN_MODE for a10col tablespace for a10col temp_file for a80select ROWNUM serial,c.CON_ID,c.NAME container,c.OPEN_MODE,ts.NAME tablespace,tf.NAME temp_file from v$containers c inner join v$tablespace ts on (c.con_id=ts.con_id) inner join v$tempfile tf on (ts.con_id=tf.con_id and ts.TS#=tf.TS#) order by con_id;SERIAL CON_ID CONTAINER  OPEN_MODE  TABLESPACE TEMP_FILE------ ------ ---------- ---------- ---------- -----------------------
     1      1 CDB$ROOT   READ WRITE TEMP       /u01/app/oracle/oradata/CDB19C/temp01.dbf     2      2 PDB$SEED   READ ONLY  TEMP       /u01/app/oracle/oradata/CDB19C/pdbseed/temp012021-07-24_11-15-20-214-AM.dbf     3      3 HRPDB      READ WRITE TEMP       /u01/app/oracle/oradata/CDB19C/hrpdb/temp012021-07-24_11-15-20-214-AM.dbf     4      6 RCATPDB    READ WRITE TEMP       /u01/app/oracle/oradata/CDB19C/rcatpdb/temp012021-07-24_11-15-20-214-AM.dbfSYS@cdb19c(CDB$ROOT)>

(3)备库进行temp扩容 12c,19c切换到目标pdb

SQL> alter session set container = PDBHR;
SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/CDB19C/hrpdb/temp02.dbf' size 20G;

检查备库tempfile

set line 200 pages 200col serial for 99col CON_ID for 99col container for a10col OPEN_MODE for a10col tablespace for a10col temp_file for a80select ROWNUM serial,c.CON_ID,c.NAME container,c.OPEN_MODE,ts.NAME tablespace,tf.NAME temp_file from v$containers c inner join v$tablespace ts on (c.con_id=ts.con_id) inner join v$tempfile tf on (ts.con_id=tf.con_id and ts.TS#=tf.TS#) order by con_id;

11g直接在备库temp进行扩容

SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/CDB19C/hrpdb/temp02.dbf' size 20G;

2、23ai ADG环境 23ai开始ADG环境主库temp表空间add tempfile可以自动同步到备库。 建议开启OMF管理,standby_file_management参数为AUTO 备库参数检查

SQL> select value from v$parameter where name='db_create_file_dest';
VALUE---------------------------------------+datadg
 
SQL> select value from v$parameter where name='standby_file_management';
VALUE---------------------------------------AUTO

【小结】19c及以前版本(11g,12c,19c)ADG环境主库temp表空间扩容后tempfile不能自动同步到备库,我们可以在ADG备库add tempfile完成扩容;23ai开始ADG环境主库temp表空间扩容tempfile可以自动同步到备库,这也是23ai ADG新特性之一,极大的方便了ADG环境备库temp表空间的管理。 -the end-

------------------------------------------------------------------------------------------------------------------------------------

**MyBologs:**

https://www.myhfxf.com

https://www.xiaofeihuangfu.com

CSDN: https://blog.csdn.net/xfhuangfu

ITPUB: https://blog.itpub.net/28373936/

微信公众号:xfhuangfu

------------------------------------------------------------------------------------------------------------------------------------

相关推荐