ITPub博客

首页 > 数据库 > Oracle > Oracle 12C RMAN备份占用大量临时表空间

Oracle 12C RMAN备份占用大量临时表空间

原创 Oracle 作者:chenoracle 时间:2022-09-11 10:19:51 1 删除 编辑

环境说明:

DB:Oracle 12.2.0.1.0
OS:SUSE Linux Enterprise Server 12 SP3

检查备份情况

set line 300
set pagesize 150
col in_size for a10
col out_size for a10
col input_type for a10
col e for a20
col s for a20
select
session_key,
input_type,
compression_ratio,
INPUT_BYTES_DISPLAY in_size,
output_bytes_display out_size,
to_char(START_TIME,'YYYYMMDD HH24:MI:SS') S,
to_char(END_TIME,'YYYYMMDD HH24:MI:SS') E,
status
from v$rman_backup_job_details where INPUT_TYPE='DB FULL'
order by S DESC;

SESSION_KEY INPUT_TYPE COMPRESSION_RATIO IN_SIZE OUT_SIZE S E STATUS
----------- ---------- ----------------- ---------- ---------- -------------------- -------------------- -----------------------
13816 DB FULL 3.71191612 131.61G 35.46G 20220907 03:20:55 20220907 04:20:44 COMPLETED WITH WARNINGS
13803 DB FULL 3.68448673 130.64G 35.46G 20220906 03:14:07 20220906 03:54:58 FAILED
13790 DB FULL 3.67081775 125.23G 34.11G 20220905 03:14:08 20220905 03:52:58 FAILED

检查Rman备份日志,在备份备份文件、归档文件结束时,提示临时表空间CJCTEMP不足

using channel ORA_DISK_4
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 09/02/2022 03:14:12
ORA-01652: unable to extend temp segment by 128 in tablespace CJCTEMP

检查临时表空间使用情况

SQL> select tablespace_name,file_name,bytes/1024/1024/1024,status,AUTOEXTENSIBLE,MAXBYTES/1024/1024/1024 from dba_temp_files;

TABLESPACE_NAME FILE_NAME BYTES/1024/1024/1024 STATUS AUT MAXBYTES/1024/1024/1024
------------------------------ -------------------------------------------------- -------------------- ------- --- -----------------------
CJCTEMP /oracle/CJC/cjcdata1/temp_1/temp.data1 5 ONLINE YES 5

对CJCTEMP临时表空间进行扩容,由5G扩容到30G。

第二天检查仍然有相同的报错

ORA-01652: unable to extend temp segment by 128 in tablespace CJCTEMP

为什么在Rman备份时会消耗这么多临时表空间呢,11g数据库备份没有类似问题,难道是12C BUG?

登录MOS,检查发现和2658437相似,对应版本12.1.0.2 and later.

问题原因:

当使用默认optimizer_mode=ALL_ROWS时会占用大量临时表空间。

解决方案:

备份时,会话级别将optimizer_mode由ALL_ROWS改成RULE。

RMAN> sql "alter session set optimizer_mode=RULE";

第二天检查备份,已经恢复正常。

set line 300
set pagesize 150
col in_size for a10
col out_size for a10
col input_type for a10
col e for a20
col s for a20
select
session_key,
input_type,
compression_ratio,
INPUT_BYTES_DISPLAY in_size,
output_bytes_display out_size,
to_char(START_TIME,'YYYYMMDD HH24:MI:SS') S,
to_char(END_TIME,'YYYYMMDD HH24:MI:SS') E,
status
from v$rman_backup_job_details where INPUT_TYPE='DB FULL'
order by S DESC;

SESSION_KEY INPUT_TYPE COMPRESSION_RATIO IN_SIZE OUT_SIZE S E STATUS
----------- ---------- ----------------- ---------- ---------- -------------------- -------------------- -----------------------
13835 DB FULL 3.71561534 129.00G 34.72G 20220908 03:12:10 20220908 03:44:42 COMPLETED
13816 DB FULL 3.71191612 131.61G 35.46G 20220907 03:20:55 20220907 04:20:44 COMPLETED WITH WARNINGS
13803 DB FULL 3.68448673 130.64G 35.46G 20220906 03:14:07 20220906 03:54:58 FAILED
13790 DB FULL 3.67081775 125.23G 34.11G 20220905 03:14:08 20220905 03:52:58 FAILED



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

下一篇: 没有了~
请登录后发表评论 登录
全部评论
Oracle ACE、OCMU 用户组成员、Oracle 11g OCM、微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    686
  • 访问量
    1903354