zoukankan      html  css  js  c++  java
  • 初始化参数文件

    1、初始化参数文件
     
    启动实例时会读取初始化参数文件。参数文件有两种类型。
     
    • 服务器参数文件(SPFILE):
    二进制文件,由oracle server维护,rman可以备份。
    创建spfile
    create spfile[=‘路径’ ]from pfile[=‘路径’];
     
    这是首选的初始化参数文件类型。
    这是一个由数据库服务器写入或读取的二进制文件,不得手动进行编辑。
    此文件驻留在执行Oracle 实例的服务器上,而且永远存在,不受数据库关闭和启动的影响。
    文件默认名为spfile<SID>.ora,启动时会自动搜索此文件。
     
    • 文本初始化参数文件:
    文本文件,操作系统命令修改,手动修改,下次启动有效实例启动时打开
    默然路径:$ORACLE_HOME/dbs
    创建pfile
    create pfile from spfile
    或者cp init.ora $ORACLE_HOME/dbs/inittest0924.ora
     
    这类初始化参数文件可由数据库服务器读取,但不能由其写入。
    必须使用文本编辑器手动设置和更改初始化参数设置,这些设置是永久的,不受数据库关闭或启动的影响。
    此文件的默认名称为init<SID>.ora,如果启动时未找到SPFILE,则自动搜索此文件。
    建议创建SPFILE,从而以动态方式维护初始化参数。通过使用SPFILE,可以在服务器端的磁盘文件中永久存储和管理初始化参数。
     
    2、初始化参数的类型
     
    Oracle DB 服务器有下列类型的初始化参数:
     
    派生参数
     
    一些初始化参数是派生的,也就是说它们的值是通过计算其它参数的值得来的。通常,不应变更派生参数的值。但如果进行了变更,则需指定的值将覆盖计算得出的值。
    例如,SESSIONS参数的默认值派生于PROCESSES参数的值。如果PROCESSES的值发生更改,则SESSIONS的默认值也会发生更改,除非使用指定的值覆盖它。
     
    与操作系统相关的参数
     
    一些初始化参数的有效值或值范围与主机操作系统相关。例如,
    DB_FILE_MULTIBLOCK_READ_COUNT参数指定在一次顺序扫描期间在一个I/O 操作中读取的最大块数;此参数与平台相关。
    这些块的大小(由DB_BLOCK_SIZE设置)的默认值与操作系统相关。
     
    设置参数值
     
    初始化参数最有可能改进系统性能。一些参数设置容量限制,但不影响性能。
    例如,当OPEN_CURSORS的值为10时,尝试打开第11 个游标的用户进程将收到错误消息。有些参数会影响性能,但不施加绝对限制。
    例如,减小OPEN_CURSORS的值可能会降低性能,但不会阻止工作。
    增大参数值也许可以改善系统性能,但增大大多数参数也会增加系统全局区(SGA) 大小。
    较大的SGA 可以将数据库性能提升至某个点。在虚拟内存操作系统中,如果SGA 是交换进/出内存的,则太大的SGA 会降低性能。
    设置控制虚拟内存工作区域的操作系统参数时,应考虑SGA 大小。操作系统配置也会限制SGA 的最大大小。
     
     
    3、简化初始化参数
     
    初始化参数有两种类型:基本初始化参数和高级初始化参数
     
    大多数情况下,只需设置和优化30 个基本参数便可获得合理的数据库性能。极少数情况下,需要修改高级参数才能获得优化的性能。
    基本参数指的是为了让数据库以良好性能运行而设置的参数。其它所有参数都被认为是高级参数。
    基本参数示例:
    • 确定全局数据库名称:DB_NAME和DB_DOMAIN
    • 指定快速恢复区:DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE
    • 指定DDL 锁定超时:DDL_LOCK_TIMEOUT
    • 指定还原空间管理的方法:UNDO_MANAGEMENT
    • COMPATIBLE初始化参数和不可逆兼容性
     
     
    4、初始化参数:示例
    CONTROL_FILES参数:指定一个或多个控制文件名。Oracle 强烈建议多路复用并镜像控制文件。值范围:一个到八个文件名(带路径名)。默认范围:与操作系统相关。
     
    DB_FILES参数:指定可为此数据库打开的最大数据库文件数。值范围:与操作系统相关。默认值:与操作系统相关(在Solaris 上为200)。
     
    PROCESSES参数:指定可同时连接到Oracle 服务器的最大操作系统用户进程数。此值应允许所有后台进程和用户进程连接到服务器。值范围:从6 到一个与操作系统相关的值。默认值:与操作系统相关。
     
    DB_BLOCK_SIZE参数:指定一个Oracle DB 块的大小(字节)。这个值是在创建数据库时设置的,此后不可更改。该值指定数据库的标准块大小所有表空间默认情况下将使用该大小。值范围:2048 到32768(与操作系统相关)。默认值:8192(与操作系统相关)。
     
    DB_CACHE_SIZE参数:指定标准块缓冲区高速缓存的大小。值范围:至少为16 MB。默认值:48 MB。
     
    SGA_TARGET指定所有SGA 组件的总大小。如果指定了SGA_TARGET,则会自动调整以下内存池的大小:
    • 缓冲区高速缓存(DB_CACHE_SIZE)
    • 共享池(SHARED_POOL_SIZE)
    • 大型池(LARGE_POOL_SIZE)
    • Java 池(JAVA_POOL_SIZE)
    • 流池(STREAMS_POOL_SIZE)
     
    如果将这些自动调整的内存池设置为非零值,则自动共享内存管理(ASMM) 将这些值作为下限。如果某个应用程序组件需要内存达到下限数量才能正常使用,则应当设置下限值。
    以下池是手动调整大小的组件,不受ASMM 的影响:
    • 日志缓冲区
    • 其它缓冲区高速缓存(如KEEP和RECYCLE)和其它块大小
    • 固定SGA 和其它内部分配
    启用ASMM 时,会从SGA_TARGET的总可用内存中减去分配给上述池的内存。
    注:MMON 进程计算自动优化的内存池的值以支持ASMM。
     
    MEMORY_TARGET指定Oracle 系统范围内可用的内存。数据库将内存调整为MEMORY_TARGET值,并根据需要减小或增加SGA 和PGA。
    在基于文本的初始化参数文件中,如果省略MEMORY_MAX_TARGET并包括MEMORY_TARGET的值,数据库会自动将MEMORY_MAX_TARGET设置为MEMORY_TARGET的值。
    如果省略MEMORY_TARGET所对应的行并包括MEMORY_MAX_TARGET的值,则MEMORY_TARGET参数默认为零。
    启动后,如果MEMORY_TARGET不超过MEMORY_MAX_TARGET值,则可以动态地将该参数更改为非零值。
    可以使用ALTER SYSTEM命令修改MEMORY_TARGET参数。值范围是从152 MB 到MEMORY_MAX_TARGET。
     
    PGA_AGGREGATE_TARGET参数指定分配给此实例所挂接的所有服务器进程的程序全局区(PGA) 内存量。
    这些内存不驻留在系统全局区(SGA) 中。数据库将此参数用作要使用的目标PGA 内存量。
    设置此参数时,从系统上可供Oracle 实例使用的总内存中减去SGA。值范围由整数加上字母K、M或G(分别以KB、MB 或GB 为单位指定此限制)构成。最小值是10 MB,最大值是4096 GB。默认值是10 MB 或SGA 大小的20%(取两者中较大的值)。
     
    SHARED_POOL_SIZE参数:指定共享池的大小(字节)。共享池包含诸如共享游标、存储过程、控制结构和并行执行消息缓冲区等对象。该值比较大时可以改进多用户系统的性能。值范围:与操作系统相关。默认值:操作系统是64 位时为64 MB;否则为16 MB。
     
    UNDO_MANAGEMENT参数:指定系统应使用的还原空间管理模式。如果设置为AUTO,则在自动还原管理(AUM) 模式下启动实例。否则,在回退还原(RBU) 模式下启动实例。在RBU 模式下,还原空间在外表上被分配为回退段。在AUM 模式下,还原空间在外部被分配为还原表空间。值范围:AUTO或MANUAL。如果启动第一个实例时省略了UNDO_MANAGEMENT参数,则使用默认值AUTO。
     
     
    查看pfile内容
     
    [oracle@rtest dbs]$ pwd
    /u01/app/oracle/product/11.2.0/dbhome_1/dbs
    [oracle@rtest dbs]$ more inittest0924.ora
    # Oracle init.ora parameter file generated by instance test0924 on 09/27/2013 14:34:25
    audit_file_dest='/u01/app/oracle/admin/test0924/adump'
    audit_trail='DB'
    background_dump_dest='/u01/app/oracle/diag/rdbms/test0924/test0924/trace' #Deprecate parameter
    compatible='11.2.0.0.0'
    control_files='/u01/app/oracle/oradata/test0924/control01.ctl'
    control_files='/u01/app/oracle/fast_recovery_area/test0924/control02.ctl'
    core_dump_dest='/u01/app/oracle/diag/rdbms/test0924/test0924/cdump'
    db_block_size=8192
    db_domain=''
    db_keep_cache_size=48M
    db_name='test0924'
    db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
    db_recovery_file_dest_size=4122M
    diagnostic_dest='/u01/app/oracle'
    dispatchers='(PROTOCOL=TCP) (SERVICE=test0924XDB)'
    log_buffer=19365888 # log buffer update
    open_cursors=300
    optimizer_dynamic_sampling=2
    optimizer_mode='ALL_ROWS'
    pga_aggregate_target=798M
    plsql_warnings='DISABLE:ALL' # PL/SQL warnings at init.ora
    processes=150
    query_rewrite_enabled='TRUE'
    remote_login_passwordfile='EXCLUSIVE'
    resource_manager_plan=''
    result_cache_max_size=12M
    sga_target=2400M
    shared_pool_size=496M
    skip_unusable_indexes=TRUE
    undo_tablespace='UNDOTBS1'
    user_dump_dest='/u01/app/oracle/diag/rdbms/test0924/test0924/trace' #Deprecate parameter
     
     
    查看spfile内容
    [oracle@rtest dbs]$ pwd
    /u01/app/oracle/product/11.2.0/dbhome_1/dbs
    [oracle@rtest dbs]$ strings spfiletest0924.ora
    test0924.__db_cache_size=1811939328
    test0924.__java_pool_size=16777216
    test0924.__large_pool_size=16777216
    test0924.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
    test0924.__pga_aggregate_target=838860800
    test0924.__sga_target=2516582400
    test0924.__shared_io_pool_size=0
    test0924.__shared_pool_size=570425344
    test0924.__streams_pool_size=16777216
    *.audit_file_dest='/u01/app/oracle/admin/test0924/adump'
    *.audit_trail='db'
    *.compatible='11.2.0.0.0'
    *.control_files='/u01
    /app/oracle/oradata/test0924/control01.ctl','/u01/app/oracle/fast_recovery_area/test0924/control02.ctl'
    *.db_block_size=8192
    *.db_domain=''
    *.db_keep_cache_size=50331648
    *.db_name='test0924'
    *.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
    *.db_recovery_file_dest_size=4322230272
    *.diagnostic_dest='/u01/app/oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=test0924XDB)'
    *.open_cursors=300
    *.pga_aggregate_target=836763648
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.sga_target=2516582400
    *.shared_pool_size=520093696
    *.undo_tablespace='UNDOTBS2'
     
     
    5、使用SQL*Plus 查看参数
     
    可以查询数据V$PARAMETER字典视图以查找各个参数的值。
    V$PARAMETER显示当前会话中的当前参数值。
    还可以使用带有任意字符串的SHOW PARAMETER命令来查看包含该字符串的参数。
    以下示例中的查询请求的是参数的名称和值,该示例使用WHERE子句来指定特定参数名称:
     
     
    sys@TEST0924> SELECT name, value FROM V$PARAMETER WHERE name LIKE '%pool%';
    NAME VALUE
    ------------------------------ --------------------
    shared_pool_size 520093696
    large_pool_size 0
    java_pool_size 0
    streams_pool_size 0
    shared_pool_reserved_size 27682406
    buffer_pool_keep
    buffer_pool_recycle
    global_context_pool_size
    olap_page_pool_size 0
    9 rows selected.
     
     
    视图的说明:
     
    sys@TEST0924> desc v$parameter
    Name Null? Type
    ----------------------------------------------------- -------- ------------------------------------
    NUM NUMBER
    NAME VARCHAR2(80)
    TYPE NUMBER
    VALUE VARCHAR2(4000)
    DISPLAY_VALUE VARCHAR2(4000)
    ISDEFAULT VARCHAR2(9)
    ISSES_MODIFIABLE VARCHAR2(5)
    ISSYS_MODIFIABLE VARCHAR2(9)
    ISINSTANCE_MODIFIABLE VARCHAR2(5)
    ISMODIFIED VARCHAR2(10)
    ISADJUSTED VARCHAR2(5)
    ISDEPRECATED VARCHAR2(5)
    ISBASIC VARCHAR2(5)
    DESCRIPTION VARCHAR2(255)
    UPDATE_COMMENT VARCHAR2(255)
    HASH NUMBER
     
    第二个示例显示使用SQL*Plus SHOW PARAMETER命令来查看参数设置。还可以使用该命令查找包含一个文本字符串的所有参数。
    例如,可以通过使用以下命令查找包括字符串sga的所有参数名:
     
    sys@TEST0924> show parameter sga
    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    lock_sga boolean FALSE
    pre_page_sga boolean FALSE
    sga_max_size big integer 2400M
    sga_target big integer 2400M
     
    包含参数相关信息的其它视图
    • V$SPPARAMETER:显示有关服务器参数文件内容的信息。如果未使用服务器参数文件来启动实例,则该视图每一行的ISSPECIFIED列中的值为FALSE。
     
    sys@TEST0924> desc V$SPPARAMETER
    Name Null? Type
    ----------------------------------------------------- -------- ------------------------------------
    SID VARCHAR2(80)
    NAME VARCHAR2(80)
    TYPE VARCHAR2(11)
    VALUE VARCHAR2(255)
    DISPLAY_VALUE VARCHAR2(255)
    ISSPECIFIED VARCHAR2(6)
    ORDINAL NUMBER
    UPDATE_COMMENT VARCHAR2(255)
     
    • V$PARAMETER2:显示当前对会话有效的初始化参数的相关信息,每个参数值显示为视图中的一行。新会话将从V$SYSTEM_PARAMETER2视图中显示的实例范围内的值中继承参数值。
     
    sys@TEST0924> desc V$PARAMETER2
    Name Null? Type
    ----------------------------------------------------- -------- ------------------------------------
    NUM NUMBER
    NAME VARCHAR2(80)
    TYPE NUMBER
    VALUE VARCHAR2(4000)
    DISPLAY_VALUE VARCHAR2(4000)
    ISDEFAULT VARCHAR2(6)
    ISSES_MODIFIABLE VARCHAR2(5)
    ISSYS_MODIFIABLE VARCHAR2(9)
    ISINSTANCE_MODIFIABLE VARCHAR2(5)
    ISMODIFIED VARCHAR2(10)
    ISADJUSTED VARCHAR2(5)
    ISDEPRECATED VARCHAR2(5)
    ISBASIC VARCHAR2(5)
    DESCRIPTION VARCHAR2(255)
    ORDINAL NUMBER
    UPDATE_COMMENT VARCHAR2(255)
     
    • V$SYSTEM_PARAMETER:显示当前对实例有效的初始化参数的相关信息。
     
    sys@TEST0924> desc V$SYSTEM_PARAMETER
    Name Null? Type
    ----------------------------------------------------- -------- ------------------------------------
    NUM NUMBER
    NAME VARCHAR2(80)
    TYPE NUMBER
    VALUE VARCHAR2(4000)
    DISPLAY_VALUE VARCHAR2(4000)
    ISDEFAULT VARCHAR2(9)
    ISSES_MODIFIABLE VARCHAR2(5)
    ISSYS_MODIFIABLE VARCHAR2(9)
    ISINSTANCE_MODIFIABLE VARCHAR2(5)
    ISMODIFIED VARCHAR2(8)
    ISADJUSTED VARCHAR2(5)
    ISDEPRECATED VARCHAR2(5)
    ISBASIC VARCHAR2(5)
    DESCRIPTION VARCHAR2(255)
    UPDATE_COMMENT VARCHAR2(255)
    HASH NUMBER
     
    6、 更改初始化参数值
     
    初始化参数有两种类型。
    静态参数:影响实例或整个数据库,只能通过编辑init.ora和SPFILE 进行修改。静态参数要求关闭然后重新启动数据库才能生效。无法对当前实例更改静态参数。
    动态参数可以在数据库联机时更改。
     
    有两种类型的动态参数:
    “会话级别参数”仅影响一个用户会话。示例包括国家语言支持(NLS) 参数,这些参数可用于为排序、日期等参数指定国家语言设置。
    这些参数可以在某个给定会话中使用,并且会在该会话结束时失效。
    • “系统级别参数”影响整个数据库和所有会话。示例包括修改SGA_TARGET值和设置归档日志目标位置。这些参数在指定的SCOPE内保持有效。
    要使它们永久有效,必须指定SCOPE=BOTH 选项或手动编辑PFILE,将这些参数设置添加到SPFILE 中。
    可以使用ALTER SESSION和ALTER SYSTEM命令更改动态参数。
    使用ALTER SYSTEM语句的SET子句可以设置或更改初始化参数值。
     
    可选的SCOPE子句用于指定更改的作用域,如下所示:
    • SCOPE=SPFILE:此更改仅在服务器参数文件中应用。不会对当前实例进行更改
    对于动态和静态参数,更改在下一次启动后生效,并且永久保持有效。对于静态参数来说,这是唯一可以指定的SCOPE值。
    • SCOPE=MEMORY:此更改仅应用到内存中。对当前实例进行更改,且更改立即生效
    对于动态参数,更改立即生效,但不会永久保持,因为服务器参数文件不会进行更新。
    对于静态参数,不允许进行该指定。
    • SCOPE=BOTH:此更改会应用到服务器参数文件和内存中。对当前实例进行更改,且更改立即生效。
    对于动态参数,更改永久保持有效,因为服务器参数文件会进行更新。
    对于静态参数,不允许进行该指定。
    如果实例不是使用服务器参数文件启动的,则指定SCOPE=SPFILE或SCOPE=BOTH是错误的。
    如果实例是使用服务器参数文件启动的,则默认值为SCOPE=BOTH;
    如果实例是使用文本初始化参数文件启动的,则默认值为MEMORY。
    对于动态参数,还可以指定DEFERRED关键字。如果指定了该关键字,则更改仅对于以后的会话有效。
    如果将SCOPE指定为SPFILE或BOTH,则使用可选的COMMENT子句可以将一个文本字符串与参数更新关联起来。此注释会写入服务器参数文件中。
     
    7、更改参数值:示例
     
    sys@TEST0924> ALTER SESSION
    2 SET NLS_DATE_FORMAT ='mon dd yyyy';
    Session altered.
    sys@TEST0924> SELECT SYSDATE FROM dual;
    SYSDATE
    -----------
    oct 02 2013
    这是一个更改会话级别参数的示例。用户要将会话日期格式设置为mon dd yyyy。因此,此日期的所有查询将以该格式显示日期。
    还可以使用PL/SQL 在应用程序中设置会话级别参数。
     
    sys@TEST0924> ALTER SYSTEM SET SEC_MAX_FAILED_LOGIN_ATTEMPTS=2 SCOPE=SPFILE;
    System altered.
    这是一个更改断开连接之前的最大登录失败尝试次数。经过指定的失败尝试次数之后,服务器进程会自动断开连接。
  • 相关阅读:
    ExecuteScalar requires the command to have a transaction when the connection assigned to the command is in a pending
    如何从vss中分离程序
    String or binary data would be truncated
    the pop3 service failed to retrieve authentication type and cannot continue
    The POP3 service failed to start because
    IIS Error he system cannot find the file specified _找不到页面
    pku2575Jolly Jumpers
    pku2940Wine Trading in Gergovia
    pku3219二项式系数
    pku1029false coin
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317130.html
Copyright © 2011-2022 走看看