第11章 数据库备份

第11章  数据库备份
第11章  数据库备份

第十一章数据库的备份

11.1 概述

数据库的备份和恢复是数据库管理员的重要职责之一。

不管数据库系统如何精心设计、配置和优化,它们都难免出现系统或硬件故障,从而引起数据库中的数据遭到破坏,当数据库中的数据遭到破坏时,数据库管理员必须尽快从数据备份中恢复数据,从而将损失减少到最小,保证用户的正常使用。数据库的备份对成功恢复数据是非常关键的,数据库管理员必须根据企业的需要,制定出良好的备份和恢复策略,并认真实施它。

11.1.1 Oracle备份的概念

数据库的备份是数据库的拷贝。当原来的数据丢失时,可以使用备份重建丢失的信息(组成Oracle数据库的物理文件)。该拷贝包括数据库的重要部分,如控制文件、存档日志和数据文件等。

备份包括物理备份和逻辑备份,物理备份是所采用的最主要的备份方式,是物理数据库文件的拷贝。如果发生物理数据库丢失或崩溃,物理备份用于保证数据库在最小的数据丢失或没有数据丢失的情况下得到恢复。它实际上进行上的是物理文件的拷贝,包含拷贝构成数据库的文件而不管其逻辑内容,进行物理备份可以采用两种方法:

?使用恢复管理器(Recovery Manager,简称RMAN)程序;

?操作系统文件备份命令,也叫做文件系统备份。Oracle 支持两种不同类型的物理文件备份:脱机备份(offline backup)和联机备份(online backup)。

相应的逻辑备份用于实现数据库对象(比如数据库表或存储过程)的恢复并且它是一个全面备份策略的必要的组成部分,它通常采用Oracle的Export程序将逻辑数据导出并以二进制的方式存储。一般来说我们使用逻辑备份作为物理备份的必要补充。

11.1.2 Oracle数据库系统故障类型

不管数据库系统如何精心设计、配置和优化,它们都难免出现系统或硬件故障,语句和进程故障。这些故障大致可以分为以下几大类:

1. 介质故障

在读或写要求操作数据库的文件时可能会出现错误,这种故障就叫做介质故障,因为在读或写存储介质上的文件时会出现物理问题。一个常见的介质故障的例子是磁头的碰撞会引起磁盘驱动器上所有文件的丢失。介质故障是数据库数据的最大威胁。介质问题主要有:?磁盘磁头故障使磁盘驱动器上所有文件丢失。

?数据文件、控制文件、联机或归档重做日志文件被意外删除、覆盖或损坏。

从介质故障中恢复的合适策略取决于受到影响的文件。介质故障是备份与恢复策略所需

494

要重点考虑的问题,当数据库中的数据遭到损坏时,数据库管理员必须要尽快从数据备份中恢复数据,从而将损失减少到最小,保证用户的正常使用。

2. 用户或应用程序故障

作为一个系统管理员,你很难阻止用户错误的发生,比如偶然Drop(删除)了一张表,当然我们可以通过加强数据库培训以及制定一些应用规则来减少这些事情的发生,另外还可以制定管理特权来避免用户错误。

象这类的用户错误可以要求数据库被恢复到发生错误前的某时间点。Oracle提供了精确的及时点恢复,如数据库及时点恢复,表空间及时点恢复(tablespace point-in-time recovery,简称为TSPITR)。例如,用户意外的删除某表,数据库可以恢复到删除表前的瞬间。

3. 数据库实例故障:当某些问题的发生导致Oracle实例不能继续运行时就出现了数据库的实例故障。发生实例故障的原因可能是硬件问题,比如电源损耗;软件问题也可能导致实例故障,比如操作系统崩溃。当发出SHUTDOWN ABORT或STARTUP FORCE语句时也可能会引起实例故障。

4. 语句故障:在Oracle程序中语句处理有逻辑错误时发生语句故障,例如某个表的范围已经全部被分配出去,而且装满了数据,这时候一个有效的INSERT语句不能插入一行数据,因为已经没有空间了,因此这个语句失效。

如果发生语句故障,则Oracle软件或操作系统返回错误代码。语句故障通常不需要动作或恢复步骤:Oracle通过回滚语句的结果自动纠正语句故障,返回控制到应用程序。当问题被更正后,用户可以简单的重新执行该语句。例如,没有足够的范围被分配,那么系统管理员需要分配更多的范围,以便用户的语句能执行。

5. 进程故障:进程故障是数据库实例的用户、服务器或后台进程中的故障,如异常断

开或进程异常终止。当进程故障发生时,该进程及其子进程不可以继续工作,但是数据库实例的其它进程可以继续。

Oracle的后台进程PMON自动侦测失败的Oracle进程,如果失败的进程是用户进程或服务进程,PMON通过回滚失败进程的当前事务和释放进程正在使用的资源来解决该故障。失败的用户和服务进程的恢复是自动的。如果失败的进程是后台进程,实例通常不能正常的进行工作。因此必须关闭和重新启动该实例。

6. 网络故障:在系统使用网络,例如局域网和电话线去连接客户端工作站和数据库服务器,或连接几个数据库服务器组成一个分布式数据库系统时,网络故障(如电话连接失败或网络通信软件故障)可能中断数据库系统的正常操作。如:

?网络故障可能中断客户应用程序的正常执行,引起进程故障,这时候后台进程PMON 按前面介绍的方法为断开的用户进程侦测和解决失败的服务进程。

?网络故障可能中断分布式事务的两阶段提交。在网络故障解决后,每个有关数据库的后台进程RECO自动解决在分布式数据库系统中的所有节点上的仍未解决的任何分布式事务。

11.2 用于数据库备份与恢复的数据结构

Oracle数据库的几个结构用于保护数据,防止受可能故障的影响。这些结构对于成功的

495进行备份和恢复是至关重要的,这些结构包括:

?重做日志

?回滚和撤消(UNDO)段

?控制文件

11.2.1 重做日志

联机重做日志记录对Oracle数据库的全部修改。数据库的联机重做日志包括至少两个重做日志文件,日志文件是和数据文件分开存储的。作为实例故障或介质故障恢复的一部分,Oracle 根据数据库的重做日志对数据文件进行适当的修改,它可以恢复数据库的数据到故障发生的瞬间。

每个数据库必须至少有两个联机重做日志组,每个联机重做日志组至少包括一个联机重做日志成员,它是一个包含重做记录的物理文件。为了保护数据库(包括重做日志本身),Oracle 允许重做日志是多元的,也就是说Oracle可以在不同磁盘上维护重做日志的多个拷贝。

Oracle采用循环的方式使用这些重做日志文件来记录数据库的变化。Oracle当前正在写的日志文件叫做现在联机重做日志。

后台进程LGWR通过相关的实例把所有的数据库变化记录到现在联机重做日志文件中去。每个重做记录包含老的值和新的值,Oracle也会把老的值写到一个取消块中,这个取消块或者是在回滚段(工作在手工撤消管理方式下)或在取消表空间(工作在自动撤消管理方式下)。

我们可以配置Oracle数据库去归档已经写满了的联机重做日志的备份。这种类型的日志叫做归档重做日志。一个归档日志通过重做线程号和日志序列号被唯一的确定。通过归档已满的联机重做日志文件,老的重做日志数据被保留以便介质恢复时使用。

通过备份恢复的数据文件,或者是非干净关闭系统时,可能都不是最新的数据。在进行恢复时,数据文件必须通过应用联机重做日志和归档重做日志来更新。

11.2.2 回滚和取消段

数据库可以工作在两种互斥的方式下:手工撤消管理(UNDO Management)方式或自动撤消管理方式。在前一种情况下,必须创建和管理回滚段。在后一种情况下,要创建一个包括系统管理的取消段的undo表空间。回滚和取消段用于Oracle数据库的许多功能。通常数据的回滚段保存正在进行的事务(未提交的事务)修改的数据的旧值。在数据库恢复期间,回滚或取消段中的信息根据重做日志应用到数据文件中,用来撤消任何未提交的修改。因此若数据库的恢复是必须的,则在回滚或用于从数据文件中去处所有未提交的数据后,数据处于一致状态。

11.2.3 控制文件

一般来说,数据库的控制文件存储数据库的物理结构的状态。控制文件对数据库的运行是非常重要的,它包括(但不限于)下列类型的信息:

?数据库信息

?线程检查点的状态

496

?表空间和数据文件记录(文件名,数据文件检查点,读/写状态,脱机范围)

?重做线程(现在联机重做日志)

?日志记录(序列号,每个日志的SCN范围)

?RMAN备份和拷贝记录

控制文件的状态信息,比如数据库检查点,现在联机重做日志文件等在进行崩溃恢复、实例恢复或介质恢复时保护Oracle数据库。

11.3 数据库的归档方式

数据库可运行在两种不同方式下:NOARCHIVELOG方式(介质恢复无效)或ARCHIVELOG方式(介质恢复有效)。数据库的运行方式对数据库的备份和恢复策略具有重要的影响。

归档日志对数据库备份和恢复有下列用处:

?数据库后备以及联机和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事务可被恢复。

?在数据库打开和正常系统使用下,如果归档日志是永久保存,联机后备可以进行和使用。

11.3.1 NOARCHIVELOG 方式

数据库在NOARCHIVELOG方式下使用时,不能进行联机重做日志的归档。控制文件中的信息指出不需要对已经填满的成员进行归档,因此只要填满的成员变为不活动的,那么LGWR进程就可以重新使用这个日志组中的成员。

NOARCHIVELOG方式只能保护数据库免受实例故障的影响,而不能免于介质故障。只有最近的存储于联机重做日志组的中的数据库的修改才可以用于实例或崩溃恢复。这些修改都足够用于进行崩溃恢复和实例恢复,因为Oracle不会覆盖联机重做日志文件,直到它的修改被写到了数据文件中。然而它不可能通过使用归档重做日志进行介质恢复。

11.3.2 ARCHIVELOG 方式

