【Oracle】数据库启动阶段参数文件、控制文件的问题处理
Oracle启动分三个阶段:
nomount:
首先查找参数文件(pfile/spfile),根据文件创建实例。Nomount的过程是启动数据库实例的过程。
没有参数文件无法nomount
mount:
从参数文件中获得控制文件的位置信息,然后打开控制文件。
--没有控制文件无法mount
open:
打开控制文件中所有描述的文件。
--没有数据文件无法open
-------------------------------------------------------------------------------------
NLS_LANG设置要点:
Chcp = 936 表示gbk,nls_lang设置如下:
set NLS_LANG=simplifiedchinese_china.zhs16gbk
客户端系统的编码是什么,nls_lang就需要设成什么编码。Oracle在存储数据时,会对接收到的数据根据nls_lang的编码进行解码,然后再以oracle数据的编码存入数据库。
一、参数文件生成
空闲实例可以把pfile与spfile互转
Pfile(文本文件):客户端文件,可以放在其它位置 。
Spfile(二进制文件):服务端文件,只能放在database下,但可以用pfile中指定位置。
Create pfile from spfile;
Create spfile from pfile;
注意点:修改参数前,最好先生成一个pfile文件。
把spfile 与pfile移动到别的地方启动:
若是有initsid.ora文件,则可以把initsid.ora文件放到database目录下,或者用指定方法启动:
SQL> startup nomountpfile=‘D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\bak\inith
xw168.ora‘
指定参数启动的,不能直接create spfile from pfile;
关掉实例,重新 startup nomount即可启动。
二、spfile文件移动位置
在database目录下创建initsid.ora文件,在里面只写以下内容:
spfile=‘D:\oracle\product\11.2.0\dbhome_1\database\bak\SPFILEHXW168.ORA‘
spfile文件的位置。如下图:
show parameter spfile;后可以查到现在使用的spfile是在bak目录下面。
三、添加或删除控制文件
参数文件记录控制文件位置,控制文件位置:
D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL
D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL
把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL文件移走,启动如下:
Alter日志如下:
有二个方法可以解决:
1、由于控制文件是互相镜像,把另一个控制文件复制过来并改名,即可。
2、在参数文件中把这个控制文件信息删除,操作步骤如下:
查看control_files参数类型,可以看到false:表示修改后需要重启生效。
SQL> alter system setcontrol_files=‘D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO
L02.CTL‘;这样会报错,所以需要加上scope=spfile;
关闭数据库再启动到nomount下,可以看到只有一个控制文件了:
可以正常进入mount状态
把D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL添加回去。命令如下:
SQL> alter system set control_files=‘D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO
L02.CTL’,’D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL‘scope=spfile;
关闭数据库,把D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL文件复制到并改名D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL。
三、参数设置
1、 修改session的参数
Alter nls_date_format=’yyyy/mm/ddhh24:mi:ss’;
2、 修改系统的参数
Alter system set control_files=’path1’,‘path2‘scope=spfile;
3、 查看参数默认值
--查看参数有什么值
select * from v$parameter_valid_valueswhere name=‘audit_trail‘
--查看参数是什么静态还是动态
select * from v$system_parameter wherename=‘audit_trail‘
ISSYS_MODIFIABLE:
False:重启后生效,需要指定scope=spfile;
IMMEDIATE:更改后马上生效。
本文出自 “尽管错,让我错到死!” 博客,请务必保留此出处http://hxw168.blog.51cto.com/8718136/1551541
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。