RMAN深入解析之--RMAN服务器进程

RMAN服务器进程:

   RMAN生成一个到target db的客户端连接,并创建两个服务器进程。

    1)主要进程生成对sys用户中的数据包调用,以执行备份和恢复操作,该进程会在备份和还原期间协调信道进程的工作。

     2)次要进程(或影子进程)轮询RMAN中的所有长事务(long-runningtransaction)并在内部记录信息。

SQL> select sid,serial#,context,sofar,totalwork,round(sofar/totalwork*100,2) "%_COMPLETE"
  2   from v$session_longops
  3   where opname like 'RMAN%'
  4   AND OPNAME NOT LIKE '%aggregate%'
  5   and totalwork != 0
  6* and sofar <>totalwork
       SID    SERIAL#    CONTEXT      SOFAR  TOTALWORK %_COMPLETE
---------- ---------- ---------- ---------- ---------- ----------
       141         10          1       5691     129440        4.4
SQL> col client_info for a30
SQL> col program for a15
SQL> set linesize 120
SQL> select sid ,saddr,paddr,program,client_info
  2* from v$session where sid=141
       SID SADDR            PADDR            PROGRAM         CLIENT_INFO
---------- ---------------- ---------------- --------------- ------------------------------
       141 070000005A3F01C0 070000005A2F9AE0 rman@aix211 (TN rman channel=ORA_DISK_1
                                             S V1-V3)

RMAN信道进程:

   除了默认的两个进程外,在备份和还原期间还会为分配的每个信道单独创建一个进程。RMAN将信道视为目标数据库上的服务器进程,该进程在备份期间协调读取数据文件和写入指定位置的操作,在还原期间则协调读取备份位置和在数据文件位置写入数据库的操作。

   信道只有两种类型:磁盘和磁带信道。不能为一个备份操作同事分配这两种信道。

RMAN和I/O从属:

   利用DBWR_IO_SLAVES参数可以配置磁盘I/O从属,这个参数可以设置任意值,它的主要作用是在将“脏”缓冲区(即脏块)的内容写入磁盘时唤醒另外的DBWR从属进程来执行磁盘写操作。如果该参数被设置为非零,RMAN会自动在每个信道中切换使用4个I/O从属来帮助将数据块读入RMAN内存缓冲区。

   但当OS平台不支持本地异步I/O时,才启用I/O从属进程。

   使用BACKUP_TAPE_IO_SLAVES参数启用磁带的I/O从属进程。


SQL> show parameter slaves
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
backup_tape_io_slaves                boolean     FALSE
dbwr_io_slaves                       integer     0
SQL> 
如果启用I/O从属进程,需要配置large pool。