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

数据库备份方案(oracle)

阅读更多

目录 ... 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

<!-- [if supportFields]><span lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体; mso-font-kerning:0pt'><span style="mso-element:field-end" mce_style="mso-element:field-end"></span></span><![endif]--> 

 


前言

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

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

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

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

 

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

 

 

备份恢复工具简介

1 ,常用的imp/exp 工具

 

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

优点为:

1   使用简单。

2   可以指定导出某个逻辑对象(整个数据库或用户或表)

缺点为:

1   不能进行完全恢复(Complete Recovery

2   只能备份数据文件(Data File

3   全库导出对数据库压力较大

4   占用空间较大

 

2 ,恢复管理器(RMAN

 

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

       优点为:

1   可以进行完全恢复与不完全恢复

2   可以备份所有数据库文件(控制文件,服务器参数文件,归档日志文件,数据文件)

3   具有功能强大的控制能力和脚本编写语言

4   支持在线热备份

5   支持多级增量备份

6   支持并行备份,恢复

7   减少备份数据量(压缩、块级备份)

8   可将文件备份到磁盘或磁带

9   支持在线块级别恢复

10 ,可以限制速率,减少备份中对系统的造成的影响

11 ,等等。。。


配置RMAN

 

1 ,配置归档(ARCHIVELOG )模式

       数据库在装载(MOUNT )模式下执行下列操作开启归档模式

       SQL> ALTER DATABASE ARCHIVELOG;

       将数据库置于归档模式可防止重做日志在归档之前被覆盖。

如果处于非归档(NOARCHIVELOG )模式,数据库只能恢复到上一次备份的时间,到当前时间的之间的数据变更都会丢失。

 

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

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN 的相关信息保存在控制文件中(非CATALOG 模式),如果控制文件丢失而又没有备份的话,会给数据库的恢复造成很大困难

 

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 'D: /BACKUP/%U'

 

6 ,启用快速增量备份

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

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

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'D:/BACKUP/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;

10gRMAN 增加了一个新特性--- 压缩备份集,能够使备份集减少到原来的1/51/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 'D:/ORACLE/BACKUP/%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 'D:/ORACLE/BACKUP/%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 'D:/ORACLE/BACKUP/%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

       通过RMANREPORT,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>

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;

}

 

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

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

       SQL> ALTER TABLESPACE TBS OFFLINE;

       然后通过RMN 进行恢复。

       RMAN>

RUN {

ALLOCATE CHANNEL 'DEV1' TYPE DISK ;

ALLOCATE CHANNEL 'DEV2' TYPE DISK ;

ALLOCATE CHANNEL 'DEV3' TYPE DISK ;

RESTORE TABLESPACE TBS ;

RECOVER TABLESPACE TBS ;

RELEASE CHANNEL DEV1 ;

RELEASE CHANNEL DEV2 ;

RELEASE CHANNEL DEV3 ;

}

 

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数据库备份方案.pdf

    oracle官方数据库备份方案:Oracle零数据丢失恢复解决方案是专门针对Oracle数据库开发的、 软硬件集成的一体化的数据备份和恢复解决方案。它采用了数据块 复制和数据日志复制相结合的解决方案,彻底摒弃了传统存储级...

    Oracle9i数据库备份和恢复方案

    ### Oracle9i数据库备份与恢复方案详解 #### 一、背景介绍 Oracle9i作为一款高性能的关系型数据库管理系统,在企业级应用中具有重要的地位。为了确保数据的安全性和系统的稳定性,制定一套合理的备份与恢复策略至...

    数据库备份方案.pdf

    Oracle 数据库备份方案 Oracle 数据库备份方案提供了一系列的备份过程和选项,以帮助保护 Oracle 数据库。如果正确使用它们,这些选项会允许有效地备份数据库,并且很容易地将其恢复。备份一个 Oracle 数据库有三种...

    Oracle数据库异地自动备份.pdf

    Oracle数据库异地自动备份是指将Oracle数据库备份到远程服务器或磁带上,以确保数据的安全和可靠性。本文将结合实践经验,讨论UNIX环境下Oracle数据库的自动备份实现方法。 一、数据库export备份 数据库export备份...

    oracle数据库自动备份脚本

    Oracle数据库因其稳定性和可靠性而被广泛应用于企业级应用中,为了保障数据的安全性与可用性,定期进行数据库备份至关重要。本文将详细介绍一种通过`exp`命令配合`crontab`定时任务实现Oracle数据库自动备份的方法。...

    ORACLE数据库自动备份3种方法

    对于Oracle数据库而言,实现自动化的数据库备份不仅可以提高效率,还能降低人为操作失误的风险。本文将详细介绍Oracle数据库自动备份的三种常见方法:Windows下的任务计划(At命令)、UNIX下的Crontab以及第三方工具...

    Oracle数据库Rman备份方案

    ### Oracle数据库Rman备份方案详解 #### 一、概述 Oracle RMAN(Recovery Manager)是一种功能强大的工具,用于管理Oracle数据库的备份、恢复及灾难恢复。本文将详细介绍如何使用RMAN来制定Oracle数据库的备份策略...

    oracle 数据库备份 实例代码

    本篇将详细介绍Oracle数据库备份的基本概念、方法以及一个实例代码。 一、Oracle数据库备份的重要性 Oracle数据库存储着企业的关键业务数据,备份是为了应对系统故障、硬件损坏、人为错误或恶意攻击等情况,确保在...

    windows下oracle数据库备份压缩&删除历史备份.rar

    本资料"windows下oracle数据库备份压缩&删除历史备份.rar"提供了一个详细的过程,用于实现Oracle数据库的定时备份、备份文件的压缩以及自动删除两天前的旧备份。 首先,我们来讨论Oracle数据库的备份方法。在Oracle...

    oracle数据库RMAN备份方案

    Oracle 数据库 RMAN 备份方案 Oracle 数据库 RMAN 备份方案是一个生产环境验证实施的备份解决方案,旨在保护 Oracle 数据库的数据安全和可用性。本方案通过使用 Oracle 的 RMAN 工具,提供了一个完整的备份和恢复...

    Oracle数据库备份方案

    ### Oracle数据库备份方案详解 #### 一、概要 数据安全是任何系统设计与运维中的核心要素之一。在日常工作中,不仅要确保数据库的稳定运行,还需要采取有效措施防止数据丢失或损坏。对于突发情况,良好的数据库...

    java实现oracle数据库备份.pdf

    #### 二、Java实现Oracle数据库备份的技术方案 1. **技术选型**: - **前端**:使用JSP(Java Server Pages)作为用户界面。 - **后端**:利用Java调用Oracle的导出工具`exp`完成数据备份。 2. **备份流程设计**...

    基于NetBackup的Oracle数据库备份方案的研究.pdf

    【总结】基于NetBackup的Oracle数据库备份方案为企业提供了高效、可靠的备份解决方案,能够适应复杂的IT环境,确保数据的安全性和业务连续性。同时,NetBackup的灵活性和易用性使得数据库管理员可以更轻松地管理备份...

    oracle数据库自动备份脚本带说明

    Oracle数据库是企业级广泛应用的关系型数据库管理系统,为了确保数据的安全性和可恢复性,定期进行数据库备份至关重要。"oracle数据库自动备份脚本带说明"的标题表明这是一个关于如何自动化执行Oracle数据库备份的...

    oracle数据库备份与恢复方案.doc

    Oracle 数据库备份与恢复方案 Oracle 数据库备份与恢复方案是指对 Oracle 数据库进行备份和恢复的过程,以确保数据库的安全和可靠性。本方案主要涉及到备份工具、备份方式、软件备份、软件恢复、数据备份和数据...

    基于HIS环境的Oracle数据库备份方案.pdf

    【Oracle数据库备份方案在HIS环境中的应用】 Oracle数据库在HIS(医院信息系统)环境中扮演着至关重要的角色,因为它们负责存储和管理医院的核心数据,包括病患信息、医疗记录等。确保这些数据的安全和可靠性至关...

    Oracle数据库备份方案及实现.pdf

    Oracle数据库备份方案及其实现对于医院信息系统(HIS)至关重要,因为HIS承担着医疗数据的存储和管理,关系到医院的运营效率和患者信息的安全。Oracle数据库因其安全性、可靠性和高效性,成为许多HIS软件的核心选择...

    数据库备份工具

    数据库备份是IT领域中至关重要的一个环节,尤其是在企业级应用中,数据的...而"数据库备份"这个压缩包文件很可能包含了与Oracle数据库备份相关的脚本、教程或配置文件,有助于进一步学习和实践Oracle数据库的备份技术。

    Oracle数据库的备份与恢复方案内部学习资料

    Oracle数据库备份与恢复方案是确保数据安全的重要手段。通过合理的备份策略和有效的恢复计划,可以显著提高系统的稳定性和可靠性。启动ARCHIVELOG模式是实现这一点的基础之一,它能够帮助我们在遇到数据损坏或丢失时...

Global site tag (gtag.js) - Google Analytics