【转】解决:ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
今天在發出全備份命令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;查看數據庫是否出于自動歸檔模式
總結
以上是生活随笔為你收集整理的【转】解决:ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】各进制转换
- 下一篇: Oracle 备份还原数据库练习.