`
zhangpeng012310
  • 浏览: 61255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

RMAN相关

 
阅读更多
RMAN使用详解........

数据库备份方案(oracle)

目录

数据库备份方案... 1

文档控制... 1

目录... 2

一 前言... 3

二 备份恢复工具简介... 3

1,常用的imp/exp工具... 3

2,恢复管理器(RMAN)... 3

三 配置RMAN. 4

1,配置归档(ARCHIVELOG)模式... 4

2,配置控制文件自动备份... 4

3,配置控制文件记录保持时间... 4

4,配置保留策略的恢复窗口... 4

5,设定默认保存备份文件的路径... 4

6,启用快速增量备份... 4

7,配置RMAN使用优化(OPTIMIZATION)模式... 4

8,配置RMAN使用压缩备份集... 4

四 多级备份策略... 5

1,零级备份脚本... 5

2,一级增量备份脚本... 5

3,一级差异备份脚本... 6

4,归档文件备份脚本... 6

五 管理RMAN. 7

1,如果手动删除了备份文件的话,需要执行交叉检验让RMAN进行同步。... 7

2,报告已不用(OBSOLETE)和过期(EXPIRED)的备份文件。... 7

3,删除已不用(OBSOLETE)和过期(EXPIRED)的备份文件。... 7

六 使用RMAN进行恢复... 7

1,完全恢复... 7

1.1,恢复整个数据库... 7

1.2,恢复指定表空间或数据文件... 8

2,不完全恢复... 8

3,块级别的恢复... 8

七 使用FLASHBACK进行快速恢复... 9

1,9i中的FLASHBACK:... 9

2,10g中的FLASHBACK:... 9

八 其他高可用性方案(High Availability)简介... 10







一 前言

如同社会总会有不公平、人总会犯错误、程序总会有BUG一样,数据库出现问题是不

可避免的,好的备份是项目成功应用的关键。

从独立的硬盘保存备份文件、主机与从机同步(DATA GUARD)到多实例单数据库的

负载平衡(RAC),按照不同的需求对应不同级别的技术,但其根本就是数据的冗余,用人力和物力来提高数据可用性。



       强烈推荐备份到其他物理存储设备上,如另一块硬盘,以保证出现介质故障时可以顺利恢复。





二 备份恢复工具简介

1,常用的imp/exp工具

我们常用的imp/exp工具是由Oracle提供的用于在客户端把数据导出到dmp文件,进行数据转移和保存的方法,是逻辑备份。在11gR2中已经废弃exp,保留imp,相关操作由数据汞(Data Pump)的impdp/expdp代替。

优点为:
使用简单。
可以指定导出某个逻辑对象(整个数据库或用户或表)

缺点为:
不能进行完全恢复(Complete Recovery)
只能备份数据文件(Data File)
全库导出对数据库压力较大
占用空间较大

2,恢复管理器(RMAN)

       由Oracle提供的专业的备份与恢复工具,是物理备份。

       优点为:
1:   可以进行完全恢复与不完全恢复
2:   可以备份所有数据库文件(控制文件,服务器参数文件,归档日志文件,数据文件)
3:   具有功能强大的控制能力和脚本编写语言
4:   支持在线热备份
5      支持多级增量备份
6:   支持并行备份,恢复
7:   减少备份数据量(压缩、块级备份)
8:   可将文件备份到磁盘或磁带
9:   支持在线块级别恢复
10,可以限制速率,减少备份中对系统的造成的影响
11,等等。。。



三 配置RMAN
1,配置归档(ARCHIVELOG)模式
       数据库在装载(MOUNT)模式下执行下列操作开启归档模式
       SQL> ALTER DATABASE ARCHIVELOG;


2,配置控制文件自动备份
RMAN> SHOW ALL   ------------查看所有参数
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

3,配置控制文件记录保持时间
       SQL> ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=45;
       设置RMAN备份信息保存在控制文件中的时间,要大于等于保留策略的恢复窗口。

4,配置保留策略的恢复窗口
       RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 31 DAYS;

       备份文件超过这个日期时RMAN会标记为已不用(OBSOLETE):
              RMAN> REPORT OBSOLETE;

数据库中的文件超过这个日期时RMAN会报告需要备份:
       RMAN> REPORT NEED BACKUP;



5,设定默认保存备份文件的路径

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/oradata/BACKUP/%U' ;


6,启用快速增量备份

在9i中,RMAN进行增量备份要扫描所有数据文件,找出发生变更的数据块,然后进行备份。

在10g中,增加了一个新特性---块更改跟踪(Block Change Tracking),会把发生变更的数据块记录在一个跟踪文件内,这样就避免了增量备份时对数据库的全面扫描。

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/oracle/admin/orcl/scripts/BLOCK_CHANGE_TRACKING.TRC';

        ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/oracle/admin/popdb/bdump/BLOCK_CHANGE_TRACKING.TRC';


7,配置RMAN使用优化(OPTIMIZATION)模式
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
开启优化模式RMAN会自动跳过满足某些条件的文件,实验表明,优化模式可以提高10%左右的性能



8,配置RMAN使用压缩备份集

RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;

在10g中RMAN增加了一个新特性---压缩备份集,能够使备份集减少到原来的1/5或1/6,代价是增加10%左右的CPU消耗,可以根据实际情况选择使用。

条件允许的话(多物理硬盘、多CPU)还可以用上面命令设定并行备份





四 多级备份策略
       采用多级备份是为了减少了恢复所需要的时间和减少每天备份所需要的时间,而又保证系统有很好的恢复性。但是在恢复时间和备份时间要有一个权衡。比如只要开始的一个全备份和备份所有产生的归档文件就可以保证把数据库恢复到最新的状态,但是一般来说实际上并不会这么进行(因为在恢复时将需要很长很长的时间),多级备份就是为了解决这样的问题。以下是一种建议的方案。


每个月做一次零级备份
每个星期做一次一级增量备份
每天做一次一级差异备份

当需要时(如不到二十四个小时归档文件系统就要满了)备份归档文件


1,零级备份脚本

RMAN> RUN {

ALLOCATE CHANNEL 'DEV1' TYPE DISK;

ALLOCATE CHANNEL 'DEV2' TYPE DISK ;

ALLOCATE CHANNEL 'DEV3' TYPE DISK ;

BACKUP INCREMENTAL LEVEL 0 TAG 'LV0' FORMAT'/data/rman/full_20100224/backup_0_%T_%U'  DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;

DELETE NOPROMPT OBSOLETE;

RELEASE CHANNEL DEV1;

RELEASE CHANNEL DEV2;

RELEASE CHANNEL DEV3;

}



2,一级增量备份脚本

RMAN> RUN {

ALLOCATE CHANNEL 'DEV1' TYPE DISK ;

ALLOCATE CHANNEL 'DEV2' TYPE DISK ;

ALLOCATE CHANNEL 'DEV3' TYPE DISK ;

BACKUP INCREMENTAL LEVEL 1 CUMULATIVE TAG 'LV1C' FORMAT '/oradata/backup/backup_1_%T_%U'  DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;

RELEASE CHANNEL DEV1;

RELEASE CHANNEL DEV2;

RELEASE CHANNEL DEV3;

}



3,一级差异备份脚本

RMAN> RUN {

ALLOCATE CHANNEL 'DEV1' TYPE DISK ;

ALLOCATE CHANNEL 'DEV2' TYPE DISK ;

ALLOCATE CHANNEL 'DEV3' TYPE DISK ;

BACKUP INCREMENTAL LEVEL 1 TAG 'LV1D' FORMAT '/u01/oraback/backup_1_%T_%U'  DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;

RELEASE CHANNEL DEV1;

RELEASE CHANNEL DEV2;

RELEASE CHANNEL DEV3;

}



4,归档文件备份脚本

RMAN> 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个一级差异备份+当天的归档文件。如果不能接受这样的恢复时间,就只能够减少零级备份之间的时间间隔(如可以每个星期做一个零级备份,这样恢复时最多只需要恢复一个星期的数据量)。对于负载极低的系统甚至可以半年做一次零级备份



五 管理RMAN

       通过RMAN的REPORT,LIST,CROSSCHECK,DELETE命令可以对RMAN进行管理。



1,如果手动删除了备份文件的话,需要执行交叉检验让RMAN进行同步。

RMAN> CROSSCHECK BACKUP;
RMAN> CROSSCHECK ARCHIVELOG ALL;

交叉检验后RMAN会把已经被手动删除的备份文件的状态设置为过期(EXPIRED)。


2,报告已不用(OBSOLETE)和过期(EXPIRED)的备份文件。
   RMAN> REPORT OBSOLETE;
  RMAN> LIST EXPIRED BACKUP;



3,删除已不用(OBSOLETE)和过期(EXPIRED)的备份文件。

  RMAN> DELETE OBSOLETE;

  RMAN> DELETE EXPIRED BACKUP;





六 使用RMAN进行恢复

       RMAN 的整个恢复过程可以分为还原(RESTORE)与恢复(RECOVER),他们在含义上是有很大差别的,一个是指物理意义的文件的还原与拷贝,一个是指数据库一致性的恢复。

数据库的的恢复比较复杂,有许多不同的情况,必须在了解ORACLE数据库结构的条件下用不同的方法进行处理。下面只列出最普通的恢复情况。

恢复整个数据库之前必须让数据库处于状态的状态(MOUNT)状态。

SQL> STARTUP MOUNT;

然后执行RMAN命令进行还原和恢复。

1,完全恢复

1.1,恢复整个数据库

RMAN>

RESTORE DATABASE;

RECOVER DATABASE;






1.2,恢复指定表空间或数据文件

       在恢复该表空间之前让该表空间处于脱机的状态(OFFLINE状态)。

       SQL> ALTER TABLESPACE TBS OFFLINE;

       然后通过RMN进行恢复。

       RMAN>

RESTORE TABLESPACE TBS ;

RECOVER TABLESPACE TBS ;


}



2,不完全恢复

       不完全恢复情况比较复杂,大致分一下四类。

1:   基于时间的恢复(Time-based recovery)

2:   基于撤销的恢复(Cancel-based recovery)

3:   基于改变的恢复(Change-based recovery)

4:   日志序列恢复(Log sequence recovery)



3,块级别的恢复

       RMAN可以在线对逻辑损坏的数据块进行恢复而不影响数据库的运行。

       RMAN> BLOCKRECOVER DATAFILE 6 BLOCK 3;



七 使用FLASHBACK进行快速恢复


发生以下类型的错误时,通常需要使用备份执行恢复:

? 介质故障:因数据库文件的物理问题而导致无法读写该文件

? 用户错误:数据库中的数据被误更改或误删除

       使用RMAN进行介质故障恢复,使用FLASHBACK进行用户错误恢复。



1,9i中的FLASHBACK:

查询数据库的SCN变化情况

SQL> SELECT NAME,FIRST_CHANGE# FSCN,NEXT_CHANGE# NSCN,FIRST_TIME FROM V$ARCHIVED_LOG;

获得当前SCN

SQL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FSCN FROM DUAL;

创建恢复表,选择恢复到合适的SCN

SQL> INSERT INTO TB_RECOVER SELECT * FROM TB AS OF SCN 1999999999;



2,10g中的FLASHBACK:

10g的FLASHBACK进行了增强和修改,通过回闪,用户可以完成许多不可能恢复的

工作,目前 10g 的回闪包括以下特性;

1,oracle falshback Database.

该特性允许 oracle 通过 Flashback database 语句,将数据库会滚到前一个时间点或者

scn 上,而不需要作时间点的恢复工作!

2,oracle falshback table.

该特性允许 oracle通过 flashback table 语句,将表会滚到前一个时间点或者 scn 上。

3,oracle falshback drop.

该特性允许 oracle把恢复 drop掉的 table 或者索引。

4,oracle falshback version query.

该特性可以得到特定的表在某一个时间段内的任何修改记录!

5,oracle falshback transaction query

该特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问题、分

析性能、审计事务。





八 其他高可用性方案(High Availability)简介

? Data Guard:提供一组全面的服务,可用于创建、维护、管理并监控一个或多个备用数据库

? Oracle Real Application Clusters (RAC):用于从多个实例访问单个数据库

? Oracle Streams:可以传播并管理数据流中的数据、事务处理和事件



分享到:
评论

相关推荐

    oracle维护之rman相关

    rman脚本-增量.doc rman基本命令.txt rman恢复.txt Rman备份恢复实验---数据全部丢失.doc

    RMAN测试演练即讲解

    四、 RMAN相关使用 1、 RMAN连接到Target Database (1) 分步进行 rman nocatlog(nocatalog会将相关备份信息即元数据放在Contronfile里面) connect target / (不像DB2那样connect to,就connect就OK了) (2) ...

    RMAN备份与恢复

    3.10 RMAN备份相关的动态性能表 15 第四篇 RMAN备份进阶 16 4.1 建立增量备份 16 4.2 建立镜像复制 18 4.3 建立冗余备份 18 4.4 设置RMAN备份的保存策略 18 4.5 备份优化 19 第五篇 RMAN备份实例 19 5.1 编写rman...

    RMAN简明使用手册

    RMAN简明使用手册 〇:背景信息 使用手册基于ORACLE 10.2 资料参考:B14193-02 最小使用环境 ■ target database :备份的目标数据库 ■ RMAN client: RMAN的客户端。它主要是负责解释备份和恢复命令,连接服务器...

    oracle rman命令详解

    oracle rman 数据库备份还原命令详解,详细解释数据rman相关参数的含义和用法

    Oracle9RMAN设置和配置

    Oracle9RMAN设置和配置 RMAN设置和配置 1.9i下将数据库配置为ARCHIVELOG模式 虽说RMAN也可以在非归档模式下使用,但是我们不推荐。因为非归档模式下很多RMAN的功能都用不上。在9i中必须配置如下参数: 􀂾 ...

    ORACLE_RMAN快速入门指南

    本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过。这篇文章主要是在北京出差期间写的,回到家后整理修改了一下,时间比较仓促,同时因为篇幅有限,一些技术细节不能一一覆盖了,只希望能够帮助...

    rman配置及rman常用命令操作

    一、rman相关配置1、进入rman:CMD下rman target/2、查看是否处于归档模式:SQL>archive log list;(rman需运行在归档模式下)3、开启归档模式: 代码如下:SQL>shutdown immediate;SQL>startup mount;SQL>alter ...

    oracle Rman删除归档脚本for windows

    oracle rman占用磁盘空间,利用Windows计划任务执行该脚本释放空间,脚本内相关路径需根据实际情况进行更改

    RMAN备份恢复方案(亲手实验)

    这是自己亲手研究完oracle 的rman备份后写的备份和恢复方案

    Oracle Database 11g RMAN备份与恢复 中文版

    《Oracle Database 11g RMAN备份与恢复》主要内容简介:《Oracle Database 11g RMAN...作为权威的资源,《Oracle Database 11g RMAN备份与恢复》也提供有关创建报告、优化性能以及执行第三方管理实用程序的相关资料。

    rman命令相关资料

    这是ORACLE 做数据备份与恢复时使用rman命令的相关资料

    Oracle 11g 部署rman定时备份文档(windows+linux).docx

    windows环境和linux环境中Oracle 11.2.0.4 rman定时备份策略部署,内含rman备份相关脚本,该脚本已经用于多套生产环境(备份及归档删除策略也包含其中)。

    (053第3章)Rman catalog.pdf1

    (053第3章)Rman catalog当没有恢复目录时,RMAN相关的备份信息,比如归档文件路径、备份集路径等均存储在目标数据库的控制文件中,不过考虑到控制文

    oracle rman 通用简明使用手册

    ■ RMAN client: RMAN的客户端。它主要是负责解释备份和恢复命令,连接服务器会话执行相关命令,并在控制文件中记录备份恢复活动。 可选组件: ■ flash recovery area:指定的一个磁盘上的位置。在这个位置上,...

    RMAN快速入门指南

    RMAN快速入门指南:是有关RMAN的一些命令的详细内容.对于初学者非常有用

    Oracle RMAN快速入门指南

    本文借鉴了网上一些高手的相关文章, 希望大侠们不要见怪, 此处一并谢过。 这篇文章主要是在北京出差期间写的, 回到家后整理修改了一下, 时间比较仓促, 同时因为篇幅有限, 一些技术细节不能一一 覆盖了, 只...

    RAMAN特性参数(一)exclude/skip readonly/只读表空间备份恢复

    最近做只读表空间备份策略的时候,重新温习了下RMAN的相关特性和只读表空间的备份恢复方法,写成文档记录目录如下 RMAN特性参数 1 RMAN EXCLUDE 2 RMAN EXCLUDE基础命令 2 RMAN EXCLUDE备份 3 RMAN EXCLUDE恢复 6 ...

    Linux离线 rman 手册

    Linux 离线 rman 手册,对于无法使用 rman 命令的 windows 环境,可以直接阅读 linux 下相关命令的介绍。

    oracle rman快速入门指南

     本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过。  这篇文章主要是在北京出差期间写的,回到家后整理修改了一下,时间比较仓促,同时因为篇幅有限,一些技术细节不能一一覆盖了,只希望...

Global site tag (gtag.js) - Google Analytics