-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Author Archives: yangtingkun
11.2 sqlplus新增连接是指定版本
在11.2中,Oracle新增了版本的功能,而随之一些工具都对于版本功能有所支持,比如11.2中,sqlplus在连接数据库时就可以指定当前数据库连接到哪个版本上。 需要说明的是,这种连接版本方式的优先级是最高的,它的优先级高于ORA_EDITION环境变量,更高于数据库默认版本,看一个简单的例子: D:\>sqlplus / AS sysdba SQL*Plus: Release 11.2.0.1.0 Production ON 星期二 9月 27 08:21:47 2011 Copyright (c) 1982, 2010, Oracle. ALL rights reserved. 连接到: Oracle DATABASE 11g Enterprise Edition Release 11.2.0.1.0 – Production WITH the Partitioning, OLAP, DATA Mining … Continue reading
连接用户获取权限信息
有客户对AWR中报告中出现的一个查询GLOBAL_NAME的SQL存在疑问,详细分析后发现是客户端建立连接后获取权限信息的语句。 客户存在疑问的SQL是: SELECT VALUE$ FROM props$ WHERE name = ‘GLOBAL_DB_NAME’select value$ from props$ where name = ‘GLOBAL_DB_NAME’ 而这个SQL出现在AWR报告中执行次数部分,可以看到这个SQL运行次数接近26W次。 Executions Rows Processed Rows per Exec Elapsed Time (s) %CPU %IO SQL Id SQL Module SQL Text 546,016 8,942,073 16.38 170.26 28.28 … Continue reading
Posted in ORACLE
Leave a comment
获取业务用户列表
在接触一个新的系统,或对一个陌生的环境进行迁移备份时,需要了解这个数据库中业务用户是哪些,系统用户有哪些,以区别对待,但有时这个工作并不太容易。 最简单的办法莫过于直接询问对数据库了解的DBA或开发人员,但是有时如果数据库中用户众多,那么没有人可以确定所有的用户范围。同样的道理,通过检查程序也有可能遗漏。何况在有些情况下,并没有人对数据库用户十分了解,也就根本无从问起。 既然所有的用户都存储在数据库中,那么利用数据库本身的方法应该可以区分哪些是业务用户,哪些是系统用户。 如果对于Oracle的用户很熟悉,那么直接通过查询DBA_USERS获取用户名列表,就可以判断的八九不离十: SQL> SELECT * FROM v$version; BANNER —————————————————————- Oracle DATABASE 10g Enterprise Edition Release 10.2.0.5.0 – Prod PL/SQL Release 10.2.0.5.0 – Production CORE 10.2.0.5.0 Production TNS FOR 32-bit Windows: Version 10.2.0.5.0 – Production NLSRTL Version 10.2.0.5.0 – … Continue reading
AIX环境dd迁移控制文件出现ORA-202和ORA-27047错误
客户尝试利用dd来迁移裸设备上的控制文件,结果出现了这个错误。 利用dd命令将控制文件从旧存储的裸设备迁移到新存储上,命令如下: dd IF=/dev/oldcontrol OF=/dev/newcontrol bs=2048kdd if=/dev/oldcontrol of=/dev/newcontrol bs=2048k 然后尝试启动数据库,在MOUNT时报错: SQL> startup nomount ORACLE instance started. Total System Global Area 1.5032E+10 bytes Fixed SIZE 2046960 bytes Variable SIZE 2483029008 bytes DATABASE Buffers 1.2533E+10 bytes Redo Buffers 14729216 bytes SQL> ALTER … Continue reading
运行ocrconfig replace ocrmirror出现PROT-22错误
这个错误和前面的PROT-16是同时碰到的。 运行ocrconfig replace ocr出现PROT-16错误:https://yangtingkun.net/?p=116 由于碰到了上一篇文章提到的PROT-16错误,尝试先创建ocrmirror脚本: # ./ocrconfig -REPLACE ocrmirror /dev/ocr2 PROT-22: Storage too small# ./ocrconfig -replace ocrmirror /dev/ocr2 PROT-22: Storage too small 现在ocr2的配置已经和要迁移的原ocr对应裸设备具有相同的大小,仍然导致了错误产生,而且根据错误信息不难看出,导致问题产生的原因是空间不足。 查询metalink发现,这是一个10.2.0.1上的bug,要求ocrmirror设备的大小要比原始ocr设备大128M,详细描述可以参考:ID 317628.1。 将ocrmirror对应的目标裸设备大小增加128M后,再次运行ocrconfig –replace ocrmirror,命令成功执行。
Mini版Exadata发布——Oracle Database Appliance
由于Oracle的Exadata在大型应用中的成功,Oracle针对中小型企业推出了Exadata的mini版——Oracle Database Appliance。 Oracle Database Appliance主要针对中小企业,目标是降低中小企业的首次购买成本,因此满配的Appliance也要低于1/4配置的 Exadata,产品的主要优势是软件硬件一体化,同一个产品中集成了硬件、软件和网络,对于Oracle的License可以按需划分,最小仅需要支付4 Core的License,最多支持到24 Core。此外为了提高一体机的性能,服务器中还包含了4块73G的SSD来存储redo log,用以提高redo的读写速度。此外这款一体机的主推的功能是简化性,Oracle通过专门的部署和升级模块,使得Appliance的高可用环境部署变得异常简单,只需要2个小时左右的时间,即可配置好整个软件环境。而且以后的补丁管理同样十分方便,充分了体现了一体机简化安装简化管理的目标。另外为了降低首次购买成本,硬件费用虽然无法减少,但是Oracle的软件可以最少购买4 Core的License,而随着业务的增长可以以4 Core为最小单位增加License,最终可以扩展到24 Core。虽然Appliance面对中小型客户,但是即使是最低的4 Core单实例的配置,软件加上硬件总共也需要900K左右,而这对于中小企业而言,也绝对不是一个小数目。 虽然架构和EXADATA比较类似,也是软件硬件集成在一起,但是和EXADATA不同的是,所有的软件并非在出厂的时候全部部署好,而是除了操作系统外,没有任何其他软件,需要用户自己下载和安装。同时由于APPLIANCE的主要目标并非是性能,因此EXADATA特有的存储管理模板在APPLIANCE中并没有集成进去。而对于APPLIANCE更大的限制在于硬件无法扩展。 Oracle Database Appliance硬件包括: 4RU Chassis; 2 Server Nodes per Chassis: 2 Socket x86 per server; 6 Cores per socket 12 cores per server; 96 GB … Continue reading
Posted in NEWS
Leave a comment
运行ocrconfig replace ocr出现PROT-16错误
利用crsctl工具替换当前ocr时,出现了这个错误。 错误信息为: #./ocrconfig -REPLACE ocr /dev/ocr1 PROT-16: Internal Error#./ocrconfig -replace ocr /dev/ocr1 PROT-16: Internal Error 出现了一下metalink,发现导致这个错误的原因可能有两个,一个是当前的OCR裸设备空间的要求,Oracle推荐是128M、256M等等,如果原本OCR设备的大小小于128M,则OCR新的设备取128M,如果原本设备大小在128M到256M之间,则取256M大小。 原始设备大小为256M,而当前设置为512M,可能就是这个原因导致了错误的产生。 讲新的设备/dev/ocr1设置为相同的512M后,再次尝试上面的OCRCONFIG命令,错误依旧。 再次检查metalink,如果只有1个OCR设备,则REPLACE命令无效,因此需要首先执行./ocrconfig -replace ocrmirror /dev/ocr2,然后才能重新运行./ocrconfig -replace ocr /dev/ocr1命令。
ORA-600(kkoipt:invalid join method)错误
客户的11.2.0.2数据库碰到了这个错误。 详细错误信息如下: Fri Sep 16 15:23:52 2011 Errors IN file /u01/diag/rdbms/ora1/ora1/trace/ora1_ora_20382140.trc (incident=169704): ORA-00600: 内部错误代码, 参数: [kkoipt:invalid JOIN method], [1], [0], [], [], [], [], [], [], [], [], [] Incident details IN: /u01/diag/rdbms/ora1/ora1/incident/incdir_169704/ora1_ora_20382140_i169704.trc Fri Sep 16 15:24:00 2011 Dumping diagnostic … Continue reading
ROWNUM固化外部表结果集存在问题(二)
在客户的11.2.0.2环境中碰到了这个问题,Oracle在处理包含ROWNUM固化的外部表加载数据时返回错误的结果。 这一篇描述利用ROW_NUMBER来避免错误的产生。 外部表构造描述可以参考:https://yangtingkun.net/?p=35 ROWNUM固化外部表结果集存在问题::https://yangtingkun.net/?p=38 这个例子是在本机上运行,因此只是告警日志的名称发生了变化,其他的语法和上一篇文章中的一致,当然D_ALERT目录需要指向background_dump_dest参数指定的路径: SQL> CREATE TABLE T_ALERT 2 (TEXT VARCHAR2(4000) 3 ) 4 ORGANIZATION EXTERNAL 5 (TYPE ORACLE_LOADER 6 DEFAULT DIRECTORY D_ALERT 7 ACCESS PARAMETERS 8 (RECORDS DELIMITED BY NEWLINE 9 FIELDS (TEXT (1:255) CHAR)) 10 LOCATION (’ … Continue reading
版本影响当前用户看到的对象
如果说版本影响当前用户可以访问的对象是正常的,但是对于DBA_OBJECTS而言,同一个用户下,在不同版本下看到的结果也是不一样的。 看一个简单的例子: -bash-3.2$ sqlplus test/test SQL*Plus: Release 11.2.0.2.0 Production ON Thu Sep 15 21:04:58 2011 Copyright (c) 1982, 2010, Oracle. ALL rights reserved. Connected TO: Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 – Production WITH the Partitioning, OLAP, DATA Mining … Continue reading