xwb 2020-07-19
工作环境中的集群迁移之后,oracle出了挺多问题,最开始一直没找到原因,后来发现做迁移的人是冷迁移的,且数据库节点是硬关机的,惊了(
表现症状有不能登陆,登录了不能操作等
第一个报的是
ORA-00214 : ??? ‘.../CONTROL01.CTL‘ ?? 8292532 ‘.../CONTROL02.CTL‘ ?? 8292528 ???
这个是控制文件问题,手动用较新的备份文件(8292532)替换掉旧的在用的即可(8292528)
第二个是连接不上
ORA-01033:ORACLE正在初始化或关闭 ORA-00600:内部错误码
重启试试
SQL> shutdown normal ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 83886784 bytes Database Buffers 197132288 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 SQL> alter database open;
到这边可能情况就不太一样了,我这边是
ORA-01172:线程1的恢复停止在块57(在文件2中) ORA-01151:如需要,请使用介质恢复以…
就是需要用recover恢复一下就好啦
SQL> shutdown immediate ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 289406976 bytes Fixed Size 1248576 bytes Variable Size 83886784 bytes Database Buffers 197132288 bytes Redo Buffers 7139328 bytes 数据库装载完毕。 SQL> recover database; 完成介质恢复。 SQL> alter database open; 数据库已更改。 SQL> exit
还有种问题就是
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Process ID: 0 Session ID: 0 Serial number: 0
重启就完事,shutdown - startup - alter open
这边用下 resetlogs,不完全恢复后可正常打开
SQL> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效 SQL> SQL> recover database until time ‘2013-03-01 12:12:12‘; 完成介质恢复。 SQL> alter database open resetlogs; 数据库已更改。 SQL> shutdown 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 6847938560 bytes Fixed Size 2188768 bytes Variable Size 3422554656 bytes Database Buffers 3405774848 bytes Redo Buffers 17420288 bytes 数据库装载完毕。 数据库已经打开。
以上操作中,总要先sqlplus,一般来说直接sqlplus即可,如果用户出了问题,就用空闲进程
sqlplus system/manager11 sqlplus system/
可以使用nolog,如果数据库是带listener的,as sysdba时候 / 可以用 sys/sys
sqlplus /nolog conn / as sysdba conn sys/ as sysdba
顺便记录下,用户被锁的时候:
select username,account_status from dba_users; alter user user_name account unlock;
可以看下密码错误次数限制登录的设置,并改成无限次
select * from dba_profiles where profile=‘DEFAULT‘ and resource_name=‘FAILED_LOGIN_ATTEMPTS‘; alter profile default limit failed_login_attempts unlimited;