当前位置:文档之家› oracle初始化参数文件

oracle初始化参数文件

初始化参数文件即initsid.ora,是配置参数和数值的集合。每个参数值都控制或修改数据库和实例的某个方面,早期的版本把参数都写在initsid.ora文件中,但在oracle8i之后,多数参数已不在该文件中出现。oracle初始化参数文件是一个可以编辑的文本文件。他是在数据库实例启动时被访问,从而得到数据文件、控制文件和日志文件等的路径。
初始化参数文件的默认路径为%oracle_home%\database;(oracle 10g之间),
文本初始化参数文件是一个本地的参数化文件,无论是启动本地数据库还是远程数据库,都需要读取一个本地化参数文件,并使用其中的设置来配置数据库实例。因此要启动远程数据库,则必须在本地的客户机中保存一份文本初始化文件的副本。
文本初始化参数文件的修改必须经过管理员手动进行。虽然可以在数据库运行过程中执行ALTER SYSTEM语句来修改初始化参数。并且不需要重新启动数据库就能生效,但是修改信息并不写入初始化文件中,下次启动数据库时依然使用原来的配置,如果要永久化修改初始化文件,则只能通过编辑初始化参数才能生效。
正是由于以上原因,在oracle9i之后的数据库中引入了服务器初始化参数文件(Server parameter File,spfile),服务器初始化参数文件是一个保存在数据库服务器端的二进制文件。如果管理员需要远程启动数据库实例,并不需要在客户机中保存一份初始化参数文件副本,实例会自动从服务器中读取服务器初始化参数文件。这样做的另一个优点是,确保同一个数据库的多个实例都具有相同的初始化参数设置。此外,如果在数据库中的任何一个实例中执行ALTER SYSTEM语句对初始化参数进行了修改,那么默认情况下(scope=both),都会永久地记录在服务器初始化参数文件中。当数据库下次启动时,这些修改会自动继续生效。
注意:虽然使用"记事本","写字板"等方式可以打开服务器初始化参数文件,并查看其内容,但是任何用户都不能对其中的内容进行直接的修改,否则将导致数据库无法打开或当前运行的数据库崩溃。
在执行STARTUP语句启动数据库时,系统按照如下顺序寻找初始化 参数文件:
1.检查是否使用PFILE参数指定了文本初始化参数文件;
2.如果没有使用PFILE参数,则在默认位置寻找默认名称的服务器初始化参数文件;
3.如果没有找到默认的服务器 初始化参数文件,则在默认位置寻找默认名称的文本初始化参数文件。
创建服务器初始化参数文件:
服务器初始化参数文件必须根据传统的文本初始化参数文件创建,而且创建必须在实例启动之前完成。
创建服务器初始化参数文件的用户必须是SYSDBA或SYSOPER的权

限。
创建服务器初始化参数文件:
1.文件中要包含所有参数设置,并将该文件放在数据库服务器上;
2.连接到oracle数据库;
3.利用文本初始化参数文件创建服务器初始化参数文件;
语法:
CREATE SPFILE[='PATH\FILENAME'] FROM PFILE='PATH\FILENAME';
SPFILE子句指定创建的服务器初始化参数文件的名称及存放路径。如果省略该参数设置,则新建的服务器初始化参数文件名称和存放位置为默认值,即文件名为SPFILE.ORA,存放位置为\database目录,PFILE子句指出文本初始化参数文件的名称和位置,如果文件使用默认名称默认位置,则可省略文件名称和位置。
创建语法:
SQL>create spfile from pfile='D:\oracle\admin\orcl\pfile\init.ora';
SQL>create spfile='D:\oracle\ora92\database\SPFILEMYNEWDB.ora'
from pfile='D:\oracle\admin\orcl\pfile\init.ora';
SQL>CREATE spfile from pfile;
注意:
1.在执行CREATE SPFILE语句时不需要启动数据库实例。如果已经启动了数据库实例,并且该数据库实例已经使用了一个服务器初始化参数文件,则新建的服务器初始化参数文件不能覆盖正在使用的初始化参数文件。

