您的位置:首页 > 数据库 > Oracle

ORACLE中客户端连接服务器端常见问题与解决

2009-12-08 10:20 507 查看
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。下面列出几种常见的连接问题:
1、 ORA-12541: TNS: 没有监听器
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:
$ lsnrctl start

C:/lsnrctl start
2、 ORA-12500: TNS: 监听程序无法启动专用服务器进程
对于Windows而言,没有启动Oracle实例服务。启动实例服务:
C:/oradim –startup -sid myoracle
3、 ORA-12535: TNS: 操作超时
出现这个问题的原因很多,但主要跟网络有关。解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、 ORA-12154: TNS: 无法处理服务名
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:/oracle/ora92/network/admin /tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。
5、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME
打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
6、 Windows 下启动监听服务提示找不到路径
用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。打开注册表,进入HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/OracleOraHome92TNSListener项,查看ImagePath字符串项是否存在,如果没有,设定值为D:/oracle/ora92/BIN/TNSLSNR,不同的安装路径设定值做相应的更改。这种方法同样适用于Oracle实例服务,同上,找到如同HKEY_LOCAL_MACHINE/SYSTEM/Current ControlSet/Services/Oracle ServiceMYORACLE项,查看ImagePath字符串项是否存在,如果没有,则新建,设定值为d:/oracle/ora92 /binORACLE.EXE MYORACLE。
以上是Oracle客户端连接服务器端常见的一些问题,当然不能囊括所有的连接异常。解决问题的关键在于方法与思路,而不是每种问题都有固定的答案。
--Oracle 数据字典
--Oracle 数据字典很多,通常我记不住所有的名字,我们可以用以下SQL去查数据字典的名字
如:select distinct object_name from dba_objects where object_name like 'user_%';
--本用户字典
select distinct object_name from dba_objects where object_name like 'USER_%';
--系统用户字典
select distinct object_name from dba_objects where object_name like 'DBA_%';
--动态字典
select distinct object_name from dba_objects where object_name like 'V$_%';
--表
select * from cat;
select * from tabs;
select * from user_tables;
--视图
select * from user_views;
select text from user_views where view_name=upper('&view_name');
--索引
select * from user_indexes;
select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;
--快照 select * from user_snapshots;
select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;
--触发器
select * from user_triggers;
select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;
--同义词
select * from syn;
--序列
select * from seq;
select * from user_sequences;
--数据库链路
select * from user_db_links;
--约束限制
select * from user_constraints;
select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints;
--本用户读取其它用户对象的权限
select * from user_tab_privs;
--本用户所拥有的系统权限
select * from user_sys_privs;
--Oracle系统中的所有用户
select * from all_users;
select username from all_users;
select * from all_users order by user_id;
--表空间剩余自由空间情况?
select tablespace_name,sum(bytes),max(bytes),count(*) from dba_free_space group by tablespace_name;
--数据字典
select table_name from dict order by table_name;
--锁及资源信息
select * from v$lock;
--不包括DDL锁数据库字符集?
select name,value$ from props$ where name='NLS_CHARACTERSET';
--inin.ora参数
select name,value from v$parameter order by name;
--SQL共享池
select * from v$sqlarea;
select sql_text from v$sqlarea;
--数据库

select * from v$database
--控制文件
select * from V$controlfile;
--重做日志文件信息
select * from V$logfile;
--来自控制文件中的日志文件信息
select * from V$log;
--来自控制文件中的数据文件信息
select * from V$datafile;
--NLS参数当前值
select * from V$nls_parameters;
--ORACLE版本信息
select * from v$version;
--描述oracle后台进程
select * from v$bgprocess;
--查看oracle版本信息
select * from v$instance;
select * from product_component_version;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