2009年6月10日星期三

listener问题

[oracle@localhost bdump]$ sqlplus vincent/vincent@oracle
SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 20:36:10 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12541: TNS:no listener

[oracle@localhost ~]$ lsnrctl start
[oracle@localhost ~]$ sqlplus vincent/vincent@oracle

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 20:36:34 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

[oracle@localhost ~]$ tnsping localhost
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 22-MAY-2009 20:37:37
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=localhost.localdomain))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
OK (10 msec)

tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN


[oracle@localhost admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 20:43:47 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn vincent/vincent
Error accessing PRODUCT_USER_PROFILE
Warning: Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.
SQL>

$ sqlplus vincent/vincent登录不上

google:
/u01/app/oracle/oracle/product/10.2.0/db_1/network/admin
listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = billy)
(ORACLE_HOME = /u01/app/oracle/oracle/product/10.2.0/db_1)
(SID_NAME = billy)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
//添加斜体字部分

重启oracle

可以用
$ sqlplus vincent/vincent登录

另注意上面有个
Error accessing PRODUCT_USER_PROFILE
引用
其实在实际意义上这只是个警告而已,并不是真正的错误,遇见这个提示,并不会影响我们正常使用sql*plus,也不会对数据库功能产生影响。

如果数据库是使用dbca创建的那么不用担心这个问题,通常是我们手动创建数据库的情况下,忘了执行一些脚本才导致出现这样的警告。 product_user_profile其实有非常强大的功能,这是system模式下的一个表,在此表中存在的数据能让客户端程式登入的时候检查是否 在命令的执行上有什么限制。基本上我们是以他来限制sql*plus这个客户端程式(目前似乎也只有这个程式才会去自动检查这张表:d)

解决:
[oracle@localhost admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 21:25:52 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn system/manager
//默认密码:要修改以sys登录,alter user system identified by yourpass;
Connected.
SQL> @/u01/app/oracle/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql

SQL> desc product_user_profile;
Name Null? Type
----------------------------------------- -------- ----------------------------
PRODUCT NOT NULL VARCHAR2(30)
USERID VARCHAR2(30)
ATTRIBUTE VARCHAR2(240)
SCOPE VARCHAR2(240)
NUMERIC_VALUE NUMBER(15,2)
CHAR_VALUE VARCHAR2(240)
DATE_VALUE DATE
LONG_VALUE LONG

再次尝试登录
[oracle@localhost admin]$ sqlplus vincent/vincent
SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 22 21:26:27 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

--OK

没有评论:

发表评论