修改初始化参数文件的参数:
如果当前实例使用的是文本初始化参数文件,那么alter system语句修改初始化参数只对当前实例有效,并不会保存到初始化参数文件中;如果当前实例使用的是服务器初始化参数文件,那么可以根据ALTER SYSTEM语句中scope子句的不同设置而进行不同的处理;
命令语句:
alter system set parameter_name=value scope=[spfile|memory|both]
scope子句说明:
scope=spfile:对参数的修改仅记录在服务器初始化参数文件中,对动态参数和静态参数都适用,修改后参数在下一次数据库启动时生效。
scope=memory:对参数的修改仅记录在内存中,只适合动态参数的修改,修改后立即生效,由于修改结果并不会保存到服务器初始化参数文件中,因此启动数据库下一次实例时仍然采用修改前的参数设置。
scope=both:对参数的修改同时保存到服务器初始化参数文件和内存中,只适合对动态参数的修改,更改立即生效。并且 下一次启动数据库实例时将使用修改后的参数设置,当执行ALTER SYSTEM语句时,如果没有指定SCOPE子句,那么oracle将scope设置为BOTH
注意:
1.动态参数是指数据库运行过程中可以进行修改并能立即生效的参数;
静态参数是指修改后只能在数据库实例下一次启动时才能生效的参数;
2.如果当前数据库实例使用的是服务器初始化参数文件,那么对静态参数修改时,scope子句只能设置为SPFILE.
3.如果当前数据库使用的是文本初始化参数文件,那么scope子句的设置只能为MEMORY.
修改JOB_QUERY_PROCESSES:
ALTER SYSTEM SET JOB_

QUERY_PROCESSES=50 SCOPE=MEMORY;
ALTER SYSTEM SET JOB_QUERY_PROCESSES=50 SCOPE=SPFILE;
ALTER SYSTEM SET JOB_QUERY_PROCESSES=50 SCOPE=BOTH;
如果静态参数DB_FILE,则必须将SCOPE子句设置为SPFILE.
ALTER SYSTEM SET DB_FILES=100 SCOPE=SPFILE;
在修改参数的同时,可以通过COMMENT语句为参数添加注释,如果SCOPE=SPFILE或SCOPE=BOTH,那么注释将写入到服务器初始化参数文件中。
例如:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4='LOCATION=D:/ORACLE/' MANDATORY
COMMENT='ADD NEW DESTIMATION ON OCT 23' SCOPE=SPFILE;
-导出服务器初始化参数文件:
可以将服务器初始化参数文件导出为一个文本初始化参数文件,从而可以读取并修改初始化参数。
通常在如下几种情况下,可以考虑导出服务器初始化参数文件:
1.创建服务器初始化参数文件的备份;
2.为了便于查找系统故障原因等,需要获取当前数据库实例所使用的所有初始化参数值;
3.为了修改服务器初始化参数文件的参数值,先将服务器初始化参数文件导出为文本初始化参数文件,然后对文本初始化参数文件中的参数进行修改,最后根据修改后的文本初始化参数文件闯将新的服务器初始化参数文件。
使用CREATE PFILE语句将服务器初始化参数文件导出为文本初始化参数文件,
语法为:
CREATE PFILE[='path\filename'] FROM SPFILE[='path\filename'];
注意:执行该语句的用户必须具有SYSDBA或SYSOPER权限。
例如:
将指定的服务器初始化参数文件导出为文本初始化参数文件:
语句:
SQL>create pfile='d:oracle\product\10.2.0\initmynewdb.ora'
from spfile='D:\oracle\product\10.2.0\spfilemynewdb.ora';
如果没有PFILE子句和SPFILE子句指定存储路径和初始化参数文件名称,则将默认的服务器初始化参数文件导出为在默认位置上的具有默认名称的文本初始化参数文件。语句为:CREATE PFILE FROM SPFILE;

-查看初始化参数的设置
查看当前数据库实例正在使用的所有参数或某个参数的参数值。
1.SHOW PARAMETERS;
SHOW PARAMETERS DB_FILES;
查看V$PARAMETER和V$PARAMETER2动态性能视图可以得到当前数据库实例正在使用的参数的设置情况。
例如:SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME='DB_FILES';
查看v$SPPARAMETER动态性能视图,可以查看包含在服务器初始化参数文件中的所有初始化参数的设置情况。
SQL>SELECT NAME,VALUE FROM V$SPPARAMETER WHERE NAME='INSTANCE_NAME';

相关主题
文本预览
相关文档 最新文档