Oracle troubleshooting

装了oracle 9i/10g后用toad等客户端联接提示 "ORA-12541: TNS: 无监听程序" ; 解决办法 在查看服务时发现没有监听 在网上搜了下找到了答案 , 运行lsnrctl start 就会在服务里

创建一个OracleOraDb10g_home1TNSListener服务。
requires oracle client software version 8.1.7 or greater

遇到了这个问题,在网上搜了一下,原来是老问题,贴出来记录一下。

原来当Oracle 9.2运行在NTFS的分区上时,对于某些非administrator组的用户,ORACLE_HOME 目录是不可见的,而在windows server 2003下asp.net应用使用的帐户是netword service,因此无法创建oracle连接,只要重设一下ORACLE_HOME目录的权限就可以了。步骤如下:
1、以管理员的用户登录;
2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3、重新启动计算机,让权限设置生效(请注意,这一步很重要);
4、登录后运行asp.net应用,正常取得Oracle数据库的数据。

http://www.cnblogs.com/jeet/archive/2005/09/28/115150.html

第三步中,我的系统是windows XP sp2,没用重启计算机。只是在任务管理器中将进程“aspnet_wp.exe”结束,然后重新连接即可。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天在使用应用程序连接Oracle时碰到了 “ORA-12638: 身份证明检索失败” 错误,到网上搜索了一下,是因为Oracle的高级安全性验证导致,解决办法如下:

开始 -> 程序 -> Oracle -> Configuration and Migration Tools ->
Net Manager→本地→概要文件→Oracle高级安全性→验证→去掉所选方法中的 "NTS" 就可以了.

$ORACLE_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (NTS)
修改为SQLNET.AUTHENTICATION_SERVICES = (NONE)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

1. NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页 
或者对于unicode应用设置为UTF8

在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
 活动的代码页: 936

代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:

http://www.microsoft.com/globaldev/reference/dbcs/936.htm 

2. 查看 NLS_LANG 的方法
Windows使用:

echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK

Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。


3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;

select * from nls_database_parameters

select userenv(‘language’) from dual;


4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;


5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG

Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 设置生效

source .bash_profile 

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、禁用触发器

alter trigger company_group_type_trigger disable ;
2、起用触发器

alter trigger company_group_type_trigger enable ;

3、禁用/启用某个表的所有触发器

alter table table_name disable/enable trigger ; 


 

posted @ 2009-01-25 11:33  Devilmsg  阅读(309)  评论(0编辑  收藏  举报