摘 要
确保数据安全是每一位数据库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
wner=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文件
Init.ora文件(可选)
值得注意的是冷
备份
必须在数据库
关闭
的情况下进行,当数据库处于打开状态时,执行数据库文件系统
备份
是无效的。
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 (退出)
SQL> exit (退出)
4.3 一旦数据库运行在archivelog状态下,就可以做备份了热备份的命令文件由三部分组成
4.3.1 数据文件的
备份
(1) 设置表空间为
备份
状态
SQL>alter tablespace rlgl begin backup;
表空间已更改。
SQL>alter tablespace rlgl begin backup;
表空间已更改。
(2)
备份
表空间的数据文件
用操作系统的复制拷贝数据文件。
用操作系统的复制拷贝数据文件。
(3) 回复表空间为正常状态
SQL> alter tablespace sysbs end backup
表空间已更改。
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, 恢复管理器 )是从
Oracle
8开始提供的一套用于
备份
和恢复的有利工具,它有两种使用界面: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 连接
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 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\datafile\1.ora';
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 (退出)
将数据文件jnth1.ora,
C:\ ren E:\
oracle
\oradata\
oracle
\jnth1.ora jnth1.bak;
C:\ ren E:\
oracle
\oradata\
oracle
\jnth2.ora jnth2.bak;
RMAN> startup pfile=C:\
oracle
\admin\
oracle
\pfile\ initoracle.ora (指定初始化参数文件启动数据库)
RMAN> restore database; (还原数据库)
RMAN> recover database; (恢复数据库)
RMAN> alter database open; (打开数据库)
5.14 Rman备份的优点
●支持在线热
备份
;
●支持多级增量
备份
;
●减小所需要
备份
量;
●
备份
,恢复使用简单。
5.15 Rman备份的缺点
●维护较复杂,需要一定的专业知识。
6 结束语
本文根据多年的工作经验就一些基础性的知识进行探讨,在实际工作中利用这些基础知识,结合操作系统的计划任务或第三方的软件就可以实现数据的自动、定时、定量的
备份
与恢复。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11134849/viewspace-659928/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11134849/viewspace-659928/
本文探讨了Oracle数据库的四种备份方法:导出/导入、冷备份、热备份和RMAN备份,详细介绍了每种方法的优缺点及具体操作步骤,并强调了数据安全的重要性。

6469

被折叠的 条评论
为什么被折叠?



