Chinaunix首页 | 论坛 | 博客
  • 博客访问: 238197
  • 博文数量: 23
  • 博客积分: 2262
  • 博客等级: 大尉
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-26 15:59
文章分类

全部博文(23)

文章存档

2009年(3)

2008年(20)

分类: Oracle

2008-12-15 23:23:43

今天在发出全备份命令rman>backup database 时出现了以上错误
Cause: You tried to copy or backup a file that was not closed cleanly, and the database was in NOARCHIVELOG mode. This is not allowed because when restored, the file will require redo application before it is usable, and redo is not currently being saved beyond the contents of the online redo logs.
Action: Take the tablespace offline clean or close the database and retry the copy or backup.
原因是我的数据库运行在非归档模式
我们知道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;查看数据库是否出于自动归档模式

阅读(1144) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~