Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86593
  • 博文数量: 22
  • 博客积分: 518
  • 博客等级: 下士
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-20 15:27
文章分类

全部博文(22)

文章存档

2011年(22)

分类: Oracle

2011-08-28 13:19:05

一、概念
(1)Oracle有很多的初始化参数项,并且它们都有默认值。
(2)在数据库创建后,有些参数是可以修改的,有些则不可以。
(3)参数文件,是数据库从shutdown状态启动到nomount状态的过程中使用的。

 

二、对参数的修改

  1. SYS> alter session set 参数名 =;     ---> # 对参数的修改,只在当前session中生效
  1. SYS> alter system set 参数名 =scope = memory | spfile | both;
  2.                                       ---> # memory 在当前实例中立即生效
  3.                                              spfile 写入spfile文件中,数据库重启后生效
  4.                                                both 两者皆有

[ 在“可以修改的”参数中,一些是可以立即生效的,另一些则需要重启后才能生效。]

 

三、初始化参数详解

1、审计相关

  1.     audit_trail            --> # 是否开始审计功能    
  2.     audit_file_dest        --> # 审计文件存放的目录    
  3.     audit_sys_operations   --> # 是否审计sysdba角色的用户

2、数据库相关

  1.     db_name               --> # 数据库的名字 (在创建数据库后“不可以修改”)
                                         // 可以与$ORACLE_SID一样,也可以不一样
  2.     db_unique_name        --> # (RAC中使用,暂不深入)
  3.     db_domain             --> # 数据库的完全限定名(Internet点表示法)
                                         // 用于网格环境下确定数据库的逻辑位置
  4.     instance_name         --> # 实例的名字
                                         // 可设为与$oracle_sid一样,也可以不一样
                                         // 在RAC环境下,一个database可以对应多个instance
  5.     service_name          --> # 数据库对外提供服务的名字 (用于监听和远程连接)
                                         // 名字可以任意取,但一般为$db_name.$db_doman
  6.     compatible            --> # 控制Oracle软件的版本号,用于去除当前版本中的一些特性
  7.                                      // 比如说:在11g的oracle中,设置其为10.2。则这个数据
                                            库只具备10.2版本的特性,无法使用11g的新特性。
  8.                                      // 如果版本跨度很大,则无法使用此功能。
  9.     
  10.     instance_type         --> # 实例的类型 [ ASM | RDBMS ]
                                         // 用于指定“当前实例”是ASM的实例,还是普通的RDBMS实例
  11.     
  12.     nls_date_format       --> # 指定日期数据类型的格式
                                         // 如: yyyy-mm-dd hh24:mi:ss

3、OMF(Oracle Managed File)相关
                           --> # 即:由oracle来自动管理相关数据文件 (非重点内容,暂不考虑)

  1.     db_create_file_dest
  2.     DB_CREATE_ONLINE_LOG_DEST_n
  3.     db_recovery_file_dest

4、信息收集相关

  1.    statistics_level     --> # Oracle收集统计数据的级别 [ BASIC | TYPICAL | ALL ]
  2.                                    // TYPICAL --> Oracle会自动收集与自身性能相关的所有信息
  3.                                    //     ALL --> 同时还收集OS相关的数据     
  4.    sql_trace            --> # 是否打开SQL语句跟踪功能  [ true | false ]

5、优化器相关

     
  1.    optimizer_mode        --> # Oracle优化器需要优化的指导思想 [ all_rows | first_rows_n ]
  2.                                 // all_rows     --> 使用CBO(基于成本)的方式进行优化,以“使
                                                        用最少资源查询出所有数据”为最佳方案
  3.                                 // first_rows_n --> 使用CBO(基于成本)的方式进行优化,以“最
                                                        短的响应时间内返回前n行”为最佳方案
  4.         
  5.  optimizer_features_enable --> # Oracle查询优化器的版本控制 (同数据库的版本控制)
  6.                                 // 用于“对数据库升级后,却仍然只使用旧版本的优化器特性”的情况
  7.                                               
  8. optimizer_dynamic_sampling --> # 动态采样数据库统计信息的级别

