oracle
文章平均质量分 61
Flexes
1
展开
-
buffer cache理解(1)
数据库可以存储数据的同时检索和修改数据。数据文件被oracle分成大小相同的块:IO的最小单位show parameter blockNAME TYPE VALUE------------------------------------ ----------- --------------------原创 2013-07-14 06:17:18 · 769 阅读 · 0 评论 -
SCN学习初解_转载
SCN的意义?system change number原创 2013-07-17 16:25:39 · 740 阅读 · 0 评论 -
ora-00054-事务被锁定处理
ora-00054:resource busy and acquire with nowait specified解决方法当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已转载 2013-08-01 16:38:17 · 900 阅读 · 0 评论 -
事务的操作流程
2、图解一个事务的操作流程 Undo段的组成:段头、回滚块 1、分配一个事务ID select xid,xidusn,xidslot,xidsqn,ubablk,ubafil from v$transaction; 事务表 undo段的第一个数据块(段头块,有一个事务表,有47行),每一个回滚段最多可以47个事务 回滚段的段头块 select * from原创 2013-07-18 22:50:25 · 1082 阅读 · 0 评论 -
UNDO表空间
undo表空间 有undo段 段是自动生成。普通表空间是手工创建段的。undo表空间有很多回滚段但是在system表空间也有一个回滚段 (对数据字典进行操作的时候-对数据对象进行操作的时候、或者undo表空间坏了)将修改前的数据保存在undo表空间的undo段 1、Undo表空间及管理方式 show parameter undo_tablespace 查看Und原创 2013-07-18 16:07:06 · 646 阅读 · 0 评论 -
事务槽及Oracle多种提交方式
事务槽ITL 默认是1 最大255(从Oracle10g开始不能更改) select INI_TRANS,MAX_TRANS from dba_tables where table_name='T2'对数据块进行更改的时候首先对事务槽进行处理(1、写入事务ID 2、写入UBA(回滚块地址))原创 2013-07-19 00:05:25 · 963 阅读 · 0 评论 -
oracle 阻塞
insert、update、delete、select for update构成阻塞。insert :1、插于的库表存在主键或者唯一性约束。update和delete在代码中可能存在丢失更新的情况。解决方案:1、首先使用select * from update 2、然后使用update或者delete丢失更新:例:1、用户1检索一行数据2、用户2检索相原创 2013-08-04 21:29:57 · 712 阅读 · 0 评论 -
ORACLE表结构获取
select dbms_metadata.get_ddl('TABLE','DEPT') from dual; DBMS_METADATA.GET_DDL('TABLE','DEPT')-------------------------------------------------------------------------------- CREATE TABLE "SCOTT"."原创 2013-08-05 13:44:50 · 907 阅读 · 0 评论 -
oracle 死锁
1、创建会话a和b会话A:SQL> create table a as select * from emp where rownum=1;Table created.SQL> commit;Commit complete.SQL> update a set sal=sal+1;1 row updated.SQL> update b set sal=sal+1;原创 2013-08-04 21:49:26 · 581 阅读 · 0 评论 -
ORACLE绑定变量初解
1、SQL> var i numberSQL> exec :i := 7369;PL/SQL procedure successfully completed.SQL> select * from emp where empno=:i; EMPNO ENAME JOB MGR HIREDATE SA原创 2013-08-09 08:15:27 · 530 阅读 · 0 评论 -
B_TREE索引原理初解
1、读取表中数据并对其进行排序,如果排序的内存超过设定,则使用临时表空间。2、开始把(1处)的排序结果存储在索引段的叶块中,在存储空间到达索引块的pctfree之前,该页块同时担任分支块的重任。3、当到达pctree,需要获得新的块(2处)用来存储索引行。同时生成一个分支块。在该分支块的头部存储着现有叶块的DBA(data block address),新的叶块中开始键值和它的DBA一起构原创 2013-08-12 22:26:13 · 949 阅读 · 0 评论 -
Oracle存储结构_表空间
表空间是多个数据文件的集合。SQL> select * from dba_tablespaces;SQL> select TABLESPACE_NAME from dba_tablespaces;TABLESPACE_NAME------------------------------SYSTEMUNDOTBS1SYSAUXTEMPUSERS原创 2013-07-24 23:55:08 · 678 阅读 · 0 评论 -
实例崩溃恢复_转载
使用redolog日志进行恢复使用redolog的最后一条日志(终点)在控制文件中找到LRBA地址找到起点。构造块 前滚 回滚Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题 在ITPUB 论坛上看到一个有关实例恢复时 前滚(roll forword)和回滚(roll back)的讨论。在这里小整理一下,转载 2013-07-17 14:58:49 · 836 阅读 · 0 评论 -
Oracle存储结构_文件
Oracle存储结构_文件原创 2013-07-24 22:04:50 · 728 阅读 · 0 评论 -
buffer cache理解(5)
查看T2表所占用的块select object_name,dbarfil,dbablk from X$bh a,dba_objects bwhere a.obj=b.object_idand object_name='T2';OBJECT_NAME DBARFIL DBABLK-------------------- --------原创 2013-07-14 21:57:44 · 605 阅读 · 0 评论 -
PGA内存结构和组成
1、private sql area2、session memory3、sql work areas(主要)分为sort hash map 几个区。例如:select * from t2 ;pga没起作用。只是经过了下pgaselect * from t2 order by id desc;数据先放入pga 然后sort排序。然后返回给客户端。原创 2013-07-15 14:02:59 · 660 阅读 · 0 评论 -
【Oracle Concept】数据块知识要点
1.Oracle数据块与操作系统数据块Oracle数据块和操作系统数据块不同,它通常是操作系统数据块大小的若干倍(最高为5倍)。假如操作系统每次读写磁盘的数据块是512K,而Oracle的数据块大小为其2倍,那么数据库中参数:DB_BLOCK_SIZE = 512 * 2。也就是说Oracle每次读写磁盘的I/O大小是1M。将每次读入1M数据或写入1M数据。2.Oracle数据块格转载 2013-07-22 11:48:56 · 691 阅读 · 0 评论 -
buffer cache理解(4)
buffer cache状态SQL> select distinct STATE from x$bh; STATE---------- 1 3 0SQL> SQL> alter system flush buffer_cache;System altered.SQL>原创 2013-07-14 13:21:47 · 756 阅读 · 0 评论 -
buffer cache理解(2)
buffer cache 内存组织结构 存在多种链(左边是链 右边是buffer)链(chain)CBC cache buffer chain 以地址的方式将各种buffer连接起来怎么实现链的:在每个块上面写上不同地址查询一个sql的时候,先查找这条数据存在具体的哪一个块上面(dbf文件),由此判断存在buffercache的那一条原创 2013-07-14 10:01:21 · 773 阅读 · 0 评论 -
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
http://blog.sina.com.cn/s/blog_548a52f601016rg2.html 如果临时表空间没有设置为自动扩展,则临时表空间不够时事务执行将会报ora-01652 无法扩展临时段的错误。解决方法比较简单:1、设置临时数据文件自动扩展。2、增大临时表空间。查询临时表空间状态:SQL> select tablespace_name,file_na转载 2013-07-22 17:54:39 · 2303 阅读 · 0 评论 -
buffer cache理解(3)
show parameter writerNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_writer_processes int原创 2013-07-14 11:15:33 · 705 阅读 · 0 评论 -
oracle日志原理(1)
严格按照时间顺序记录buffercache中buffer的变化情况,存放在logbuffer里面通过lgwr进程写入redolog里面怎么记录buffer的改变日志: 1、数据块的地址 2、时间点(什么时间改变的) 3、改变的动作(例如delete update insert)实际日志产生过程sercerprocess修改buf原创 2013-07-14 23:34:25 · 743 阅读 · 0 评论 -
CKPT检查点队列
buffer cache内存包含chain和bufferLRU 将可用块串起来(按访问的频率)LRUW 将脏块串起来(访问频率)冷端的块率先被写入硬盘。CBC CKPT(链): 1、链接的是脏块 2、第一次脏的时间链接起来的(从小到大)RBA redo block address 日志块的地址对块修改会产生日志,日志存在一个地址。这个地址就是RBA。同时在修改的原创 2013-07-17 10:59:34 · 752 阅读 · 0 评论 -
sharepool内存结构
free空间的存在大小不同的空闲块,同时存在有很多链(chain) 在链上挂载着大小相近空闲块(trunk)。不同的链挂载的块的大小不一样。当硬解析的时候需要从free空间获取大小不同的块存放在library cacheORA4031--大量的硬解析、大sql语句。chain的好处:1、可以把内存块串在一起2、可以遍历。latch是用来保护chain的lib原创 2013-07-12 14:56:22 · 986 阅读 · 0 评论