当前位置:操作系统 > Unix/Linux >>

RMAN系列(三),介质管理问题

RMAN系列(三),介质管理问题
 
RMAN系列(二),RMAN设置和配置.txt
http://www.zzzyk.com/database/201310/253279.html
 
Oracle 10g中的RMAN 使用程序主要关注的是将磁盘备份作为介质恢复解决方案的最佳方法。 随着磁盘价格的下跌,大量的存储区网络(Storage Area Network:SAN)已经在很多数据中心找到了永久的存储空间。 随着业务向着价格越来越便宜而容量越来越大的磁盘发展,对RMAN的功能(如Flashback)进行了升级,从而可以最有效的利用可用存储空间。
RMAN 备份实用程序是按逻辑执行的过程,而写入到磁盘的操作正是Oracle 数据库所擅长的工作。因此,当Oracle 数据库开始改进磁盘写入功能时,RDBMS也会做相应的工作来改进性能。 
但是在许多情况下,数据库的大小及其位置都使得它无法备份到磁盘。或者仍然存在要简历数据副本或者离站归档的业务需求。因此还是需要写入到老式的磁带设备。
Oracle 数据库的磁带备份需要第三方的辅助设备,这主要是因为市场上流行的连续介质子系统具有完全不同的性质。 RMAN 开发人员通常使用那些大供应商提供的可读写磁带产品,而不去尝试这些不同类型的磁带设备的不同系统调用。
Oracle 拥有自己的介质管理软件解决方案,称为 Oracle 安全备份(Oracle Secure Backup: OSB)。 OSB 是完全集成的,RMAN 到磁盘的解决方案,它不需要任何第三方供应商的软件插件,但是OSB 不成熟。
 
一. 使用磁带备份的原因
第一个理由是由于数据库的大小。现在的数据库平均大小已经达到100GB,并且这个数据还在继续增加。数据库的大小决定了是否需要执行磁带备份操作。即使磁盘价格在迅速下降,但购买很多磁盘需要的花费很大。 磁盘备份的优点在于快速恢复,而磁盘的备份和还原相对较慢。
第二个理由是易管理性。通常,全企业备份策略的实现和执行是由中央系统上的人员集中管理的,这样节省了备份的规模和开支,公司也有能力买大容量的磁带盒式设备来存储更多的数据。
第三个理由:可移植性。 为了归档和避免灾难,可以很容易的将一堆磁带离站移动,而硬盘则无法这么方便的传输。
集中备份资源的缺点:会导致备份复杂话,尤其是Oracle 数据库的复杂化。 Oracle数据文件,日志文件和控制文件的复杂性意味着我们不能简单的执行一个OS 作业。让它在空闲时间复制文件。 相反,我们必须使数据库做好执行备份的操作,然后通知开始复制,最后重新配置数据库。
使用RMAN可以避免这个数据库的配置,备份操作可以发生在任何时候,任何情况下,不过,要将备份写入集中的磁带备份位置,就必须执行一些特殊的RMAN 配置。
 
二. RMAN 和 介质管理器 概述
通过使用介质管理器,RMAN将数据备份到磁带上。 介质管理器(media manager:MM)是由第三方软件商提供的,它将数据块中的数据流从RMAN通道进程传递到相应的磁带中。 通常,介质服务器位于一个企业网中。 介质管理服务器(Media management Server)是一个集中化系统,在这里可以处理全企业的磁带备份操作。
计算机系统必须安装了介质管理(MM)客户端软件才能使用介质管理器。介质管理客户端软件可以连接MM服务器,并且通过网络传输数据。 如果RMAN要使用MM服务器,还需要另外的软件组件。 安装客户端软件之后,我们还必须为介质管理器安装Oracle 模块。 Oracle 模块(Oracle Module)是一个用于Oracle RDMBS 的软件插件,它可以连接RMAN与客户端管理软件,后者可以把数据传送到MM服务器。 Oracle 的这个插件也称为介质管理库(Media management Library: MML).
2.1 介质管理器目录
介质管理器是我们使用的整个备份系统中的一个独立子系统。它有三个组件:与Oracle 结合的介质管理库(MML),介质管理客户端 和 介质管理服务器。MM 服务器有多种组件,这些组件的规范由供应商提供,所有的MM服务器都必须具有一些相同的组件。
介质管理器目录是MM服务器上的信息数据库,它保存了关于物理磁带本身,磁带的访问权限 和 磁带存储内容的相关信息。 备份完成时,介质管理器目录则记录RMAN文件句柄,句柄(Handle)是使用RMAN执行备份操作时创建的备份片名称。 如果执行磁盘备份操作,句柄就是物理文件名。如果执行磁带备份,介质管理器目录中使用的句柄就是备份所在的磁带位置。
RMAN 完成磁带备份操作时会向管理器提供句柄名,介质管理器把该句柄记录在目录中。需要执行还原操作时,RMAN会基于自身的目录向介质管理器请求指定的句柄。随后,介质管理器查找这个句柄,将该句柄与指定磁带关联在一起,同时判断磁带是否有效。 如果磁带有效,介质管理器会使用这个磁带,并且开始将数据流传送回RMAN,这样就可以重新构建数据文件。
 