如果数据库在ARCHIVELOG方式下运行,可实施联机重做日志的归档。控制文件中的信息指出一个已经填满的日志组成员不能被LGWR进程重写,直到这个成员被归档。

ARCHIVELOG方式下允许从磁盘故障和实例故障下的完全恢复,因为所有对数据库的修改已经被永久的保存到归档重做日志中了。

数据库在ARCHIVELOG方式下运行,可以设置为自动归档(Automatic Archiving)或手工归档(Manual Archiving),下面分别介绍这两种工作方式:

1. 自动归档和归档后台进程

在Oracle系统中,可以给Oracle实例配置一个附加的后台进程,归档进程(ARC n),它在每个组的联机重做日志文件变为不活动重做日志后进行自动归档。自动归档使系统管理员不必手动的跟踪、归档已填满的日志组成员。因为自动归档的便利性,自动归档已经是数据库系统工作在ARCHIVELOG方式下的最主要的选择了。在负荷比较重的情况下,比如大块数

497

据的取出,可以配置多个归档进程,配置多个归档进程一般是通过设置初始化参数

LOG_ARCHIVE_MAX_PROCESSES。

如果需要在实例启动时就进行自动归档,那么需要设置初始化参数

LOG_ARCHIVE_START,那么Oracle系统在实例启动时会根据

LOG_ARCHIVE_MAX_PROCESSES 确定的值,启动相应的ARCn 进程的数量。否则ARCn 进程在实例启动时不会启动。

另外还可以通过交互式的方式在任何时候启动或停止自动归档,如果没有设置在实例启动的时候自动归档启动,而且随后想启动自动归档,那么Oracle会创建ARCn后台进程。ARCn 在整个实例期间存在,即使自动归档备临时关闭和打开。ARCn 进程的数量通过使用ALTER SYSTEM 命令设置LOG_ARCHIVE_MAX_PROCESSES 的值可以动态改变。

归档进程通常按照重做日志组的顺序进行归档,从最小的日志序列号开始。当已经填满的日志组变为不活动状态时归档进程自动归档。

2. 手工归档

当数据库工作在ARCHIVELOG方式下时,无论是否设置了自动归档,都可以手动归档已填满的不活动联机重做日志文件,如果没有设置自动归档,那么必须手动归档已填满的日志组成员。

对于大多数数据库系统,自动归档都是最好的,因为它不需要观察日志组是否变为不活动状态以及是否可以进行归档。而且如果不能进行自动归档并且手动归档进行的不够快,数据库的运行可能会被临时挂起,因为写日志进程被迫要等待一个不活动的组变为重新可用。

手动归档进程用于:

?当自动归档因为出现某些问题(例如用于存储归档重做日志的脱机存储设备出现故障或已经填满时)而停止时,手动归档一个日志组。

?在一个非标准方式下归档一个日志组(例如归档一个组到一个脱机存储设备,下一个组到不同的存储设备等等)。

?如果最初归档的版本丢失或受到损坏时,重新归档一个日志组。

当一个日志组采用手动归档时,发出归档日志组命令的用户进程进行日志组的归档。即使在与其相关的实例出现了归档后台进程,还是由用户进程归档联机重做日志文件组。

11.4 Oracle备份的方法

进行Oracle的备份与恢复一般有两种方法:Recovery Manager(RMAN)和用户管理(user-managed)的备份和恢复。RMAN是一个随着数据库安装而自动安装的一个公用程序,可以备份任何的Oracle8或更高版本的数据库。RMAN使用数据库的服务会话进行备份和恢复的工作。它有自己的语法,可以通过命令行接口或Oracle Enterprise Manager图形接口。RMAN有API接口允许第三方的介质管理(media manager)工作。

一个进行备份和恢复的替代的方法是使用操作系统命令进行备份和SQL*Plus进行恢复。也叫做用户管理的备份和恢复,Oracle公司完全支持这种方法。尽管因为效率高和极大的简化管理而推荐使用RMAN方法。

无论使用RMAN或用户管理的方法进行物理备份,依然建议使用Export工具进行模式

498

对象的逻辑备份。Export工具从Oracle数据库中写数据到一个二进制的操作系统文件中。以后可以使用Import恢复数据到数据库中。

11.4.1 备份和恢复方法的系统需求

当确定备份和恢复方法的时候,要注意适当的数据库环境。比如只是管理Oracle 8.0或更高版本的数据库时,RMAN是一个合适的选择。如果管理Oracle 7.0或以前版本的数据库时,必须使用一个非RMAN的方法来备份Oracle7数据库。

表11.1 各种备份方法及要求

备份方法类型可用版本要求

恢复管理器(RMAN)物理Oracle 8.0 和更高版本第三方介质管理(若备份到磁带)

操作系统物理所有版本O/s备份程序(如 UNIX的cp) Export逻辑所有版本N/A

11.4.2 备份方法的特征比较

除了系统需求的限制外,你需要的备份特征也是决定备份和恢复方法的主要因素。下表比较了各种不同备份方法的特征。

表11.2 各种备份方法的比较

特征RMAN 操作系统Export

关闭的数据库备份支持。要求安装实例支持不支持

打开的数据库备份不使用BEGIN/END

BACKUP命令使用BEGIN/END

BACKUP命令

要求回滚段或取消段生

成一致的备份

增量备份支持。备份所有修改的块不支持支持,但不是真正的增量

坏块侦测支持。确定坏块并且写到

V$BACKUP_CORRUPTION

和V$COPY_CORRUPTION 不支持支持,在export log中确

定坏块

自动备份支持。建立所有备份文件的名

称和位置不支持。备份文件必须

人工指定

支持。执行全、用户或表

备份

目录备份支持。备份编录到恢复目录或

控制文件中

不支持不支持

备份到磁带支持。使用介质管理,RMAN

也支持代理拷贝支持,手工或介质管理(media manager)

支持

备份init.ora和口令

文件

不支持支持不支持操作系统独立语言支持(使用 PL/SQL接口). 不支持支持

499

11.5 备份的原理

11.5.1 物理备份和逻辑备份

Oracle 数据库的备份可以采用物理备份或逻辑备份。和逻辑备份相比,物理备份是数据库物理文件的备份,这些文件包括数据文件和控制文件。如果数据库运行在ARCHIVELOG 方式下,数据库也要备份归档重做日志。但是联机重做日志的备份是不支持的,这点我们在以后的内容中会介绍。

物理备份可以分成两类:镜像拷贝和所有格式的备份。镜像拷贝是一个数据文件和控制文件或归档日志的几乎完全的复制。可以使用操作系统命令或RMAN 的COPY命令来建立物理文件的镜像拷贝。使用操作系统命令或RMAN 的RESTORE命令来恢复镜像拷贝,而不需要任何附加的处理。

RMAN 的BACKUP 命令建立一个备份集合,可以在备份集合中备份Oracle 数据库的任何逻辑单元,每个备份单元在所有权上是一个二进制格式的物理文件。同样必须使用RMAN 的restore恢复一个备份集合。

相应的逻辑备份相对于物理备份,是把模式对象输出到一个二进制文件。一般使用Import 和Export命令把Oracle数据移入或移出Oracle模式。Oracle Export命令将逻辑数据从Oracle 数据库中导出并以二进制的方式存储在操作系统文件中。这些输出文件存储模式对象(例如表或存储过程)的信息。Oracle Import命令从输出文件中读取数据,把它装入已经存在的数据库中。

尽管只是移动Oracle的数据,我们依然可以使用它来作为保护Oracle 数据库的补充方法。但是不应该使用Import 和Export 方式作为备份数据库数据的唯一方法。

11.5.2 全数据库备份和部分数据库备份

一、全数据库备份

全数据库备份包括控制文件和属于该数据库的所有数据文件,全数据库备份是由系统管理员执行的最常见的备份类型。

全数据库备份不要求数据库操作在特定的归档方式中,但是在进行全数据库备份之前,特别应该知道在ARCHIVELOG和NOARCHIVELOG方式下备份的含义。

全数据库备份有两种类型:一致的和不一致的。备份是否一致取决于你在恢复数据的时候是否需要使用重做日志。

使用下面的方法进行全数据库的备份:

?使用操作系统命令复制数据库的每个单独的数据文件和控制文件

?RMAN的BACKUP DATABASE命令

?运行RMAN 的COPY DATAFILE 命令针对数据库的每一个数据文件,运行 RMAN 的COPY CURRENT CONTROLFILE 命令针对控制文件

500

二、表空间备份

表空间备份是备份构成表空间的数据文件。例如users表空间包括数据文件2、3和4,那么users表空间的备份包括备份这三个文件。

无论数据库是联机或脱机状态,表空间备份只在数据库操作在ARCHIVELOG下才有效,因为需要该重做日志以使被恢复的表空间与其他表空间一致。对于操作在 NOARCHIVELOG 方式下的数据库,表空间备份的唯一有效时间是表空间处于只读或正常脱机时,因为恢复表空间时不需要重做日志。

备份一个单独的表空间可以采用以下的方法:

?使用操作系统命令复制表空间的每个单独的数据文件

?RMAN 的BACKUP TABLESPACE命令

?运行RMAN 的COPY DATAFILE 命令针对表空间的每个数据文件

三、数据文件备份

数据文件备份是备份单个数据文件。数据库管理员通常采用表空间备份而不是数据文件备份,因为表空间是备份数据库的逻辑单位。数据文件备份只对运行在ARCHIVELOG 方式下的数据库有效,对于操作在NOARCHIVELOG方式下的数据库,数据文件备份的唯一有效时间是:

?表空间的每个数据文件都被备份,只有所有文件都被备份了,才可以恢复该数据库?数据文件是只读或正常脱机状态

备份一个单独的数据文件可以采用以下的方法:

?使用操作系统命令

?RMAN 的BACKUP TABLESPACE命令

?RMAN 的COPY DATAFILE,生成一个数据文件的拷贝

四、控制文件备份

控制文件备份是备份和恢复中的一个重要部分。没有可以访问的控制文件,将不能安装和打开数据库。控制文件备份可以采用自动的方式和手动的方式。

