oracle导出指定记录
- 格式:docx
- 大小:19.30 KB
- 文档页数:8
Oracle中断中⽌expimp和expdpimpdp数据库导⼊导出⼀、中断、中⽌imp/exp导⼊导出imp、exp导⼊导出数据库是系统中的进程,我们只需要找到并将其kill掉即可。
但需要注意的是要先kill掉主进程,否则主进程还是会⽣成⼦进程,导⼊导出的动作还是会在后台进⾏。
eg.ps -ef | grep exp#找到主进程pid使⽤kill命令关掉进程kill -9 pidkill -9 ppid⼆、中断、中⽌expdp/impdp数据泵导⼊导出数据泵的导出就不像exp/imp那么简单了因为⽤数据泵导出是oracle的⼀个job,如果中断,中⽌那么就需要将这个job停⽌掉才可以。
2.1 查看job_name和状态select * from dba_datapump_jobs可以看到JOB_NAME是SYS_IMPORT_FULL_01状态是EXECUTING(正在执⾏的),并且正在执⾏的是IMPDP的导⼊操作。
2.2 连接当前存在的job使⽤ATTCH参数连接到2.1中查到的JOB作业上。
下⾯是完整的输出内容C:\Users\Administrator>impdp ⽤户名/密码g@实例名 attach=SYS_IMPORT_FULL_01Import: Release 11.2.0.1.0 - Production on 星期五 9⽉ 3 09:47:46 2021Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options作业: SYS_IMPORT_FULL_01所有者: SLCJ2021操作: IMPORT创建者权限: TRUEGUID: 93037C51864F4B7D82BF4FC46C527F7C开始时间: 星期五, 03 9⽉, 2021 9:16:33模式: FULL实例: orcl2最⼤并⾏度: 1EXPORT 个作业参数:参数名参数值:CLIENT_COMMAND slcj/********@orclgbk DIRECTORY=expdp_dir dumpfile=expdp_slcj_48_20210902.dmp logfile=expdp_slcj_48_20210902.log schemas=slcjIMPORT 个作业参数:CLIENT_COMMAND slcj2021/********@orcl2 directory=expdp_dir dumpfile=EXPDP_SLCJ_48_20210902.DMP logfile=impdp_slcj-slcj2021.log REMAP_SCHEMA=slcj:slcj2021 remap_tablespace=SLCJ:SLCJ2021,SLCJ_TEMP:SLCJ2021_TEMP状态: EXECUTING处理的字节: 7,835,243,664完成的百分⽐: 20当前并⾏度: 1作业错误计数: 0转储⽂件: D:\expdp_dir\EXPDP_SLCJ_48_20210902.DMPWorker 1 状态:进程名: DW00状态: EXECUTING对象⽅案: SLCJ2021对象名: CO_MONTH_REPORT_INFO对象类型: SCHEMA_EXPORT/TABLE/TABLE_DATA完成的对象数: 3总的对象数: 378完成的⾏数: 70,083,827完成的字节: 7,600,427,616完成的百分⽐: 100Worker 并⾏度: 1Import> stop_job是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): y是否确实要停⽌此作业 ([Y]/N): Y是否确实要停⽌此作业 ([Y]/N): YES上⾯stop_job的时候有个坑,可以看到我Y了很多次依然还是要求确认,最后搞明⽩了是需要输⼊YES!2.3 再次查看job状态可以看到JOB的状态已经发⽣了变化,现在是正在关闭2.4 ⽴即关闭JOB连接JOB参考2.2#⽴即将JOB关闭STOP_JOB=IMMEDIATE#分离和删除kill_job可以再次查看⼀下job,此时job应该已经不存在了。
/lschou520/archive/2008/08/31/2854244.aspxOracle 数据库备份与恢复总结-exp/imp (导出与导入装库与卸库) 收藏1.1 基本命令1. 获取帮助$ exp help=y$ imp help=y2. 三种工作方式(1)交互式方式$ exp // 然后按提示输入所需要的参数(2)命令行方式$ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令行中输入所需的参数(3)参数文件方式$ exp parfile=username.par // 在参数文件中输入所需的参数参数文件username.par 内容userid=username/userpassword buffer=8192000compress=n grants=yfile=/oracle/test.dmp full=y3. 三种模式(1)表方式,将指定表的数据导出/导入。
导出:导出一张或几张表:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2导出某张表的部分数据$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\”where col1=\’…\’and col2 \<…\”导入:导入一张或几张表$ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y(2)用户方式,将指定用户的所有对象及数据导出/导入。
导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy)只导出数据对象,不导出数据(rows=n )$ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2commit=y ignore=y(3)全库方式,将数据库中的所有对象导出/导入导出:$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y导入:$ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser21.2 高级选项1. 分割成多个文件以多个固定大小文件方式导出:这种做法通常用在表数据量较大,单个dump文件可能会超出文件系统的限制的情况$ exp user/pwd file=1.dmp,2.dmp,3.dmp,…filesize=1000m log=xxx.log full=y以多个固定大小文件方式导入$ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxx fromuser=dbuser touser=dbuser2 commit=y ignore=y2. 增量导出/导入// oracle 9i 以后exp 不再支持inctype必须为SYS 或SYSTEM 才可执行增量导出导入增量导出: 包括三个类型:(1)“完全”增量导出(Complete)// 备份整个数据库$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete(2)“增量型”增量导出导出上一次备份后改变的数据。
oracle sql 查询满足条件的1条记录全文共四篇示例,供读者参考第一篇示例:在数据库操作中,查询是一种非常常见的操作。
Oracle SQL是一种用于管理Oracle数据库的查询语言,它可以帮助用户高效地从数据库中检索数据。
在实际的数据库管理中,经常会遇到需要查询满足特定条件的记录的情况。
本文将介绍如何使用Oracle SQL查询满足条件的1条记录,并提供一些示例方便大家理解。
让我们来了解一下Oracle SQL的基本语法。
在Oracle SQL中,查询通常以SELECT语句开始,用于指定要检索的列。
其基本语法格式如下:SELECT 列名1, 列名2, ...FROM 表名WHERE 条件;上面的语句中,列名表示想要检索的列,表名表示要检索的数据表,条件表示要满足的筛选条件。
在我们想要查询满足条件的1条记录时,可以在条件中使用一些特殊语法,例如ROWNUM来限制返回的记录数量。
假设我们有一个名为employee的员工表,存储了员工的信息,包括员工编号(emp_id)、员工姓名(emp_name)、部门(department)、薪资(salary)等列。
现在我们想要查询薪资最高的员工的信息,可以使用以下SQL语句:SELECT emp_id, emp_name, department, salaryFROM employeeWHERE salary = (SELECT MAX(salary) FROM employee);上面的查询语句中,我们首先计算了employee表中薪资的最大值,然后在主查询中筛选出薪资等于最大值的员工记录。
这样我们就可以得到薪资最高的员工信息。
除了使用子查询来实现这种查询方式之外,我们还可以使用ROWNUM来控制返回的记录数量。
下面是一个使用ROWNUM的例子:在上面的查询语句中,我们首先按照薪资降序排序,然后使用ROWNUM来限制返回的记录数量不超过1条,这样就可以得到薪资最高的员工信息。
在Oracle中,使用DISTINCT关键字可以选择唯一的(不重复的)字段值。
它用于过滤查询结果集中的重复记录。
以下是使用DISTINCT关键字的基本语法:
```sql
SELECT DISTINCT column1, column2, ...
FROM table_name;
```
在上面的语法中,你可以列出你希望选择的不重复的字段,这些字段可以是单个字段或多个字段。
DISTINCT关键字确保查询结果集中只包含唯一的字段值。
如果你只想选择一个字段并消除重复记录,可以像下面这样编写查询:
```sql
SELECT DISTINCT column_name
FROM table_name;
```
如果你想选择多个字段并消除这些字段的重复记录,可以像下面这样编写查询:
```sql
SELECT DISTINCT column1, column2, ...
FROM table_name;
```
需要注意的是,Oracle中的DISTINCT关键字会根据查询中指定的字段进行去重,而不是对查询结果集中的所有字段进行去重。
这意味着只有指定的字段会被考虑在内,以确定是否为重复记录。
另外,DISTINCT关键字对于单个字段和多个字段的去重操作是不同的。
对于单个字段,DISTINCT关键字会排序并返回唯一的记录。
而对于多个字段,DISTINCT关键字会根据所有指定的字段组合来进行去重操作。
希望以上信息能够帮助到你!如有其他问题,请随时提问。
Oracle中对BLOB字段的处理方法详解BLOB(binary large object)是一种可以存储二进制文件的数据类型,常用于保存图片、音频、视频等大型数据。
在Oracle数据库中,BLOB字段的处理方法有以下几个方面:如何创建和插入BLOB字段如何读取和修改BLOB字段如何导出和导入BLOB字段如何使用DBMS_LOB包和UTL_FILE包操作BLOB字段本文将对这些方面进行详细的介绍和示例,帮助读者掌握Oracle中对BLOB字段的处理方法。
一、创建和插入BLOB字段在Oracle中,创建一个包含BLOB字段的表的语法如下:CREATE TABLE table_name (column1 datatype,column2 datatype,...blob_column BLOB,...);其中,blob_column是BLOB字段的名称,可以指定一些存储属性,如表空间、数据块大小、是否禁用行内存储等。
例如:CREATE TABLE t_lob (id NUMBER(4),name VARCHAR2(10),photo BLOB)LOB (photo) STORE AS (TABLESPACE ts_lobCHUNK 8KDISABLE STORAGE IN ROW);这个语句创建了一个名为t_lob的表,其中包含一个名为photo的BLOB字段,该字段存储在ts_lob表空间中,每个数据块大小为8K,且禁用了行内存储,即BLOB数据不会与其他列数据存储在同一行中,而是存储在一个单独的段中。
插入BLOB字段的数据有两种方法:使用EMPTY_BLOB()函数插入一个空的BLOB对象,然后再使用SELECT ... FOR UPDATE语句获取该对象的引用,并通过其提供的方法写入数据。
例如:-- 插入一个空的BLOB对象INSERT INTO t_lob VALUES (1, 'Alice', EMPTY_BLOB());-- 获取该对象的引用DECLAREv_blob BLOB;BEGINSELECT photo INTO v_blob FROM t_lob WHERE id =1FOR UPDATE;-- 写入数据使用TO_BLOB()函数将一个RAW类型的值转换为BLOB类型,并直接插入到表中。
oracle数据泵参数Oracle数据泵是Oracle数据库中一种数据导入和导出工具,可以以二进制格式导出和导入数据库对象和数据。
通过使用数据泵,用户可以高效地迁移、复制和备份Oracle数据库。
数据泵具有多种参数,可以通过这些参数来控制数据泵的行为和功能。
以下是一些常用的数据泵参数:1.DIRECTORY:指定数据泵导出和导入的目录,这个目录必须在数据库服务器上存在。
2.DUMPFILE:导出的数据泵文件的名称,可以使用扩展名进行命名。
3.LOGFILE:记录导出和导入过程的日志文件的名称。
4.INCLUDE:指定要导出的对象类型,可以是TABLE、SCHEMA、USER、DB_LINK等。
5.EXCLUDE:指定要排除在导出之外的对象类型。
6.TABLES:指定要导出的具体表,可以使用逗号分隔多个表名。
7.QUERY:在导出过程中,可以使用SQL查询语句筛选导出的数据。
8.PARALLEL:指定导出和导入的并行度,可以提高导出和导入的效率。
9.CONTENT:指定导出的内容,可以是ALL(对象和数据)、DATA_ONLY(只有数据)或METADATA_ONLY(只有对象结构)。
10.TRANSFORM:在导出过程中,可以对导出的数据进行转换和处理,如更改数据类型、字符集等。
WORK_LINK:可以在导出时使用网络链接将导出的数据直接传输到目标数据库上。
12.REMAP_TABLE:可以在导出和导入过程中,对表进行重命名。
13.REMAP_SCHEMA:可以在导出和导入过程中,对模式进行重命名。
14. FLASHBACK_SCN:可以在导出过程中使用指定的系统变量恢复到特定的SCN(System Change Number)。
15.ESTIMATE:可以在导出之前估计导出的大小,用于计算导出所需的磁盘空间。
这些参数可以通过数据泵工具的命令行参数进行设置,也可以在数据泵作业中使用导出或导入的操作。
oracle 存储过程优秀例子Oracle存储过程是一种在数据库中存储并可以被重复调用的程序单元。
它可以用于实现复杂的业务逻辑,提高数据库的性能和安全性。
下面列举了十个优秀的Oracle存储过程例子。
1. 用户注册存储过程该存储过程可以用于用户注册过程的验证和处理。
它可以检查用户提交的信息是否有效,并将用户信息插入到用户表中。
如果有错误或重复信息,它会返回相应的错误消息。
2. 商品库存更新存储过程该存储过程用于处理商品出库和入库的操作。
它会更新商品表中的库存数量,并记录相应的操作日志。
如果库存不足或操作失败,它会返回错误消息。
3. 订单生成存储过程该存储过程用于生成订单并更新相关表的信息。
它可以检查订单的有效性,计算订单总金额,并将订单信息插入到订单表和订单明细表中。
如果有错误或重复订单,它会返回相应的错误消息。
4. 日志记录存储过程该存储过程用于记录系统的操作日志。
它可以根据传入的参数,将操作日志插入到日志表中,并记录操作的时间、操作人和操作内容。
这样可以方便后续的审计和故障排查。
5. 数据备份存储过程该存储过程用于定期备份数据库中的重要数据。
它可以根据预设的时间间隔,将指定表的数据导出到备份表中,并记录备份的时间和备份人。
这样可以保证数据的安全性和可恢复性。
6. 数据清理存储过程该存储过程用于定期清理数据库中的过期数据。
它可以根据预设的条件,删除指定表中的过期数据,并记录清理的时间和清理人。
这样可以减少数据库的存储空间和提高查询性能。
7. 权限管理存储过程该存储过程用于管理数据库中的用户权限。
它可以根据传入的参数,为指定用户或角色分配或撤销相应的权限。
同时,它可以记录权限的变更历史,以便审计和权限回溯。
8. 数据统计存储过程该存储过程用于统计数据库中的数据。
它可以根据预设的条件,查询指定表中的数据,并根据统计规则生成相应的统计报表。
这样可以方便用户对数据进行分析和决策。
9. 数据导入存储过程该存储过程用于将外部数据导入到数据库中。
oracle between的用法-回复Oracle Between 运算符是用来指定一个范围条件的条件运算符。
它用于在WHERE 子句中筛选出在一个指定范围内的记录。
在Oracle 数据库中,Between 运算符可以用于数值、日期和字符类型的数据。
它的基本语法如下:SELECT column1, column2, ...FROM table_nameWHERE column_name BETWEEN value1 AND value2;在这个语法中,column_name 是要筛选的列的名称,value1 和value2 是指定的范围的起始和结束值。
在下面的文章中,我将详细介绍Oracle Between 运算符的用法和使用示例。
第1步:建立一个示例表首先,我们需要在Oracle 数据库中建立一个示例表,以便于后续的操作和演示。
下面是一个示例表的创建语句:CREATE TABLE employee (emp_id INT PRIMARY KEY,emp_name VARCHAR(50),emp_salary NUMBER(10,2),emp_hire_date DATE);使用以上语句创建了一个名为employee 的表,其中包含了emp_id(员工编号)、emp_name(员工姓名)、emp_salary(员工工资)和emp_hire_date(员工入职日期)等列。
第2步:演示使用Between 运算符假设我们要筛选出员工工资在50000 和80000 之间的所有员工记录。
下面是使用Between 运算符的查询语句:SELECT emp_id, emp_name, emp_salaryFROM employeeWHERE emp_salary BETWEEN 50000 AND 80000;以上查询语句将返回符合条件的所有员工记录,结果将包含emp_id、emp_name 和emp_salary 列。
oracle自增长字段修改方法Oracle是一种关系型数据库管理系统,常用于企业级应用程序的开发和管理。
在Oracle中,自增长字段是一种非常常见的需求,它能够自动为每条新记录生成一个唯一标识符,方便数据的管理和查询。
本文将介绍如何使用Oracle来创建和修改自增长字段。
一、创建自增长字段在Oracle中,创建自增长字段可以通过使用序列(Sequence)和触发器(Trigger)来实现。
下面是具体的步骤:1. 创建序列序列是一种用于生成唯一数值的对象。
通过以下语句可以创建一个序列:CREATE SEQUENCE sequence_nameSTART WITH 1INCREMENT BY 1;其中,sequence_name是序列的名称,START WITH指定序列的初始值,INCREMENT BY指定每次递增的步长。
2. 创建触发器触发器是一种在数据库中某个事件发生时自动执行的代码。
通过以下语句可以创建一个触发器:CREATE OR REPLACE TRIGGER trigger_nameBEFORE INSERT ON table_nameFOR EACH ROWBEGINSELECT sequence_name.NEXTVAL INTO :new.auto_increment_column FROM dual;END;其中,trigger_name是触发器的名称,table_name是表的名称,auto_increment_column是自增长字段的名称,sequence_name是之前创建的序列的名称。
3. 修改字段属性通过以下语句可以将字段的属性修改为自增长:ALTER TABLE table_nameMODIFY (auto_increment_column NUMBER DEFAULT sequence_name.NEXTVAL);其中,table_name是表的名称,auto_increment_column是自增长字段的名称,sequence_name是之前创建的序列的名称。
oracle中导出指定记录 1。用pl/sql工具导出数据 里边有个where clause 输入查询条件,可以设置,比如rownow<1001,导出前一千条。
2。exp yst/yst file=d:\file.dmp tables=yst_zy query=\ "where zyid=0001\ " grants= y
Oracle 主要配置文件介绍: profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件
1.2 Oracle 主要配置文件介绍 1.2.1 /etc/profile 文件 系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库 相关的环境变量就定义在/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=cams 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 在使用中文版 CAMS 时 环境变量 NLS_LANG 的值应该设置为 AMERICAN.ZHS16CGB231280 如上所示 在使用英文版 CAMS时 可 以不设置 NLS_LANG 即去掉 export NLS_LANG=... ... 那一行 也可以 设置 NLS_LANG 的值为 AMERICAN_AMERICA.US7ASCII
1.2.2 /etc/oratab 文件 /etc/oratab 文件描述目前系统中创建的数据库实例 以及是否通过 dbstart 和 dbshut 来控制该实例的启动与关闭 如下所示 忽略以#开头的注释部分 : cams:/u01/app/oracle/product/8.1.7:Y 其中 cams 为实例 ID /u01/app/oracle/product/8.1.7为 ORACLE_HOME目 录 Y表示允许使用 dbstart和 dbshut 启动和关闭该实例数据库 如果设置为 N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭
1.2.3 数据库实例初始化文件 initSID.ora 每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为 $ORACLE_BASE/admin//pfile 其名称为 init.ora 如 cams 实 例 对 应 的 参 数 文 件 为 initcams.ora 缺 省 存 放 路 径 为 $ORACLE_BASE/admin/cams/pfile 即/u01/app/oracle/admin/cams/pfile 但 在 CAMS 应 用 中 initcams.ora 的 存 放 路 径 为 /u02/app/oracle/admin/cams/pfile 这是基于数据与应用程序分开存放更好地 保护数据考虑的 尤其在 CAMS 双机应用模式下 能够保证数据的一致性 具体的修改操作可参考 Linux与 Oracle 安装手册 初始化参数文件是一个包含实例配置参数的文本文件 这些参数被设置为特 定的值 用于初始化 Oracle 实例的多数内存和进程设置 以下是一些主要参 数的说明 1 实例的数据库名称 db_name = "cams" 2 实例名称 instance_name = cams 3 数据库控制文件的名称和位置 control_files = ("/u02/app/oracle/oradata/cams/control01.ctl", "/u02/app/oracle/oradata/cams/control02.ctl", "/u02/app/oracle/oradata/cams/control03.ctl") 4 调度作业队列的 SNP 进程的数量以及 SNP 进程觉醒时间间隔 秒 JOB_QUEUE_PROCESSES=2 JOB_QUEUE_INTERVAL=60
5 存储追踪和告警文件的路径 user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的 存放路径 background_dump_dest 指定记录 Oracle 后台进程产生的追踪和 告警信息的文件的存放路径 core_dump_dest指定Oracle运行所产生的core dump 信息的文件的存放路径 background_dump_dest = /u02/app/oracle/admin/cams/bdump core_dump_dest = /u02/app/oracle/admin/cams/cdump user_dump_dest = /u02/app/oracle/admin/cams/udump
6 UTL_FILE_DIR 参数 UTL_FILE_DIR = * UTL_FILE_DIR 参数指定一个或多个目录用于 Oracle 应用的文件 I/O 如备 份数据到文件 在 CAMS 系统中将该值设置为 * 表示可供 Oracle 应 用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数 据存放到任意目录下 1.2.4 监听配置文件 为了使得外部进程 如 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 = (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 = 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) #数据库实例名 )