好吧,说是原创我诚惶诚恐,因为整个过程遇到的问都是一直在网上找答案。
主要是记录下这个过程,以后就不用到处找答案了。
好了,话不多说,看过程:
以下操作都是在oracle用户下进行:
1.lsnrctl start --开监听
2.sqlplus / as sysdba --以管理员权限登录 (可分解为两步: sqlplus /nolog connect / as sysdba)
3.startup --启动数据库并打开数据库实例
此时理论上服务和监听都打开了。这时候打开客户端连接服务器去连接数据库服务器时,报错:
oracle initialization or shutdown in progress
在服务器上刚刚的sqlplus中查询all_users报错:
database not open: queries allowed on fixed tables/views only
在网上查了半天,得到结论:
startup,等于以下三个命令
startup nomount ;
alter database mount ;
alter database open ;
然后查询了下状态:
select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
发现确实是没有open,所以就执行了下面一条:
alter database open ;
这时候报错(具体忘了,反正是redo03.log这个文件有问题)大概和下面差不多:
ORA-00313:open failed for members of log group 1 of thread 1
ORA-00312:online log 3 thread 1:'/data/app/oradata/ora237/users03.dbf'
这时候拼命在网上找答案,这个文件有问题就干掉他好了:
alter database datafile '/data/app/oradata/ora237/users03.dbf' offline drop;
这时候又报错了(让人崩溃):
log3 sequence #49 cannot be acrchived oracle
好吧,去哪个目录下发现文件是存在的,那么估计是文件损坏了;
用CLEAR命令重建该日志文件(如果有问题可手动删除先)
alter database clear logfile group 1;
如果是该日志组还没有归档,则需要用下面的命令归档alter database clear unarchived logfile group 1;
再执行
alter database open;
ok,不再报错,成功。
这时候客户端应该可以连上了。
如果连的时候还有问题可以 重启一下服务器系统再连。
感谢如下文章给我的帮助:
ORA-00313 open failed for members of log group解决办法