oracle数据库将归档模式更改为非归档模式

Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入 ,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少 要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志 切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时 候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。  如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下 ,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重 做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重 做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷 贝的文件叫归档重做日志。数据库使用归档方式运行时才可以进行灾难性恢复。 在归档日志模式下,有可能会遇到归档日志大小超过最大值而出现讨厌的ORA-00257错误,前面说了如何把归档日志空间变大。而在普通的开发环境下,其实是根本用不着归档日志的,设个时候我们就把数据库的归档日志给禁用了,也就是说把数据库变为非归档日志模式,应该怎么做呢。 在这里所有的操作要在数据库的那台机器上操作,用SYS用户进行登录,首先设置归档进程关闭。 alter system set log_archive_start=false scope=spfile; 然后关闭数据库 shutdown immediate 再后面把数据库启动到mount的模式 startup mount 关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ORA-38774错误。 alter database flashback off 接着把数据库改为非归档模式 alter database noarchivelog; 都修改好了以后,然后打开数据库 Alter database open; 察看一下归档日志的空间大小 select * from v$recovery_file_dest; 接着看一下log日志的状态 select * from v$log; 再看一下闪回日志使用状况 select * from v$flash_recovery_area_usage; 这些都没有问题以后,数据库问题就解决了。