如果使用RMAN作为备份与恢复的方法,运行CONFIGURE CONTROLFILE AUTOBACKUP命令,那么无论何时你进行备份和拷贝的工作,RMAN会自动备份控制文件。这种备份就叫做控制文件的自动备份。

如果要进行手动的控制文件备份,可以采用以下的方法:

?运行RMAN 的BACKUP CURRENT CONTROLFILE 建立一个 RMAN-格式的控制文件备份,运行RMAN 的COPY CURRENT CONTROLFILE 命令建立一个控制文件的镜像拷贝

?SQL 语句ALTER DATABASE BACKUP CONTROLFILE 建立一个控制文件的二进制备份

?SQL 语句ALTER DATABASE BACKUP CONTROLFILE TO TRACE 输出一个包含SQL脚本文件的控制文件。可以使用该脚本创建新的控制文件

501

五、归档重做日志备份

归档重做日志对于恢复一个不一致的备份是必须的,不用归档重做日志恢复一个不一致的备份的唯一方法是使用RMON的增量备份。为了能够使用最近的日志来恢复一个备份,在任何两个日志点之间的日志必须都是可用的。换句话说,如果log 173丢失了,那么不可能从log 100恢复到log 200。

因为归档日志对于恢复数据库是很重要的,所以要有规律的备份归档重做日志,如果使用了一个 media manager那么要有规律的备份到磁带上。

可以采用以下的方法来备份归档日志:

?操作系统

?RMAN 的BACKUP ARCHIVELOG

?RMAN 的BACKUP ... PLUS ARCHIVELOG 或BACKUP ... PLUS ARCHIVELOG 命令

?RMAN 的COPY ARCHIVELOG命令

11.5.3 一致和不一致的备份

可以使用RMAN 或操作系统命令执行一个不一致的备份或一致的备份。不一致的备份是在数据库打开或数据库异常关闭时,备份一个或多个数据库文件。一致的备份是在数据库正常关闭(使用正常SHUTDOWN命令)后,备份一个或多个数据库文件。与不一致的备份不同,一个一致的、完全的数据库备份在重新安装后不需要执行恢复。

是否采用一致的或不一致的备份取决于很多因素。如果数据库必须是打开且可用的,那么不一致的数据库备份是唯一的选择。如果允许定期的最小使用,那么可以执行有规律的一致的全数据库备份,并通过联机的常用表空间备份做为补充。

一、一致的备份

一致的全数据库或部分数据库备份是所有的读/写数据文件和控制文件在同一个系统修改号(SCN)检查的备份。另外,每个联机,读/写的数据文件不是一个失真的文件,也就是说它不包括超过数据文件头的SCN的变化。Oracle根据数据文件头和包含在控制文件中的数据文件头的信息比较,判断一个重新安装的备份是否是一致的。

在数据库的线程检查点期间,Oracle 使控制文件和数据文件对同一SCN 一致。一致备份中的唯一表空间(允许有旧的S时间信息CN)是只读表空间和正常脱机表空间,因为它们没有发生变化。如果数据文件头的检查点 SCN 和控制文件中的脱机启动SCN匹配,那么Oracle 知道数据文件不需要恢复。

重要的是,在重新安装了一致的全数据库备份后打开数据库。不需要重做日志,因为数据已经是一致的:不要求任何纠正恢复的数据文件中的数据。因此可以重新安装一年前的一致的数据库备份,而不需要执行介质恢复和实例恢复。

进行一致的全数据库备份的唯一方法是带NORMAL、IMMEDIA TE或TRANSACTIONA 选项关闭数据库,在数据库关闭时执行备份。如果数据库不是干净关闭的,例如实例故障或发出SHUTDOWN ABORT命令,那么数据库的数据文件总是不一致的——除非数据库是只

502

读的。否则在打开数据库时需要实例恢复。

对于运行在NOARCHIVELOG 模式下的数据库,一致的全数据库备份是唯一有效的备份方法,否则需要重做去保持一致性。在NOARCHIVELOG 方式中,Oracle 不归档重做日志,因此需要的重做日志不会在磁盘上存在。

二、不一致的备份

不一致的备份是所有的读/写数据文件和控制文件没有在同一个系统修改号(SCN)检查的备份。例如一个读/写数据文件的数据头包含100 SCN,而另一个读/写数据文件的数据头包含95或90 SCN。Oracle不能打开数据库,直到所有的这些数据头的SCN是一致的,也就是说,直到所有记录在联机重做日志中的变化应用到了磁盘上的数据文件。

如果数据库必须运行在24*7方式下,那么只能执行不一致的全数据库备份。例如脱机的表空间备份(在数据库打开时)是不一致,因为在进行表空间备份时数据库的一部分正在被修改和写到磁盘上,联机和脱机数据文件头包含不一致的SCN。数据库必须运行在ARCHIVELOG 模式执行联机数据文件的联机备份。

如果数据库运行在ARCHIVELOG 模式中,可以使用在不同时间进行的联机数据文件备份建立一个全数据库备份。例如数据库包括7个表空间,如果每个晚上备份控制文件和一个不同的表空间,那么在一周内可以备份所有的表空间和控制文件,可以使用这种错列的备份作为一个全数据库备份。

(1)不一致的关闭备份

如果在系统崩溃或异常关闭后备份数据库,可以选择执行不一致的关闭备份。如果数据库运行在ARCHIVELOG 模式中,这种备份是有效的,因为联机和归档重做日志都可以使备份一致。Oracle 建议在ARCHIVELOG 模式中,不要执行不一致的关闭的数据库备份。

如果数据库运行在NOARCHIVELOG 模式中,唯一的备份方法就是使用带

IMMEDIA TE,NORMAL,或 TRANSACTIONAL 选项的干净的关闭数据库。数据库运行在NOARCHIVELOG 模式中,只有重做日志(包含备份以前的变化)是可用的,这样不一致的完全数据库备份才是有用的。

NOARCHIVELOG方式下不一致的备份是不推荐的,因为备份文件的数据文件头包含不同的SCN (一个正常的关闭保证这些 SCN的一致性),因为数据库处于NOARCHIVELOG 模式,没有归档重做日志可以用于丢失的修改。因此RMAN不允许备份处于NOARCHIVELOG 方式下和异常关闭的数据库,因为这个备份不可用于恢复。

基本原则是:如果数据库运行在NOARCHIVELOG 模式中,不执行任何恢复就有备份可用。如果需要重做日志去恢复备份,那么这个原则是无效的。

(2)归档未归档的重做日志文件

在联机备份或不一致的关闭备份后,通过归档未归档的日志确保有需要恢复备份的重做。当数据库打开时,运行以下的SQL命令使Oracle转向当前日志,把它和其它未归档的日志归档:

ALTER SYSTEM ARCHIVE LOG CURRENT;

如果数据库是安装、打开或关闭的,运行以下的SQL 命令使 Oracle 归档所有非当前的重做日志:

ALTER SYSTEM ARCHIVE LOG ALL;

503

如果数据库是安装、打开或关闭的,运行以下的SQL 命令归档指定的组,integer是组号:ALTER SYSTEM ARCHIVE LOG GROUP integer;

(3)备份归档日志和控制文件

在打开或不一致关闭备份后, Oracle 推荐备份期间产生的所有归档日志,在备份完成后备份控制文件。如果在备份期间没有产生所有的归档重做日志,则备份不能恢复,因为没有使它一致的所需的重做记录。使用RMAN的时候,在数据库备份完成后进行控制文件的备份是有用的,因为控制文件包含备份的记录(在V$BACKUP_SET)。

11.5.4 联机和脱机备份

一、联机表空间和数据文件的备份

数据库打开时,可以备份一个联机表空间的所有或指定的数据文件,但数据库只能运行在ARCHIVELOG 方式中。在这种情况下,当备份执行时,Oracle可以修改联机数据文件,联机数据文件的备份叫做联机备份。

执行联机备份的危险在于在一个数据块内可能会导致数据的不一致性。假设在数据库写进程更新数据块的过程中,RMAN或操作系统命令要读整个数据块。RMAN或copy命令将读在数据块顶部的老的数据,而新的数据在数据块的底部。这种情况下,这个数据块叫裂块,指数据块只包含的数据不一致。

在RMAN备份中,一个Oracle 服务器会话读数据文件,而不是操作系统命令。服务器会话读整个数据块,通过比较每个数据块的头部和尾部来确定数据块是否断裂。如果会话侦测到断裂的数据块,它会重新读取数据块直到这个数据块得到一致的数据。

当使用操作系统命令备份一个单独的数据文件或联机表空间(不是RMAN),必须首先通过ALTER TABLESPACE BEGIN BACKUP 命令使联机表空间处于备份模式下。这样的话,Oracle停止记录表空间的数据文件的检查点。在一个联机、读/写的表空间中执行用户管理的数据文件备份必须使表空间处于备份模式下。在联机备份结束后,Oracle把文件头提前到当前数据库的检查点,但前提是运行ALTER TABLESPACE ... END BACKUP或ALTER

DA TABASE END BACKUP 命令结束表空间的备份模式。

当使用操作系统备份重新安装一个数据文件,数据文件头记录发生在联机表空间备份前最近的数据文件检查点。因此,Oracle要求使用合适的重做日志文件集在需要的时候恢复。

二、备份脱机表空间和数据文件

脱机备份在表空间或数据文件脱机时执行。可以通过ALTER TABLESPACE OFFLINE 命令(使用三种不同的NORMAL、TEMPORARY或IMMEDIA TE选项)使表空间脱机。执行带NORMAL选项的脱机备份可以确保备份是完全的,不需要通过恢复使表空间或数据文件联机。这种方式下,不需要关闭数据库或执行恢复就可以对数据文件和表空间执行需要的备份。

504

11.5.5 RMAN和用户管理的(User-Managed)备份

一、RMAN备份

RMAN 备份和用户管理(user-managed)的备份存储格式不同。一般在RMAN备份中,在RMAN接口内运行 BACKUP 命令,如下:

RMAN> BACKUP DATABASE;

