很多新手在安装weblogic的时候,可能因为不知道weblogic各个组件的作用而不知道该选择安装哪些组件合适,weblogic包含的组件如下:
各个组件作用说明:
Author Archives: 惜分飞
通过修改col$.col#改变列展示顺序
有网友提出在表中新增加一列,然后让这个列在中间(大家都知道默认情况下,增加一列,这列会在其他列之后),通过修改col$基表可以实现改变列的显示顺序(增加一个新列是小儿科的事情不再研究)。我这里通过建立一个表,有id和name列,现在要改变这两列的默认展示顺序
1.创建模拟表
SQL> create table chf.t_xff (id number,name varchar2(100)); Table created. SQL> insert into chf.t_xff values(1,'xifenfei'); 1 row created. SQL> insert into chf.t_xff values(2,'www.orasos.com'); 1 row created. SQL> commit; Commit complete. SQL> desc chf.t_xff; Name Null? Type ----------------------------------------- -------- ------------------- ID NUMBER NAME VARCHAR2(100) SQL> col name for a30 SQL> select * from chf.t_xff; ID NAME ---------- ------------------------------ 1 xifenfei 2 www.orasos.com
2.修改col$.col#
SQL> select COLUMN_ID,COLUMN_NAME from dba_tab_cols 2 where table_name='T_XFF' AND OWNER='CHF'; COLUMN_ID COLUMN_NAME ---------- ------------------------------------------------------------ 2 NAME 1 ID SQL> SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME='T_XFF'; OBJECT_ID ---------- 75598 SQL> SELECT NAME,COL# FROM COL$ WHERE OBJ#=75598; NAME COL# ------------------------------ ---------- NAME 2 ID 1 SQL> UPDATE COL$ SET COL#=2 WHERE OBJ#=75598 AND NAME='ID'; 1 row updated. SQL> SELECT NAME,COL# FROM COL$ WHERE OBJ#=75598; NAME COL# ------------------------------ ---------- NAME 2 ID 2 SQL> UPDATE COL$ SET COL#=1 WHERE OBJ#=75598 AND NAME='NAME'; 1 row updated. SQL> SELECT NAME,COL# FROM COL$ WHERE OBJ#=75598; NAME COL# ------------------------------ ---------- NAME 1 ID 2 SQL> COMMIT; Commit complete.
3.验证结果
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 368263168 bytes Fixed Size 1345016 bytes Variable Size 306186760 bytes Database Buffers 54525952 bytes Redo Buffers 6205440 bytes Database mounted. Database opened. SQL> select * from chf.t_xff; NAME ID ------------------------------ ---------- xifenfei 1 www.orasos.com 2 SQL> desc chf.t_xff Name Null? Type ----------------------------------------- -------- --------------- NAME VARCHAR2(100) ID NUMBER
_allow_resetlogs_corruption和adjust_scn解决ORA-01190
一、模拟offline文件然后resetlogs操作
1.设置datafile 5数据文件offline 2.rman备份数据库 3.关闭原数据库,删除数据文件/当前日志和部分归档日志 4.执行不完全恢复,resetlogs打开数据库(如下面操作) [oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:36:59 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> recover database until cancel; ORA-00279: change 868870 generated at 03/15/2012 03:32:11 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_29_777766629.dbf ORA-00280: change 868870 for thread 1 is in sequence #29 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_STATUS TO_CHAR(CHANGE#,'999999999 ---------- -------------- -------------------------- 5 OFFLINE 868810 SQL> alter database datafile 5 online; alter database datafile 5 online * ERROR at line 1: ORA-01190: control file or data file 5 is from before the last RESETLOGS ORA-01110: data file 5: '/u01/oracle/oradata/ora11g/xifenfei01.dbf' SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(last_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(LAST_CHANGE#,'9999 ---------- -------------------------- -------------------------- 1 868874 2 868874 3 868874 4 868874 5 868810 868874 --可以看到offline的数据文件,没有因为resetlogs操作而改变 --CHECKPOINT_CHANGE#和RESETLOGS_CHANGE#信息 SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 868874 868871 2 868874 868871 3 868874 868871 4 868874 868871 5 868810 787897
二、隐含参数设置
SQL> create pfile='/tmp/pfile' from spfile; File created. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. 在pfile中增加 _allow_resetlogs_corruption=true _allow_error_simulation=TRUE(10g及其以上版本需要)
三、打开数据库,online离线文件
SQL> startup pfile='/tmp/pfile' mount; ORACLE instance started. Total System Global Area 368263168 bytes Fixed Size 1345016 bytes Variable Size 293603848 bytes Database Buffers 67108864 bytes Redo Buffers 6205440 bytes Database mounted. --在mount状态下执行 SQL> alter session set events '10015 trace name adjust_scn level 2'; Session altered. SQL> recover database until cancel; ORA-00279: change 868810 generated at 03/13/2012 22:19:37 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_27_777766629.dbf ORA-00280: change 868810 for thread 1 is in sequence #27 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01190: control file or data file 1 is from before the last RESETLOGS ORA-01110: data file 1: '/u01/oracle/oradata/ora11g/system01.dbf' ORA-01112: media recovery not started --[一定要]在mount状态下执行online操作 SQL> alter database datafile 5 online; Database altered. SQL> alter database open resetlogs; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; no rows selected
姊妹篇:bbed解决ORA-01190
bbed解决ORA-01190
当我们使用resetlogs方式打开数据库后,发现有数据文件处于offline状态,这个时候很可能就是悲剧降临的时候,很有可能这个文件文件在resetlogs之前就处于offline状态,然后你resetlogs之后,这个文件使用常规方法很难再online,会出现ORA-01190或者ORA-01189之类的错误。
一、模拟offline文件然后resetlogs操作
1.设置datafile 5数据文件offline 2.rman备份数据库 3.关闭原数据库,删除数据文件/当前日志和部分归档日志 4.执行不完全恢复,resetlogs打开数据库(如下面操作) [oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:36:59 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> recover database until cancel; ORA-00279: change 868870 generated at 03/15/2012 03:32:11 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oradata/archivelog/ora11g/1_29_777766629.dbf ORA-00280: change 868870 for thread 1 is in sequence #29 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. SQL> alter database open resetlogs; Database altered. SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file; FILE# ONLINE_STATUS TO_CHAR(CHANGE#,'999999999 ---------- -------------- -------------------------- 5 OFFLINE 868810 SQL> alter database datafile 5 online; alter database datafile 5 online * ERROR at line 1: ORA-01190: control file or data file 5 is from before the last RESETLOGS ORA-01110: data file 5: '/u01/oracle/oradata/ora11g/xifenfei01.dbf' SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(last_change#,'999999999999') from v$datafile; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(LAST_CHANGE#,'9999 ---------- -------------------------- -------------------------- 1 868874 2 868874 3 868874 4 868874 5 868810 868874 --可以看到offline的数据文件,没有因为resetlogs操作而改变 --CHECKPOINT_CHANGE#和RESETLOGS_CHANGE#信息 SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 868874 868871 2 868874 868871 3 868874 868871 4 868874 868871 5 868810 787897 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.
二、bbed修改相关项
下面两项与resetlogs相关 kcvfhrlc表示 reset logs count kcvfhrls表示 resetlogs scn 下面四项与数据库文件scn相关 kscnbas (at offset 140) – SCN of last change to the datafile. kcvcptim (at offset 148) - Time of the last change to the datafile. kcvfhcpc (at offset 176) – Checkpoint count. kcvfhccc (at offset 184) – Unknown, but is always 1 less than thecheckpoint point count. BBED> set filename '/u01/oracle/oradata/ora11g/system01.dbf' FILENAME /u01/oracle/oradata/ora11g/system01.dbf BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5eed37 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000d4207 ub2 kscnwrp @120 0x0000 BBED> p kcvcpscn struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x000d4495 ub2 kscnwrp @488 0x0000 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000078 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000077 BBED> set filename '/u01/oracle/oradata/ora11g/xifenfei01.dbf' FILENAME /u01/oracle/oradata/ora11g/xifenfei01.dbf BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5bc6e5 BBED> set mode edit MODE Edit BBED> m /x 37ed5e2e Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y BBED> p kcvfhrlc ub4 kcvfhrlc @112 0x2e5eed37 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000c05b9 ub2 kscnwrp @120 0x0000 BBED> m /x 07420d00 BBED> p kcvfhrls struct kcvfhrls, 8 bytes @116 ub4 kscnbas @116 0x000d4207 ub2 kscnwrp @120 0x0000 BBED> p kcvcpscn struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x000d41ca ub2 kscnwrp @488 0x0000 BBED> set offset 484 OFFSET 484 BBED> m /x 95440d00 BBED-00209: invalid number (95440d00) BBED> m /x 9544 BBED> set offset +2 OFFSET 486 BBED> m /x 0d00 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000003 BBED> m /x 78000000 BBED> p kcvfhcpc ub4 kcvfhcpc @140 0x00000078 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000002 BBED> m /x 77000000 BBED> p kcvfhccc ub4 kcvfhccc @148 0x00000077 BBED> sum Check value for File 0, Block 1: current = 0xe079, required = 0x5940 BBED> sum apply Check value for File 0, Block 1: current = 0x5940, required = 0x5940 1
三、数据文件online
[oracle@xifenfei ora11g]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 15 07:48:48 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 368263168 bytes Fixed Size 1345016 bytes Variable Size 301992456 bytes Database Buffers 58720256 bytes Redo Buffers 6205440 bytes Database mounted. Database opened. SQL> select file#,to_char(checkpoint_change#,'999999999999'), 2 to_char(RESETLOGS_CHANGE#,'999999999999') 3 from v$datafile_header; FILE# TO_CHAR(CHECKPOINT_CHANGE# TO_CHAR(RESETLOGS_CHANGE#, ---------- -------------------------- -------------------------- 1 869528 868871 2 869528 868871 3 869528 868871 4 869528 868871 5 869525 868871 SQL> recover datafile 5; Media recovery complete. SQL> alter database datafile 5 online; Database altered.
在RAC中lsnrctl和srvctl操作监听区别
朋友今天询问了一个问题RAC中使用srvctl 操作监听和lsnrctl 操作监听结果不一样,下面我通过实验说明问题
0.listener.ora文件内容
LISTENER_RAC1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)(IP = FIRST)) ) ) SID_LIST_LISTENER_RAC1 = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) )
1.srvctl 启动监听
rac1-> srvctl start listener -n rac1 rac1-> lsnrctl status LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2012 22:09:34 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER_RAC1 Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 11-MAR-2012 22:07:21 Uptime 0 days 0 hr. 2 min. 13 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_rac1.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.21)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.11)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully rac1-> crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.....XFF.cs application ONLINE ONLINE rac1 ora....db1.srv application ONLINE ONLINE rac2 ora.devdb.db application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
srvctl操作监听,自动反馈到crs中
2.使用srvctl关闭监听
rac1-> srvctl stop listener -n rac1 rac1-> crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.....XFF.cs application ONLINE ONLINE rac1 ora....db1.srv application ONLINE ONLINE rac2 ora.devdb.db application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application OFFLINE OFFLINE ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
3.使用lsnrctl查看监听状态
rac1-> lsnrctl status LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2012 22:15:54 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) <--host为空 TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused rac1-> lsnrctl LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2012 22:16:55 Copyright (c) 1991, 2005, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> status listener_rac1 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521)(IP=FIRST))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.11)(PORT=1521)(IP=FIRST))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused
这里可以发现问题:
1)如果当前没有监听在运行,使用lsnrctl status的时候,会去检查默认的监听名称为listener的监听,如果该监听不存在不会使用hostname填充到hostname项中(注意下面的启动默认监听过程)
2)lsnrctl查看指定监听为listener_rac1,发现和listener.ora中配置相同
4.lsnrctl 关闭监听
rac1-> srvctl start listener -n rac1 rac1-> lsnrctl stop LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2012 22:43:14 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) <--host为空 The command completed successfully rac1-> crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.....XFF.cs application ONLINE ONLINE rac1 ora....db1.srv application ONLINE ONLINE rac2 ora.devdb.db application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application OFFLINE OFFLINE ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
这里可以说明问题:
1)lsnrctl stop虽然是要停止掉默认监听,但是也会停止掉非默认监听
2)lsnrctl stop如果默认监听不存在,那么注册host也为空
5.使用lsnrctl启动默认监听
rac1-> lsnrctl start LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2012 22:17:37 Copyright (c) 1991, 2005, Oracle. All rights reserved. Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 11-MAR-2012 22:17:37 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rac1)(PORT=1521))) <--主机名 The listener supports no services The command completed successfully rac1-> crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.....XFF.cs application ONLINE ONLINE rac1 ora....db1.srv application ONLINE ONLINE rac2 ora.devdb.db application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application OFFLINE OFFLINE ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
这里发现问题:
1)监听的ip只有主机名的一个,和srvctl启动的监听不一样
2)虽然监听启动了,crs中依然显示为offline状态
6.使用lsnrctl启动listener_rac1监听
LSNRCTL> start listener_rac1 Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.1.0 - Production System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener_rac1.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.21)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.11)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac1-vip)(PORT=1521)(IP=FIRST))) STATUS of the LISTENER ------------------------ Alias listener_rac1 Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 11-MAR-2012 22:19:04 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener_rac1.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.21)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.11)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully rac1-> crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.....XFF.cs application ONLINE ONLINE rac1 ora....db1.srv application ONLINE ONLINE rac2 ora.devdb.db application ONLINE ONLINE rac2 ora....b1.inst application ONLINE ONLINE rac1 ora....b2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
这里可以说明两个问题:
1)使用lsnrctl启动监听和srvctl启动一样
2)启动listener_rac1后,crs中监听资源变成online
7.问题原因分析
rac1-> srvctl config listener -n rac1 rac1 LISTENER_RAC1
通过这里可以发现,其实srvctl操作的监听就是LISTENER_RAC1,所以当我使用lsnrctl 操作LISTENER_RAC1监听时候crs会自动offline或者online,而lsnrctl 操作默认监听时crs不会online