----------------数据库启动所需要的参数文件-----------------------------------------
参数文件分为初始化参数文件(pfile)和服务器参数文件(spfile)
---pfile
pfile是一个文本文件。服务器参数修改后,不会写回到参数文件,而要手动再次修改pfile.默认文件名initSID.ora
---spfile
spfile是一个二进制文件,不能用vi vim去编辑修改,否则会损坏。服务器参数修改后,会自动写回到参数文件。默认文件名spfileSID.ora.
---pfile和spfile的关系:
spfile和pfile可以相互转换,利于spfile创建pfile,也可以利用pfile创建spfile.
SQL>create spfile from pfile;
SQL>create pfile from spfile; ---创建SPFILE需要SYSDBA或者SYSOPER的权限
---参数文件的位置:
$ORACLE_HOME/dbs
---判断服务是以spfile还是pfile启动的:
show paranmeter spfile;
如果value列有值就是以spfile启动,反之pfile
---数据库在启动的时候使用参数文件的情况:
当使用不带pfile的子句的startup时,Oracle 将从平台指定的默认位置上的服务器参数文件(SPFILE 中读取初始化参数)
startup启动数据库可能无法启动,报错can't find init file……的错误,需要复制一个初始化文件:
cp /home/oracle/10.1/admin/orcl/pfile/init.ora.* /home/oracle/10.1/dbs/initorcl.ora之后再重新执行startup
oracle启动的时候需要读取初始化参数文件,文本文件形式pfile
$ORACLE_HOME/dbs目录下,手工创建 cp init.ora $ORACLE_HOME/dbs/initSID.ora,之后再修改initSID.ora
SPFILE是binary file二进制文件,不能用vi来修改,只能通过sql/plus通过sql命令来修改。一直存在服务器端,备份初始化参数文件。创建spfile,需要有SYSDBA权限才能执行,create spfile = '$ORALCE_HOE/dbs/spfileSID.ora' FROM PFILE='$ORALCE_HOME/dbs/initSID.ora';可以在启动之前或者是启动之后创建。
sqlplus /nolog
conn /as sysdba
create spfile from pfile;//创建默认的spfile
查看spfile文件的内容:strings spfileSID.ora | more,查看spfile参数可以使用V$SPPARAMETER
----如果在.profile设置的OERACLE_SID不正确的话,在数据库启动的时候,会报错,找不到相应的启动参数文件InitSID.ora
create pfile='/u01/oracle/dbs/init.ora'
from spfile='u01/oracle/dbs/Spfile.ora';
create Spfile='Spfile_name'
FROM PFILE='pfile_name';
--- 数据库特殊启动
sqlplus "/as sysdba"
startup pfile='/home/oracle/OraHome_1/dbs/initcellc47.ora'
create spfile from pfile;
shutdown abort;
startup
----数据库启动的3个阶段:
NOMOUNT
只启动实例,读取参数文件分配内存、生成进程,主要用于维护操作,
如创建控制文件、建库等。
MOUNT
启动到NOMOUNT,读取控制文件,获得数据库的物理信息,但这些不进行检查存在性
也用于维护操作,如:数据恢复,修改数据模式(归档、闪回、审记和等)
OPEN
打开数据库,生成数据库的逻辑结构
---数据库启动报错:
误删除某个数据文件导致数据库起不来
SQL> startup
ORACLE instance started.
Total System Global Area 96393244 bytes
Fixed Size 75804 bytes Variable Size 56918016 bytes
Database Buffers 39321600 bytes Redo Buffers 77824 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file ORA- 01110: data file 10: 'D:\TEST.DBF'
SQL> alter database datafile 'd: \test.dbf' offline drop;
Database altered.
SQL > alter database open;