暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

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

原创 Xiaofei Huangfu 2025-06-30
599

适用范围
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 200 col serial for 99 col CON_ID for 99 col container for a10 col OPEN_MODE for a10 col tablespace for a10 col temp_file for a80 select 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.dbf SYS@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 200 col serial for 99 col CON_ID for 99 col container for a10 col OPEN_MODE for a10 col tablespace for a10 col temp_file for a80 select 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-

最后修改时间:2025-07-16 17:05:14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论