这几天在VMware上装了个Redhat和oracle9i, 本以为一切都挺顺利的,但在用startup启动oracle时,出现下面的错误:
ORA-00205: error in identifying controlfile, check alert log for more info
然后试了试alter database mount,又出现了
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
根据错误提示,去查看了alert log文件,具体位置在 $ORA_Home$/rdbms/log/alert_oradb.log,发现如下错误提示:
ORA-00202: controlfile: 'ora_control1'
ORA-27037: unable to obtain file status
想到可能是由于自己是拷贝的dbs下的init.ora,然后改变为自己ora文件(initoradb.ora,规则为init<sid>.ora),并没有相应的控制文件,随即打开initoradb.ora文件一看究竟,原来有以下几句造成了错误:
1.在这里没有用自己的数据库名替换DEFAULT
# replace DEFAULT with your database name
db_name=DEFAULT
2.如果不用控制文件启动,就把这句注释掉好了
# define two control files by default
control_files = (ora_control1, ora_control2)
修改完毕后保存,然后从新开始:
1.SQL> sqlplus /nolog
SQL>conn / as sysdba
2.连接后startup
startup nomount pfile=/opt/ora9/product/9.2.0.4/dbs/initoradb.ora
这句的意思就是不用控制文件启动,并且初始文件用/opt/ora9/product/9.2.0.4/dbs/initoradb.ora;如果不写pfile=/opt/ora9/product/9.2.0.4/dbs/initoradb.ora,则会用dbs下的init.ora来启动,同样会造成以上提到过的错误,因为inti.ora例子文件,没有根据你的需求作相应的改变。
3.启动成功后,创建数据库
SQL>create database testdb;
注意,这个数据库的名字要和你initoradb.ora(或你的初始文件)中声明的那个名字一直啊,要不会报错。
4.数据库创建成功后,就可以进行你的工作啦!!!