码迷,mamicode.com
首页 > 其他好文 > 详细

初始化参数

时间:2016-06-07 19:12:54      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

Oracle提供了许多的初始化参数,通过这些参数对数据库实例进行设置。

管理员可以查看这些参数的设置,也可以修改这些参数的值。
初始化参数具有以下功能:
·对实例进行设置,如设置SGA 中每种缓冲区的大小。
·设置数据库的属性,如设置数据块的大小。
·对用户进程进行设置,如设置最大的并发用户进程数。
.指定数据库中一些重要文件的路径。
·对数据库资源的使用进行限制。

参数文件

初始化参数的值存储在参数文件中。

Oracle提供了许多初始化参数,但是在参数文件中只对少量的初始化参数进行了设置,其他大部分参数都采用默认值
在Oracle数据库中有两种参数文件,其中一种称为服务器参数文件,这是一个二进制文件,文件的命名规则是spfile<sid>.ora,其中<sid>代表实例的名称。
另一个文件称为文本参数文件,这是一个文本文件,用户可以直接修改文件内容,文件的命名规则是init<sid>.ora

这两个文件默认都存放在Oracle安装目录的dbs子目录( UNIX/Linux平台)或database子目录( Windows平台)中。
在启动实例时, Oracle将在指定目录先查找服务器参数文件,如果这个文件不存在,就继续查找文本参数文件。
如果这两个文件都不存在,用户就需要在命令行中指定参数文件的路径。
例如,在SQL*Plus 中通过以下命令启动实例:
startup pfile=‘/export/home/oracle/init.ora‘
其中pfile用于指定一个文本参数文件。

也可以通过以下命令在启动实例时指定一个服务器参数文件:
startup spfile=‘/export/home/oracle/spfile.ora‘
需要注意的是,如果用户通过SQL*Plus远程登录,并且希望通过文本参数文件启动实例,那么必须通过pfile指定参数文件的路径,而这个文件是存储在执行SQL*Plus命令的客户端,而不是存储在服务器端。

初始化参数的查看

管理员可以通过EM 或SQL*Plus 中查看初始化参数的设置。

例如,在SQL*Plus 中通过执行以下命令查看数据块的大小:
show parameter db_block size
如果不知道某个初始化参数的具体名称,但是知道这个参数的某一部分,也可以通过这种方式查看初始化参数的值。
例如,以下命令用于查看包含字符串“ log_archive_”的所有参数:
 show parameter log archive_
也可以通过执行SELECT命令,从动态性能视图v$parameter查看初始化参数的信息。
例如:
SELECT value FROM v$parameter WHERE name=‘db_block_size‘;

初始化参数的修改:

根据作用范围的不同,把初始化参数分为三种类型包括:静态参数、实例级参数、会话级参数。
其中静态参数是不能修改的,自从数据库创建之后这些参数就一直保持某个特定值,如表示数据块大小的DB_BLOCK_SIZE。
实例级参数和会话级参数是可以修改的,其中实例级参数在整个实例范围内有效,这样的参数只能由SYS用户修改。
会话级参数只在当前会话范围内有效,会话结束后参数就失去作用,每个用户都可以修改自己的会话级参数。
为了查看初始化参数的详细信息,可以在SQL*Plus 中执行以下SELECT命令:

SELECT value, isdefault, isses_modifiable, issys_modifiable, ismodified FROM v$parameter WHERE name=‘utl_file_dir‘;

有两种方法可以用来修改初始化参数,一种方法是直接编辑文本参数文件,然后重新启动实例,这样新的参数值就会起作用;另一种方法是在EM或SQL*Plus 中动态修改。
Oracle推荐使用后一种方法,因为这种方法可以把对数据库系统的影响减到最小。
有些参数修改以后立即起作用,有些参数修改以后必须重新启动实例才能起作用。

在SQL*Plus 中修改初始化参数的命令是ALTER SYSTEM 。
例如:

ALTER SYSTEM SET utl_file_dir=‘D:\oracle\product\10.2.0\db_1\database‘;

这条命令在执行时将产生错误信息,原因是这个参数的值不能立即起作用,必须把实例后参能生效。
在修改参数时,可以通过SCOPE关键字指定参数什么时候生效

例如:

ALTER SYSTEM SET utl_file_dir=‘D:\oracle\product\10.2.0\db_1\database‘ scope=spfile;