BACKUP 命令产生一个备份集合或代理拷贝,并且把它写到操作系统或第三方的介质管理(如果使用)。一个备份集合是由一个或多个备份片段组成的逻辑结构。备份片段是一个由专用格式的数据块(一个或多个的数据文件、控制文件或归档重做日志)组成的文件。例如把5个数据文件备份到包含一个备份片段的备份集合中,会使RMAN 混合不同的数据文件的数据块到一个单独的文件。

备份片段的格式是“专用的”,也就是说只有RMAN可以产生备份集合。代理拷贝是一种特殊的RMAN备份类型,它的数据传输由第三方的介质供应商管理。必须使用RMAN 接口建立和恢复代理拷贝。

相对于BACKUP命令,RMAN COPY命令通过操作系统程序产生一个可以重新安装的数据文件、控制文件或归档日志映像拷贝。这个映像拷贝是输入文件的副本。例如,下面的命令在操作系统下拷贝数据文件1到df1.copy:

RMAN> COPY DATAFILE 1 TO 'df1.copy';

COPY命令只能拷贝到磁盘,然而BACKUP命令可以备份映像拷贝到磁带上。

无论何时使用 RMAN 进行备份或拷贝,它会把动作记录在目标数据库的控制文件,如果使用恢复目录,RMAN 把元数据从控制文件拖到目录。当需要重新安装备份或拷贝的时候,运行RESTORE命令。RMAN查询元数据,然后从可用的备份中选择,然后拷贝和重新安装它们。

二、用户管理(user-managed)备份

执行用户管理备份必须使用操作系统命令。这些命令都是操作系统特定的,例如在UNIX 系统使用dd命令备份数据文件,如下:

% dd if=/oracle/dbs/df1.f of=/backup/df1.bak bs=1024k

在 Windows NT,备份数据文件可以通过按下CTRL+C和CTRL+V,通过拖拽或运行COPY 命令,如下:

C:\> COPY df1.dbf F:\BACKUP\df1.dbf

user-managed 备份和RMAN 备份的的一个主要区别是前者没有元数据记录的自动备份。也就是说,必须的手动记录备份的内容以及备份放置的地点。

11.6 备份策略

在建立Oracle 数据库前,应该确定如何保护数据库,防止潜在的介质故障。如果在建立数据库前不考虑这样的计划,则当磁盘故障损坏数据文件、联机重做日志文件或控制文件时

505

就可能不能实现数据库恢复。

这节介绍的一些指导思想可以帮助确定何时执行数据库备份以及备份数据库的哪些部分。当然备份策略的制定取决于运行环境的限制。

11.6.1 遵守备份和恢复的黄金规则

需要从任何Oracle 数据库文件故障中恢复的文件集(数据文件、控制文件和联机重做日志)叫做冗余集合。冗余集合包括:

?控制文件和所有数据文件的最近备份

?上次备份完成后的所有归档重做日志

?通过Oracle 多元化,操作系统镜像(或两者都有)产生的联机重做日志的拷贝

?通过Oracle 多元化,操作系统镜像(或两者都有)产生的当前控制文件的拷贝

?配置文件如服务器参数文件,tnsnames.ora或listener.ora

备份和恢复的金色原则指的是:包含冗余集合的磁盘集合或其它介质应该和包含数据文件、控制文件和联机重做日志的磁盘分开放置。这个策略确保包含数据文件的磁盘故障不会引起备份或需要恢复数据文件的重做日志的丢失。因此一个最小的产品级的数据库至少需要两个磁盘驱动器:一个保持冗余集合的文件,一个保持数据库文件。

尽可能使冗余集合和主文件分开存放:单独的文件卷,单独的文件系统,单独的RAID 设备。这样的系统是可靠的,但它也可能会失败。保持冗余集合单独存放可以确保从故障恢复的时候不会丢失已经提交的事务。

从几个方面来贯彻黄金规则,可以实现这样的系统。Oracle 推荐以下的原则:

?不仅仅在操作系统级或硬件级,也要在Oracle 级,多元化联机重做日志和当前控制文件。在Oracle 级多元化的优点在于一个I/O故障或丢失写只会损坏其中的一个拷贝。

?至少在控制文件上使用操作系统或硬件镜像,因为Oracle 不会提供控制文件多元化的完全支持:如果一个控制文件多元化的拷贝失败了,那么 Oracle 实例会关闭。

?尽可能对主要数据文件使用操作系统或硬件镜像,避免在单个磁盘故障的时候使用介质恢复。

?保持整个冗余集合的至少一个拷贝,包括最近的备份,在硬盘上。

?如果数据库存储在RAID设备上,那么冗余集合不要放在同样的RAID 设备上。

?如果冗余集合保存在磁带上,那么至少保持数据的两个拷贝,因为磁带会失败。11.6.2 选择数据库的归档方式

在建立Oracle 数据库前,应该决定如何计划以防止潜在的故障。在制定计划前回答以下问题:

若磁盘故障损坏了构成数据库的一些文件,是否允许丢失数据?

若不允许,数据库必须运行在 ARCHIVELOG 方式中,理想的是有多元联机重做日志,多元控制文件,多元归档重做日志。如果磁盘故障时允许丢失部分数据(从上次备份到当前故障点),那么可以运行在 NOARCHIVELOG 方式中,避免额外的维护任务。当然还可以重建数据。

是否需要恢复到过去的时间点?

506

如果需要执行不完全的恢复去改正数据库中错误的变化,那么运行在ARCHIVELOG 方式中并且只要结构变化了就执行控制文件备份。在需要的时候如果有反映数据库结构的控制文件备份,那么不完全恢复将很容易。

数据库是否需要全部时间可用?

高可用性数据库总是运行在ARCHIVELOG 方式下以利用打开的数据文件备份。

在回答上述问题并且确定采用哪种方式后,应该遵守下列的原则:

一、NOARCHIVELOG 方式中的备份策略

如果数据库运行在NOARCHIVELOG 模式下,则Oracle不会归档填满的联机重做日志文件。因此对磁盘故障的唯一保护是最近的全数据库备份。在NOARCHIVELOG 模式下,遵守以下的规则:

?根据允许丢失的工作量,有规律的执行全数据库备份。如允许丢失一个星期的数据,每个星期做一次一致的全数据库备份。对于有大量活动的大数据库,通常不允许丢失工作,因此数据库必须运行在ARCHIVELOG 方式中,使用相应的备份策略。

?在 NOARCHIVELOG 方式中,无论何时修改操作数据库的物理结构,都应立即执行一致的全数据库备份。全数据库备份充分反映数据库的新结构。

二、ARCHIVELOG方式中的备份策略

如果数据库运行在ARCHIVELOG 模式下,则归档进程归档联机重做日志文件组。因此归档重做日志和联机重做日志以及数据文件备份一起保护数据库免于磁盘故障,提供完全恢复到发生磁盘故障时刻(或希望的过去任何时刻)。下面是数据库工作在ARCHIVELOG 方式下常用的备份策略:

?建立了数据库以后就备份它。这个初始的全数据库备份是备份的基础,它提供相关数据库的全部数据文件和控制文件的备份。在执行初始的全数据库备份时,数据库必须要工作在 ARCHIVELOG方式下,否则备份的控制文件会包含NOARCHIVELOG方式的设置。

?在数据库打开或关闭的时候,执行表空间的备份,以保持数据库备份的更新。只要有需要的归档日志用于恢复数据库,就不需要关闭数据库进行全数据库备份。

特别的,经常使用的表空间的数据文件应该经常备份以减少数据库恢复所需要的时间。若最近的数据文件备份恢复破坏的数据文件,则更少的重做(或增量备份)需要应用到被恢复的数据文件,以回滚到故障时刻。

还可以使用一个在数据库打开并且表空间联机的时候执行的数据文件备份去重新安装数据文件。当然对这些重装的数据文件必须使用适当的重做日志文件,以保证数据的一致性,向前滚到指定的时刻。

?每次对数据库进行结构修改时,进行控制文件备份。如果运行在ARCHIVELOG 方式中并且数据库是打开的,可以使用 RMAN 或 SQL 命令 ALTER DATABASE BACKUP CONTROLFILE。

?经常备份归档重做日志。推荐保持至少两个归档日志的副本:一个在磁盘上,一个在脱机的存储设备上(磁带,光盘等等)。尽量把日志保持在磁盘上,但经常要备份日志。

11.6.3 多元化控制文件、联机重做日志和归档重做日志

控制文件,联机重做日志和归档重做日志是进行备份和恢复操作的重要文件。任何文件

507的丢失都可能会导致不可撤消的丢失数据,所以应该:

?在不同磁盘驱动器下至少装配控制文件的两个拷贝。可以使用Oracle 多元化拷贝或操作系统镜像它们。

?在不同磁盘上至少装配联机重做日志的两个或更多的拷贝。联机重做日志对实例、崩溃和介质恢复是至关重要的。

?在不同磁盘上(如果可能的话在不同的介质上)至少装配归档重做日志的两个或更多的拷贝。

11.6.4 经常有有规律地进行备份

对于任何恢复方案,经常备份是必须的。备份的频率取决于数据库修改的频率,例如:?增加或删除表

?增加或删除已有表的行

?更新表内的数据

如果数据库主要是只读的,很少有更新,则数据库可以不必频繁地备份。可以使用RMAN 或用户管理的方法创建备份脚本,如果使用RMAN的 CONFIGURE 命令设置稳定的配置,不需要编写扩展的脚本,只需要有规律的运行BACKUP DA TABASE PLUS ARCHIVELOG命令。

11.6.5 在结构修改时执行备份

若执行了下列结构修改,在完成修改前后立即备份数据库的相应部分:

?建立或删除表空间

?在已有表空间中增加或重命名数据文件

?增加、重命名或删除联机重做日志组或成员

根据数据库的归档方式决定备份数据库的相应部分:

如果在ARCHIVELOG方式下,在结构变化前后执行控制文件备份(使用 RMAN 或使用带BACKUP CONTROLFILE选项的 ALTER DA TABASE 命令),当然也可以备份数据库的其它部分。

