ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle数据库备份详解

oracle数据库备份详解

原创 Linux操作系统 作者:treesofthehill 时间:2012-05-02 10:18:49 0 删除 编辑

1           备份工具

1.1          操作系统工具:windows下的copy, winzip; unix 下的cptarcpio

1.2          逻辑备份工具:imp/exp;impdp/expdp.

1.3          Oracle工具RMAN:能够备份数据文件、控制文件,归档日志和服务器参数文件;集成了第三方磁带库;具有图形接口和命令行接口。

2           备份的概念与术语

2.1          全部备份和部分备份

全部备份(whole backup):所有数据文件、控制文件以及服务器参数文件的备份。其中联机重做日志文件盒临时表空间文件不需要备份。联机重做日志文件通过复用与归档受到保护。

部分备份(partial backup):一个或多个数据文件或者控制文件的备份。部分备份与数据库剩余部分肯定不会同步。部分备份只是特定时刻数据库某部分的副本。

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

2.2          完整备份和增量备份

完整备份(full backup):是一个或多个数据文件的一个完整副本,这个副本可以是全部备份也可以是部分备份。

增量备份(incremental backup):是数据文件的某些数据块的一个备份,这个备份只包括从最近一次完整备份完成以来被修改或添加的数据库。

只有RMAN才能完成增量备份,使用操作系统命令则无法进行增量备份。

增量备份通常小于完整备份,并且备份速度显著地快于完整备份的速度。

无论数据库位于archivelognoarchivelog模式中,增量备份都可以在数据库打开或关闭时进行。

2.3          脱机备份和联机备份

脱机备份(offline backup):是在数据库关闭时生成的备份。脱机备份也被称为:关闭备份、冷备份和一致备份。

联机备份(online backup):是在数据库正被使用时生成的备份。联机备份也被称为:开启备份、热备份或非一致备份。联机备份的一个数据文件不仅不会与任何特定的SCN同步,而且也不会与其他数据文件或控制文件同步。

联机备份可以是全部备份,也可以是部分备份,并且能通过RMAN和操作系统命令来完成。

联机备份可以是完整备份,也可以是增量备份。

联机备份只有在数据库位于archivelog模式中才能进行。

被还原的联机备份总是需要通过使用联机和归档日志文件才能与数据库的其余部分同步。

在联机备份期间,因为存在额外的磁盘活动,所以数据库性能可能退化。

用操作系统联机备份:可能会产生数据讹误。为了避免这个问题,可以使用alter tablespace…begin backup命令,从而能够在复制期间将包含指定数据文件的表空间置入备份模式。此时,如果服务器进程更新了db cache 的一个数据块,那么就会将这个完整的数据块映像写至日志缓冲区(此时日志缓冲区不仅包括事务的变化,还包括完整的数据块映像)。这种做法的不利之处:在数据库位于备份模式时,重做的生成速度可能显著地增加。

例子:(操作系统备份)

sys@ORCL> select name, bytes, file# from v$datafile;

 

NAME                                                         BYTES      FILE#

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

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\

O1_MF_SYSTEM_7RBDD3PY_.DBF

  555745280          1

 

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\

O1_MF_UNDOTBS1_7RBDDGN0_.DBF

1148190720          2

 

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SY SAUX_7RBDDK4D_.DBF

  220200960          3

 

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\

O1_MF_USERS_7RBDDPSW_.DBF

  104857600          4

 

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\

OCP10GDATA01.DBF

  104857600          5

 

E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\UNDO02.DBF

  104857600          6

 

E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNDO_NG01.DBF

     10485760          7

E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNDO_G01.DBF 

     10485760          8

已选择8行。

sys@ORCL> alter tablespace users begin backup;

 

表空间已更改。

 

sys@ORCL> host copy E:\oracle\product\10.2.0\oradata\ORCL\DATAFILE\

O1_MF_USERS_7RBDDPSW_.DBF  e:\oracle

已复制         1 个文件。

 

sys@ORCL> alter tablespace users end backup;

 

表空间已更改。

 

sys@ORCL> host dir e:\oracle

 驱动器 E 中的卷没有标签。

 卷的序列号是 0C7F-268A

 

 e:\oracle 的目录

 

2012-04-28  14:30   

          .

2012-04-28  14:30   

          ..

2012-04-28  14:00   

          archive1

2012-04-28  14:00   

          archive2

2012-04-28  14:04   

          backup

