OCP认证考试指南(19):备份Oracle数据库

1、备份工具

直接使用操作系统实用程序copy、cp就可以进行备份操作。但,Oracle强烈建议使用Recovery Manager(恢复管理器,简写RMAN)。

RMAN能够备份数据文件、控制文件、归档日志以及服务器参数文件(spfile)。备份可以被写入磁盘或磁带。

2、概念与术语

2.1、全部备份与部分备份

全部备份(whole backup)是所有数据文件、控制文件以及服务器参数文件的备份。控制文件的所有复用副本都是完全相同的,因此只需要备份其中一个副本。要注意的是,并不需要备份联机重做日志!联机重做日志文件通过复用与可选的归档受到保护。还有,只有用于永久表空间的数据才会被备份。RMAN不能备份临时表空间文件,这些临时文件也不能被置入用于操作系统备份的备份模式。

部分备份(partial backup)包括了一个或多个数据文件以及控制文件。部分备份与数据库的剩余部分肯定不会同步。部分备份只是特定时刻数据库某部分的副本。如果有必要从部分备份中还原一个文件,那么这个文件在能够使用之前必须与数据库的其余部分同步,这意味着需要通过应用归档和联机重做日志文件中的变化使恢复的文件是最新的。

只有在数据库位于archivelog模式时,部分备份才有效。

2.2、完整备份与增量备份

完整备份(full backup)是一个或多个数据文件的一个完整副本。这个副本可以是全部备份,也可以是部分备份。
增量备份(incremental backup)只是数据文件的某些数据块的一个备份,这个备份只包含从最近一次完整备份完成以来被修改或添加的数据块。

无论数据库位于archivelog模式或noarchivelog模式中,增量备份都可以在数据库打开或关闭时进行。不过,只有RMAN才能进行增量备份。

2.3、脱机备份与联机备份

脱机备份(offline backup)是在数据库关闭时生成的备份。
联机备份(online backup)是在数据库正被使用时生成的备份。

联机备份可以是全部备份,也可以是部分备份,并且能够通过使用RMAN或操作系统命令来完成。不过,联机备份只有在数据库位于archivelog模式中才能进行。在联机备份期间,因为存在额外的磁盘活动,所以数据库性能会退化。

2.4、映像副本与备份集

映像副本(image copy)是某个文件的备份,并且每个字节都与源文件相同。
备份集(backup set)是由RMAN生成的一种专有结构。这是一种由一个或多个被称为片(piece)的物理文件所组成的逻辑结构。备份片包含了一个或多个数据库文件,这些数据库文件可以是数据文件、控制文件或归档日志文件。3种类型文件可以被任意组合在一个备份集内。只有RMAN才能译解备份集格式。

映像副本只能在磁盘上生成;备份集则可以在磁盘或磁带上生成。

数据文件、控制文件与归档日志的映像副本和备份集都可以是联机或脱机备份、全部或部分备份以及完整或增量备份,并且在archivelog模式和noarchivelog模式中都可以进行。不过,备份集只能通过RMAN生成或还原。

$ mkdir /u02/oradata/backup
 
$ rman target system/oracle
 
Recovery Manager: Release 10.2.0.1.0 - 
Production on Mon Oct 13 14:56:12 2008
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
connected to target database: ORA (DBID=1283726968)
 
RMAN> backup as backupset datafile
2> '/u01/db/oracle/oradata/ora/users01.dbf'
3> format '/u02/oradata/backup/rman_backup_users01.dbf';
 
Starting backup at 13-OCT-08
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=147 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/u01/db/oracle/oradata/ora/users01.dbf
channel ORA_DISK_1: starting piece 1 at 13-OCT-08
channel ORA_DISK_1: finished piece 1 at 13-OCT-08
piece handle=/u02/oradata/backup/rman_backup_users01.dbf 
tag=TAG20081013T145636 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-OCT-08

3、RMAN的设置

em6

3.1、设备的设置

em7

用于磁盘备份的选项包括:并行度,目标目录,是生成备份集还是生成映像副本。并行度默认为1,这意味着RMAN进程只会产生一个被称为通道(channel)的服务器进程来实际创建备份。选择并行度时,需要考虑CPU数与磁盘子系统的性质。

用于磁带备份的选项指定了磁带设备的数据、磁带库专用的选项以及是否压缩备份表。指定磁带设备的数量相当于为磁盘备份指定并行度。

3.2、备份集的设置

em8

第一个选项Maximum Backup Piece Size,默认情况下,备份片的大小没有限制:整个备份集被物理存储在一个片或文件中。因为RMAN并不备份未用的数据块,所以在知道备份之前无法知道备份集的大小。

3.3、策略的设置

em9

