【Oracle】数据库启动阶段参数文件、控制文件的问题处理
2014-09-12 12:46
465 查看
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文件。
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdb2TqkbnAAXCiVz0YHI712.jpg)
把spfile 与pfile移动到别的地方启动:
![](http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdemCtFD7AACVOJaj8DY724.jpg)
若是有initsid.ora文件,则可以把initsid.ora文件放到database目录下,或者用指定方法启动:
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSdi6y7tFdAAEEfulkLZo945.jpg)
SQL> startup nomountpfile='D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\bak\inith
xw168.ora'
指定参数启动的,不能直接create spfile from pfile;
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSdnPAD8aKAADJG0deABA153.jpg)
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdoSTEjoaAACBgAp47BU187.jpg)
关掉实例,重新 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目录下面。
![](http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdsqiUrD1AATxIfkrZxw299.jpg)
三、添加或删除控制文件
参数文件记录控制文件位置,控制文件位置:
D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL
D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd0KiZ7jAAAElgdi0vNo345.jpg)
把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL文件移走,启动如下:
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSd1Oj2CU1AAGXHhQeIQ4271.jpg)
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSd0KCSaX5AADTn6M3iLQ875.jpg)
Alter日志如下:
![](http://s3.51cto.com/wyfs02/M00/49/4A/wKioL1QSd5aQ_rMvAAGIHhPinXg980.jpg)
有二个方法可以解决:
1、由于控制文件是互相镜像,把另一个控制文件复制过来并改名,即可。
2、在参数文件中把这个控制文件信息删除,操作步骤如下:
查看control_files参数类型,可以看到false:表示修改后需要重启生效。
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd8Lj00ZoAAEd489pg70668.jpg)
SQL> alter system setcontrol_files='D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO
L02.CTL';这样会报错,所以需要加上scope=spfile;
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSeAiCMuKbAAE60xNonDE659.jpg)
关闭数据库再启动到nomount下,可以看到只有一个控制文件了:
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeE_QjUzvAAE0GgqQsgI693.jpg)
可以正常进入mount状态
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSeFOxFLxUAACGkpmgeXE709.jpg)
把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。
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeH6S1NEYAAHq2y3I3RM013.jpg)
三、参数设置
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
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文件。
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdb2TqkbnAAXCiVz0YHI712.jpg)
把spfile 与pfile移动到别的地方启动:
![](http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdemCtFD7AACVOJaj8DY724.jpg)
若是有initsid.ora文件,则可以把initsid.ora文件放到database目录下,或者用指定方法启动:
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSdi6y7tFdAAEEfulkLZo945.jpg)
SQL> startup nomountpfile='D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\bak\inith
xw168.ora'
指定参数启动的,不能直接create spfile from pfile;
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSdnPAD8aKAADJG0deABA153.jpg)
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSdoSTEjoaAACBgAp47BU187.jpg)
关掉实例,重新 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目录下面。
![](http://s3.51cto.com/wyfs02/M00/49/48/wKiom1QSdsqiUrD1AATxIfkrZxw299.jpg)
三、添加或删除控制文件
参数文件记录控制文件位置,控制文件位置:
D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL
D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTROL02.CTL
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd0KiZ7jAAAElgdi0vNo345.jpg)
把其中D:\ORACLE\ORADATA\HXW168\CONTROL01.CTL文件移走,启动如下:
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSd1Oj2CU1AAGXHhQeIQ4271.jpg)
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSd0KCSaX5AADTn6M3iLQ875.jpg)
Alter日志如下:
![](http://s3.51cto.com/wyfs02/M00/49/4A/wKioL1QSd5aQ_rMvAAGIHhPinXg980.jpg)
有二个方法可以解决:
1、由于控制文件是互相镜像,把另一个控制文件复制过来并改名,即可。
2、在参数文件中把这个控制文件信息删除,操作步骤如下:
查看control_files参数类型,可以看到false:表示修改后需要重启生效。
![](http://s3.51cto.com/wyfs02/M01/49/48/wKiom1QSd8Lj00ZoAAEd489pg70668.jpg)
SQL> alter system setcontrol_files='D:\ORACLE\FLASH_RECOVERY_AREA\HXW168\CONTRO
L02.CTL';这样会报错,所以需要加上scope=spfile;
![](http://s3.51cto.com/wyfs02/M01/49/4A/wKioL1QSeAiCMuKbAAE60xNonDE659.jpg)
关闭数据库再启动到nomount下,可以看到只有一个控制文件了:
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeE_QjUzvAAE0GgqQsgI693.jpg)
可以正常进入mount状态
![](http://s3.51cto.com/wyfs02/M02/49/48/wKiom1QSeFOxFLxUAACGkpmgeXE709.jpg)
把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。
![](http://s3.51cto.com/wyfs02/M02/49/4A/wKioL1QSeH6S1NEYAAHq2y3I3RM013.jpg)
三、参数设置
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
相关文章推荐
- oracle启动参数文件全部丢失 没有备份 简单三步正常启动数据库
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- 相克军_Oracle体系_随堂笔记016-参数文件及数据库的启动和关闭
- Oracle 控制文件中MAXDATAFILES, DB_FILES 参数 与 数据库最大datafiles 关系说明
- oracle启动数据库和参数文件的关系
- oracle 11g 文件管理(启动,参数,密码,控制,日志)
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- Oracle 11g R2 DBA 操作指南(10) 控制文件和数据库启动
- oracle-dba-控制文件和数据库启动
- Oracle 11g 参数修改错误导致数据库无法启动的处理方法.[ORA-01034,ORA-27101]
- ORACLE 11G 中没有参数文件和控制文件如何通过rman恢复数据库
- ORA-01078,LRM-00109参数文件问题,导致数据库无法启动
- Oracle 11g参数修改错误导致数据库无法启动的处理方法.[ORA-01034,ORA-27101,ORA-00824]
- Windows7蓝屏导致Oracle回滚段损坏(ORA-01115和ORA-27070)数据库无法启动的问题处理
- 当spfile文件中的参数修改错误,导致数据库无法启动问题
- 数据库启动与参数文件
- oracle 11g 表空间的存储文件错误,导致数据库不能启动
- 解决修改错参数导致数据库不能启动问题
- oracle10.2.0.4/5版本数据库无法启动dbconsole问题解决
- 丢失oracle参数文件,数据文件以及控制文件,只有rman备份的恢复