EOF
for table in $(cat tables.txt)
do
exp dbuser/oracle file=${table}_$(date '+%Y%m%d').dmp tables=$table direct=y
done
5.2 冷备份
shutdown数据库,将所有和本实例有关的文件,包括datafile,controlfile,redolog,archived redolog,initora.ora等全部备份。恢复时只要将这些文件放回从前的目录,startup数据库即可。
5.3 联机全备份+日志备份
5.3.1 设置
如果数据库实例原来没有使用归档日志功能,则必须进行配置修改
initoradb.ora:
log_archive_start = true #实例启动时同时启动归档进程。
log_archive_dest_1= "location=/appl/oracle/oradata/orafe/arch/arch" #归档日志目录。
打开归档日志功能:
shutdown数据库
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database archivelog;
SQL>;alter database open;
可用archive log list查看状态,去除归档日志功能的命令为alter database noarchivelog。
5.3.2 步骤
参见online/full.sh、daily.sh,以osdba组的用户执行
联机全备份:
数据库处于open状态,依次对各个表空间备份
sqlplus "/ as sysdba"
SQL>;alter tablespace system begin backup;
复制此tablespace各个datafile
SQL>;alter tablespace system end backup;
注意:据推测,begin backup是对tablespace冻结写入,end backup是解除冻结,因此复制datafile的过程不宜过长
备份controlfile
SQL>;alter database backup controlfile to '…….';
日志备份:
sqlplus "/ as sysdba"
SQL>;alter system archive log stop;
移去日志目录下的所有archived redolog
SQL>;alter system archive log start;
5.3.3 恢复
数据库处于shutdown状态
最差情况:磁盘全部损坏,仅保存上次联机全备份和每天日志备份
解决硬件故障,配置系统软件及环境
oracle用户,将全备份和日志备份转移至相应目录,根据initoradb.ora中controlfile的配置,将备份控制文件复制到响应目录下
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;recover database until cancel using backup controlfile;
逐个确认待恢复的archived redolog,待最后一个完成后,键入cancel,使恢复结束
SQL>;alter database open resetlogs;
注意:由于日志已经重置,所以应尽快做一次联机全备份
丢失某数据文件
只要将此文件从上次联机全备份中复制至其目录,并将自上次联机全备份以来所有日志备份移至归档目录
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database recover datafile 'path/file';或者简单些recover database;
SQL>;alter database open;
如果此文件损坏或丢失,又无备份,则只能将此文件脱机,将数据exp出来,重建表空间,再imp进去
sqlplus "/ as sysdba"
SQL>;connect internal
SQL>;startup mount
SQL>;alter database datafile 'path/file' offline;
SQL>;alter database open;
5.4 注意要点
无论有多少把握,恢复前先做冷备份,此为第一原则
不这样做,便是无路可退,一旦失误,后果不必多说。
rollback段损坏
这是非常严重的问题,可在initora.ora中写入_corrupted_rollback_segments=(rxx),启动时避开损坏的 rollback段,这只是权宜之计。如数据库处于archivelog,应从上一次全备份起利用备份的日志进行恢复;如数据库处于 noarchivelog,应尽快将全部数据export出来,重建数据库,再import进去。所有操作之前,应做冷备份。
数据库异常中止处理
通过手工shutdown abort操作中止数据库,不会产生大的问题,通常直接startup无需使用介质恢复命令
如果由于机器崩溃引起的中止,则情况严重得多,有可能要使用到上面提到的恢复方法,不过这种现象并不多见。一般需要显式使用介质恢复命令,如下:
sqlplus "/ as sysdba"
SQL>;startup mount;
SQL>;recover database;
SQL>;alter database open;[@more@]
for table in $(cat tables.txt)
do
exp dbuser/oracle file=${table}_$(date '+%Y%m%d').dmp tables=$table direct=y
done
5.2 冷备份
shutdown数据库,将所有和本实例有关的文件,包括datafile,controlfile,redolog,archived redolog,initora.ora等全部备份。恢复时只要将这些文件放回从前的目录,startup数据库即可。
5.3 联机全备份+日志备份
5.3.1 设置
如果数据库实例原来没有使用归档日志功能,则必须进行配置修改
initoradb.ora:
log_archive_start = true #实例启动时同时启动归档进程。
log_archive_dest_1= "location=/appl/oracle/oradata/orafe/arch/arch" #归档日志目录。
打开归档日志功能:
shutdown数据库
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database archivelog;
SQL>;alter database open;
可用archive log list查看状态,去除归档日志功能的命令为alter database noarchivelog。
5.3.2 步骤
参见online/full.sh、daily.sh,以osdba组的用户执行
联机全备份:
数据库处于open状态,依次对各个表空间备份
sqlplus "/ as sysdba"
SQL>;alter tablespace system begin backup;
复制此tablespace各个datafile
SQL>;alter tablespace system end backup;
注意:据推测,begin backup是对tablespace冻结写入,end backup是解除冻结,因此复制datafile的过程不宜过长
备份controlfile
SQL>;alter database backup controlfile to '…….';
日志备份:
sqlplus "/ as sysdba"
SQL>;alter system archive log stop;
移去日志目录下的所有archived redolog
SQL>;alter system archive log start;
5.3.3 恢复
数据库处于shutdown状态
最差情况:磁盘全部损坏,仅保存上次联机全备份和每天日志备份
解决硬件故障,配置系统软件及环境
oracle用户,将全备份和日志备份转移至相应目录,根据initoradb.ora中controlfile的配置,将备份控制文件复制到响应目录下
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;recover database until cancel using backup controlfile;
逐个确认待恢复的archived redolog,待最后一个完成后,键入cancel,使恢复结束
SQL>;alter database open resetlogs;
注意:由于日志已经重置,所以应尽快做一次联机全备份
丢失某数据文件
只要将此文件从上次联机全备份中复制至其目录,并将自上次联机全备份以来所有日志备份移至归档目录
sqlplus "/ as sysdba"
SQL>;startup mount
SQL>;alter database recover datafile 'path/file';或者简单些recover database;
SQL>;alter database open;
如果此文件损坏或丢失,又无备份,则只能将此文件脱机,将数据exp出来,重建表空间,再imp进去
sqlplus "/ as sysdba"
SQL>;connect internal
SQL>;startup mount
SQL>;alter database datafile 'path/file' offline;
SQL>;alter database open;
5.4 注意要点
无论有多少把握,恢复前先做冷备份,此为第一原则
不这样做,便是无路可退,一旦失误,后果不必多说。
rollback段损坏
这是非常严重的问题,可在initora.ora中写入_corrupted_rollback_segments=(rxx),启动时避开损坏的 rollback段,这只是权宜之计。如数据库处于archivelog,应从上一次全备份起利用备份的日志进行恢复;如数据库处于 noarchivelog,应尽快将全部数据export出来,重建数据库,再import进去。所有操作之前,应做冷备份。
数据库异常中止处理
通过手工shutdown abort操作中止数据库,不会产生大的问题,通常直接startup无需使用介质恢复命令
如果由于机器崩溃引起的中止,则情况严重得多,有可能要使用到上面提到的恢复方法,不过这种现象并不多见。一般需要显式使用介质恢复命令,如下:
sqlplus "/ as sysdba"
SQL>;startup mount;
SQL>;recover database;
SQL>;alter database open;[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8227599/viewspace-933021/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8227599/viewspace-933021/