> 数据库 > MySQL >

ORACLE主要配置文件介绍

profile文件或者.bash_profile文件(系统级环境变量文件:/home/oracle);
 
oratab 文件(oracle自运行文件:/etc/oratab );
 
initSID.ora或者spfileSID.ora文件(数据库实例初始化文件:$ORACLE_HOME/dbs/或者$ORACLE HOME\database);
 
listener.ora、sqlnet.ora文件和tnsnames.ora 文件(监听配置文件:$ORACLE_HOME/network/admin);
 
Alert.log文件(数据库警告日志:$ORACLE_BASE/diag/rdbms/db_name/SID/trace);
 
一、 环境变量文件 /etc/profile
 
       系统级的环境变量一般在/etc/profile 文件中定义,如下所示:
 
               export ORACLE_BASE=/u01/app/oracle
               export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
               export PATH=$PATH:$ORACLE_HOME/bin
               export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
               export ORACLE_SID=topicis
               export ORACLE_TERM=vt100
               export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
               export NLS_LANG=AMERICAN.ZHS16CGB231280
 
说明:
 
        1 配置上述环境变量要注意定义的先后顺序 ,如 定义 ORACLE_HOME时用到了 ORACLE_BASE, 那 么 ORACLE_HOME 的 定 义 应该 在ORACLE_BASE之后;
 
        2  在使用中文版时 环境变量 NLS_LANG 的值应该设置为AMERICAN.ZHS16CGB231280; 如上所示 在使用英文版时 可以不设置 NLS_LANG 即去掉 export NLS_LANG=... ... 那一行。也可以设置 NLS_LANG 的值为 AMERICAN_AMERICA.US7ASCII。
 
二、 数据库自启动文件/etc/oratab 
 
         /etc/oratab 文件描述目前系统中创建的数据库实例 以及是否通过 dbstart 和dbshut 来控制该实例的启动与关闭。如下所示 忽略以#开头的注释部分 :
             topicis:/u01/app/oracle/product/8.1.7:Y
 
       其中 topicis为实例 ID,  /u01/app/oracle/product/8.1.7为ORACLE_HOME目录,  Y表示允许使用,  dbstart和 dbshut 启动和关闭该实例数据库 如果设置为N 表示不通过dbstart 和 dbshut 启动和关闭实例数据库topicis,系统要求在安装完 ORACLE 后要求将该参数修改为 Y,以保证 ORACLE 数据库自启动和关闭;
 
三、 数据库实例初始化参数文件spfileSID.ora(或者spfile.ora 或者initSID.ora,可通过show parameter pfile进行查询)
 
     每个数据库实例都有一个初始化参数文件,其缺省存放的路径为$ORACLE_BASE/admin/<SID>/pfile,其名称为 init<SID>.ora。如 topicis实例对应 的参数文件为 inittopicis.ora,缺省存放路径为$ORACLE_BASE/admin/topicis/pfile。
 
     在启动的第一步,oracle首先寻找参数文件,然后根据参数文件中的设置,创建实例(Instance),分配内存,启动后天进程。
 
     初始化参数文件是一个包含实例配置参数的文本文件,这些参数被设置为特定的值,用于初始化Oracle 实例的多数内存和进程设置。
 
     oracle首先spfileSID.ora文件作为初始化参数文件,其次分别选择spfile.ora、initSID.ora。如果都不存在,将无法创建和启动Instance。
 
     在参数文件中,至少需要的参数是DB_NAME。
 
     以下是一些主要参数的说明:
 
     1 实例的数据库名称 db_name = "topicis"
 
      2 实例名称  instance_name = topicis
 
      3 数据库控制文件的名称和位置 (也可以通过show parameter control_files查询)
 
              control_files = ("/u02/app/oracle/topicis/control01.ctl","/u02/app/oracle/topicis/control02.ctl","/u02/app/oracle/topicis/control03.ctl")
      
 
       4 调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒
 
              JOB_QUEUE_PROCESSES=2
              JOB_QUEUE_INTERVAL=60
 
      5 存储追踪和告警文件的路径(可以通过show parameter dump_dest查询)
 
              user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的存放路径;
              background_dump_dest 指定记录 Oracle 后台进程产生的追踪和告警信息的文件的存放路径;
              core_dump_dest指定Oracle运行所产生的coredump 信息的文件的存放路径。
 
              background_dump_dest = /u02/app/oracle/admin/topicis/bdump
              core_dump_dest = /u02/app/oracle/admin/topicis/cdump
              user_dump_dest = /u02/app/oracle/admin/topicis/udump
 
      6 UTL_FILE_DIR 参数
 
              UTL_FILE_DIR = *
 
              UTL_FILE_DIR 参数指定一个或多个目录用于 Oracle 应用的文件 I/O 如备份数据到文件,将该值设置为 * 表示可供 Oracle 应用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数据存放到任意目录下。
 
