RMAN性能监控

时间:2023-03-09 17:07:27
RMAN性能监控

RMAN性能调优相关视图

视图名 说明
v$rman_backup_job_details 备份job信息
v$backup_async_io 当前正在运行的、最近完成的备份和restore操作的rman异步I/O性能信息
v$backup_sync_io 当前正在运行的、最近完成的备份和restore操作的rman同步I/O性能信息
v$process 当前活跃进程
v$session 当前活跃会话信息
v$session_longops 可以显示rman备份、还原和恢复进度
v$recovery_progress rman操作进度
v$session_wait 显示会话正在等待的事件、资源信息

1.找出执行rman的数据库会话

SQL> SELECT s.sid, s.serial#, p.spid, s.client_info
FROM v$process p, v$session s
WHERE p.addr = s.paddr
AND s.client_info LIKE '%rman%'; SID SERIAL# SPID CLIENT_INFO
---------- ---------- ------------------------ ----------------------------------------------------------------
rman channel=ORA_DISK_1 SQL>

在执行rman操作时候,可以使用"set command id"来标识rman会话进程

RMAN> run{
> allocate channel d1 type disk;
> set command id to 'my_session';
> backup database;
> }
SQL> SELECT b.sid, b.serial#, a.spid, b.client_info
FROM v$process a, v$session b
WHERE a.addr = b.paddr
AND b.client_info LIKE '%rman%'; SID SERIAL# SPID CLIENT_INFO
---------- ---------- ------------------------ ----------------------------------------------------------------
id=my_session,rman channel=d1 SQL>

2.查看rman job详细信息:

SQL> select session_recid,
input_bytes_per_sec_display,
output_bytes_per_sec_display,
time_taken_display,
end_time
from v$rman_backup_job_details
order by end_time; SESSION_RECID INPUT_BYTES_PER_SEC_ OUTPUT_BYTES_PER_SEC TIME_TAKEN_DISPLAY END_TIME
------------- -------------------- -------------------- ------------------------------ ------------------------------
3.09M 3.12M :: -JUN-
.12K .60K :: -JUN-
107.93M 75.97M :: -JUN-
64.91M 50.01M :: -JUN-
109.27M 76.85M :: -JUN-
109.27M 76.85M :: -JUN-
43.96M 31.23M :: -JUN-
19.74M 14.03M :: -JUN- rows selected. SQL>

3.查看rman操作的进度

select s.client_info,
sl.opname,
sl.message,
sl.sid,
sl.serial#,
p.spid,
sl.sofar,
sl.totalwork,
round(sl.sofar / sl.totalwork * , ) "% Complete"
from v$session_longops sl, v$session s, v$process p
where p.addr = s.paddr
and sl.sid = s.sid
and sl.serial# = s.serial#
and opname LIKE 'RMAN%'
and opname NOT LIKE '%aggregate%'
and totalwork !=
and sofar <> totalwork;

如果没有开启I/O slaves,rman只是使用share pool。

如果开启了I/O slaves进行rman备份(设置了dbwr_io_slaves或backup_tape_io_slaves),需要考虑large pool的大小,因为rman会使用large pool。

Oracle官方建议: large_pool_size = num_of_allocated_channels * (16 MB + (4 * size_of_tape_buffer ))

RMAN的media recovery默认会根据cpu_count参数的值,开启并行恢复。