相信大家连Oracle数据库时看到这个标题并不陌生,基本上都遇到过这个错。出现这个错的原因有很多种,我就归纳总结下目前我遇到的。
1.环境变量:
在计算机环境变量path里面 E:\app\zhuji\product\11.2.0\client_1\NETWORK\ADMIN 这个一定要加上。
2.三个配置文件
listener.ora、sqlnet.ora、tnsnames.ora
首先是排错,tsnping hbtsp;结果是可以通的,说明sqlnet.ora、tnsnames.ora 这俩个文件是没有问题的。接着lsnrctl status,发现所要启动的实例的服务没有起来,则说明这个数据库实例挂了,
sqslplus /nolog
conn /as sysdba
startup mount;
3.查看日志,可能不是配置的问题
日志路径:F:\app\Administrator\diag\rdbms\hbtsp\hbtsp\trace alert_hbtsp.log 可以发现ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 8589934592 字节) 已使用 100.00%, 尚有 0 字节可用。原来是归档日至满了。解决办法:
删除归档日志文件,增加归档日志内存flash recovery area:SQL> alter system set db_recovery_file_dest_size=3G scope=both;
最后打开数据库:
SQL> alter database open;
但是虽然在物理空间上,已经删除了2G,但是动态性能视图(v$recovery_file_dest) 并没有释放此这2g空间,所以登录rman删除未释放的内存:
rman target /
1.是RMAN> crosscheck archivelog all;--此命令的含义是检查所有归档日志的状态,并把遗失的标记为expired,也就是说,expired 表示已经被操作系统中被删除的归档日志。
2.是delete expired archivelog all; --此命令的含义是删除expired的归档日志
总结:多看日志。