oracle 备份机制

阅读: 评论:0

oracle 备份机制

oracle 备份机制

Oracle数据库的备份与恢复技术

郑永生 (华能德州电厂信息中心,德州 253024)     摘 要 确保数据安全是每一位数据库DBA的必要工作,根据数据的重要性和软硬件条件制定可行的 备份恢复方案,将数据丢失造成的损失降到最低。主要探讨 Oracle数据库导出 /导入(Export/Import)、冷 备份、热 备份、ram 备份与恢复的方法,比较各种方式的优缺点。     关键词 数据库 备份与恢复;导出/导入(Export/Import);冷 备份;热 备份;rman数据 备份与恢复

1 引言

随着计算机信息化的普及和大量数据的电子化,数据安全显得尤为重要。一旦造成数据丢失,将会付出巨大的工作量去弥补数据,也可能因此造成不可挽回的损失。因此对从事数据库管理的DBA 来说,做好数据的 备份与恢复是一项很重要的工作,本文专门针对 Oracle数据库的 备份与恢复进行探讨。 Oracle数据库有四种常用的 备份方法,它们分别是导出/导入(EXP/IMP)、热 备份、冷 备份、rman 备份

2 导出、导入(Export、Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到 Oracle数据库中去,这是人们最常用,也是比较可靠的一种 备份恢复方法。在数据库的版本升级时一般采用这种方法。 Oracle支持三种方式类型的输出,下面举例说明(jnth是用户名,thpassword是用户密码, oracle是数据库服务命名, yxgl_a、yxgl_b, yxgl_c是表名):

2.1 表方式(T方式),将指定表的数据导出

备份某个用户模式下指定的对象(表)。业务数据库通常采用这种 备份方式,若 备份到本地文件,使用如下命令: exp jnth/thpassword@ oracle rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log tables= yxgl_a,yxgl_b,yxgl_c

2.2 用户方式(U方式),将指定用户的所有对象及数据导出

备份某个用户模式下的所有对象。业务数据库通常采用这种 备份方式,若 备份到本地文件,使用如下命令: exp jnth/thpassword@ oracle owner=jnth rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log

2.3 全库方式(Full方式),将数据库中的所有对象导出

备份完整的数据库, 备份命令为: exp system/manager@ oracle rows=y indexes=n compress=n buffer=50000000 full=y file=080813.dmp log=080813.log 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。

2.4 恢复备份数据中的指定表

若从本地文件恢复,使用如下命令: imp jnth/thpassword@ oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c

2.5 按照用户模式备份的数据进行恢复

A. 恢复 备份数据的全部内容 若从本地文件恢复,使用如下命令: imp jnth/thpassword@ oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log B. 恢复 备份数据中的指定表 若从本地文件恢复,使用如下命令: imp jnth/thpassword@ oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c

2.6 如果备份方式为完全模式,采用下列恢复方法

若从本地文件恢复,使用如下命令: imp system/manager@ oracle rows=y indexes=n commit=y buffer=50000000 ignore=y full=y file=080813.dmp log=080813.log 导出、导入(Export、Import)的优点: ●简单易行; ●可靠性高; ●不影响数据库的正常运行。 缺点: ●只能提供到“某一时间点上”的恢复,不能最大可能的恢复数据; ●数据量大时,恢复较慢。

3 冷备份

备份发生在数据库已经正常 关闭的情况下,当正常 关闭时会提供给我们一个完整的数据库。冷 备份时将关键性文件拷贝到另外的位置的一种说法。对于 备份 Oracle信息而言,冷 备份是最快和最安全的方法。

3.1 冷备份中必须拷贝的文件包括

所有数据文件 所有控制文件 所有联机REDO LOG文件 a文件(可选) 值得注意的是冷 备份必须在数据库 关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统 备份是无效的。

3.2下面是做冷备份的完整例子

3.2.1 关闭数据库 sqlplus /nolog sql>connect /as sysdba sql>shutdown normal; 3.2.2 用拷贝命令 备份全部的数据文件、重做日志文件、控制文件、初始化参数文件 可以通过命令select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile where v$tablespace.ts#= v$datafile.ts#;查看相关文件的具体位置。或通过查看Enterprise Manager Console 的初始化参数知道这些文件的具体位置。 3.2.3 重启 Oracle数据库 sql>startup

3.3 冷备份的优点

●非常快速、容易的 备份方法,只需简单拷贝文件; ●非常容易恢复到某个时间点上,只需将文件再拷贝回去; ●能与 归档方法相结合,做数据库“最佳状态”的恢复; ●低度维护,高度安全。

3.4 缺点

●单独使用时,只能提供到“某一时间点上”的恢复; ●实施冷 备份的全过程中,数据库必须是 关闭状态,因此会影响正常工作; ●不能按表或按用户恢复。

4 热备份

备份是在数据库运行的情况下,采用archivelog mode方式 备份数据库的方法。

4.1 查看归档模式

SQL> archive log list; 数据库日志模式      存档模式 自动存档             启用 存档终点            c:/ oracle/ora92/RDBMS 最早的概要日志序列     11 下一个存档日志序列     13 当前日志序列           13 SQL>

4.2 如数据库在非归档模式下的,如下命令更改非归档模式为归档模式

SQL> shutdown immediate; (立即 关闭数据库) SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为 归档模式) SQL> alter database open; (打开数据库) SQL> alter system archive log start; (启用自动 归档
    SQL> exit (退出)

4.3 一旦数据库运行在archivelog状态下,就可以做备份了热备份的命令文件由三部分组成

4.3.1 数据文件的 备份 (1) 设置表空间为 备份状态
SQL>alter tablespace rlgl begin backup;
表空间已更改。 (2) 备份表空间的数据文件
用操作系统的复制拷贝数据文件。 (3) 回复表空间为正常状态
SQL> alter tablespace sysbs end backup
表空间已更改。 4.3.2 备份 归档日志文件 在sqlplus上执行alter system switch logfile命令来强迫日志切换,以便所有的日志都被 归档。通过在执行archive log list命令获取当前的日志顺序号,从最早的概要日志序列到当前日志序列的联机redo日志都应该拷贝出来。 4.3.3 使用alter database backup controlfile to trace;命令获得控制文件的一个 备份,可以到% oracle_base%/admin/ % oracle_sid%/udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。

4.4 恢复实例,假设表空间JNTH中的数据文件jinth1.dbf损坏

SQL> startup ORACLE 例程已经启动。 Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 8: ’E:/ ORACLE/ORADATA/ JNTH1.DBF’ 恢复过程: (1)可以先将损坏的表空间文件脱机。 SQL> alter database datafile ’e:/ oracle/oradata/jnth1.dbf’ offline; 数据库已更改。 (2)打开数据库。 SQL> alter database open; 数据库已更改。 (3)将拷贝的文件jnth1.dbf拷贝回先前的文件夹E:/ ORACLE/ORACLEDATA。 (4)恢复数据库文件。 SQL>recover datafile ’e:/ oracle/oradata/jnth1.dbf’; 介质恢复完成。 (5) 关闭数据库。 SQL>shutdown immediate; (6)重新打开数据库。 SQL> startup;

4.5 热备份的优点

●可在表空间或数据库文件级 备份备份的时间短; ● 备份时数据库仍可使用; ●可以恢复到某一时间点上; ●恢复快速。

4.6 缺点

●不能出错,否则将不能正常恢复数据; ●维护较困难,需要一定的 oracle数据库知识。

5 RMAN ( Recovery Manager, 恢复管理器 )备份恢复

RMAN ( Recovery Manager, 恢复管理器 )是从 Oracle8开始提供的一套用于 备份和恢复的有利工具,它有两种使用界面:GUI(图形用户界面)和CLI(命令行界面)。使用RMAN可以完成 Oracle 数据库 备份和恢复的各种任务。现在许多 oracle 备份恢复软件的内核实际上就是RMAN(例如 VERITAS NetBackup 备份软件)。

5.1 切换服务器归档模式

C:/sqlplus /nolog (启动sqlplus) SQL> conn / as sysdba (以DBA身份连接数据库) SQL> archive log list (查看是否是 归档模式,更改 归档模式在热 备份时已介绍)

5.2 连接

C:/rman target=rman/rman@oracle (启动恢复管理器, oracle是服务名,根据自己的实际情况设定)

5.3 基本设置

RMAN> configure default device type to disk; (设置默认的 备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设置 备份的并行级别,通道数) RMAN> configure channel 1 device type disk format 'e:/backup1/backup_%U'; (设置 备份的文件格式,只适用于磁盘设备) RMAN> configure channel 2 device type disk format 'e:/backup2/backup_%U'; (设置 备份的文件格式,只适用于磁盘设备) RMAN> configure controlfile autobackup on; (打开控制文件与 服务器参数文件的自动 备份) RMAN> configure controlfile autobackup format for device type disk to 'e:/backup1/ctl_%F'; (设置控制文件与 服务器参数文件自动 备份的文件格式)

5.4 查看所有参数设置

RMAN> show all;

5.5 查看数据库方案报表

RMAN> report schema;

5.6 备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志

RMAN> backup database plus archivelog delete input;

5.7 备份表空间及归档的重做日志,并删除旧的归档日志

RMAN> backup tablespace system plus archivelog delete input;

5.8 备份归档日志

RMAN> backup archivelog all delete input;

5.9 复制数据文件

RMAN> copy datafile 1 to 'e:/backup1/a';

5.10 查看备份和文件复本

RMAN> list backup;

5.11验证备份

RMAN> validate backupset 3;

5.12从自动备份中恢复服务器参数文件

RMAN> shutdown immediate; (立即 关闭数据库) RMAN> startup nomount; (启动实例到nomount 状态) RMAN> restore controlfile to '/backup1' from autobackup; (从自动 备份中恢复控制文件)

5.13 恢复和复原全数据库

RMAN> shutdown immediate; (立即 关闭数据库) RMAN> exit (退出) 将数据文件a, C:/ ren E:/ oracle/oradata/ oracle/a jnth1.bak;    C:/ ren E:/ oracle/oradata/ oracle/a jnth2.bak;    C:/rman target=rman/rman@oracle (启动恢复管理器) RMAN> startup pfile=C:/ oracle/admin/ oracle/pfile/ a (指定初始化参数文件启动数据库) RMAN> restore database; (还原数据库) RMAN> recover database; (恢复数据库) RMAN> alter database open; (打开数据库)

5.14 Rman备份的优点

●支持在线热 备份; ●支持多级增量 备份; ●减小所需要 备份量; ● 备份,恢复使用简单。

5.15 Rman备份的缺点

●维护较复杂,需要一定的专业知识。

6 结束语

本文根据多年的工作经验就一些基础性的知识进行探讨,在实际工作中利用这些基础知识,结合操作系统的计划任务或第三方的软件就可以实现数据的自动、定时、定量的 备份与恢复。

本文发布于:2024-01-28 02:26:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063799894114.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:备份   机制   oracle
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23