今天是重要的一天。将XML数据导入ORACLE遇到很多问题,学了好多,其中很长时间花在网络配置上,刚开始学,具体原因不知道,先把搜集到的好文章存下来,以后慢慢研究。
监听配置文件
为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 置 Oracle 网络服务器环境 配置 Oracle 网络服务器环境是通过配置 listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的 listener.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 = (divSENTATION = 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 = cams) (ORACLE_HOME = /u01/app/oracle/product/8.1.7) (SID_NAME = cams) ) (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就说明监听器正在运行 否则说明监听器已经停止了 CAMS 系统的后台程序的正常运行不仅依赖于数据库实例的运行 还依赖于这个数据库监听器的运行 假如监听器没有启动 即使数据库已经启动 CAMS 后台程序仍然不能正常工作2 如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所示的一个IPC 协议地址的监听 是为了外部进程调用用的 在数据库安装时自动设定不需要改动3 在监听文件后部还有一个 SID_LIST_LISTENER 段 该段用于定义监听器的服务 即为哪些数据库实例提供监听服务 以 cams 实例为例 其对应的服务信息为(SID_DESC =(GLOBAL_DBNAME = cams) #数据库名 (ORACLE_HOME = /u01/app/oracle/product/8.1.7)(SID_NAME = cams) #数据库实例名)1.2.5 sqlnet.ora 文件 sqlnet.ora 文件的存放路径为 $ORACLE_HOME/network/admin 以下是一 个示例NAMES.DEFAULT_DOMAIN = localdomainNAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)& 说明NAMES.DEFAULT_DOMAIN 指定网络域名 NAMES.DIRECTORY_PATH指定当解析客户端连接标识符时命名方法 naming metthods 采用的优先顺序 从左至右递减 在 CAMS 应用中 这两个参数采用上述所示的系统缺省值1.2.6 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) ))CAMS.LOCALDOMAIN =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521)) ) (CONNECT_DATA = (SERVICE_NAME = cams) ))INST1_HTTP.LOCALDOMAIN =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT =1521)) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = MODOSE) (divSENTATION = http://admin) ))EXTPROC_CONNECTION_DATA.LOCALDOMAIN =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (CONNECT_DATA = (SID = PLSExtProc1) (divSENTATION = RO) )) & 说明tnsnames.ora 文件中定义一个或多个网络服务 net service cams 实例对应的网络服务为CAMS.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = localhost.localdomain) (PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = cams)))注意 这里 ADDRESS项包含三个子参数PROTOCOL :默认协议TCPHOST :ip地址PORT:端口,默认1521CAMS.LOCALDOMAIN为数据名要确保在监听文件中也有对应的一个 ADDRESS 项也包含同样的三个子参数 并且子参数的值对应都相等 另外 这里 SERVICE_NAME 的值必需确保与监听文件中某 SID_DESC项下的 SID_NAME参数的值相等