四、 监听配置文件
 
        为了使得外部进程,如topicis后台程序,能够访问 Oracle 数据库,必须配置 Oracle 网络服务器环境,配置 Oracle 网络服务器环境是通过配置 listener.ora sqlnet.ora 和tnsnames.ora 共三个文件来进行的
 
        监听配置文件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin
 
        以下是一个示例
 
              LISTENER =                          #监听器名称
                 (DESCRIPTION_LIST =
 
                   (DESCRIPTION =
 
                     (ADDRESS_LIST =
                       (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC))
                     )
                     (ADDRESS_LIST =
                       (ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
                     )
                   )
 
                   (DESCRIPTION =
                     (PROTOCOL_STACK =
                       (PRESENTATION = GIOP)
                       (SESSION = RAW)
                     )
 
                     (ADDRESS =
              (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 2481))
                     )
                )
 
SID_LIST_LISTENER =
###命名规则 SID_LIST_+上面定义的监听器名称,该段用于定义监听器的服务 即为哪些数据库实例提供监听服务
(SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc1)
       (ORACLE_HOME = /u01/app/oracle/product/8.1.7)
       (PROGRAM = extproc)
     )
 
     (SID_DESC =
       (GLOBAL_DBNAME = topicis)
       (ORACLE_HOME = /u01/app/oracle/product/8.1.7)
       (SID_NAME =topicis)
     )
 
     (SID_DESC =
       (GLOBAL_DBNAME = oid)
       (ORACLE_HOME = /u01/app/oracle/product/8.1.7)
       (SID_NAME = oid)
     )
)
 
1 listener.ora 文件中定义一个监听器 其缺省的名称为 LISTENER。这个监听器缺省以tcp/ip为协议地址且端口号为1521运行,在CAMS应用中监听文件定义的监听器就使用这个缺省名字,并且使用缺省的协议tcp/ip和缺省的端口号1521。 
待配置好监听文件以及随后说明的 sqlnet.ora 和tnsnames.ora 文件之后 就可以用以下命令将监听文件中定义的监听器启动起来: $ lsnrctl start
 
停止监听器的命令为$ lsnrctl stop;监测监听器当前状态的命令为$ lsnrctl status。
当 lsnrctl status 命令有如下输出结果:
 
     STATUS of the LISTENER
     ------------------------
     Alias                  LISTENER
     Version                 TNSLSNR for Linux: Version 8.1.7.4.0 - Production
     Start Date               17-JAN-2004 19:00:08
     Uptime                  31 days 15 hr. 27 min. 59 sec
 
就说明监听器正在运行,否则说明监听器已经停止了。
 
2 如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所示的一个IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定不需要改动
 
3 在监听文件后部还有一个SID_LIST_LISTENER 段 该段用于定义监听器的服务,即为哪些数据库实例提供监听服务 以 topicis实例为例,其对应的服务信息为:
 
   (SID_DESC =
    (GLOBAL_DBNAME =topicis) #数据库名
     (ORACLE_HOME = /u01/app/oracle/product/8.1.7)
    (SID_NAME =topicis) #数据库实例名
)
 
五、 sqlnet.ora 文件
 
              sqlnet.ora 文件的存放路径为$ORACLE_HOME/network/admin 以下是一个示例
 
NAMES.DEFAULT_DOMAIN = localdomain
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
 
说明:
NAMES.DEFAULT_DOMAIN 指定网络域名;
NAMES.DIRECTORY_PATH指定当解析客户端连接标识符时命名方法;
naming metthods 采用的优先顺序从左至右递减。
 
六、 tnsnames.ora 文件
 
tnsnames.ora 文件的存放路径为 $ORACLE_HOME/network/admin。以下是一个示例:
 
OID.LOCALDOMAIN =
(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = oid)
     )
)
topicis.LOCALDOMAIN =
(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521))
     )
     (CONNECT_DATA =
       (SERVICE_NAME = topicis)
     )
)
INST1_HTTP.LOCALDOMAIN =
(DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521))
     )
     (CONNECT_DATA =
       (SERVER = SHARED)
       (SERVICE_NAME = MODOSE)
       (PRESENTATION = http://admin)
     )
   )
 
EXTPROC_CONNECTION_DATA.LOCALDOMAIN =
   (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
     )
     (CONNECT_DATA =
       (SID = PLSExtProc1)
       (PRESENTATION = RO)
     )
   )
 
 说明:
tnsnames.ora 文件中定义一个或多个网络服务 net service,topicis实例对应的网络服务为
 
topicis.LOCALDOMAIN =
(DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS =
      (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
   (CONNECT_DATA =
    (SERVICE_NAME =topicis)
   )
)
 
注意 这里 ADDRESS项包含三个子参数 PROTOCOL HOST 和 PORT,要确保在监听文件中也有对应的一个 ADDRESS项也包含同样的三个子参数,并且子参数的值对应都相等。另外 这里 SERVICE_NAME的值必需确保与监听文件中某 SID_DESC项下的 SID_NAME参数的值相等。
(责任编辑:IT)