2.2 介质管理器的其他软件组件 
除了 介质管理器目录 以外,MM 管理器还包含两个基本组件:
(1) 设备代理程序(Device agent):设备代理程序是负责使用实际磁带设备并在该设备上传送数据的组件
(2) 自动机器接口(Robotic Interface): 自动机器接口控制所有自动机器的软件,这些自动机器负责在磁带满时或在请求写入已填满的磁带时更换磁带。
Oracle 中的RMAN 不了解这些组件的存在。 RMAN 只是简单地把命令请求发送给MML,随后MM 软件会处理相应的所有事件。 不过,由于备份和恢复的成功取决于这些组件,所以熟悉这些软件组件也是至关重要的。使用RMAN出现的问题大多数都与设备代理程序或自动机器接口有关,但从RMAN 接口几乎察觉不到这些问题。
 
2.3 介质管理库(MML)
MML 是一个库文件,它将RMAN的一致性的备份或还原请求解释为在据诶是管理服务器上的具体的系统调用,以实现要求的操作。 MML 与 MM 客户端软件和MM 服务器软件一样是由同一个供应商提供的,但是我们需要单独购买MML 和取得许可。
首次分配磁带通道时,MML 作为一个集成的库文件加载到Oracle 内存空间,它是Oracle RDBMS 软件的逻辑部分,因此RMAN可以生成正确的MM客户端软件调用。  这个集成实际上非常简单:分配磁带通道时,Oracle 加载一个名为libobk.so 的文件。 这个文件位于ORACLE_HOM/BIN 目录中,它只是一个要使用的MML 文件的符号连接。 在Windows平台上,Oracle 会在搜索路径中查找一个名为orasbt.dll 的库文件。 不论是哪一种介质管理器,在介质管理DDL 文件都名为: orasbt.dll, 介质管理器通常将其写入到WINDOWS/system32 目录中。 如果这个文件没有位于该目录中,在系统路径环境变量中有一个能够查找到orasbt.dll 文件的搜索路径。
示例: 使用Oracle 默认SBT 接口测试磁带通道
RMAN> run
2> {
3> allocate channel c1 type 'sbt_tape'
4> PARMS="SBT_LIBRARY=oracle.disksbt,
5> ENV=(BACKUP_DIR=f:/BACKUP/)";
6> BACKUP DATABASE FORMAT='%U';}
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: SID=21 设备类型=SBT_TAPE
通道c1: WARNING: Oracle Test Disk API
启动 backup 于 18-6月 -10
通道 c1: 正在启动全部数据文件备份集
通道 c1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:/APP/ADMINISTRATOR/ORADATA/ORCL/SYSAUX01.DBF
输入数据文件: 文件号=00003 名称=D:/APP/ADMINISTRATOR/ORADATA/ORCL/UNDOTBS01.DBF
输入数据文件: 文件号=00004 名称=D:/APP/ADMINISTRATOR/ORADATA/ORCL/USERS01.DBF
通道 c1: 正在启动段 1 于 18-6月 -10
通道 c1: 已完成段 1 于 18-6月 -10
段句柄=06lghd3f_1_1 标记=TAG20100618T085926 注释=API Version 2.0,MMS Version 8.1.3.0
通道 c1: 备份集已完成, 经过时间:00:01:35
通道 c1: 正在启动全部数据文件备份集
通道 c1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 c1: 正在启动段 1 于 18-6月 -10
通道 c1: 已完成段 1 于 18-6月 -10
段句柄=07lghd6e_1_1 标记=TAG20100618T085926 注释=API Version 2.0,MMS Version 8.1.3.0
通道 c1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 18-6月 -10
释放的通道: c1
也可以永久性配置命令设置Oracle 库:
Configure channel device type 'SBT_TAPE' 
PARMS 'SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR=f:/BACKUP/)';
如果视图分析介质管理器备份解决方案可能存在的问题或无法使备份工作时,上面的的示例就是一个很好的测试方法。 通过分配一个‘伪造的’磁带通道,可以测试RMAN 配置是否正确。
注意: 不要在产品备份时测试MML 文件。如果要在产品环境中执行磁盘备份操作,就分配磁盘通道。 伪造MML的性能非常糟糕,这是因为RMAN为磁带而不是磁盘分配内存缓冲区,因而磁盘写操作的速度远大于磁带写速度这一点没有体现。
 
2.4 连接MML 的接口
链接Oracle 与 MML时,意味着RMAN 可以通过它来传递命令以连接MML,或者进一步说,在数据库服务器上安装的
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,