2012-04-27  18:08       104,865,792 O1_MF_USERS_7RBDDPSW_.DBF

2012-03-31  13:18   

          product

               1 个文件    104,865,792 字节

               6 个目录 234,068,385,792 可用字节

 

2.4          映像副本和备份集

映像副本(image copy):是某个文件的备份,并且每个字节都与源文件相同。显然,映像副本不可能是增量备份,也不可能住磁带设备上生成,在上述两种情况中,输出文件与输入文件并不相同。使用操作系统工具,如果没有压缩数据或将数据直接流入磁带,那么输出文件就是映像副本。
备份集(backup set):是由RMAN生成的一种专有结构;是一种由一个或多个被称为片(piece)的物理文件所组成的逻辑结构。备份片中包含了一个或多个数据库文件,这些文件可以是数据文件、控制文件或归档日志文件。

备份集与映像副本相比的优点有:

。备份集可以拥有增量备份。

。可以在备份集中启用数据压缩。

。可以将备份集直接流入磁带中。

对于完整备份来说,组成备份集的备份片通常会显著地小于映像副本,这是因为备份集不会包含空的数据块。

映像副本只能在磁盘上生成,备份集可以再磁盘和磁带上生成。

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

例子:RMAN创建备份集

C:\>rman target /

 

恢复管理器: Release 10.2.0.1.0 - Production on 星期六 4 28 14:56:16 2012

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

连接到目标数据库: ORCL (DBID=1308114557)

 

RMAN> backup as backupset datafile 'E:\oracle\product\10.2.0\oradata\ORCL\ DATAFILE\O1_MF_USERS_7RBDDPSW_.DBF' format 'e:\orcl_backup\ rman_backup_user01.dbf';

 

启动 backup 28-4 -12

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=136 devtype=DISK

通道 ORA_DISK_1: 启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集中的数据文件

输入数据文件 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ ORADATA\ORCL\DATAFILE\O1_MF_USERS_7RBDDPSW_.DBF

通道 ORA_DISK_1: 正在启动段 1 28-4 -12

通道 ORA_DISK_1: 已完成段 1 28-4 -12

段句柄=E:\ORCL_BACKUP\RMAN_BACKUP_USER01.DBF 标记=TAG20120428T145954 注释=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03

完成 backup 28-4 -12

 

RMAN> host "dir e:\orcl_backup";

 

 驱动器 E 中的卷没有标签。

 卷的序列号是 0C7F-268A

 

 e:\orcl_backup 的目录

 

2012-04-28  14:59   

          .

2012-04-28  14:59   

          ..

2012-04-28  14:59           425,984 RMAN_BACKUP_USER01.DBF

               1 个文件        425,984 字节

               2 个目录 234,060,808,192 可用字节

主机命令完成

 

3           RMAN的设置

Database control 工具包含一个RMAN的图形接口,通过这个图形接口可以对RMAN进行通用和专用的设置;此外Database control 工具还包括用于oracle调度机制的接口,用于建立一系列定时的备份。

3.1 设备的设置

磁盘设置:

。并行度:默认为1RMAN进程会生成一个叫通道的服务器进程来实际创建备份。

。磁盘备份位置:默认由DB_RECOVERY_FILE_DEST参数指定,一般指定为flash_recovery_area目录。

。磁盘备份类型:备份集、压缩备份集或映像副本。

磁带设置:

。磁带机:数量

。磁带备份类型:备份集、压缩备份集

介质管理设置:第三方介质管理器

主机身份证明:

3.2  备份集的设置

备份片段 (文件) 最大大小:默认无大小限制。设置为易于管理的值。

磁带设置

。数据文件备份副本数:默认为1.

。归档日志备份副本数:默认为1.

主机身份证明

3.3  策略的设置

备份策略

。随着每个备份和数据库结构的更改自动备份控制文件和服务器参数文件 (SPFILE)

。通过跳过未更改的文件 (如已经备份的只读和脱机数据文件) 优化整个数据库备份

。启用块更改跟踪, 以提高增量备份的速度:oracle10g新特性,会启动变化跟踪写入器后台进程(CTWR)CTWR会在一个块变化跟踪文件中写下被更新的数据块的地址。在随后的增量备份时,RMAN能够通过读取这个文件来确定实际需要备份的数据库。由于可以直接读取这些发生变化的数据块,因此减少了I/O

例子:启动CTWR

sys@ORCL> select program from v$process where program like '%CTWR%';

 