如果在NOARCHIVELOG方式下,在修改前后立即执行一致的全数据库备份。

11.6.6 备份常用的表空间

有规律地进行全数据库的备份对于一个好的备份策略来说是不够的,如果运行在ARCHIVELOG 方式下,可以备份单个表空间的数据文件,甚至单个数据文件。如果数据库的一部分比其它部分使用更频繁(如SYSTEM 表空间和自动取消表空间),则该选择是有效的。通过更加频繁的备份广泛使用的数据文件,可以避免恢复时间过长。例如执行两周一次的全数据库备份,如果每周的工作负荷很重,假设在周五发生了介质故障,那么在恢复的时候要执行大量的重做。如果一周对经常访问的表空间执行三次备份,那么只需要较少的重做就可以恢复到故障点。如果运行在自动撤消管理模式下,确保有规律的备份undo表空间,如果运行在手动撤消管理模式下,确保有规律的备份包含回滚段的表空间。

508

11.6.7 在Unrecoverable 操作后备份

若用户正在使用UNRECOVERABLE选项创建表或索引,则在对象建立后进行备份。当表和索引按UNRECOVERABLE方式建立,Oracle不记录任何重做,也就是说这些对象不能从已有的备份中恢复。如果使用RMAN,可以采用增量备份。

11.6.8 在以RESETLOGS选项打开数据库后进行全数据库备份

在以RESETLOGS选项打开数据库后,Oracle 推荐立即进行全一致的数据库备份。如果不做,则在出现灾难时将会丢失自打开数据库以来执行的所有工作。在某些情况下,也可以恢复在RESETLOGS 之前进行的备份,但过程非常复杂,需要有在打开RESETLOGS选项前后进行的控制文件备份。但是在RESETLOGS选项后进行的全一致数据库备份可以避免这种情况的发生。

11.6.9 保存老的备份

基于下面两个,需要保存老的备份:

?一个老的备份对执行恢复到最近备份前的某一时点的不完全恢复是有用的

?最近的备份坏掉了

若要恢复到过去某时刻,则需要该时间前完成的数据库备份。例如你在2月1号和14号进行了备份,在月底决定恢复数据库到2月7号,那么必须使用2月1号或更早前的备份。

对运行在NOARCHIVELOG模式下的数据库,备份必须是一致的全数据库备份。当然使用这种备份不能进行介质恢复。对运行在ARCHIVELOG模式下的数据库,全数据库备份意味着:

?不需要是一致的,因为可用重做恢复

?在恢复点前应该是完成的

?需要所有的存档日志恢复数据文件到所需的及时点

?在及时点上恢复控制文件会影响数据库结构,应该使用能够反映备份结束的时间点数据库结构的控制文件恢复。

对于额外的保护,在当前备份前,保持两个或更多的数据库备份(和相关的归档重做日志)。这样的话,如果最近的备份不可用,也不会丢失所有的数据。

11.6.10 了解分布式数据库备份的约束

如果数据库是分布式数据库系统的成员,那么系统中的所有数据库应该运行在同样的归档模式下,注意下面的限制条件和结果。

表11-3 分布式数据库备份的约束

方式约束结果

ARCHIVELOG干净地关闭每个节点上备份可自治地进行

NOARCHIVELOG干净地关闭必须在同一(全球的)时间进行一致的全数据库备份,

以便进行分布式数据库的恢复

509 11.6.11 为增加保护和灵活性而导出数据

因为 Oracle Export程序可以有选择的导出指定对象,所以可以考虑导出数据库的一部分或全部,以补充数据库备份策略的保护和灵活性。该策略对使用RMAN恢复目录的逻辑备份非常有效,因为它可以把数据迅速重新装入数据库,在恢复目录数据库丢失的时候重建目录。但是 Oracle Export程序不是全数据库备份的替代品,它不能提供完全恢复所具有的内在的优点。例如,不能在逻辑备份中使用归档日志更新丢失的变化。当执行Export程序时,Export 提供数据库中逻辑数据的一个快照(表、存储过程等等)。

11.6.12 避免备份联机重做日志

似乎应该在备份数据文件和控制文件的同时备份联机重做日志,但这是危险的,因为下面的原因,不应该备份联机重做日志:

?保护联机日志免于介质故障的最好方法是多元化联机日志,也就是在不同磁盘和磁盘控制器上安装日志组,每组有多个日志成员

?如果数据库运行在 ARCHIVELOG 方式中,归档进程已经归档了已满的重做日志?如果数据库运行在NOARCHIVELOG方式中,则备份类型应该是关闭的、一致的全数据库备份。该类型备份中的文件是一致的,不需要恢复,所以不需要联机日志

?如果偶然重装了联机重做日志的备份,可能会损坏数据库

备份联机重做日志没有真正的危险。真正的危险是重新安装联机日志,因为它可能会对数据库产生很大的问题。恢复联机日志的许多情况将可能导致在恢复过程中引起非常严重的问题。

11.6.13 保持服务器的硬件和软件配置记录

因为恢复对于系统来说是很重要的,所以有必须在备份中保存一些需要的信息。特别是当遇到不能理解的问题需要求助于Oracle 支持的时候。这些信息通过电子版和硬拷贝的方式保存。假如只是在网络系统里保存在一个文本文件中,如果整个系统崩溃,那么这些信息也会丢失。需要有下列关于硬件配置的信息:

?数据库主机的节点名

?设备的供应商和型号

?操作系统的版本和补丁

?主机的磁盘容量

?磁盘和磁盘控制器的数量

?磁盘容量和剩余空间

?介质管理的供应商(如果使用第三方介质管理器)

?介质管理设备的型号和数量

还要有下列关于软件配置的信息:

?数据库实例名 (SID)

?数据库标志符r (DBID)

?Oracle数据库服务器的版本和补丁版本

510

?网络软件的版本和补丁版本

?数据库备份的方法(RMAN 或user-managed)和频率

?重新安装和恢复的方法 (RMAN 或 user-managed)

?数据文件的安装点

11.7 执行用户管理的备份

如果不使用Recovery Manager (RMAN),可以使用用户管理的(user-managed)方法来备份数据库文件。

11.7.1 查询V$Views获取备份信息

在进行备份前,确定构成数据库的所有文件,然后决定备份哪些文件。

一、备份前列出数据库文件

在进行备份前,查询数据库应该决定备份哪些文件:

1. 通过查询V$DA TAFILE列出数据文件

SQL> SELECT NAME FROM V$DATAFILE;

通过连接V$TABLESPACE 和 V$DA TAFILE 视图获取相关表空间的数据文件:

SELECT https://www.360docs.net/doc/2a14811614.html, "Tablespace", https://www.360docs.net/doc/2a14811614.html, "Datafile"

FROM V$TABLESPACE t, V$DATAFILE f

WHERE t.TS# = f.TS#

ORDER BY https://www.360docs.net/doc/2a14811614.html,;

2. 通过查询V$LOGFILE 视图获取联机重做日志文件的列表:

SQL> SELECT MEMBER FROM V$LOGFILE;

3. 通过查询 V$CONTROLFILE 视图获取当前控制文件的名称:

SQL> SELECT NAME FROM V$CONTROLFILE;

注意你只需要备份多元控制文件的一个拷贝。

4. 在进行控制文件备份时如果使用ALTER DA TABASE BACKUP CONTROLFILE TO 'filename'语句,那么会保存所有数据文件和联机重做日志文件的列表.。这种方式可以帮助恢复的过程。

二、联机表空间备份时确定数据文件的状态

查询V$BACKUP view 确定一个数据文件是否是联机备份表空间的一部分。该视图只能用于user-managed 的联机表空间备份。下面这个查询列出处于备份模式下的表空间所包含的数据文件:

SELECT https://www.360docs.net/doc/2a14811614.html, AS "TB_NAME", d.file# as "DF#", https://www.360docs.net/doc/2a14811614.html, AS "DF_NAME", b.status

FROM V$DATAFILE d, V$TABLESPACE t, V$BACKUP b

WHERE d.TS#=t.TS#

AND b.FILE#=d.FILE#

AND b.STATUS='ACTIVE'

511 /

输出结果如下:

TB_NAME DF# DF_NAME STATUS

---------------------- ---------- ---------------------- ------------------

TBS_1 3 /oracle/dbs/tbs_11.f ACTIVE

TBS_1 4 /oracle/dbs/tbs_12.f ACTIVE

在状态栏,NOT ACTIVE 指出该文件目前不是处于备份状态下(可以通过ALTER TABLESPACE ... BEGIN BACKUP设置),而ACTIVE 指出该文件目前处于备份状态下。11.7.2 执行全数据库的备份

在数据库根据NORMAL,IMMEDIA TE,或 TRANSACTIONAL选项关闭数据库以后,进行组成数据库的全部文件的全数据库备份。在数据库打开时、实例崩溃或 SHUTDOWN ABORT 时进行的全数据库备份是不一致的,在这种情况下,对于检查点的SCN 来说,文件是不一致的。

数据库在 ARCHIVELOG 或 NOARCHIVELOG 方式下操作都可以进行全数据库备份。如果数据库工作在NOARCHIVELOG方式下,备份必须是一致的,也就是说你必须在备份前干净的关闭数据库。

由一致的全数据库备份生成的备份文件组是一致的,因为所有文件对于于同以检查点。不需要进行另外的恢复工作,可以用一致的数据库备份进行重装,当然在恢复完备份文件以后,如果数据库工作在ARCHIVELOG方式下,可以执行额外的恢复步骤将数据库恢复到最近的时间。如果数据库工作在ARCHIVELOG方式下,也可以进行不一致的完全数据库备份。

在数据库的重装和恢复中,控制文件起这重要的作用。如果数据库工作在ARCHIVELOG 方式下,Oracle推荐备份控制文件使用ALTER DA TABASE BACKUP CONTROLFILE TO

