Oracle的内核提供数据库的备份和恢复机制,SQLDBA按表空间进行数据的备份和恢复。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使用。
也可采用SQLPLUS和SQLLOADER实用工具进行备份。使用SQLPLUS的SPOOL命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQLLOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、 Sybase中)。
2 向前滚动方式
Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下:
(1) 启动Oracle;
(2) 连接Oracle:CONNECT SYSTEM/PASSWORD;
(3) 启动ARCHIVE LOG。
出现介质故障时,可用SQLDBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQLDBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打开。
由于向前滚动方式恢复的依据是存档的重作记录文件,因而系统开销大,但恢复的是建立备份以后的成功事务,所以恢复的程度更高、更完备。
IT JOB
Oracle数据库分为单机版和RAC版本。
常规的单机版Oracle数据库,备份软件可以实现对其的定时备份与恢复,也可以实现实时备份与恢复。
而Oracle RAC是一个特殊的数据库版本,是一个多节点的数据库,实现对该数据库的定时备份与恢复比较容易,实时备份与恢复的话相对困难,费用也非常高。
Oracle数据库的备份,要根据以下不同情况去考虑如何进行备份:
1、根据企业的业务形式 -- 24 x 7 不停机(银行、通讯等)与每天有一定时间可停机(商场);
2、根据企业的数据库规模 -- 数据量的大小可适当考虑采用的备份方式;
3、根据Oracle数据库的运行方式 -- 日志文件归档与非归档模式。
这里简单说一下两种不同情况所采用的备份方法。
1、企业 24 x 7 是不停机 -- 多数采用数据库以归档模式运行,并以逻辑备份和不完全备份相结合的方法。而逻辑备份可按系统方式和用户方式进行备份,而且考虑到备份介质的损坏可能性进行单双日备份。即每种备份留两套,单日一套双日一套。
2、企业业务不是全天性的 -- 可采用数据库以非归档模式运行,并以物理备份和逻辑备份相结合的方法。而逻辑备份可按系统方式和用户方式进行备份,而且考虑到备份介质的损坏可能性进行单双日备份。即每种备份留两套,单日一套双日一套。
注:逻辑备份 -- EXP、IMP命令备份;物理备份 -- 关闭数据库备份所有的系统文件;不完全备份 -- 可脱机一些表空间进行备份(此方法用的少)。
Oracle自动备份的三种方法:
Oracle自动备份数据库不外乎以下三种方式:
WINDOWS下的任务计划(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron
1、生成脚本文件,如backuprcv 假定文件内容如下:
$>cat backuprcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; release channel c1; release channel c2; release channel c3; }
2、生成执行文件在windows上生成backup_archivebat,内容包括rman cmdfile = backuprcv 在unix下生成 backup_archivesh,内容包括oracle/ramn/rman cmdfile = backuprcv
3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下
$>cat oracle
0 23 0 backup_archivesh
#表示星期天23点对数据库备份
0 12,18 backup_archivesh
#表示每天12点,18点备份
Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来。
以上就是关于请问oracle数据库的数据库备份有几种方式哪种最好用全部的内容,包括:请问oracle数据库的数据库备份有几种方式哪种最好用、oracle数据库备份方法、对oracle数据库怎么进行备份急求解决,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)