ITPub博客

首页 > 数据库 > Oracle > Oracle ADG环境下备库temp表空间扩容

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

原创 Oracle 作者:xfhuangfu 时间:2025-09-17 08:52:09 0 删除 编辑

适用范围
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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28373936/viewspace-3095908/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Xiaofei Huangfu Oracle DBA,Oracle ACE Oracle 19c OCM12c OCM,11g OCM MySQL 5.6,5.7,8.0 OCP 18年以上IT从业经验,有丰富的数据库和开发领域经验,多年Oracle运维经验和java开发经验。

注册时间:2013-09-05

  • 博文量
    151
  • 访问量
    231217