SCOPE有三个可选值,含义如下:
MEMORY :参数值立即其作用,但是实例重新启动后新的参数值将失效。
SPFILE :将参数值记录在服务器参数文件中,重新启动实例后参数值将生效。
BOTH :一方面参数值立即生效,另一方面把参数值记录在服务器参数文件中,这样就可以永久其作用。这个值是默认值

下面是动态性能视图v$parameter的相关信息:

V$PARAMETER displays information about the initialization parameters(初始化参数) that are currently in effect(有效的) for the session. A new session inherits parameter values from the instance-wide values displayed by the V$SYSTEM_PARAMETER view.

ColumnDatatypeDescription

NUM

NUMBER

Parameter number

NAME

VARCHAR2(80)

Name of the parameter

TYPE

NUMBER

Parameter type:

  • 1 - Boolean

  • 2 - String

  • 3 - Integer

  • 4 - Parameter file

  • 5 - Reserved

  • 6 - Big integer

VALUE

VARCHAR2(4000)

Parameter value for the session (if modified within the session); otherwise, the instance-wide parameter value

DISPLAY_VALUE

VARCHAR2(4000)

Parameter value in a user-friendly format. For example, if the VALUE column shows the value 262144 for a big integer parameter, then theDISPLAY_VALUE column will show the value 256K.

DEFAULT_VALUE

VARCHAR2(255)

The default value for this parameter

ISDEFAULT

VARCHAR2(9)

Indicates whether the parameter is set to the default value (TRUE) or the parameter value was specified in the parameter file (FALSE)

ISSES_MODIFIABLE

VARCHAR2(5)

Indicates whether the parameter can be changed with ALTER SESSION(TRUE) or not (FALSE)

ISSYS_MODIFIABLE

VARCHAR2(9)

Indicates whether the parameter can be changed with ALTER SYSTEM and when the change takes effect:

  • IMMEDIATE - Parameter can be changed with ALTER SYSTEMregardless of the type of parameter file used to start the instance. The change takes effect immediately.

  • DEFERRED - Parameter can be changed with ALTER SYSTEMregardless of the type of parameter file used to start the instance. The change takes effect in subsequent sessions.

  • FALSE - Parameter cannot be changed with ALTER SYSTEM unless a server parameter file was used to start the instance. The change takes effect in subsequent instances.

ISPDB_MODIFIABLE

VARCHAR2(5)

Indicates whether the parameter can be modified inside a PDB (TRUE) or not (FALSE).

In a non-CDB, the value of this column is NULL.

ISINSTANCE_MODIFIABLE

VARCHAR2(5)

For parameters that can be changed with ALTER SYSTEM, indicates whether the value of the parameter can be different for every instance (TRUE) or whether the parameter must have the same value for all Real Application Clusters instances (FALSE). If the ISSYS_MODIFIABLE column is FALSE, then this column is always FALSE.

ISMODIFIED

VARCHAR2(10)

Indicates whether the parameter has been modified after instance startup:

  • MODIFIED - Parameter has been modified with ALTER SESSION

  • SYSTEM_MOD - Parameter has been modified with ALTER SYSTEM(which causes all the currently logged in sessions‘ values to be modified)

  • FALSE - Parameter has not been modified after instance startup

ISADJUSTED

VARCHAR2(5)

Indicates whether Oracle adjusted the input value to a more suitable value (for example, the parameter value should be prime, but the user input a non-prime number, so Oracle adjusted the value to the next prime number)

ISDEPRECATED

VARCHAR2(5)

Indicates whether the parameter has been deprecated (TRUE) or not (FALSE)

ISBASIC

VARCHAR2(5)

Indicates whether the parameter is a basic parameter (TRUE) or not (FALSE)

DESCRIPTION

VARCHAR2(255)

Description of the parameter

UPDATE_COMMENT

VARCHAR2(255)

Comments associated with the most recent update

HASH

NUMBER

Hash value for the parameter name

CON_ID

NUMBER

The ID of the container to which the data pertains. Possible values include:

  • 0: This value is used for rows containing data that pertain to the entire CDB. This value is also used for rows in non-CDBs.

  • 1: This value is used for rows containing data that pertain to only the root

  • n: Where n is the applicable container ID for the rows containing data

初始化参数

标签:

原文地址:http://www.cnblogs.com/jy627625/p/5567822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!