启动阶段:nomout
查看命令:
show parameter spfile/pfile
如果数据库使用spfile参数文件,那么用show parameter spfile与 show parameter pfile的结果一致,
如果数据库使用pfile参数文件,那么上面命令得到的结果都是空
两类参数文件:
pfile:静态文件,可以使用记事本,vi,vim等编辑器修改,文件名通常为init<sid>.ora。修改之后不会马上生效,数据库必须重新启动读取这个文件才行。
强制pfile启动:startup file='文件地址'
spfile:动态参数文件(二进制),不能直接修改,只能存放在Oracle服务器端,可以使用EM或指令来修改。 文件名通常为spfile<sid>.ora,支持RMAN备份。
修改方式:alter system set parameter=Value scope=spfile|both|memory
1. scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2. scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3. scope=both: 对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项。
如果使用了服务器参数文件,则在执行alter system语句时,scope=both是default的选项。
如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错。
优先级别:
Oracle 启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错
spfile<sid>.ora --> spfile<sid>.ora -->init<sid>.ora
文件创建转换
spfile与pfile之间可以相互转换
spfile 转化为pfile pfile 转换为spfile
从spfile来生成pfile
create pfile from spfile ,执行完毕后,pfile 将保存为$ORACLE_HOME/dbs/init$ORACLE_SID.ora
也可以指定pfile 的路径:create pfile = '<dir>' from spfile;
由pfile 生成spfile
create spfile from pfile
create spfile from pfile = '<dir>' create spfile = '<dir>' from pfile create spfile = '<dir>' from pfile= '<dir>'
11g中的新指令,从memeory中生成
create spfile = '<dir>' from memeory */
文件丢失,手工重建
1、进入bdump文件夹,找到alert_denver.log
2、找到下面语句
System parameters with non-default values:
processes = 150
sga_target = 293601280
control_files = D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
db_block_size = 8192
compatible = 10.2.0.3.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = D:\oracle\product\10.2.0\db_1\flash_recovery_area
db_recovery_file_dest_size= 2147483648
_no_recovery_through_resetlogs= TRUE
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=orclXDB)
audit_file_dest = D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\ADUMP
background_dump_dest = D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\BDUMP
user_dump_dest = D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\UDUMP
core_dump_dest = D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\CDUMP
db_name = orcl
open_cursors = 300
pga_aggregate_target = 96468992
把这些文件复制到文本中,编辑成bbk.ora 注意:打字符文件用单引号扩起来。
processes = 150
sga_target = 293601280
control_files = 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'
db_block_size = 8192
compatible = '10.2.0.3.0'
db_file_multiblock_read_count= 16
db_recovery_file_dest = D:\oracle\product\10.2.0\db_1\flash_recovery_area
db_recovery_file_dest_size= 2147483648
_no_recovery_through_resetlogs= TRUE
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain = ''
dispatchers = '(PROTOCOL=TCP) (SERVICE=orclXDB)'
audit_file_dest = 'D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\ADUMP'
background_dump_dest = 'D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\BDUMP'
user_dump_dest = 'D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\UDUMP'
core_dump_dest = 'D:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\CDUMP'
db_name = orcl
open_cursors = 300
pga_aggregate_target = 96468992
3、指定从pfile=bbk.ora启动