Author Archives: yangtingkun

11.2数据库监听的改变

11.2由于RAC中GRID的分离以及实现了SCAN功能,使得监听的优先级发生了改变。 一个11.2环境的单实例数据库,配置了ASM,随后在同一个服务器上又新建了一个数据库,同样使用这个ASM,但是发现连接这个新的数据库时出现了错误。 [oracle@dbserver1 ~]$ export ORACLE_SID=al32utf8 [oracle@dbserver1 ~]$ sqlplus / AS sysdba SQL*Plus: Release 11.2.0.2.0 Production ON Mon Sep 5 14:04:57 2011 Copyright (c) 1982, 2010, Oracle. ALL rights reserved. Connected TO: Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 – … Continue reading →

Posted in ORACLE | Tagged , , , | Leave a comment

运行csscan出现loading shared libraries错误

在一个11.2.0.2 for Linux X86-64环境中,运行csscan工具报错。 错误信息为: [oracle@dbserver2 ~]$ cd $ORACLE_HOME/bin [oracle@dbserver2 bin]$ csscan help=y csscan: error while loading shared libraries: libclntsh.so.11.1: cannot OPEN shared object file: No such file OR directory[oracle@dbserver2 ~]$ cd $ORACLE_HOME/bin [oracle@dbserver2 bin]$ csscan help=y csscan: error while … Continue reading →

Posted in BUG | Tagged , , | Leave a comment

Oracle工具——csscan

工具csscan用于检查从一个字符集转换到另一个字符集,数据库中的数据是否会产生丢失、截断等现象。 这个工具很早就出现了,不过由于长久以来牵制到字符集转换的工作不是很多,因此对于这个工具没什么研究,这次需要将ZHS16GBK转换到AL32UTF8,尝试了一下csscan的功能,发现这个工具还是很方便的。 [oracle@dbserver1 bin]$ csscan userid=thams/thams TABLE=libfile722 tochar=AL32UTF8 log=/home/oracle/scan_722 CHARACTER SET Scanner v2.2 : Release 11.2.0.2.0 – Production ON Wed Aug 31 10:54:15 2011 Copyright (c) 1982, 2009, Oracle AND/OR its affiliates. ALL rights reserved. CSS-00127: USER thams does NOT … Continue reading →

Posted in ORACLE | Tagged , | 1 Comment

Oracle高级安全管理手册

目前Oracle的文档已经看过不少了,而安全相关的内容是Oracle整体架构中不太熟悉的部分,最近一些项目会与安全方面有关,现在正好抽时间补一补。 这篇文档主要介绍两个方面的内容,一方面介绍数据的加密和完整性;另一方面介绍Oracle高级安全的认证。从技术上讲,主要包括透明数据加密、网络传输数据加密、RADIUS认证、Kerberos认证、SSL认证、ORACLE Wallet等。 和其他文档不太一样,这篇文档介绍的内容其实大部分都听说过,但是确实知之甚少,更不用说在真实环境下的使用经验了,不过根据个人的经验,大部分技术都需要你了解甚至是熟悉后,才会开始使用。或者说在你进行设计或实现的时候,基本没有什么可能性去使用一个你都不了解的技术,你的设计和方案是建立在你现有的知识体系上的。因此,绝大部分情况下,学习要放在使用的前面。 这篇文档的官方连接:http://www.oracle.com/pls/db112/to_toc?pathname=network.112%2Fe10746%2Ftoc.htm&remark=portal+%28Books%29

Posted in BOOKS | Leave a comment

临时表的表空间

简单描述临时表的存储特点。 临时表的数据存储在临时表空间中,这一点很显然,不过为什么临时表在DBA_TABLES视图中显示的表空间为空,以前确实一直不是很清楚。 前两天在和KAMUS讨论临时表的实现时,突然意识到这一点,由于临时表可以被多个用户访问,而不同用户的默认临时表空间的设置可能不同,这就意味着临时表的多个临时段可能存储在多个临时表空间中,正是这个原因,导致了临时表对应的表空间信息为空。 下面这个简单的例子说明了这种情况: SQL> CONN / AS SYSDBA 已连接。 SQL> SET PAGES 100 LINES 120 SQL> COL FILE_NAME FORMAT A50 SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_TEMP_FILES; TABLESPACE_NAME FILE_NAME —————————— ——————————————— TEMP D:\ORACLE\ORADATA\YTK102\TEMP01.DBF SQL> SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS WHERE … Continue reading →

Posted in ORACLE | Tagged | Leave a comment

Oracle技术嘉年华即将召开

2011年10月21日到22日,“Oracle技术嘉年华”(OTN China Tour 2011)将在北京国宾饭店召开。 这次大会的主办方为:ACOUG、云和恩墨、ITPUB、IT168。 和以往国内组织的Oracle技术大会不同,ACOUG得到了Oracle及OUG用户组社区的支持,将OTN的亚太区巡回演讲的第二站安排在北京,届时一批国外的知名ACE Director和ACE将与我们零距离的分享Oracle技术。除了从欧美请来的国外演讲者外,我们同样请来大量国内的技术高手给大家分享技术。 大会的更多详细信息,请参考活动官方网址:http://tech.it168.com/topic/2011/8-24/otn/index.html

Posted in NEWS | Leave a comment

内存数据库缓存用户手册总结

