Oracle 主要配置文件介绍

Oracle 主要配置文件介绍:<br>profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件<br><br>1.2 Oracle 主要配置文件介绍<br>1.2.1 /etc/profile 文件<br> 系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库<br> 相关的环境变量就定义在/etc/profile 文件中 如下所示<br> export ORACLE_BASE=/u01/app/oracle<br> export ORACLE_HOME=$ORACLE_BASE/product/8.1.7<br> export PATH=$PATH:$ORACLE_HOME/bin<br> export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib<br> export ORACLE_SID=cams<br> export ORACLE_TERM=vt100<br> export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data<br> export NLS_LANG=AMERICAN.ZHS16CGB231280<br> & 说明<br> 1 配置上述环境变量要注意定义的先后顺序 如 定义 ORACLE_HOME<br> 时 用 到 了 ORACLE_BASE 那 么 ORACLE_HOME 的 定 义 应 该 在<br> ORACLE_BASE之后<br> 2 在使用中文版 CAMS 时 环境变量 NLS_LANG 的值应该设置为<br> AMERICAN.ZHS16CGB231280 如上所示 在使用英文版 CAMS时 可<br> 以不设置 NLS_LANG 即去掉 export NLS_LANG=... ... 那一行 也可以<br> 设置 NLS_LANG 的值为 AMERICAN_AMERICA.US7ASCII<br><br>1.2.2 /etc/oratab 文件<br> /etc/oratab 文件描述目前系统中创建的数据库实例 以及是否通过 dbstart 和<br> dbshut 来控制该实例的启动与关闭 如下所示 忽略以#开头的注释部分 :<br> cams:/u01/app/oracle/product/8.1.7:Y<br> 其中 cams 为实例 ID /u01/app/oracle/product/8.1.7为 ORACLE_HOME目<br> 录 Y表示允许使用 dbstart和 dbshut 启动和关闭该实例数据库 如果设置为<br> N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在<br> 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动<br> 和关闭<br> <br> <br>1.2.3 数据库实例初始化文件 initSID.ora<br> 每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为<br> $ORACLE_BASE/admin/<SID>/pfile 其名称为 init<SID>.ora 如 cams 实<br> 例 对 应 的 参 数 文 件 为 initcams.ora 缺 省 存 放 路 径 为<br> $ORACLE_BASE/admin/cams/pfile 即/u01/app/oracle/admin/cams/pfile<br> 但 在 CAMS 应 用 中 initcams.ora 的 存 放 路 径 为<br> /u02/app/oracle/admin/cams/pfile 这是基于数据与应用程序分开存放更好地<br> 保护数据考虑的 尤其在 CAMS 双机应用模式下 能够保证数据的一致性<br> 具体的修改操作可参考 Linux与 Oracle 安装手册<br> 初始化参数文件是一个包含实例配置参数的文本文件 这些参数被设置为特<br> 定的值 用于初始化 Oracle 实例的多数内存和进程设置 以下是一些主要参<br> 数的说明<br> 1 实例的数据库名称<br> db_name = "cams"<br> 2 实例名称<br> instance_name = cams<br> 3 数据库控制文件的名称和位置<br> control_files = ("/u02/app/oracle/oradata/cams/control01.ctl",<br> "/u02/app/oracle/oradata/cams/control02.ctl",<br> "/u02/app/oracle/oradata/cams/control03.ctl")<br> 4 调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒<br> JOB_QUEUE_PROCESSES=2<br> JOB_QUEUE_INTERVAL=60<br> 5 存储追踪和告警文件的路径<br> user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的<br> 存放路径 background_dump_dest 指定记录 Oracle 后台进程产生的追踪和<br> 告警信息的文件的存放路径 core_dump_dest指定Oracle运行所产生的core<br> dump 信息的文件的存放路径<br> background_dump_dest = /u02/app/oracle/admin/cams/bdump<br> core_dump_dest = /u02/app/oracle/admin/cams/cdump<br> user_dump_dest = /u02/app/oracle/admin/cams/udump<br> <br> 6 UTL_FILE_DIR 参数<br> UTL_FILE_DIR = *<br> UTL_FILE_DIR 参数指定一个或多个目录用于 Oracle 应用的文件 I/O 如备<br> 份数据到文件 在 CAMS 系统中将该值设置为 * 表示可供 Oracle 应<br> 用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数<br> 据存放到任意目录下<br><br>1.2.4 监听配置文件<br> 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配<br> 置 Oracle 网络服务器环境 配置 Oracle 网络服务器环境是通过配置<br> listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的 listener.ora<br> 即监听配置文件 在本小节说明 另两个文件分别在随后的两个小节说明<br> 监听配置文件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin<br> 以下是一个示例<br> LISTENER = #监听器名称<br> (DESCRIPTION_LIST =<br> (DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))<br> )<br> (ADDRESS_LIST =<br> (ADDRESS =<br> (PROTOCOL = TCP)<br> (HOST = localhost.localdomain)<br> (PORT = 1521))<br> )<br> )<br> (DESCRIPTION =<br> (PROTOCOL_STACK =<br> (PRESENTATION = GIOP)<br> (SESSION = RAW)<br> )<br> (ADDRESS =<br> (PROTOCOL = TCP)<br> (HOST = localhost.localdomain)<br> (PORT = 2481))<br> )<br> )<br> <br>SID_LIST_LISTENER = #命名规则 SID_LIST_+上面定义的监听器名称<br>(SID_LIST =<br> (SID_DESC =<br> (SID_NAME = PLSExtProc1)<br> (ORACLE_HOME = /u01/app/oracle/product/8.1.7)<br> (PROGRAM = extproc)<br> )<br> (SID_DESC =<br> (GLOBAL_DBNAME = cams)<br> (ORACLE_HOME = /u01/app/oracle/product/8.1.7)<br> (SID_NAME = cams)<br> )<br> (SID_DESC =<br> (GLOBAL_DBNAME = oid)<br> (ORACLE_HOME = /u01/app/oracle/product/8.1.7)<br> (SID_NAME = oid)<br> )<br>)<br><br>& 说明<br>1 listener.ora 文件中定义一个监听器 其缺省的名称为 LISTENER<br>这个监听器缺省以tcp/ip为协议地址且端口号为1521运行 在CAMS应用中<br>监听文件定义的监听器就使用这个缺省名字 并且使用缺省的协议 tcp/ip<br>和缺省的端口号 1521 待配置好监听文件以及随后说明的 sqlnet.ora 和<br>tnsnames.ora 文件之后 就可以用以下命令将监听文件中定义的监听器启动<br>起来<br> $ lsnrctl start<br>停止监听器的命令为<br> $ lsnrctl stop<br>监测监听器当前状态的命令为<br> $ lsnrctl status<br>当 lsnrctl status 命令有如下输出结果<br> STATUS of the LISTENER<br> ------------------------<br> Alias LISTENER<br> Version TNSLSNR for Linux: Version 8.1.7.4.0 - Production<br> Start Date 17-JAN-2004 19:00:08<br> Uptime 31 days 15 hr. 27 min. 59 sec<br>就说明监听器正在运行 否则说明监听器已经停止了 CAMS 系统的后台程<br>序的正常运行不仅依赖于数据库实例的运行 还依赖于这个数据库监听器的<br>运行 假如监听器没有启动 即使数据库已经启动 CAMS 后台程序仍然不<br>能正常工作<br>2 如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所示的一个<br>IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定<br>不需要改动<br>3 在监听文件后部还有一个 SID_LIST_LISTENER 段 该段用于定义监听<br>器的服务 即为哪些数据库实例提供监听服务 以 cams 实例为例 其对应的<br>服务信息为<br> (SID_DESC =<br> (GLOBAL_DBNAME = cams) #数据库名<br> (ORACLE_HOME = /u01/app/oracle/product/8.1.7)<br> (SID_NAME = cams) #数据库实例名<br>)<br><br>1.2.5 sqlnet.ora 文件<br> sqlnet.ora 文件的存放路径为 $ORACLE_HOME/network/admin 以下是一<br> 个示例<br>NAMES.DEFAULT_DOMAIN = localdomain<br>NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)<br>& 说明<br>NAMES.DEFAULT_DOMAIN 指定网络域名 NAMES.DIRECTORY_PATH<br>指定当解析客户端连接标识符时命名方法 naming metthods 采用的优先顺<br>序 从左至右递减 在 CAMS 应用中 这两个参数采用上述所示的系统缺<br>省值<br>1.2.6 tnsnames.ora 文件<br>tnsnames.ora 文件的存放路径为 $ORACLE_HOME/network/admin 以下<br>是一个示例<br>OID.LOCALDOMAIN =<br>(DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =<br>1521))<br> )<br> (CONNECT_DATA =<br> (SERVICE_NAME = oid)<br> )<br>)<br>CAMS.LOCALDOMAIN =<br>(DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =<br>1521))<br> )<br> (CONNECT_DATA =<br> (SERVICE_NAME = cams)<br> )<br>)<br>INST1_HTTP.LOCALDOMAIN =<br>(DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =<br>1521))<br> )<br> (CONNECT_DATA =<br> (SERVER = SHARED)<br> (SERVICE_NAME = MODOSE)<br> (PRESENTATION = http://admin)<br> )<br> )<br>EXTPROC_CONNECTION_DATA.LOCALDOMAIN =<br> (DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))<br> )<br> (CONNECT_DATA =<br> (SID = PLSExtProc1)<br> (PRESENTATION = RO)<br> )<br> )<br> <br>& 说明<br>tnsnames.ora 文件中定义一个或多个网络服务 net service cams 实例对<br>应的网络服务为<br>CAMS.LOCALDOMAIN =<br>(DESCRIPTION =<br> (ADDRESS_LIST =<br> (ADDRESS =<br> (PROTOCOL = TCP)<br> (HOST = localhost.localdomain)<br> (PORT = 1521))<br> )<br> (CONNECT_DATA =<br> (SERVICE_NAME = cams)<br> )<br>)<br>注意 这里 ADDRESS项包含三个子参数 PROTOCOL HOST 和 PORT<br>要确保在监听文件中也有对应的一个 ADDRESS 项也包含同样的三个子参<br>数 并且子参数的值对应都相等 另外 这里 SERVICE_NAME 的值必需确<br>保与监听文件中某 SID_DESC项下的 SID_NAME参数的值相等<br>启动和关闭数据库<br>dbstart 和 dbshut 的使用;以及使用 sqlplus 或 svrmgrl启动和关闭数据库。<br><br>dbstart 和 dbshut 的使用<br> dbstart 用于启动数据库实例 dbshut 用于关闭数据库实例 这两个脚本命令<br> 都需要以 oracle 用户执行 假设控制文件/etc/oratab 有如下两个描述项<br> cams:/u01/app/oracle/product/8.1.7:Y<br> oid:/u01/app/oracle/product/8.1.7:N<br> 那么以 oracle 用户执行 dbstart 系统会试图启动 cams 数据库实例 但不会<br> 试图启动 oid 数据库实例<br><br>2.2 使用 sqlplus 或 svrmgrl启动和关闭数据库<br>2.2.1 启动数据库 <br> 使用 sqlplus 启动数据库的操作如下<br> <br> 1 以 oracle 用户执行命令<br> $ sqlplus /nolog<br> 进入到 sqlplus 命令交互状态 提示符为"SQL>"<br> 2 在 sqlplus 命令交互状态下执行以下 sqlplus 命令<br> connect /as sysdba<br> 3 在 sqlplus 命令交互状态下执行启动数据库的命令<br> startup<br> <br> 注意<br> 如果在你的机器上存在多个实例 例如有两个实例 cams 和 oid 这时用上<br> 述操作启动数据库时所启动的数据库实例要取决于环境变量 ORACLE_SID<br> 的值 因为在/etc/profile 文件中设置有一行<br> export ORACLE_SID=cams<br> 因此 cams 是缺省的实例 上述操作都是启动 cams 实例 如果需要启动 oid<br> 实例 只需执行以下环境变量设置命令<br> export ORACLE_SID=oid<br> 将环境变量 ORACLE_SID 的值设置为 oid 然后再继续执行上述启动数<br> 据库的操作就可以了<br><br>& 说明<br>需要进一步说明的是 启动数据库的命令 即 startup 在执行过程中会依次<br>经历三个步骤 1 启动实例 2 装配数据库 将实例与指定数据库关联<br>3 打开数据库 通常启动数据库时 这三个步骤都是必需的 但在有些特殊<br>应用场合要求只执行前一个步骤或前两个步骤 对应的命令如下<br>startup nomount Oracle 启动实例 即分配相关内存并启动后台进程<br>但不装配数据库 该命令通常用于创建一个新数据库或创建新的控制文件的<br>情形<br>startup mount Oracle 启动实例并装配数据库 但不打开数据库 该<br>命令通常用于执行特定维护操作的场合 如 给数据文件更名 启用或禁用<br>归档日志 数据库的完全备份等<br>使用 svrmgrl Server Manager 启动数据库与使用 sqlplus 启动数据库类似<br>具体操作如下<br>(1) 以 oracle 用户执行命令<br>$ svrmgrl<br>进入到 Server Manager 命令交互状态 提示符为"SVRMGR>"<br>(2) 在 Server Manager 命令交互状态下执行以下 Server Manager 命令<br>SVRMGR> connect internal<br>(3) 在 Server Manager 命令交互状态下执行启动数据库的命令<br>SVRMGR> startup<br><br>另外:<br>数据库启动过程:<br>1. 启动实例:oracle instance =SGA +Processes<br> 读取参数文件。 Init.ora<br> 分配SGA区。<br> 启动后台进程。<br>2. 数据库安装: Database mounted<br> 控制文件 init.ora<br>3. 打开数据库: Database opened<br> 打开全部数据文件和全部日志文件~控制文件。<br> 参数文件?控制文件?数据文件和日志文件<br>4. 几个启动命令:<br> svrmgr> startup 正常启动。启动上面全部1,2,3项<br> svrmgr> startup mount 启动1,2项<br> 在此可修改归档模式<br> 可使用Alter database命令<br> 可查询全部V$**数据字典<br> 可做数据库恢复<br> 例:<br> svrmgr>Alter database open read only;<br> - -(整个数据库以只读方式打开)<br> svrmgr>Alter database open read write;<br> - -(整个数据库以读写方式打开)(缺省方式)<br> svrmgr> startup nomount 启动1项<br> 可以创建一个新的数据库<br> 创建控制文件。<br>5. 在open 下可以使用的命令:<br> 启动多个数据库:<br>svrmgr> startup pfile =第一个参数文件名及路径;<br>svrmgr> startup pfile =第二个参数文件名及路径;<br>6. 强制和限制性数据库启动命令:<br> 强制数据库启动命令:(如上面所写只启动一部分的情况)<br> svrmgr> startup force;<br> 限制数据库启动命令:<br> svrmgr>startup RESTRICT; - -只有DBA用户可以连接<br><br>关闭数据库 <br> 使用 sqlplus 关闭数据库的操作如下<br> (4) 以 oracle 用户执行命令<br> $ sqlplus /nolog<br> 进入到 sqlplus 命令交互状态 提示符为"SQL>"<br> (5) 在 sqlplus 命令交互状态下执行以下 sqlplus 命令<br> SQL> connect /as sysdba<br> (6) 在 sqlplus 命令交互状态下执行关闭数据库的命令<br> SQL> shutdown<br> <br> 使用 svrmgrl Server Manager 关闭数据库与使用 sqlplus 关闭数据库类似<br> 具体操作如下<br> (1) 以 oracle 用户执行命令<br> $ svrmgrl<br> 进入到 Server Manager 命令交互状态 提示符为"SVRMGR>"<br> (2) 在 Server Manager 命令交互状态下执行以下 Server Manager 命令<br> SVRMGR> connect internal<br> <br> (3) 在 Server Manager 命令交互状态下执行关闭数据库的命令<br> SVRMGR> shutdown<br>另外<br>数据库关闭命令:<br>svrmgr> shutdown +<br>nomal; 正常退出。在所有用户已退出情况下使用<br>immediate; 立即关机。中断所有用户,并回退所有未保存命令。(推荐使用)<br>abort; 异常关机。只关闭实例,是一种危险关机。<br>transactional; 事物终结后关机。等待所有用户完成提交后关机。<br>oracle用户管理<br>创建用户、授权及修改用户等。<br>oracle用户管理:<br>一、创建profile文件。<br>SQL>Create profile 文件名 limit<br> FAILED_LOGIN_ATTEMPTS:指定锁定用户的登录失败次数<br> PASSWORD_LOCK_TIME:指定用户被锁定天数<br> PASSWORD_LIFE_TIME:指定口令可用天数<br> PASSWORD_REUSE_TIME:指定在多长时间内口令不能重用<br> PASSWORD_REUSE_MAX:指定在重用口令前口令需要改变的次数 <br> SESSIONS_PER_USER:限制用户并发会话个数<br> CPU_PER_SESSION:限制会话所占用的CPU时间(百分之一秒)<br> CPU_PER_CALL:限制每次调用所占用的CPU时间(百分之一秒)<br> CONNECT_TIME:限制会话的总计连接时间(分钟)<br> IDLE_TIME:限制会话的空闲时间(分钟));<br> <br> <br> <br>二、创建用户(包括创建角色):<br>SQL>Create user 用户名<br> IDENTIFIED BY 口令<br> Default tablespace 表空间名<br> TEMPORARY tablespace 临时表空间名<br> Profile profile文件名<br> Quota 限制空间大小 on 表空间名;<br>并给用户授权:<br>SQL>grant connect ,resource to 用户名;<br><br>举例:<br>-- 创建角色<br>DROP ROLE ICDYW;<br>CREATE ROLE ICDYW NOT IDENTIFIED;<br>GRANT "DBA" TO "ICDYW";<br>GRANT "EXP_FULL_DATABASE" TO "ICDYW";<br>GRANT "IMP_FULL_DATABASE" TO "ICDYW";<br>-- 创建用户<br>DROP USER ICDMAIN CASCADE;<br>CREATE USER ICDMAIN IDENTIFIED BY icd<br>DEFAULT TABLESPACE SERVICE_RPT_DAT<br>TEMPORARY TABLESPACE SERVICE_TEMP<br>PROFILE DEFAULT;<br>GRANT "ICDYW" TO "ICDMAIN" WITH ADMIN OPTION;<br>GRANT UNLIMITED TABLESPACE TO "ICDMAIN" WITH ADMIN OPTION;<br>GRANT SELECT ON SYS.V_$MYSTAT TO ICDMAIN;<br>GRANT SELECT ON SYS.V_$SESSION TO ICDMAIN;<br>GRANT SELECT ON SYS.DBA_JOBS TO ICDMAIN;<br>ALTER USER ICDMAIN DEFAULT ROLE ALL;<br>三. 改动用户: <br>一. 修改用户各项参数:(除用户名外其它各项均可以修改)<br>SQL>Alter user 用户名<br> IDENTIFIED BY 口令<br> Default tablespace 表空间名<br> TEMPORARY tablespace 临时表空间名<br> Profile profile文件名<br> Quota 限制空间大小 on 表空间名;<br>将用户加锁:<br>SQL>Alter user 用户名 ACCOUNT LOCK; - -加锁<br> ACCOUNT UNLOCK; - -解锁<br>强制用户修改口令:<br>SQL>Alter user 用户名 password expire;<br>四. 删除用户:<br> <br>用户下没有实体时:<br>SQL>Drop user 用户名;<br>用户已创建实体如表和数据时:<br>SQL>Drop user 用户名 CASCADE;<br>注意:当前正连接的用户不得删除。<br> 使用CASCADE选项时,用户及实体马上被删除,应再进入数据文件进行物理删除。<br>五. 监视用户:<br>查询用户会话信息:(如果有两个用户以同一用户名登录,则可动态查询<br>SQL>Select username machine , sid , serial #<br> From V$ session;<br> <br>删除用户会话:<br>SQL>Alter system kill session ~sid , serial~ ;<br>显示用户的SQL语句:<br>SQL>Select user _name , SQL _text From V$ open _cursor;<br>



剩余11页未读,继续阅读
















评论11