Author: mac

  • 利用UDEV服务解决RAC ASM存储设备名

    在<Why ASMLIB and why not?>我们介绍了使用ASMLIB作为一种专门为Oracle Automatic Storage Management特性设计的内核支持库(kernel support library)的优缺点,同时建议使用成熟的UDEV方案来替代ASMLIB。 这里我们就给出配置UDEV的具体步骤,还是比较简单的: 1.确认在所有RAC节点上已经安装了必要的UDEV包 [root@rh2 ~]# rpm -qa|grep udev udev-095-14.21.el5 2.通过scsi_id获取设备的块设备的唯一标识名,假设系统上已有LUN sdc-sdp for i in c d e f g h i j k l m n o p ; do echo “sd$i” “`scsi_id -g -u -s /block/sd$i` “; done sdc 1IET_00010001 sdd 1IET_00010002 sde 1IET_00010003 sdf…

  • 了解你所不知道的SMON功能(七):清理IND$字典基表

    SMON的作用还包括清理IND$字典基表(cleanup ind$): 触发场景 当我们在线创建或重建索引时(create or rebuild index online),服务进程会到IND$字典基表中将该索引对应的记录的FLAGS字段修改为十进制的256或者512(见上图0x100=256,0×200=512),如: SQL> create index macleans_index on larges(owner,object_name) online; SQL> select obj# from obj$ where name=’MACLEANS_INDEX’; OBJ# ———- 1343842 SQL> select FLAGS from ind$ where obj#=1343842; FLAGS ———- 256 ind_online$字典基表记录了索引在线创建/重建的历史 SQL> select * from ind_online$; OBJ# TYPE# FLAGS ———- ———- ———- 1343839 1 256 1343842 1 256 create table…

  • Find INTCOL#=1001 in col_usage$?

    在<了解你所不知道的SMON功能(四):维护col_usage$字典基表>中我介绍了SMON后台进程维护字典基表COL_USAGE$一些细节,有网友阅读了这篇文档后发现其数据库的COL_USAGE$中存在INTCOL#=1001的记录。 INTCOL#列表示internal column number对应于COL$基表的INTCOL#,注意Internal Column Number与COL#(column number as created)是不同的。$ORACLE_HOME/rdbms/admin/sql.bsq对于INTCOL#给出了解释: * If a table T(c1, addr, c2) contains an ADT column addr which is stored * exploded, the table will be internally stored as * T(c1, addr, C0003$, C0004$, C0005$, c2) * Of these, only c1, addr and c2 are user visible columns. Thus, the *…

  • Find password cracker in 11g

    在11g中默认启用了对登录注销操作LOGON/LOGOFF的审计,详见<11g默认审计选项>。利用这一点我们可以很方便地从审计日志中找出数据库中的密码暴力破解者。如以下演示: C:\Users\Maclean Liu>sqlplus system/try_password@G11R2 SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 4 21:37:44 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-01017: invalid username/password; logon denied select username,userhost,terminal,timestamp,action_name,os_process from dba_audit_trail where returncode = 1017 order by timestamp desc; USERNAME USERHOST TERMINAL TIMESTAMP ACTION_NAME OS_PROCESS ——————– —————————————- ——————– —————— —————- ———— SYSTEM WORKGROUP\MACLEANLIU-PC MACLEANLIU-PC…

  • Buffer Lock Mode and Compatibilities

    Buffer Modes: KCBMNEW : New buffer for exclusive access KCBMSHR : Current buffer for shared access KCBMEXL : Current buffer for exclusive access KCBMCR : CR buffer for shared access KCBMCRX : Variant of CR mode KCBMNULL : Used to keep a reference to the buffer Buffer State KCBBHFREE : buffer free KCBBHEXLCUR : buffer…

  • 关于V$OPEN_CURSOR

    在之前的一次讨论中,有同行指出V$OPEN_CURSOR中列出的不是OPEN CURSOR而是SESSION CACHED CURSOR,原因是在一次ORA-01000(maximum open cursors exceeded)事故中他没有从V$OPEN_CURSOR中找到大量的打开游标。 对于这个问题,我们可以利用JAVA程序做一个演示来说明,以下为JAVA代码: package javaapplication2; import java.util.logging.Level; import java.util.logging.Logger; import oracle.jdbc.*; import java.sql.*; public class Main { public static void main(String[] args) throws SQLException { try { Class.forName(“oracle.jdbc.driver.OracleDriver”); }catch(Exception e ){} Connection cnn1=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:G11R2”, “maclean”, “maclean”); // Connection m[]=new Connection[2000]; Connection myconn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:G11R2”, “maclean”, “maclean”); Statement stat1=myconn.createStatement(); ResultSet rst1=stat1.executeQuery(“select * from v$version”);…

  • Script:Speed Up Large Index Create or Rebuild

    以下脚本可以用于加速大表索引的创建或重建 SQL> select * from v$version; BANNER ——————————————————————————– Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – 64bit Production PL/SQL Release 11.2.0.2.0 – Production CORE 11.2.0.2.0 Production TNS for Linux: Version 11.2.0.2.0 – Production NLSRTL Version 11.2.0.2.0 – Production SQL> select * from global_name; GLOBAL_NAME ——————————————————————————– www.askmac.cn — Script Tested above 10g – Create a new…

  • 从组织结构图看Google、Facebook、微软、Oracle等大公司的企业文化

    转自:http://cnbeta.com/articles/147277.htm 判断一家公司企业文化的标准有很多,其中之一就是组织结构图。刚在新浪微博@RadeZ处看到一张有趣的组织结构图,里面包括了亚马逊、Google、Facebook、微软、苹果、甲骨文等六家公司的组织结构图。管中窥豹,略见一斑。 从图中我们可以看出亚马逊有着严格的等级制度;Google也有清晰的等级,但是部门之间相互交错;Facebook就像是一张分布式网络;微软则是各自占山为王;苹果是一个人说了算。最具讽刺意义的是最后的甲骨文,法务部门远远大于工程部门。你觉得这图靠谱吗?够形象吗? 有没有人来一张国内大公司的组织结构图呢? 图中Oracle蓝色的一块代表什么?字太小了看不清楚。

  • cursor_sharing=’SIMILAR’将被废弃

    根据metalink文档<ANNOUNCEMENT: Deprecating the cursor_sharing = ‘SIMILAR’ setting [ID 1169017.1]>在11g中将逐渐废弃cursor_sharing参数的SIMILAR选项,原因是在今后的版本中Exact和Force选项可以满足游标共享的需求了,使用SIMILAR选项可能引发额外的version_count过多或cursor pin s on X等待事件。 We recommend that customers discontinue setting cursor_sharing = SIMILAR due to the many problematic situations customers have experienced using it. The ability to set this will be removed in version 12 of the Oracle Database (the settings of EXACT and FORCE will remain available).…

  • 海量数据插入性能测试

    11.2.0.2的RAC系统中原本有一张大的分区表,之前为了测试exchange分区的性能需要将这张分区表上的部分分区数据复制到测试用表上,因为数据量比较大所以记以录之: 磁盘不太给力 hdparm -tT /dev/sdd /dev/sdd: Timing cached reads: 13672 MB in 2.00 seconds = 6840.55 MB/sec Timing buffered disk reads: 605 MB in 3.02 seconds = 200.33 MB/sec cat /proc/cpuinfo |grep processor|wc -l 8 直接将源分区插入到目标分区表中 SQL> select count(*) from sales_history partition (SALES_1996) ; COUNT(*) ———- 2568089600 SQL> select (bytes) / 1024 / 1024, segment_name,…