[Workdocuments]Oracle数据库RMAN备份与恢复技术
计算机是易坏的。主板上的芯片、主板电路、内存、电源等任何一项不能正常工作,都会导致计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏或丢失。但是,如果计算机的硬盘损坏,将会导致应用和数据的损坏或丢失。而数据是关键,如果数据被破坏或者丢失,则会对应用系统能否正常运行起着决定性作用,所以数据必须要备份,然后用备份来恢复数据。
备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。
RMAN ( Recovery Manager, 恢复管理器 )是从Oracle8开始提供的一套用于备份和恢复的有利工具,它有两种使用界面:GUI(图形用户界面)和CLI(命令行界面)。使用RMAN不但可以完成Oracle 数据库备份和恢复的各种任务,还具有相当全面的报表功能。采用数据库提供的RMAN备份工具有以下的优点:
支持在线热备份
支持多级增量备份
支持并行备份,恢复
减小所需要备份量
备份,恢复使用简单
1、配置RMAN
配置RMAN包括配置CATALOG数据库,配置数据库与媒体管理软件的接口,制定RMAN的多级备份方案,写RMAN备份脚本
1.1 CATALOG数据库
因为RMAN自动维护备份和恢复所需要的各种信息,所以RMAN必须把这些以某种形式保存。RMAN支持两种形式保存这些信息,数据库的控制文件或创建一个单独的数据库来保存RMAN的信息。
当选择把RMAN的信息存储在控制文件时,控制文件的丢失时将导致备份将不能进行恢复。所以若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存放备份信息。这个单独的数据库(称为CATALOG数据库)只需要很小的空间,既可以和被备份的数据库(E10K)放在同一主机上,也可以单独放在另一台主机上(如果条件允许,推荐放在一台单独的主机上来确保最大的可恢复性)。
备份CATALOG数据库:因为CATALOG数据库包含了所有的备份信息,所以该数据库本身也是需要通过某种方法进行备份,但因为该数据库很小(一年内可能才增加十几二十兆),所以既可以对它进行冷备份,也可以进行逻辑的输出(EXPORT)。
配置CATALOG数据库:
用dbassist创建数据库。
在该数据库创建RMAN数据库用户:
create user rman identified by rman default tablespace ts_rman
temporary tablespace temp;
grant connect ,resource , RECOVERY_CATALOG_OWNER to rman.
连接到目标数据库和CATALOG数据库
rman target system/manager@target_tnsname rcvcat rman/rman@catalog_tnsname
创建CATALOG用户的表:
rman>create catalog
登记目标数据库:
rman>register database
这样就可以利用该RMAN数据库来备份目标数据库了。
1.2 磁带接口
当使用专用的磁带管理工具时,必须配置数据库与磁带的接口,一般是管理工具提供一个动态连接库与数据库进行连接。以下是一个测试的RMAN脚本:
run {
allocate channel 'dev1' type disk
resync catalog;
backup format ‘/archive/ctl%u_%p_%c ‘ current controlfile;
release channel dev1;
}
1.3 多级备份策略
采用多级备份是为了减少了恢复所需要的时间和减少每天备份所需要的时间,而又保证系统有很好的恢复性。但是在恢复时间和备份时间要有一个权衡。比如只要开始的一个全备份和备份所有产生的归档文件就可以保证把数据库恢复到最新的状态,但是一般来说实际上并不会这么进行(因为在恢复时将需要很长很长的时间),多级备份就是为了解决这样的问题。以下是一种建议的方案。
每半年做一个数据库的全备份(包含只读表空间),每个月做一次零级备份(不包含只读表空间),每个星期做一次一级备份,每天做一个二级备份,任何表空间改成只读状态后做一个该表空间的备份。当需要时(如四个小时归档文件系统就要接近满了)备份归档文件
数据库全备份脚本:
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup full tag 'dbfull' format '/o9i/testrman/full%u_%p_%c' database ;
sql 'alter system archive log current' ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
零级备份脚本(只读表空间除外)
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup incremental level 0 tag 'dbL0' format '/o9i/testrman/basic%u_%p_%c' database skip readonly;
sql 'alter system archive log current' ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
一级备份脚本
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup incremental level 1 tag 'dbL1' format '/o9i/testrman/basic%u_%p_%c' ddatabase skip readonly;
sql 'alter system archive log current' ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
二级备份脚本
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup incremental level 2 tag 'dbL2' format '/o9i/testrman/basic%u_%p_%c' ddatabase skip readonly;
sql 'alter system archive log current' ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
表空间备份脚本(以users表空间为例)
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup tag 'tsusers' format '/o9i/testrman/basic%u_%p_%c' tablespace users;
sql 'alter system archive log current' ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
归档文件备份脚本
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
backup filesperset 3 archivelog all delete input;
release channel dev1;
release channel dev2;
release channel dev3;
}
则每天所需要备份的数据量只有一天的改变量。而做恢复时最多只要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,就只能够减少零级备份之间的时间间隔(如可以每个星期做一个零级备份,这样恢复时最多只需要恢复一个星期的数据量)。
备份CATALOG数据库(数据库逻辑输出)
exp pafile=exp.dat
其中exp.dat如下
userid=rman/rman
file=rmanexp.dmp
2、维护RMAN
RMAN的维护工作主要是:
1. 查看备份信息
2. 因为手工删除了备份文件或归档文件需要把RMAN CATALOG数据库的信息与手工删除的信息同步。
2.1 检查RMAN备份信息
列出已经过时的备份:
RMAN>report obsolete;
删除过时的备份信息
RMAN> allocate channel for maintenance type disk;
RMAN> change backupset id delete;
RMAN> release channel;
2.2 RMAN信息同步
当手工删除了数据库的归档文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN> release channel;
当手工删除了数据库的RMAN备份文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN> release channel;
2.3 使用RMAN进行恢复
数据库的的恢复比较复杂,有许多不同的情况必须在了解ORACLE数据库结构的条件下用不同的方法处理,RMAN的好处在于大部分情况不需要理解数据库的结构而使用一些最简单语句来进行恢复,这里只讨论了最常用最普通的恢复情况。
2.3.1 恢复整个数据库
在恢复整个数据库之前必须让数据库处于安装的状态(mount状态)
svrmgrl>startup mount
rman>
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
restore database ;
recover database ;
release channel dev1 ;
release channel dev2 ;
release channel dev3 ;
}
2.3.2 恢复单个表空间
在恢复该表空间之前让该表空间处于脱机的状态(offline状态)
svrmgrl>alter tablespace users offline;
rman>
run {
allocate channel 'dev1' type disk ;
allocate channel 'dev2' type disk ;
allocate channel 'dev3' type disk ;
restore tablespace users ;
recover tablespace users ;
release channel dev1 ;
release channel dev2 ;
release channel dev3 ;
}
3、 结束语
RMAN备份数据库虽然相比其它的备份有很多优点,但是缺点也是不容忽视的。
分享到:
相关推荐
Oracle数据库RMAN备份与恢复 Oracle数据库提供了物理备份和逻辑备份两种方式,RMAN(Recovery Manager)技术是DBA常用的备份技术。RMAN备份特点是跳过未使用的数据块,使用Oracle特有的二进制压缩模式,能够最大...
ORACLE 数据库 RMAN 备份恢复 ORACLE 数据库 RMAN 备份恢复是指使用 ORACLE 的 Recovery Manager(RMAN)工具对数据库进行备份和恢复的过程。RMAN 是 ORACLE 数据库管理系统中的一种备份和恢复工具,能够对数据库...
" oracle数据库RMAN自动备份和恢复" Oracle数据库RMAN自动备份和恢复是指使用Oracle提供的RMAN(Recovery Manager)工具来实现数据库的自动备份和恢复。RMAN是Oracle数据库的备份和恢复解决方案,可以实现数据库的...
基于RMAN的Oracle数据库备份与恢复机制.pdf 本文档详细介绍了基于RMAN的Oracle数据库备份与恢复机制。Oracle Recovery Manager(RMAN)是Oracle公司提供的一种专门备份工具,能够实现数据库定制备份、自动备份等...
本方案通过使用 Oracle 的 RMAN 工具,提供了一个完整的备份和恢复解决方案,涵盖了数据库的备份、恢复和维护等方面。 一、背景 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业和领域。然而,...
### Oracle数据库Rman备份方案详解 #### 一、概述 Oracle RMAN(Recovery Manager)是一种功能强大的工具,用于管理Oracle数据库的备份、恢复及灾难恢复。本文将详细介绍如何使用RMAN来制定Oracle数据库的备份策略...
Oracle 11g R2 的 RMAN (Recovery Manager) 是 Oracle 数据库管理系统中的一个关键工具,主要用于数据库的备份和恢复。RMAN 提供了一种高效且灵活的方式来管理和保护数据库,确保在数据丢失或系统故障时能够快速恢复...
在Windows操作系统环境中,Oracle数据库的管理是至关重要的,特别是在数据安全性方面。RMAN(Recovery Manager)是Oracle提供的一种强大的工具,专门用于数据库备份、恢复和维护。本篇将深入探讨如何利用RMAN来实现...
以下是Oracle RMAN备份与恢复的相关知识点: 备份恢复概述 备份恢复是DBA管理员的基本技能之一,旨在保护数据库中的数据免受意外损坏或丢失。 Oracle RMAN提供了强大的备份和恢复功能,帮助DBA管理员快速恢复...
采用rman备份的oracle数据库从Windows操作系统的恢复到Linux操作系统方法
教程名称:傻瓜式实战Oracle RMAN数据库备份和恢复视频课程目录:【】数据库备份和恢复系列].ITBOBA_RMAN_1【】数据库备份和恢复系列].ITBOBA_RMAN_10【】数据库备份和恢复系列].ITBOBA_RMAN_2【】数据库备份和恢复...
Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。 一、RMAN 概念 RMAN(Recovery Manager)是 Oracle 推荐的备份和...
### Oracle 9i RMAN 备份与恢复技术解析 #### 概述 在Oracle数据库管理领域,**RMAN(Recovery Manager)**是Oracle提供的一款强大的数据备份、恢复及灾难恢复工具。针对Oracle 9i版本,RMAN提供了丰富的功能来...
### Oracle数据库RMAN备份策略研究 #### 摘要 随着信息技术的发展,数据库的安全性和可靠性变得尤为重要。在长期运行过程中,任何数据库系统都不可避免地会遇到各种潜在风险,包括硬件故障、软件错误、人为失误等,...
本书《Oracle Database 11g RMAN备份与恢复》不仅对前一版本的内容进行了修订,也增加了许多新内容,以帮助读者掌握最新的RMAN使用方法。 在学习RMAN之前,需要对Oracle数据库的基础备份与恢复有所了解。Oracle...
总的来说,Oracle数据库RMAN备份与灾难恢复技术在寒区旱区特色数据库的应用中扮演着至关重要的角色,它提供了高效、安全的数据保护方案,确保了在各种复杂情况下的数据安全。通过合理配置和使用RMAN,可以实现更高效...
"利用RMAN实现Oracle数据库的备份与恢复.pdf" titre: 利用RMAN实现Oracle数据库的备份与恢复 摘要:本文主要介绍了利用RMAN实现Oracle数据库的备份与恢复。RMAN(Recovery Manager)是Oracle数据库提供的一套用于...
RMAN并不支持客户端连接服务器进行备份,所以仍然需要在服务器使用RMAN备份。由于服务器空间不足,需备份至异地。 知识点三:使用RMAN实现异地备份 可以通过映射远程共享目录实现备份。具体步骤包括: 1. 在PC2上...
本文档详细介绍了如何使用 Veeam 备份恢复 Oracle 数据库的配置过程,从环境准备到推送 Oracle RMAN Plugin,再到创建备份作业和运行备份作业,最后实现 Oracle 数据库的异机恢复。本文档旨在帮助读者快速掌握 Veeam...