最近准备拣拣TIMESTEN的东西。 第一次看TIMESTEN相关文档是在06年的时候,那时似乎Oracle刚收购TIMESTEN时间不长,而整好TIMESTEN还推出了一个新的版本,于是当时研究了一下。由于主要的精力还是在Oracle上面,于是主要关注的是利用TIMESTEN来提高查询和数据处理的速度,而TIMESTEN本身的语法和功能到并没有过多关注。 研究一段时间后发现,无论是TIMESTEN到ORACLE的数据同步功能还是TIMESTEN本身提供的功能,都与我的预期存在较大差异,因此TIMESTEN的研究就一直放下了。 过了5年的时间,TIMESTEN和Oracle的技术融合工作应该已经比较成熟了,而且似乎前不久的新版本中TIMESTEN也开始支持PL/SQL了,所以开始陆续重读TIMESTEN的文档。 至于这本内存数据库缓存用户手册,更像是数据库缓存的管理员手册,记录了数据库缓存环境的建立、管理、删除等的操作。

Posted in BOOKS | Leave a comment

AL32UTF8和UTF8字符集

客户的环境需要使用UTF8字符集,那么是使用AL32UTF8还是直接使用UTF8,这是一个问题。 Oracle的UTF8字符集由来已久,至少在8的时候就已经存在了,而对应的是UNICODE 3.0。而AL32UTF8字符集是9i才出现的,其对应的是UNICODE 5.0。 这两种字符集的区别在于,UNICODE 5.0与3.0相比,又增加了一些新的补充字符。但是在实际当中,使用到这些新增字符的可能性非常小,因此绝大部分情况下,选择UTF8也是足够的。 而对于数据库的访问而言,二者还是存在一定差异的。前面提到了AL32UTF8字符集是9i才出现的,那么对于9i以后的版本访问没有任何问题,但是对于8i及以前的版本,则不认识这个字符集。这就使得8i及更低版本的客户端在访问9i以上AL32UTF8的数据库时,会碰到各种各样的问题。因此,Oracle建议在选择AL32UTF8和UTF8字符集时,最关键的一点就是是否有8i及以下版本的客户端会登录到数据库中,如果没有则可以选择AL32UTF8,如果存在这种客户端,那么需要选择UTF8字符集。 随着现在版本11g逐渐开始称为主流版本,8i客户端的情况已经越来越少见了,因此在11.2的DBCA中,UTF8已经不是推荐字符集列表中的一员了。

Posted in ORACLE | Tagged , , | Leave a comment

10g以后Oracle不支持ZHS32GB18030

在9i中Oracle存在字符集ZHS32GB18030,而10g以后,这个字符集在安装数据库的时候已经不可选了。 由于客户的环境需要输入大量的生僻字,要求客户端采用GB18030编码,这使得数据库无法使用ZHS16GBK字符集。 查询了一下字符编码方面的资料,最早推出的GB2312-80编码,包含了大约6000多个汉字,而对应的Oracle字符集编码为ZHS16CGB231280。这6000多个汉字对应日常应用足够,但是稍微生僻一些的汉字就无法在系统中显示。 此后推出了GBK编码,所支持的汉字超过了20000,这对于大部分情况来说足够使用了,其对应的Oracle数据库字符集就是中文中最常用的ZHS16GBK。GBK包含的所有GB2312编码中的汉字,但是二者并非严格意义上的超集关系。 在2000年的时候,出现了GB18030编码,它使用4位字符编码,因此覆盖的汉字达到了60000以上,这时GB18030中编码符合UNICODE 3.0。到2005年的时候,GB18030-2005又收录了一些新的汉字或图形,这时符合UNICODE 4.0编码。在Oracle9i中,存在字符集ZHS32GB18030,对于GB18030编码,但是从10g开始,数据库字符集不再支持ZHS32GB18030字符集了。虽然包括metalink在内介绍了先创建US7ASCII字符集在通过修改数据库字符集的方法将数据库字符集转化为ZHS32GB18030,但是这种方法毕竟不是官方推荐的方法,如果说10g的数据库安装过程中不能选择ZHS32GB18030字符集,是Oracle漏掉了这个字符集,那么在11.2中,同样无法选择这个字符集,就明确说明了Oracle的态度了。事实上,从10g开始,ZHS32GB18030变为客户端字符集,而数据库中之所以还可以创建这个字符集,是Oracle为了后向兼容性,确保9i中ZHS32GB18030字符集的数据库可以顺利的升级。 10g中不再支持ZHS32GB18030字符集,因此Oracle建议用户更改字符集为AL32UTF8或UTF8字符集,详细文档可以参考ID 1144903.1。不过在11.2中UTF8同样是不推荐的字符集之一,那么如果需要在客户端使用GB18030编码,那么推荐使用AL32UTF8字符集。如果客户端使用GB18030-2000编码,那么可以在数据库中选择AL32UTF8字符集,而客户端字符集选择ZHS32GB18030,所有的客户端字符都可以顺利的保存到服务器端或从服务器端读取。如果客户端选择GB18030-2005编码,那么没有专门的客户端字符集与之对应,因此客户端应该与数据库保持一致,都选择AL32UTF8字符集。

Posted in ORACLE | Tagged , , | 1 Comment

ORA-600(krvxdds: duplicated session not)错误

在客户的告警日志中发现这个错误信息。 这个错误信息是第一次看到,而且在metalink中也没有找到任何相关的描述,详细的错误信息如下: Fri Nov 19 11:47:47 2010 <krvrd.c:krvrdqgov>: Invalid dictionary process cntxt. Fri Nov 19 11:47:47 2010 Errors IN file /oracle/db/admin/B1MODDB/udump/b1moddb1_ora_4488.trc: ORA-00600: internal error code, arguments: [krvxdds: duplicated SESSION NOT ], [], [], [], [], [], [], [] ORA-01334: invalid … Continue reading →

Posted in BUG | Tagged , , | Leave a comment