未选定行

sys@ORCL> alter database enable block change tracking using file 'e:\tmp\tracking';

 

数据库已更改。

 

sys@ORCL> select program from v$process where program like '%CTWR%';

 

PROGRAM

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

ORACLE.EXE (CTWR)

 

sys@ORCL> host dir e:\tmp\tracking

 驱动器 E 中的卷没有标签。

 卷的序列号是 0C7F-268A

 

 e:\tmp 的目录

 

2012-04-28  15:41        11,600,384 TRACKING

               1 个文件     11,600,384 字节

               0 个目录 234,049,097,728 可用字节

 

。从整个数据库备份中排除表空间

保留策略

。保留所有备份

。保留恢复到指定天数内任意时间的状态所需的备份 (时间点恢复)

。至少保留每个数据文件的指定数量的完全备份

主机身份证明

4           调度自动备份

Oracle 建议的备份

定制备份

主机身份证明

5           控制文件备份

为了保证控制文件安全可靠,有以下策略:

。复用控制文件。

。作为全部备份的一部分进行备份。

。作为部分备份的一部分进行备份。

。用于跟踪的备份。

用于跟踪的备份会使用create controlfile 命令生成一个控制文件创建脚本,这个脚本既可以在编写完成后运行,也可以在需要调整任何设置的情况下进行编辑。

USER_DUMP_DEST参数定位用户转储目的地。

例子:

1建立控制文件的副本

sys@ORCL> alter database backup controlfile to 'e:\orcl_backup\control.ctl' reuse;

数据库已更改。

sys@ORCL> host dir e:\orcl_backup\

 驱动器 E 中的卷没有标签。

 卷的序列号是 0C7F-268A

 

 e:\orcl_backup 的目录

 

2012-04-28  15:58   

          .

2012-04-28  15:58   

          ..

2012-04-28  15:58         7,061,504 CONTROL.CTL

2012-04-28  14:59           425,984 RMAN_BACKUP_USER01.DBF

               2 个文件      7,487,488 字节

               2 个目录 234,039,586,816 可用字节

2 用于跟踪的备份

sys@ORCL> alter database backup controlfile to trace;

 

数据库已更改。

 

sys@ORCL> show parameters user_dump_dest;

 

NAME                                 TYPE        VALUE

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

user_dump_dest                       string      E:\ORACLE\PRODUCT\10.2.0\ADMIN

                                                 \ORCL\UDUMP

sys@ORCL> host dir /od E:\ORACLE\PRODUCT\10.2.0\ADMIN\\ORCL\UDUMP

 驱动器 E 中的卷没有标签。

 卷的序列号是 0C7F-268A

 

 E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP 的目录

 

2012-04-11  15:23               606 orcl_ora_1348.trc

2012-04-11  15:23               853 orcl_ora_5208.trc

2012-04-11  15:29           567,627 orcl_ora_4528.trc

2012-04-11  15:32           330,417 orcl_ora_1024.trc

2012-04-11  15:33           156,928 orcl_ora_6036.trc

2012-04-11  15:39               943 orcl_ora_5592.trc

2012-04-11  15:39               606 orcl_ora_5388.trc

<……后面省略……>

 

unix使用ls –ltr 命令

 

6           管理RMAN备份

Catalog additional files:会将使用操作系统所生成的备份告知RMAN.

Crosscheck all: 会指示RMAN查看所创建的备份集与映像副本是否仍然可用。

Delete all expired:能够删除对Crosscheck发现丢失的备份的所有引用。

Delete all obsolete:删除遵循保留策略但不再需要的备份。

7           闪回恢复区

闪回恢复区基于磁盘的存储结构。被用于存储于恢复相关的数据的默认位置。这些数据包括:控制文件和联机重做日志文件的复用副本;归档日志目的地;RMAN备份集与映像副本;闪回日志。

闪回恢复区受DB_RECOVERY_FILE_DESTDB_RECOVERY_FILE_DEST_SIZE参数控制。这两个参数是静态的。

对闪回恢复区的监视非常重要,查询v$DB_RECOVERY_FILE_DEST视图可以得到详细信息。

RMAN和归档器进程都能够智能地发现闪回恢复区中的某个文件何时不再需要以及何时被重写。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9537053/viewspace-722533/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ora-600类型(转)
请登录后发表评论 登录
全部评论

注册时间:2008-06-11

  • 博文量
    97
  • 访问量
    180651