oracle 11g ERROR
如果您的服务器莫名其妙的报这个错,之前却一直正常,那么请试试下面的方法(记得将您需要修改的文件备份一下,因为错误原因可能不一样):
打开"<OracleHome>/network/admin/listener.ora" ,复制下面红色字体到您的文件中
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
保存文件,重启监听器,重启pl/sql,就OK了
打开"<OracleHome>/network/admin/listener.ora" ,复制下面红色字体到您的文件中
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
保存文件,重启监听器,重启pl/sql,就OK了
上面是oracle10g的,11g的也是这样子的,ORACLE_HOME=E:\oracle\product(这是我的,你的盘符可能不一样)
GLOBAL_DBNAME是您的数据库名字,SID_NAME是实例名
2.连同事的数据库时,出现ora-12170:tns:连接超时
是因为同事打开了防火墙,所以出现上面的错误
3.pl/sql 连上数据库时,只能以sysdba方式,登录进去,normal方式不行(这样就导致jdbc连不上数据库)
很有可能建立数据库的时候是通过sysdba权限建的,所以用户以normal方式登录不了,但是我想通过增加权限的方式,让它能以normal方式登录,查询sql
select * from all_users order by length(username);
根本就找不到test的username,所以无法赋予权限,通过以下sql新建了个账户(sungoal),plsql和jdbc都能连上了View Code
--创建用户 create user sungoal identified by sungoal; --创建临时表空间 create temporary tablespace sungoal_temp tempfile 'D:\oracle_table_space\sungoal_temp.dbf' size 50m autoextend on next 50m maxsize 1024m; --创建数据表空间 create tablespace sungoal_data datafile 'd:\oracle_table_space\sungoal_data' size 50m autoextend on next 50m maxsize 1024m; --给用户指定表空间 alter user sungoal default tablespace sungoal_data temporary tablespace sungoal_temp; --给用户赋权 grant connect,resource to sungoal; --连接用户(需要到命令行窗口测试能不能连上,不能通过sql窗口) --conn sungoal/sungoal --drop user sungoal cascade;
某年某月的某一天的再一次碰到了这个鬼问题(pl/sql 连上数据库时,只能以sysdba方式,登录进去,normal方式不行(这样就导致jdbc也连不上数据库),查看它的view视图,跟别的用户的sql对比发现
View Code
--不能正常登录的 -- Create the user create user TESTDBLINK_USER default tablespace SUNGOAL_DATA temporary tablespace SUNGOAL_TEMP profile DEFAULT password expire; -- Grant/Revoke role privileges grant connect to TESTDBLINK_USER with admin option; grant dba to TESTDBLINK_USER with admin option; grant resource to TESTDBLINK_USER; -- Grant/Revoke system privileges grant unlimited tablespace to TESTDBLINK_USER; --能正常登录的 -- Create the user create user SUNGOAL default tablespace SUNGOAL_DATA temporary tablespace SUNGOAL_TEMP profile DEFAULT password expire; -- Grant/Revoke role privileges grant connect to SUNGOAL; grant dba to SUNGOAL; grant resource to SUNGOAL; -- Grant/Revoke system privileges grant unlimited tablespace to SUNGOAL;
多了一个with admin option的sql语句,我们删除掉这个用户,然后重新建立
View Code
create user TESTDBLINK_USER identified by TESTDBLINK_USER default tablespace SUNGOAL_DATA temporary tablespace SUNGOAL_TEMP profile DEFAULT password expire; -- Grant/Revoke role privileges grant connect to TESTDBLINK_USER ; grant dba to TESTDBLINK_USER ; grant resource to TESTDBLINK_USER; -- Grant/Revoke system privileges grant unlimited tablespace to TESTDBLINK_USER;
然后重启服务,重启pl/sql,就OK了
--创建临时表空间 create temporary tablespace sungoal_temp tempfile 'D:\installer\app\andy\oracle_table_space\sungoal_temp.dbf' size 50m autoextend on next 50m maxsize 512m; --创建数据表空间 create tablespace sungoal_data datafile 'D:\installer\app\andy\oracle_table_space\sungoal_data.dbf' size 50m autoextend on next 50m maxsize 512m; --创建用户 create user SUNGOAL default tablespace SUNGOAL_DATA temporary tablespace SUNGOAL_TEMP profile DEFAULT password expire identified by sungoal -- Grant/Revoke role privileges grant connect to SUNGOAL; grant dba to SUNGOAL; grant resource to SUNGOAL; -- Grant/Revoke system privileges grant unlimited tablespace to SUNGOAL;
4.通过程序(java)只能是localhost,ip方式却连不上,新增一个监听地址就行了
打开oracle的net manager,记得改完之后重启xxxxlistener服务和xxxxservice服务
4.本地计算机上的OracleOraDb11g_home2TNSListener服务启动又停止了。一些服务自动停止。。。
这是ip变了,listener.ora文件如下
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) #(DESCRIPTION = #(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.12.12)(PORT = 1521)) #) )
其中192.168.12.12是我在公司的ip,家里面的ip不是这个,所以注释就行了,或者改成你的ip
一步一个脚印,方便自己复习,欢迎大家指正,非常感谢,共同进步!
posted on 2012-03-24 16:12 lovebeauty 阅读(1432) 评论(0) 编辑 收藏 举报