第一个选项是确定生成备份时是否备份控制文件和服务器参数文件。备份上述两种文件通常被认为是一种优秀的策略。通过启用这种自动备份性能,可以确信始终具有上述两种重要文件的最新副本。默认的副本目的地由DB_RECOVERY_FILE_DEST参数决定。

接下来选项为是否通过排除最近一次备份以来未发生变化的文件来最优化备份。

此外还存在是否为加快增量备份启用数据块变化跟踪的选项。

Tablespace Excluded From Whole Database Backup部分允许指定完整备份操作期间不需要备份的一个或多个表空间。

最后一部分是Retention Policy。根据备份保留策略,RMAN可以删除被认为不再需要的备份。

4、调度自动的备份

运行数据库的一个完整备份例子,使用EM执行针对数据库的全面的、完整的联机备份。

em10

em11

选中Whole Database,输入操作系统用户以及相应口令,把下面的勾打上,点击NEXT按钮。

em12

em13

em14

以上全都直接NEXT,都使用默认设置。

em15

启动备份操作。

em16

查看作业的运行。

em17

通过刷新可以看到备份过程。

5、控制文件备份

由于控制文件十分重要,因此还应当采用另一种定期执行的备份选项。用于跟踪的备份会使用CREATE CONTROLFILE命令生成一个控制文件创建脚本。CREATE CONTROLFILE命令的语法与CREATE DATABASE类似。

SQL*Plus中执行BACKUP CONTROLFILE TO TRACE命令可以在USER_DUMP_DEST参数指定的目录中创建一个文件。应当重命名为一个有意义的名称后将其复制安全的位置。只要添加或重命名任何数据文件或联机重做日志文件、创建或删除表空间,都应当备份控制文件。

SQL> alter database backup controlfile to trace;
 
Database altered.
 
SQL> show parameter user_dump_dest;
 
NAME                       TYPE        VALUE
-------------------------- ----------- ------------------------------
user_dump_dest             string      /u01/db/oracle/admin/ora/udump
 
SQL> exit
 
$ cd /u01/db/oracle/admin/ora/udump
 
$ ls -ltr

最后一个文件,就是我们才备份的最新的文件。用vi打开,可以看到中间有一段很重要的部分。

CREATE CONTROLFILE REUSE DATABASE "ORA" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '/u01/db/oracle/oradata/ora/redo01.log',
    '/u01/db/oracle/oradata/ora/redo01b.log'
  ) SIZE 50M,
  GROUP 2 (
    '/u01/db/oracle/oradata/ora/redo02.log',
    '/u01/db/oracle/oradata/ora/redo02b.log'
  ) SIZE 50M,
  GROUP 3 (
    '/u01/db/oracle/oradata/ora/redo03.log',
    '/u01/db/oracle/oradata/ora/redo03b.log'
  ) SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/u01/db/oracle/oradata/ora/system01.dbf',
  '/u01/db/oracle/oradata/ora/undotbs01.dbf',
  '/u01/db/oracle/oradata/ora/sysaux01.dbf',
  '/u01/db/oracle/oradata/ora/users01.dbf',
  '/ora02/oradata/ocp/mydemo.dbf',
  '/ora02/oradata/ocp/ats.dbf',
  '/ora02/oradata/ocp/bts.dbf',
  '/ora02/oradata/ocp/cts.dbf'
CHARACTER SET WE8ISO8859P1
;

6、管理RMAN备份

em18

em19

上图概述了4个备份集的信息,这4个备份集的Key分别是1、2、3、4。备份集2和3一同构成了数据文件、控制文件以及服务器参数文件的完整备份。

Catalog Additional Files按钮会将使用操作系统实用程序所生成的备份告知RMAN。
Crosscheck All按钮会指示RMAN查看所创建的备份集与映像副本实际上是否仍然可用。
Delete All Expired按钮能够删除对交叉检查发现丢失的备份的所有引用。
Delete All Obsolete按钮可以删除遵循保留策略但不再需要的所有备份。

7、默认的备份目的地
闪回恢复区基于磁盘的存储结构。闪回恢复区被用作存储与恢复相关的数据的默认位置,包括:控制文件和联机重做日志文件的复用副本;归档日志目的地;RMAN备份集与映像副本;闪回日志。闪回恢复区受DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_SIZE参数的控制。两个参数是静态的。

一旦写至闪回恢复区的大量数据到达所指定的大小,就可能会出现问题。在archivelog模式中,Oracle不允许重写尚未被归档的联机日志文件。

SQL> select * from v$recovery_file_dest;
 
NAME
-------------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
/u01/db/oracle/flash_recovery_area
 2147483648  440984064                 0               3

说明了闪回恢复区及其大小的最大值为2G,使用了400M。闪回恢复区中存在3个文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值