6、控制文件相关

  1.        control_fiels        --> # 控制文件的个数及路径
                                      // 指定多个完全一样的“控制文件”,是为了保证控制文件的安全
                                      // 即“多路冗余复用”
  2. control_file_record_keep_time --> 控制文件中的旧记录保留多久
                                       // 用于RMAN备份时,指定记录在控制文件中的信息的保留时长

7、归档文件相关

  1.     log_archive_dest_n    --> # 归档日志存放的目录
                                    // 一个归档进程对应一个,最多10个
  2.     log_archive_format    --> # 归档日志的文件名格式
                                    // %t  进程号
                                   
    // %s  日志序号
                                    //
    %r  重置日志(resetlogs)ID
                                    //
    示例:LOG_ARCHIVE_FORMAT = 'log%t_%s_%r.arc'

8、“闪回区”相关

  1.   db_recovery_file_dest          --> 指定“闪回区域”目录路径
  2.   db_recovery_file_dest_size     --> 指定“闪回区域”最大容量(单位“k”)
  3.   db_flashback_retention_target  --> 指定“闪回区域”中数据的保留时长(单位“分钟”)
                                         // 默认为1440分钟上,即1天

9、读取“外部文件”相关 

  1.   utl_file_dir           --> 将oracle用户对OS(操作系统)上的文件进行读取时,限定在某一个目录中
                                 // 用于通过“外部表”读取OS上的平面文件
                                 // 当然,前提条件是:oracle用户对OS上的这个目录具有“读写”权限

