CONCEPT
文章平均质量分 76
Lijun_blue
这个作者很懒,什么都没留下…
展开
-
SYSDBA和SYSOPER
Sysdba和sysoper均可以在数据库未open状态下访问数据库的实例。下面是系统权限对应的操作。SYSDBA * Perform STARTUP and SHUTDOWNoperations *ALTER DATABASE: open, mount, back up, or change character set *CREATE DATABASE原创 2012-01-10 14:35:51 · 475 阅读 · 0 评论 -
oracle表在线重定义
基本原理 oracle表的在线重定义是间接通过prebuild物化视图实现的,在执行DBMS_REDEFINITION.START_REDEF_TABLE()后,我们可以通过查询,user_mviews与user_mview_logs,发现增加了对应的物化视图和物化视图日志,而SYNC_INTERIM_TABLE(),其实也只是物化视图的增量刷新,最终执行FINISH_REDEF_TA原创 2012-05-28 17:22:53 · 1473 阅读 · 0 评论 -
LOBSEGMENT
数据库中有张表具有CLOB字段,引起一个LOBSEGMENT的segment大小57个G。查阅了一下MOS。相关的文档如下Master Note - RDBMS Large Objects (LOBs) [ID 1268771.1] 修改时间 12-OCT-2011 类型 DIAGNOSTIC TOOLS 状态 PUBLISHED原创 2012-02-07 10:20:07 · 3129 阅读 · 0 评论 -
DDL锁
Every create,alter andso on statement is really executed as shown in this pseudo-code:Begin Commit; DDL-STATEMENT Commit;Exception When others then rollback;END;有三种DDL锁 排他DDL锁 t原创 2012-01-16 16:20:32 · 776 阅读 · 0 评论 -
TM lock(对象锁)
The following show how these locks wouldappear in the v$lock table:SQL> create table t1 (x int);Table created.SQL> create table t2 ( x int);Table created.SQL> insert into t1 values(1);原创 2012-01-16 15:07:47 · 618 阅读 · 0 评论 -
TX (transaction) lock
A TX lock is acquired when a transaction initiates its first change,and it is held until the transaction performs acommit or rollback.Oracle process lock like this:1. find the address of the row原创 2012-01-13 09:19:08 · 545 阅读 · 0 评论 -
BLOCKING
The five common DML statements that willblock in the database are INSERT, UPDATE,DELETE.MERGE and SELECT FOR UPDATE. The solution to a blocked SELECT FOR UPDATEis trivial: simply add the NOWAIT cl原创 2012-01-12 09:32:10 · 376 阅读 · 0 评论 -
Oracle Deadlock
死锁通常发生在主表和子表更新主外键上。更新主表的主键,那么子表的外键会被锁住如果删除主表的行,那么子表会被锁住。SQL> create table p(x int primary key);Table created.SQL> create table c( x references p);Table created.SQL> insert into p values(1)原创 2012-01-12 10:23:34 · 595 阅读 · 0 评论 -
Enqueue block
什么是enqueueenqueue可以做名词,也可以做动词来解释。做名词时,指的的是一种锁的类型,比如Tx enqueue。做动词时,则是指将锁请求放入到请求队列的操作。 我们知道,lock是一种需要排队的锁实现机制,这和latch是不一样的,latch是一种轻量级的锁,是不需要排队得。Enqueue 就是lock的排队机制的实现。 lock是用来实现对于共享资源的并发访问的。原创 2012-01-12 10:12:21 · 371 阅读 · 0 评论 -
Latch
一、latch的基本原理 数据库系统本身是一个多用户并发处理系统,在同一个时间点上,可能会有多个用户同时操作数据库。这里就涉及两个很重要的问题。 这些用户之间的操作不会互相破坏。比如两个用户同时在相同的物理位置上写数据时,不能发生互相覆盖的情况。这叫串行化,也就是说,即便两个用户同时 写,也必须有先后,一个用户写完,另一个用户继续写。串行化会降低系统的并发性,但这对于保护数据结原创 2012-01-11 09:45:02 · 508 阅读 · 0 评论 -
LOCK-Pessimistic locking
为了得到最大的性能,一般数据库都有并发机制,随之而来的就是数据访问的冲突问题。为了解决这个问题,大部分数据库使用的办法就是数据库的锁定。数据库的锁分为两种,一种叫悲观锁(Pessimistic locking),另一种叫乐观锁(Optimistic lock)。 悲观锁就是对数据的冲突采取一种悲观的态度,假设数据肯定会冲突,所以在开始读取数据的时候就把数据锁定住。乐观锁就是认为数据一般情原创 2012-01-11 10:56:27 · 556 阅读 · 0 评论 -
Redo Log
redo log的concept手册上的内容Redo entries record data that you can use to reconstruct all changes madeto the database, including the rollback segments. Therefore, the online redolog also protects rollbac原创 2012-01-10 16:12:17 · 405 阅读 · 0 评论 -
Optimistic lock
We are optimistic that the data will not bechanged by some other user; hence ,we wait until the very last moment to findout if we are right. There are many methods of implmentingoptimistic concurr原创 2012-01-11 11:16:52 · 1143 阅读 · 0 评论 -
SCN
理解下oracle事务中的数据变化是如何写入数据文件的1 事务开始2 在buffercache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;3 事务修改buffercache的数据块,该数据块被标示为”脏数据”,并被写入log buffer中;4 事务提交,LGWR进程将log buffer中的脏数据写入redo log file中;5 当发转载 2012-01-10 14:52:16 · 366 阅读 · 0 评论 -
control file(控制文件)
每个oracle数据库都有控制文件。控制文件是一个小的二进制文件,记录了数据库的物理结构,包括了数据库的名字;相关的数据文件和在线重做日志文件的名字和位置;数据库创建时候的时间戳;当前日志的序列号;检查点信息;何时创建控制文件当以下情况下需要创建控制文件1. 当数据库所有的控制文件都永久的算坏了并且你没有控制文件的备份;2. 当你要修改创建数据库时指原创 2012-01-10 15:16:19 · 694 阅读 · 0 评论 -
SGA相关
读了biti_rainy的oracle内存分配与调整的文章,记录于此。redo buffers 指日志缓冲区,log_buffer。对于v$parameter、v$sgastat、v$sga查询的值可能不一样。v$parameter里面的值是指用户在初始化参数文件里面设置的值,v$sgastat是oracle实际分配的日志缓冲区大小(因为缓冲区的分配值实际上是离散的,也不是原创 2012-05-24 14:25:49 · 593 阅读 · 0 评论