之前,一直对rac one node、Single Instance HA(SIHA)、Oracle Restart的概念没搞清楚,今天和 @jarodwang和@ricky_zhu聊了之后,才明白了其中的概念: SIHA = Oracle Restart = Oracle Grid Infrast […]
oracle 11g R2 新特性学习
oracle 11g R2的新特性,简单说明如下: 一、 新的Grid架构安装选项 新的Grid架构包含了ASM、侦听和Oracle重启(Oracle Restart)。——值得一提的是oracle重启这个特性,他类似像HP service guard,能提供数据库实例、asm、侦听的监控、管理和自 […]
DSI 之lock学习
锁的申请: 1.使用hash算法将资源做hash,做完hash得到一个结果值将对应一个hash bucket 2.申请enqueue hash chain以访问hash bucket。 3.此时,将资源放到hash bucket的hash chain上。如果在hash chain上没有找到对应的资源 […]
DML LOCK兼容性表的一个比喻
今天看到ZALBB和jeffli73讨论的文章《oracle多粒度封锁机制研究》,觉得比喻的很有意思,不过jeffli73在坛子上只是比喻了单粒度的封锁机制,没继续比喻多粒度的封锁,这里,我狗尾续貂,按照jeffli73的意思也打个比方吧。 一个艺术中心占地很广(我们把它类比做数据库),有许多独立的 […]
在vmware rac上添加新节点
之前在vmware中装了一个双节点的rac,在这里,我们给rac增加一个新节点。当前的rac情况是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
rac1: IP:192.168.1.131 Private-IP:10.10.10.31 VIP:192.168.1.31 rac2: IP:192.168.1.132 Private-IP:10.10.10.32 VIP:192.168.1.32 需要新加的rac3: rac3: IP:192.168.1.133 Private-IP:10.10.10.33 VIP:192.168.1.33 |
一、系统的准备: 1、停止双节点rac后,复制其中一个节点。然后只启动这个节点。启动后,create UUID的时候,选择creat […]
HPUX中常用的getconf命令参数
常用的getconf命令参数,在此记录,补充一下自己的os知识:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
getconf MACHINE_SERIAL 获取主机设备序列号,这个序列号可用于HP的800报障。 getconf PAGE_SIZE 每个内存页的大小。用kmeminfo或者ps -lfp 看内存显示的结果是多少个内存页,要乘以这个每个内存页的大小才得到每个进程的占用内存。 getconf KERNEL_BITS 查看操作系统是32位还是64位,在安装oracle前必须弄清楚os版本,安装对应版本的oracle。 getconf MACHINE_MODEL 查看主机的具体型号。如rp8440,N4000-55 getconf HW_CPU_SUPP_BITS 硬件cpu支持多少位。如64位的cpu支持64位的os和32位的os。 |
小议9i和10g的差别点
10g的一些新特性就不在这边讨论了,flashback、ash、awr等等都在newfeature中可以看到。在这里讨论下在平常的开发和维护的过程中,容易忽视的差别点。如果您在日常工作中也遇到了别的差别,值得需要注意的地方,也欢迎您告诉我。 一、9i的group by会排序,10g的不会。 [cra […]
9i和10g的plan table
在oracle 10g中,plan table的基表已经改变,在9i的时候,还是一个table类型,在10g的时候,已经是temporary table类型了。 在10g中,如果通过dblink访问9i的库,那么explain table将无法显示。会报错: [crayon-662f628eb8fe […]
将global的索引改成分区索引
今天有人在QQ上问,如何将global的索引改成分区索引?由于在同一个列上不能建不同名的索引,不然会报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SQL> create index ind_tab2_1 on tab2(a); Index created. Elapsed: 00:00:01.20 SQL> SQL> create index ind_tab2_pindex on tab2(a) 2 local (partition ip1,partition ip2,partition ip3); create index ind_tab2_pindex on tab2(a) * ERROR at line 1: ORA-01408: such column list already indexed |
除了删除重建索引外,我们其实可以用在线重定义的方法来重构索引。 下面是一个例子: 1、原表和其索引的建立: [crayon-6 […]
ctas为何报错不能扩展temp segment
在一个表空间上建表的时候,报错了:
1 2 3 4 5 6 7 |
SQL> create tablespace tbs_test datafile '/oracle/tbs_test.dbf' size 2m; Tablespace created. SQL> create table test.t2 tablespace tbs_test as select * from dba_objects; create table test.t2 tablespace tbs_test as select * from dba_objects * ERROR at line 1: ORA-01652: unable to extend temp segment by 128 in tablespace TBS_TEST |
在这边比较奇怪,为什么是不能扩展temp segment,而不是报错:
1 |
ORA-01653: unable to extend table TEST.T2 by 128 in tablespace TBS_TEST |
老白说,这是因为CTAS的时候,创建的表的BLOCK首先被标 […]
归档的路径和名称
涉及到归档路径的参数有:
1 2 |
LOG_ARCHIVE_DEST LOG_ARCHIVE_DEST_n |
在10g中,如果我们没配置这2个参数,还和一个参数有关:
1 |
DB_RECOVERY_FILE_DEST |
在archive log list中可以看到 [crayon-662f628ebb3 […]
DSI学习笔记
DSI的全称是DATA SERVER INTERNALS,是oracle为售后服务工程师进行的培训教程。 DSI含以下课程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
DSI301:ADVANCED SERVER SUPPORT SKILLS DSI302:DATA MANAGEMENT DSI303:DATABASE BACKUP AND RECOVERY DSI304:QUERY MANAGEMENT DSI305:DATABASE TUNING DSI306:VERY LARGE DATABASES DSI307:DISTRIBUTION AND REPLICATION DSI308:PARALLEL SERVER DSI401E:ADVANCE SUPPORT SKILLS DSI401:DUMPS CRASHES AND CORRUPTIONS DSI402E:DATA TYPE AND BLOCK STRUCTURES DSI402:SPACE AND TRANSACTION MANAGEMENT DSI403E:RECOVERY ARCHITECTURE COMPONTS DSI404E:QUERY OPTIMIZER DSI405:INSTANCE TUNING DSI408:REAL APPLICATION CLUSTERS INTERNALS |
301笔记:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
设置event的方法: 1.通过初始化参数event="<event name> <action> [:<event name> <action> ]" 2.alter session set events '<event name> <action> [:<event name> <action> ]' 3.alter system set events '<event name> <action> [:<event name> <action> ]' 4.exec dbms_system.SET_EV(sid,serial#,event name,level,'action'); 5.oradebug <command>; 注:event="<event name> <action> [:<event name> <action> ]"的说明如下: 一.event name: (1)可以是一个event的名称,如果不是event的名称,就默认为immediate。(但是immediate关键字不能出现在初始化文件中) (2)可以是event的数字,如10046,10053,范围是10000至10999。每个event号码的含义后续会介绍。 二.当设定了event name后,action有可能有3种取值:crash、debugger、trace,其中trace我们比较常用。这里具体说说trace的这种用法: 指定trace时,语法为: <event name> "trace" "name" <trace name> <trace qualifier>[,<trace qualifier>]... 这里<trace name>是一个内部的trace 标记,如context。 这里<trace qualifier>可以是forever、off、level n,一般情况下n是trace的级别,n越高级别越高;但是如果是dump数据块的时候,n指dba(data block address,数据块的地址)。 综上,可以写event="10046 trace name context forever:10053 trace name context forever,level 10" 注意,当初始化文件中有2个event="xxxxx",以后面一个为准,前面一个失效。 |
event的种类: [cra […]