① 请问init.ora 这个文件是做什么的
兄弟,只能说你杯具了,以后FORCE这个选项最好少用可以看到是控制文件不一致导致要禁用的话在INIT文件里把CONTROLFILE那一行的CONTROL02路径删掉再用STARTUP PFILE='你的INIT路径'打开禁用CONTROLFILE的方法不提倡;完整解决方案:1.删除02,03这两个控制文件(我认为5667是最新的),然后拷贝control01.ctl 2份,分别改名control02.ctl,control03.ctl再重启数据库到 mount再OPEN:alter database open(如果它提示要RECOVER的话你就RECOVER DATABASE 。如果打开失败就alter database open resetlogs,但是这样之后最好做此全备份)2.要是上述方法不行的话 (1)有最近控制文件备份时:用RMAN 还原控制文件(在NOMOUNT状态登录RMAN,再RESTORE CONTROLFILE FROM AUTOBACKUP,我默认这些操作你都会的^^,具体不说了),再在MOUNT下alter database open resetlogs。(如果你有用户管理的备份那直接拷过去就行了。) (2)没有控制文件备份时:这种情况是最坏的,只能在NOMOUNT下重建控制文件再用RESETLOGS打开数据库,但是原来控制文件中的一些信息会丢失,比如备份的信息 。希望能解决你的问题。 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
② oracle运行sql空闲实例,而且startup不了,没有pfile下的init.ora文件
oracle对中文识别还没那么智能,不要将ORACLE安装在中文目录下。你可以找一下e:\oracle????\app\oracle\proct\11.2.0\server\dbs,里面应该有个spfileXE.ora文件,因为有回中文oracle识别答不了它,你可以把这个文件复制到没有中文的文件夹下,比如 E:\spfileXE.ora启动时指定它startup pfile=e:\spfileXE.ora不过即使是能够正常启动,很可能使用过程中还会出现问题
③ init.ora和init.SID.ora 什么区别
spfilesid.ora与initsid.ora的区别现在假设你的ORACLE_SID为testdb,那么spfiletestdb.ora就是服务器参数文件,inittestdb.ora就是一般的初始化参数文件, spfile好像是从oracle 9i开始的吧,它是二进制的,不过你也可以通过 $ strings spfiletestdb.ora看一下, 或者 sql>create pfile='/home/db/oracle/script/testdb.ora' from spfile; 然后 $ cat /home/db/oracle/script/testdb.ora 看一下他的内容(testdb.ora现在是文本文件了) inittestdb.ora是文本文件,可以看的到的 你启动机器的时候,可以指定参数文件,否这就默认为用spfile启动,unix系统是在 /dbs目录下,windows系统是在 /database目录下, $ startup pfile='/home/db/oracle/script/testdb.ora'; 注意: 是pfile,千万别写成了spfile='/…..'了 数据库启动分为三个阶段(nomount,mount,open状态,oracle另外一个状态是shutdown状态) 1.启动到nomount阶段时,首先要查找参数文件(顺序为先查找spfile$sid.ora,没有查到就查找init$sid.ora,再没有查到就查找init.ora,呵呵,还没有,那你就等着瞪眼吧,也就是oracle启动不了,要报错了,具体的原因你可以到www.eygle.com上去看去) $ startup nomount; 2.启动到mount阶段的时候,检查控制文件和口令文件,如果有一个控制文件个屁了,那么也就启动不到mount状态,只能启动到nomount状态 (初始化参数找的着的情况下) $ startup nomount; $ alter database mount; 或者直接 $ startup mount; 3.启动到open阶段,根据控制文件对数据文件和日志文件进行判断,判断没有问题后,数据库打开,大家可以干活了 $ alter database open; 或者 直接 $ startup 啥,你非要用 $ startup open;,算了,也是可以地,不过你也太那个了吧…, 好了,(windows下与unix不太一样,windows下oracle自动起来了,你如果想试验一下,进入 command 窗口 开始>–>运行–>cmd–>C:\Documents and Settings\Administrator>sqlplus "/ as sysdba" sql>shutdown immediate; 确定不是生产库哟,数据库没有事务的时候,先shutdown,然后一步一步试验去吧)