10、登陆验证相关

  1.   remote_login_passwordfile   --> # 启动数据库时,对远程登录的用户是否需要进行密码验证
  2.                                     //   none - (不通过密码文件验证)全部使用操作系统的验证方式
  3.                                     //  shared - 多个数据库使用同一个密码文件进行验证
  4.                                     // exclusive - 一个密码文件只能变一个数据库使用
  5.   
  6.   *** 注意:
           (1)这里所说得“验证”,是指对“具有sysdba角色权限的用户”(如sys、system)的身份验证。
                而普通用户的身体验证,是在数据库启动之后,通过“数据字典”在share pool中完成的。

           (2)要启动一个数据库,拥有sysdba角色权限的用户需要在本机或通过网络连接到操作系统上。
                  a. 若是本机登录,则不验证。
                     (因为你能够使用操作系统,说明已经通过了OS层面的身份验证,说明是合法用户)
                  b. 若是通过网络登录,则通过此参数指定“是否验证”,及对密码文件的使用方式。
    1.               sqlplus 用户名/密码@IP地址 as sysdba    --> # 此参数在这种情况下起作用


    11、SGA相关

    1.     processes             --> # 可以连接到Oracle实例的“最大进程数”
                                      // 包括backgroup proceses ,及 server processes
    2.     db_writer_processes   --> # DBWn进程的最小数量(最大为20个)
    3.     open_cursors          --> # 单个session中,可以打开的游标的最大数量(默认为50个)
    4.     sessiones             --> # 最大会话数
    5.     log_buffer            --> # 指定log buffer(日志缓冲区)的大小(单位为“k”)
                                      // 必须是OS(操作系统)block的整数倍

    6.     sga_target            --> # 启动/关闭ASMM(Automatic Shared Memory Management)功能
      1. 说明:

      2. sga_target = --> # 关闭ASMM功能
      3.                     // 即“SGA内存区域不再由Oracle自动管理,所有SGA参数(DB_CACHE_SIZE,
                            
        SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE等都需要手工指定”。

      4. sga_target >--> # 开启ASMM功能
                            // 即“只需要指定SGA内存的总大小,其内部的各功能内存块是由oracle自动维护、
                               调整的”。
       
         fast_start_mttr_target --> # 指定当实例Crash(崩溃)掉后,需要的最长恢复时间时间
                                    //    0  由Oracle自动调整checkpoint时机
                                    // 1800  如果实例崩溃,则重启恢复到Open状态,最长只需要3分钟
                                      (也就是说,在平时实例正常运行时,也是每3分钟做一次checkpoint,
                                        可能会影响数据库日常运行时的性能)
    7.        
    8.    plsql_code_type        --> # 对PL/SQL语句的解释方式 [ native | interpreted]
    9.                               // native -> 编译
    10.                               // interpreted -> 解释
    11.                         
    12.    cursor_sharing      --> # 共享SQL语句的方式 [forced | exact | similar]
    13.                              // forced -- 强迫Oracle使用“绑定变量”的方式来解析SQL查询语句  
                                                (将没有使用“绑定变量”的SQL语句,转化为使用绑定变量
                                                  的方式,以此来提高对SQL语句解析的复用率)
    14.    db_block_size       --> # 数据块大小(单位“k”)
                                   // 它总是OS(操作系统)上block的整数倍
                                   // 这样设置,对磁盘读写的速度快、方便,且不会产生过多的磁盘碎片
    15.         
      1. OLDP(数据仓库用途的数据库中,可以将DB_BLOCK_SIZE设大。
      2.               // 因为DSS系统中,有大量的读操作,可能会用到全表扫描。
                      // 这时一次读取大块数据,就会提高查询的性能。

      3. OLTP(联机事务处理的数据库)中,不宜将此值设得过大。
                      // 因为涉及到大量的写操作,所以小一点的“块”反而可以提高效率及节约存贮空间。
                          
    16.     db_file_multiblock_read_count --> # 一个I/O可以最多读取多少块。
                               //(默认为16个block,10g版本最大支持1M) 
                               // 一般DSS系统中,可以将其设大,以节约I/O成本,从而提高SQL查询的性能。
                               //
      11g时,若此参数不设置,则由oracle自动管理。

    12、undo表空间相关

    1.   undo_management  --> # undo表空间的管理方式 [ auto | manual ]
                               // auto  自动 
                                       (指定为auto,则在创建数据库时,必须创建一个undo表空间,
                                         并且此表空间名要与参数文件中指定的一致)
                               // manual 手工

    2.   undo_tablespace  --> # 指定默认的undo表空间
                               // 如果数据库中只有一个undo表空间,则可以不指定 
                               // 如果数据库中没有undo表空间,则使用system表空间中的undo段作为数据库
                                  的undo表空间使用
    3.   undo_retention   --> # undo表空间中的数据,可以存放的最大时长
                               // 但根据instance运行时所需要undo表空间的容量不同,
                                  实际保留的时长可能会 <= undo_retention参数值
                               // “闪回”操作能否成功,与此参数有一定的关系
    4.     
        (1)示例: undo_retention = 14400 // 单位为“秒”,即4小时。
        (2)“快照太旧(Ora-01555 snapshot-too-old)”错误,则说明undo表空间太小,需要增大,
             并延长对undo数据的保留时长。
                                     
    5.   undo_managemnet  --> # undo表空间(撤销表空间)的管理方式  [auto | manual]
    6.                          //   auto  由oracle自动管理
    7.                          // manual  手工管理

    13、PGA相关

    1.   pga_aggregate_target  --> # 指定server process进程的PGA总和的最大值 (单位“M”) 
                                    // 不包括 backgroup process的PGA空间大小????

      1. (1)当pga_aggregate_target参数值 > 0时,
                            workarea_size_policy参数会自动设置成AUTO。

      2. (2)若一个会话中排序操作使用了 pga_aggregate_target * 5%的空间(“内存排序”)还不够,
            则不够的部分使用“临时表空间”进行排序(磁盘排序)


        Ps: 什么情况下,会出现“排序”操作?
        1)在SQL语句中,出现 order by / group by / hash join 子句时。
        2)在创建索引时。

        workarea_size_policy  --> # PGA中工作区的管理方式   [auto | manual]
                                 // auto  即:“排序操作”所需要的PGA空间大小,由Oracle自动分配和管理。
                                    在使用完后,自动回收。

     

                                                                                    (完结)

    阅读(1660) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~