RMAN(Recovery Manager)是服务器管理恢复(Server-Managed Recovery,SMR)的一种实现。SMR是一种数据库执行所需的操作以确保自身备份成功的能力,依赖于RDBMS内核中的内置代码可以完成这一功能。
第一章 RMAN体系结构
- 1.1. 内存
RMAN使用一些PL/SQL程序包执行操作,这些程序包与其它程序包相同,必须加载到共享池中。如果共享池不够大或者结构比较零散,那么就有可能不能够执行RMAN程序包,因此,为共享池分配RMAN操作的足够内存至关重要。
RMAN默认的情况下使用PGA,只有当backup_tape_io_slaves或者dbwr_io_slaves参数中的任意一个设置为true的时候,那么RMAN就允许双路备份(或者在不同的路径上并行生成同一个备份副本),这时RMAN使用的是大池的内存。
- 1.2. 实用程序
RMAN实用程序是Dabase Utilitis套件的一部分。Database Utilitis套件是一组命令行形式的应用程序,包括Data pump、SQL*Loader、DBNE.WID和dbverify。可以这样理解,RMAN程序负责接收命令行输入,之后组装成PL/SQL代码块,放到target database上执行。真正工作的是target database。
RMAN连接target database分为客户端连接和本地连接,典型安装oracle的时候就会自动安装RMAN。RMAN分为企业版和标准版,标准版只能分配一个备份信道。安装oracle客户端的时候选择的是Administrator就会安装客户端的RMAN套件。
RMAN使用程序由两部分组成:可执行文件和recover.bsq文件。
[oracle@orcl01 u01]$ find -name recover.bsq
./app/oracle/product/11.2.0/dbhome_1/rdbms/admin/recover.bsq
recover.bsq文件实际上是库文件,可执行文件从recover.bsq文件中解析代码,生成在target database上可执行的PL/SQL代码块。
RMAN只能以专用服务器进程(SERVER = DEDICATED)连接的方式连接target database,且通常情况下以sysdba的身份连接到数据,但不需要声明身份。
[oracle@orcl01 u01]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 24 11:16:01 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1448495022)
RMAN>
- 1.3. RMAN中的控制文件
- 1.3.1. 控制文件
控制文件中控制数据库查询物理文件的地址,并控制每个文件的头信息,其中包括数据文件信息、重做日志文件信息和归档日志信息。控制文件还含有与数据库关联的关键文件的每一个文件的头部快照(snapshot)。
因为控制文件中包含数据库文件的信息,因此RMAN利用控制文件获取备份所需要