'filename' 语句。如果在一个关闭的完全一致的全数据库备份中,使用操作系统命令备份控制文件,当恢复备份中的其他数据文件时只能使用这个控制文件,尽管在一致的数据库备份中使用操作系统命令备份的控制文件可以用于恢复(只能使用带USING BACKUP CONTROLFILE句法的RECOVER命令),但是Oracle不建议使用这种方法,因为使用带USING BACKUP CONTROLFILE句法的RECOVER命令可能会引起恢复的问题。

为了确保数据库的数据文件是一致的,在进行全数据库备份前必须使用NORMAL,IMMEDIA TE,或 TRANSACTIONAL 选项来关闭数据库。如果数据库工作在NOARCHIVELOG方式下,在实例崩溃或实例退出后不能进行全数据库备份。

进行一致的全数据库备份的步骤:

1. 如果数据库是打开的,使用SQL*Plus关闭数据库,可以带有NORMAL,IMMEDIA TE,或TRANSACTIONAL选项,但是在出现实例故障或数据库用abort选项关闭后,不可执行全数据库备份,此时要重新打开数据库再用干净的方式关闭数据库,:

SQL> SHUTDOWN NORMAL

SQL> SHUTDOWN IMMEDIATE

SQL> SHUTDOWN TRANSACTIONAL

512

2. 使用操作系统命令备份数据库的所有数据文件和控制文件,以及相关的参数文件。要查找这些参数文件可以在Oracle根目录及其子目录下查找*.ora来获取。

