今天像往常一样打开电脑,启动plsql工具连接数据库,但是尽然连接不了,报了“oracle initialization or shutdown in progress”的提示信息,从操作系统的服务列表中查看,发现监听和oracle服务都是启动的,但是就是连接不上,并总报该错误。不管了,重新启动监听和服务试试看,但是结果是依然不行,还是报如上信息提示。于是从命令行用sysdba连接,发现可以连接的上oracle,接着用 select status from v$instance;查看启动状态,发现是mounted模式,难怪连接不上数据库,因为数据库根本还没打开嘛,手动尝试将数据库打开:alter database open; 结果又报错了:“ORA-16014: 日志 3 的序列号 286 未归档, 没有可用的目的地”;估计是闪回区的空间不足了,导致日志没法归档。命令操作如下:
--1、检查db_recovery_file_dest_size的空间设置大小
SQL> show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0/flash
_recovery_area
db_recovery_file_dest_size big integer 2G
--2、检查flash recovery area的使用情况:
SQL> select * from v$flash_recovery_area_usage;
--3、计算flash recovery area已经占用的空间:
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
--4、增加原来的db_recovery_file_dest_size的值
SQL> alter system set db_recovery_file_dest_size=3G scope=both;
系统已更改。
SQL> alter database open;
数据库已更改。
--5、也可以在rman中通过删除flash recovery area中不必要的备份来释放flash recovery area空间:
delete obsolete;
crosscheck backupset;
delete expired backupset;
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';--7表示7天以前的数据
db_recovery_file_dest_size:设置存放归档日志文件的目录的大小,就是闪回区flash_recovery_area的大小。