咱们知道Oracle中 重作日志文件被分为若干组,当一组重作日志被写满,ORACLE就开始写下一组,这叫作日志切换。切换是以循环的方式进行的,即当最后一组写满后又从第一组开始写。因此若是只有重作日志,即oracle运行在非归档模式下,当遇到数据文件丢失或损坏时,oracle很难保证可以彻底恢复数据库,由于可能所需的重作记录由于因重作日志循环被覆盖掉了。但在归档方式下,归档日志进程会把切换后的重作日志文件复制到归档日志文件,咱们能够把归档日志文件当作是重作日志文件的备份,但归档日志文件是脱机的,即除了在进行复制时,ORACLE数据库在正常运行时是不会关注归档日志文件的。
因此咱们应该把数据库改成归档模式。
1。关闭数据库
SQL> shutdown immediate;
2。启动数据库到mount状态
SQL> startup mount;
3。启用归档模式
SQL> alter database archivelog;
4。查看修改后的数据库备份和恢复策略及归档文件的位置
SQL> archive log list;
5.修改相应的初始化参数
Oracle10g以前,你还须要修改初始化参数使数据库处于自动归档模式。
可用SQL> show parameter log_archive_start;查看
NAME TYPE VALUE
------------------------------------ ----------- --------------
log_archive_start boolean FALSE
SQL> alter system set log_archive_start=true scope=spfile;
重启数据库此参数生效,此时数据库处于自动归档模式。
固然你也能够不作第5步,直接
SQL>archive log start
使数据库启用自动归档,可是重启后数据库仍然处于手工归档模式。
如今你能够用RMAN备份数据库了
附:
1。若是要从归档模式变为非归档模式,使用alter database noarchivelog 命令
2。使用show parameter db_recovery_file_dest;查看备份文件的目录及其大小
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string C:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size big integer 2G
3。使用show parameter log_archive_start;查看数据库是否出于自动归档模式
文章出处:DIY部落(http://www.diybl.com/course/7_databases/oracle/oraclexl/20090304/158063.html)html