例如可以将/disk1/oracle/dbs目录下的数据文件和控制文件拷贝到 /disk2/backup 目录下:% cp /disk1/oracle/dbs/*.dbf /disk2/backup

% cp /disk1/oracle/dbs/*.cf /disk2/backup

% cp /disk1/oracle/network/admin/*.ora /disk2/backup

% cp /disk1/oracle/rdbms/admin/*.ora /disk2/backup

3. 重新启动数据库:

SQL> STARTUP

11.7.3 执行脱机表空间和数据文件备份

在表空间脱机的时候,可以备份一个表空间的所有或部分的数据文件,而数据库的其他表空间保持打开并可用。只有具有DBA权限或MANAGE TABLESPACE系统权限才能执行表空间的联机或脱机操作。

当备份脱机表空间时注意遵守下列规则:

?不能对SYSTEM表空间或有活动的回滚段的表空间进行脱机操作。

?如果一个表在Primary 表空间而它的索引在 Index表空间,让Index表空间脱机而让Primary 表空间联机会引起系统问题。所以必须要使两个表空间同向操作。

备份脱机表空间的步骤如下:

1. 在备份表空间之前,通过查询DBA_DA TA_FILES 视图确定构成表空间的数据文件。下例准备备份 users 表空间,在SQL*Plus中输入下列代码:

SELECT TABLESPACE_NAME, FILE_NAME

FROM SYS.DBA_DATA_FILES

WHERE TABLESPACE_NAME = 'users';

TABLESPACE_NAME FILE_NAME

------------------------------- -------------------

users /oracle/dbs/users.f

2. 使表空间脱机,尽可能使用Normal 选项,因为它保证以后的联机不需要表空间恢复,下例使users 表空间正常脱机:

SQL> ALTER TABLESPACE users OFFLINE NORMAL;

在用normal优先权将表空间脱机后,其所有数据文件被关闭。

3. 备份脱机数据文件,下例UNIX 用户备份数据文件 users.f:

% cp /disk1/oracle/dbs/users.f /disk2/backup/users.backup

4. 使表空间联机,下例使表空间users back 联机:

ALTER TABLESPACE users ONLINE;

注意:若使用temporary 或immediate优先权将表空间脱机,则该表空间可能不能联机,除非执行表空间恢复

在表空间联机后,表空间是打开的并可用。

数据库备份方案

《客户名称》备份管理系统设计方案 上海鸿翼数字计算机网络有限公司

目录 1.项目概述 (3) 2.系统需求分析 (4) 1. (4) 2. (4) 1 (4) 2 (4) 1.1系统现状分析 (4) 1.2备份系统风险评估 (4) 1.3备份系统需求分析 (5) 3.系统备份理念 (5) 1 (5) 2 (5) 3 (5) 3.1系统设计指引 (5) 3.2数据保护技术选择 (6) 3.3连续数据保护 (7) 3.4备份管理系统组成 (7) 4.系统备份结构设计 (9) 1 (9) 2 (9) 3 (9) 4 (9)

4.1整体系统架构设计 (9) 5.系统备份方案介绍 (11) 1 (11) 2 (11) 3 (11) 4 (11) 5 (11) 5.1W INDOWS服务器自身备份 (11) 5.2双机热备 (13) 5.3爱数备份 (14) 6.总结 (17) 1.项目概述

上海鸿翼数字计算机网络有限公司将根据《》的网络实际需求,制定一套完整的集数据备份、灾难恢复、服务器整合及虚拟化一身的方案。一个完整的企业数据备份与恢复解决方案就意味着数据安全与性能(机器和网络)的完美结合,一条龙式的服务标准(产品的服务与支持)。所以在选择备份系统时,既要做到满足系统容量不断增加的需求,又要所用的备份方式能够支持多系统平台操作。要达到这些,就要充分使用网络数据存储系统,在分布式网络环境下,通过专业的数据存储软件,配合系统备份及双机备份,结合相应的硬件和存储设备,对网络的数据备份进行集中管理,从而实现自动化备份、文件归档、数据分级存储和灾难恢复。 2.系统需求分析 1.1系统现状分析 《》网络基础结构是基于Windows平台,现在拥有X台服务器。《》的文档管理系统包含了文件服务器、转档服务器、数据库服务器等企业信息管理系统,为企业的发展提供了强有力的信息化支持。主要数据库包含了Microsoft SQL Server、Oracle、DB2等。 1.2备份系统风险评估 《》的信息系统管理人员十分重视数据的保护,在没有备份软件的情况下,已经采用了重要数据镜像备份、服务器系统镜像备份等常规保护方法,为企业的数据财产提供了安全的保障。但是以上方法很难实现快速备份和灾难后的迅速恢复,很难保证业务的连续性。 根据上面的备份管理系统的风险评估,建议《》使用ESioo安全备份专家软件,配合Windows自带备份和双机虚拟备份,并重新设计相关备份的恢复策略,达到可以快速恢复数据备份和快速恢复文档管理系统备份的水平,从而提高整个企业的数据安全级别。

实验九:数据库备份及恢复

实验九:数据库备份及恢复 一、实验目的 1.熟悉数据库备份及恢复机制; 2.了解SQL Server的数据备份和恢复机制; 3.掌握SQL-Server中数据库备份和恢复的方法。 二、实验环境 已安装SQL Server 2005 企业版的计算机; 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解创建备份设备和进行数据库完全备份操作的方法; 2.了解进行数据库恢复的步骤; 3.完成实验报告。 五、实验内容及步骤 以管理员帐号登录SQL Server Management Studio,以原有数据库stu为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作: 1.针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\ user \ stu.bak; BACKUP DATABASE student TO DISK='C:\user\stu.bak' 2.在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建 差异备份; CREATE TABLE ceshi ( Sno char(9)NOT NULL primary key, Sname char(6)NOT NULL, Ssex char(2)NULL, Sage int NULL, Sdept varchar(8)NULL ) GO BACKUP DATABASE student TO DISK='C:\user\stu_differential.bak' WITH DIFFERENTIAL 3.向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建 事务日志备份;

数据库备份策略说明

数据库备份策略说明 1、备份目的 保障项目数据安全,防止服务器故障导致数据无法恢复的情况。 2、备份策略 综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行。部分备份完成之后,会上传一份数据到存储机或者其他服务器进行异机及异地备份,另外备份保存一份。 一、备份方式 1、本机备份 该备份模式,适合于快速恢复数据。比如:误操作删除数据等 2、异机容灾备份 该备份模式,能比较好的规避单机故障问题。 3、异地容灾备份 该备份模式,规避大规模IDC故障(比如:火灾、地震、空调故障等)、数据安全问题 二、备份频率 1、主站www、bbs、blog等核心项目,进行每天完整备份。结合各项目数据库实例master 与slave结构,以及当前slave服务器负载和带宽情况,采用crontab定时备份。 2、对于跟商业有关的项目,备份策略同核心项目。 3、非核心项目90%备份策略采用核心项目备份机制,其他采用每周备份策略。 4、对于近期大规模更新数据或者数据库结构变更的数据库实例,采用人员干预备份模式,即走备份申请流程。 三、备份准备 1、创建备份目录 /opt/phpdba/backup/database 2、脚本编写 详见第四项,备份脚本 3、加入计划任务crontab 4、检查备份情况 5、添加每天检查列表 四、备份脚本

#!/bin/sh LogFile=db$(date +%y%m%d).log week=`date +%w` cd /opt/phpdba/backup/database for DBName in database do NewFile=db$DBName$(date +%y%m%d).tar.gz OldLogFile=db$(date -d '7 days ago' +%y%m%d).log if [ -f $OldLogFile ] then rm -f $OldLogFile >> $LogFile 2>&1 echo "[$OldLogFile]Delete Old log File Success!" >> $LogFile else echo "[$OldLogFile]No Old log File!" >> $LogFile fi case $week in 1) date=`date -d '56 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; 2|3|4|5|6|0) date=`date -d '7 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; esac if [ -f $NewFile ] then echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile else

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

数据库备份与恢复

Oracle数据库备份与恢复的三种方法 2009-11-04 16:00 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如:

(3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A) 星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F:

数据中心双机备份系统解决方案

数据中心双机备份系统解决方案 [导读]与数据库联系密切的共享内存和异步 I/O 专门进行了调整,在此平台之上建立数据库的应用可以得到超乎寻常的性能。 应用摘要 对于企业用户来说,多种服务都是建立在数据库基础之上的,大型www 服务器和邮件服务器都必须通过与数据库的连接来提供更强大的服务,也便于提供高级信息内容管理解决方案,利于实现最有效的信息存储、管理和分享。通过使用数据库可以集中地存储、管理和使用信息内容、把数据整合到几个服务器上以便于及时地发布,同时也可以减少信息技术费用,减低复杂性。选择一个好的操作系统平台和数据库平台是ISP/ICP 能够提供高质量服务的关键。 应用领域 通用 方案内容 基于 Turbolinux 的TurboHA 双机容错解决方案: Turbolinux TDS Server 是面向建立数据库应用而开发的高性能网络操作系统平台,其设计的目标是提供一个高性能、高稳定性的操作系统平台,系统针对数据库平台进行了全面的优化,对核心系统进行了专门的定制开发,所有核心参数的设置都是基于运行数据库系统而进行考虑,使其与Turbolinux Server 6.0 无缝的连接在一起,充分发挥其优越的性能。 与数据库联系密切的共享内存和异步 I/O 专门进行了调整,在此平台之上建立数据库的应用可以得到超乎寻常的性能。TDS 全面捆绑了 Oracle 的数据库产品 Oracle 8i ,使数据库的安装不再成为困难,用户可以在进行操作系统安装时就可以同时进行数据库的安装,用户只需选择是否安装数据库就可以完成复杂的数据库安装工作,减少现场工程师的技术支持费用。整个操作系统和数据库捆绑在一起的费用非常低,而高性能的配置能提升整个系统的性能。 TurboHA 通过装在两个服务器中的双机热备份系统软件,使系统具有在线容错的能力,即当处于工作状态的服务器无法正常工作时,通过双机系统容错软件,使处于守候监护状态的另一台服务器迅速接管不正常服务器上的业务程序及数据资料,使得网络用户的业务交易正常运行,保证交易数据的完整一致性及交易业务的高可靠性。 TurboHA 采用容错软件与磁盘阵列结合的解决方案,达到监控所有的软硬件的资源操作,并且具有自动处理一些错误的功能。 TurboHA 能够管理两台Linux 服务器,并提供两种工作模式。 TurboHA 采用的双服务器采用TCP/IP 网络协议和用户连接。双机后台对于客户─服务器网络用户透明。 TurboHA 提供一个逻辑的IP Address,任一用户上网只需要用到这一地址;当后台有一台服务器出现故障时,另外一台服务器会自动将其网卡的 IP Address 替换为170.200.80.99; 这样,用户一端的网络不会因为一台服务器出现故障而断掉。对于数据库,当有一台服务器出现故障时,另外一台服务器会自动接管数据库engine ;同时激活数据库和应用程序,便用户数据库可以继续操作,对用户而言不受影响。 TurboHA 内部含有SCSI 侦测心跳及网络侦测心跳两条通讯线路,可靠安全。监控的对象资源包括数据库运行状态、应用程序。当系统确认需要切换时,TurboHA 在尽可能短的时间内完成安全切换,并对其切换过程提供动态监测、显示,同时为用户提出排除故障的操作提示。

数据库备份和还原操作方法

数据库备份和还原 在收费系统运行一段时间后,如发生系统不正常要重装WINDOWS操作系统或更换电脑时,须按照下面“数据库备份”方法将原系统的数据文件备份,并将备份文件妥善保存(避免随系统重装而丢失数据),在重装系统或更换电脑后,按照软件的安装方法顺序安装SQL2000数据库和消费/水控管理软件,然后按照下面“数据还原”方法进行数据库还原,完成后系统中的数据即与原数据完全[相同。 数据库备份: 以ICSF为例,打开ICSF软件,选择菜单栏下的系统维护,然后选择数据备份。(系统维护——数据备份)如图(1-1): 1-1 数据备份完成后,可以在基本资料——系统参数里(1-2),在弹出的对话框上的备份路径二(手动备份)里可以找到数据备份的路径(1-3)。如图:

1-2 1-3 提示: 1、上述方法为手动备份,本系统在使用后正常腿出系统时也会自动进行 数据备份,如已经无法正常开启原电脑(无法进行手动备份)则可将 原电脑硬盘连接到其他电脑中,找到“备份路径一”所指向的路径, 找到备份文件夹,将其中修改日期最近的备份文件拷贝出来用于数据 还原。 2、在安装收费/水控系统时建议不要将安装目录选在C盘,避免因格式 化的操作是备份数据丢失,如果已经将软件安装在C盘,则建议将备 份文件路径指定为其他盘。 数据还原 数据还原,首先要找到备份的数据文件。如上所述,备份文件存放在E:\软件\ICSF5.74\Mdbbak上,根据路径找到Mdbbak文件夹并打开。 打开Mdbbak文件夹后,里面有类似这样的(1-4)BAK文件。 找寻最新的BAK文件,并把它与软件安装包(光盘)中IC挂接数据库.exe软件拷贝到电脑任意一个目录(文件夹)中,然后将备份文件重命名(光标放在备份文件 上点鼠标右键,选择重命名),改为ICSF.db。如图:(1-5)

数据库备份方案

数据库备份恢复方案 Version 1.0 2011/1/18

目录 一、修改记录 (3) 二、简介 (3) 三、生产库备份恢复计划 (4) 1. 数据库恢复模式 (4) 2. 系统数据库的备份 (4) 3. 用户数据库的备份 (5) 4. 验证备份内容 (6) 5. 备份文件大小和位置 (6) 6. 磁盘配置要求 (6) 7. 远程备份 (6) 8. 备份操作的管理 (6) 四、生产库还原操作 (7) 1. 数据库服务权限 (7) 2. 备份还原顺序 (8) 五、数据库归档 (8) 六、其它数据保护方案 (10) 1. 数据库镜像 (10) 2. 日志传送 (11)

一、修改记录 二、简介 本手册旨在提高数据库大容量时备份的速度和数据安全性,并在数据库故障时进行快速还原。 数据库备份和恢复技术是数据库系统维护工作中的重要技术,不论是开发测试环境的数据库,还是生产环境的数据库,建议都要进行备份,而且要确保备份文件可用。对于数据库系统来说,当发生故障甚至是灾难性的故障的时候,数据库备份就是最有效的最后一道防线。对于数据库维护人员来说,备份与恢复技术的熟练运用,加之规范性的操作,是企业数据库系统正常运行的重要保障。 创建SQL Server 备份的目的是为了可以恢复已损坏的数据库。但是,备份和还原数据必须根据特定环境进行自定义,并且必须使用可用资源。因此,可靠使用备份和还原以实现恢复需要有一个备份和还原策略。设计良好的备份和还原策略在考虑到特定业务要求的同时,可以尽量提高数据的可用性并尽量减少数据的丢失。 设计有效的备份和还原策略需要仔细计划、实现和测试。测试是必需环节。直到成功还原了还原策略中所有组合内的备份后,才会生成备份策略。必须考虑各种因素。其中包括:您的组织对数据库的生产目标,尤其是对可用性和防止数据丢失的要求。 每个数据库的特性,包括:大小、使用模式、内容特性以及数据要求等。 对资源的约束,例如:硬件、人员、备份媒体的存储空间以及所存储媒体的物理安全性等。 设计备份和还原计划时,应根据您自身的特定环境和业务需求来考虑灾难恢复计划。例如,假设失火了并且烧毁了您的24 小时数据中心。您是否有把握恢复数据?恢复系统并保证系统运行需要多长时间?您的用户能够承受丢失多少数据? 理想的情况是,灾难恢复计划应规定恢复所需的时间以及用户可以期望的最终数据库状态。例如,可以确定在获取指定的硬件后,在48 小时内完成恢复,并且保证最多能恢复到上周末时的数据。灾难恢复计划可以通过多种方式构建,并且可以包含各种类型的信息。灾难恢复计划类型包括: ●获取硬件计划。 ●通信计划。 ●发生灾难时的联系人名单。 ●与负责处理灾难的人员的联系方式。 ●对计划拥有管理权的人员的信息。 ●每个恢复方案所需执行的任务的清单。为了便于您检查灾难恢复的进度,将初始化 已完成的任务,并在清单中指示任务完成时间。

Oracle数据库备份方式

Oracle数据库备份方式 Oracle的内核提供数据库的备份和恢复机制,SQL*DBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。 ____1. 备份恢复方式 ____对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。 ____Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与操作系统文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传送的手段,进行不同用户间的数据传送。 ____Export数据卸载,将数据从Oracle写到指定的操作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以"关键字=值" 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。 ____Import与Export互逆,将操作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。 ____Export/Import非常方便,系统开销小,它的限制是输出的操作系统文件采用专门的压缩方式存放,仅提供给Import使用。 ____也可采用SQL*PLUS和SQL*LOADER实用工具进行备份。使用SQL*PLUS的SPOOL 命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQL*LOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、Sybase中)。 ____2. 向前滚动方式 ____Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下: ____(1) 启动Oracle; ____(2) 连接Oracle:CONNECT SYSTEM/PASSWORD; ____(3) 启动ARCHIVE LOG。 ____出现介质故障时,可用SQL*DBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQL*DBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打

数据库备份方案

《客户名称》备份管理系统设计方案上海鸿翼数字计算机网络有限公司

目录 1.项目概述 (3) 2.系统需求分析 (3) 1.1系统现状分析 (3) 1.2备份系统风险评估 (3) 1.3备份系统需求分析 (4) 3.系统备份理念 (5) 3.1系统设计指引 (5) 3.2数据保护技术选择 (5) 3.3连续数据保护 (6) 3.4备份管理系统组成 (6) 4.系统备份结构设计 (8) 4.1整体系统架构设计 (9) 5.系统备份方案介绍 (10) 5.1W INDOWS服务器自身备份 (10) 5.2方案2:双机热备 (12) 5.3方案3:爱数备份 (13)

1.项目概述 上海鸿翼数字计算机网络有限公司将根据《》的网络实际需求,制定一套完整的集数据备份、灾难恢复、服务器整合及虚拟化一身的方案。一个完整的企业数据备份与恢复解决方案就意味着数据安全与性能(机器和网络)的完美结合,一条龙式的服务标准(产品的服务与支持)。所以在选择备份系统时,既要做到满足系统容量不断增加的需求,又要所用的备份方式能够支持多系统平台操作。要达到这些,就要充分使用网络数据存储系统,在分布式网络环境下,通过专业的数据存储软件,配合系统备份及双机备份,结合相应的硬件和存储设备,对网络的数据备份进行集中管理,从而实现自动化备份、文件归档、数据分级存储和灾难恢复。 2.系统需求分析 1.1系统现状分析 《》网络基础结构是基于Windows平台,现在拥有X台服务器。《》的文档管理系统包含了文件服务器、转档服务器、数据库服务器等企业信息管理系统,为企业的发展提供了强有力的信息化支持。主要数据库包含了Microsoft SQL Server、Oracle、DB2等。 1.2备份系统风险评估 《》的信息系统管理人员十分重视数据的保护,在没有备份软件的情况下,已经采用了重要数据镜像备份、服务器系统镜像备份等常规保护方法,为企业的数据财产提供了安全的保障。但是以上方法很难实现快速备份和灾难后的迅速恢复,很难保证业务的连续性。

实验10 数据库备份与还原

实验10 数据库备份与还原 创建备份 (1)选择【stu】数据库右击,单击【属性】。 (2)单击【选项】页,将【恢复模式】设置为【完整】。 (3)选择【stu】数据库右击,依次选择【任务】、【备份】,将打开【备份数据库】对话框 备份数据库 (4)在【备份类型】列表框中,选择【完整】。注意:创建完整数据库备份之后,才可以创建差异数据库备份。 注:选择【差异】即进行差异备份;选择【事务日志】即进行日志备份;若要备份日志尾部(即活动的日志),则需在【选择页】窗格中单击【选项】,再选中【备份日志尾部,并使数据库处于还原状态】。 (5)对于【备份组件】,选择【数据库】。 (6)单击【添加】按钮,打开【选择备份目标】对话框:

选择备份目标 (8)选择备份路径和输入备份文件名。 若想将数据库备份到备份设备上,则应在选择备份设备作为备份目标(如果不存在备份设备,应该先创建),再选择相应的备份设备即可。 创建备份设备 (1)右击【备份设备】,然后单击【新建备份设备】,打开【备份设备】对话框:

(2)在【设备名称】文本框中输入新建设备名,如【dev1】。 (3)在【文件】框中指定备份设备对应的备份文件及路径。 还原备份 在【还原数据库】对话框的【要还原的源】部分中选择【从数据库】,以从SQL Server 识别的备份集中还原。也可选择【从设备】并指定备份文件和包含要存储的备份的设备来从备用备份中还原。 (1)选择【数据库】右击,依次选择【任务】、【还原】,将出现【还原数据库】对话框: 还原数据库 (2)在【常规】页上,还原数据库的名称将显示在【目标数据库】列表框中。若要创建新数据库,请在列表框中输入数据库名。此处输入【stu】。 (3)选择【源设备】,在【备份媒体】列表框中选择【文件】,单击【添加】按钮选择【stu.bak】返回【指定备份】对话框:

oracle数据库备份与恢复实施方案

oracle数据库备份与恢复方案

————————————————————————————————作者:————————————————————————————————日期:

oracle数据库 备份与恢复方案 文件控制?受控?不受控 文档编号日期项目名称版本号 分册名称第册/共册总页数正文附录 编制审批生效日期

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (1) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (2) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Windows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上 四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中

数据库备份方案设计

数据库备份方案设计 备份结构图: 1.1.备份软件的选型 1.1.1.与windows 的可靠性和兼容性 ?要求备份软件有好的兼容性,能支持现有的各种的微软平台。可以通过1个主备份 平台,可以保护现有的WINDOWS平台,Windows NT, Windows 2000和微软最新 推出的Windows 2003的32位及64位操作系统,以满足商业的需求。 ?要求备份软件可靠,得到微软公司在各个操作平台上的集成及认证,以证明其可靠 性和兼容性,长期被微软公司所采纳使用。 ?能支持微软公司的各种应用,包括SQL server, Exchange server, Sharepoint portal server的各种版本,能够支持最新的应用数据库,如SQL 2003,EXCHANGE 2003 及SHAREPOINT PORTAL 2003,并且同时能够备份Windows Server上的各种内核 的内容,如Windows Active Directory,集群配额数据库,Windows 2003 Shadow copy

组件等等。 ?要求软件有多种语言版本,对中文操作系统以及各种中文软件有完善的支持。 1.1. 2.灵活性和易于使用 ?要求备份软件有友好的操作介面,同时可以提供任何地点皆可使用的Internet介面, 以方便管理人员随时随地进行远程管理。 ?要求备份软件有集中管理的能力,有层次化的结构。当有多台备份服务器需要管理 的时候,能通过一个管理平台把多台服务器的状态监控起来。同时,要有对备份服 务器远程维护的能力,如备份服务器的远程安装,远程的修复。 ?要求备份软件简单易用,对各种应用,如文件、SQL,EXCHANGE数据库的备份 和恢复的策略设置都有专门的向导功能,以便用户在最短的时间内可以将相关的数 据保护起来。同时,要求备份软件有像基于日历的任务管理,方便查阅每天的备份 作业。 ?要求备份软件有试运行的功能,以便备份策略在实施前得到验证和修改。 ?要求备份管理软件除了普通的备份恢复日志外,更有生成备份恢复及其它相关管理 的统计报表/图表的功能,可以将一段时间内备份恢复、备份设备及介质使用等详 细进行详细的统计,并通过图表的方式表现出来。 1.1.3.软件的先进性 ?要求备份管理软件可以根据需求有各种方法控制备份和恢复对资源的占用。例如可 以定地义备份和恢复的数据流使用服务器的指定网口以减少网络带宽的占用,通过 选项定义防火墙的端口等。 ?要求备份软件支持多种的备份方式,如LAN备份,SAN 备份等各种方式。 ?要求备份管理具有强大的灾难恢复能力,可以在发生极端灾难时迅速地通过灾难恢 复磁带将整个系统迅速恢复,无需重新安装操作系统、驱动程序、应用系统等等。 通过灾难恢复可以恢复如IBM、HP、DELL等服务器厂商的功能管理分区。支持 现有的所有Windows平台,如NT4,2000及Windows 2003的32位及64位操作 系统,能与Windows 2003的ASR功能集成,快速恢复系统。 ?要求备份软件在技术上领先,满足数据快速备份和恢复的要求。除了一般的备份和

SQL数据库备份与恢复操作流程

1.数据库备份 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“备份数据库”,如下图所示: 2)在弹出的选择框中点“添加”按钮:

3)弹出如下的窗口: 且必须给这个备份文件起一个文件名(一般我们都以日期做为备份文件名),如

下图所示: 上述备份文件就是放在D:\ 这个目录下,文件名为20051120。然后点“确定”。4)可以看到“备份到”那里有个路径和文件名了,其它什么都不用动,然后点“确定”就可以了,如下图所示: 备份文件成功后会有提示信息,可以到备份的目录下找到备份的文件。

2.数据库还原 和数据库的备份操作类似。具体流程如下: 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“还原数据库”,如下图所示: 2)在弹出的页面上,在“还原”那里选择“从设备”,然后点一下“选择设备”,如图所示:

3)在弹出的页面上点一下“添加”按钮,就出现“选择还原目的”的对话框,在“文件名”后面有个浏览按钮,在那里选择要还原的文件(就是之前备份的数据库文件),然后点“确定”,再确定,再确定,就可以了,还原成功之后会有提示的:

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):

$A: 现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle 提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型): 1,表方式(T) 可以将指定的表导出备份; 2,全库方式(Full) 将数据库中的所有对象导出; 3,用户方式(U) 可以将指定的用户相应的所有数据对象导出; *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别: 1,完全增量导出(完全备份)(Complete Export) 这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名) 2,增量型增量导出(增量备份)(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp 3,累积型增量导出(差异备份)(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份: Mon:完全备份(A) Tue:增量导出(B) Wed:增量导出(C) Thu:增量导出(D)

oracle数据库备份与恢复的三种方法(1)

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: (3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A)

星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F: 二、冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件) 2、容易归档(简单拷贝即可) 3、容易恢复到某个时间点上(只需将文件再拷贝回去) 4、能与归档方法相结合,做数据库“最佳状态”的恢复。 5、低度维护,高度安全。 但冷备份也有如下不足: 1、单独使用时,只能提供到“某一时间点上”的恢复。 2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

DB2大数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 (数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain

数据库备份方案

《MonkeyOnline》数据备份方案 备份方式 主从复制+完整备份(Mysqldump或winrar压缩备份DATA目录)+增量备份(启用从服务器二进制日志文件) 备份策略 在主服务器上启用二进制日志实现主从复制做实时在线热备份;在从服务器启用二进制文件,实现在从服务器上做增量备份,每周一凌晨3点转储二进制日志文件进行增量备份;每2周用mysqldump进行完整备份并清空日志和覆盖上次的完整备份;每天做1次winrar 压缩data目录进行完整备份,作为快速恢复备用备份,保留该完整备份一月的备份文件。 该策略相当于保留一个月压缩完整备份和2周的二进制日志增量备份文件。二进制日志可以对任意一天的任何时间点进行恢复,每2周做一次SQL级(dump)完整备份并将二进制日志清空,以释放增加的空间。SQL完整备份+增量备份可以恢复最长一个月内(根据实际需要通过保存二进制日志的天数实施更长时间的恢复)任意一天的任何时间点的数据。 部署实施 1.主从复制 主服务器:当前支撑游戏运行的数据库服务器 从服务器:独立于主服务器且数据库版本和结构与主服务器完全一致的数据库备份服务器 1.1配置主服务器 停止主服务器的mysql服务,修改my.ini 文件,在【mysqld】下添加如下内容: log-bin="D:/mysql/bak/log/log-bin" //启用主库的二进制日志 server-id = 1 //主库服务器唯一ID 重启MySQL,创建一个仅有复制权限的账号作为从库同步专用: GRANT REPLICATION SLAVE ON *.* TO 'repl'@'hostname' IDENTIFIED BY 'slavepass';

相关文档
最新文档