理解redo(5)深入学习RBA
1 定义 RBA就是redo entries在重做日志文件中所对应的地址 2 组成 RBA由三部分组成:  
浅析oracle b-tree index搜索原理
索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了
oracle实用工具:oradebug
1 oradebug介绍 oradebug主要是给oracle支持人员使用的,尽管很早便有,但oracle官网很少有记载。他是个sql*plus命令行工具,有sysdba的权限就可以登入,无需特别设置。他可以被用于: &nb
会计基础(2)同比和环比
同比 定义:报告期发展水平和去年同期相比 作用:消除季节变动的影响
会计基础(1)利得和损失
类别: 1)直接计入所有者权益的利得和损失 2)直接计入当期权益的利得和损失 但是,二者并无区别,它们最终都会是构成所有者权益的一部分。之
理解redo(4)redo log buffer和LGWR
二者的由来,有二: 1)redo records的产生十分频繁 2)server process每次产生的量却不大 倘若每次产生的redo就须由大量高并发sp写入redo log file,则存在两个问题: 1)I/O开支大 2)redo file争用 由此,oracle在redo log机制中引入了log buffer和LGWR。 redo log
oracle约束学习(1)unique和check
有人说,没有索引, 拿什么来保证约束?姑且不论这话的对错,但约束的实现(除了not null),很多都是通过索引来快速定位约束的地方。unique约束会自动建立索引,pk也是。也因此,约束的很多问题总是和索引缠绵一起。 相关视图: dba_constraints &nbs
理解redo(3)详解一个update的过程
理论解析: 1)server process 搜索buffer cache中是否有update要更新的block(内存中又名buffer),没有则从disk读入buffer cache 2)server process 构造一组change vector来记录对数据块的改动(此时放于PGA中),这组change vector组成 redo record 这里可能有4个数据块会被改动: &nb
alter system flush "oracle的缓存"
下面3条语句,旨在刷新oracle的缓存。这里总结一下。 1)alter system flush global context 下图说明: 对于多层架构的,如上图:应用服务器和数据块服务器通过连接池进行通信,对于连接池的这些信息被保留在SGA中,这条语句便是把这些连接信息清空。 2)alter system flush shared_pool &nbs
理解redo(2)redo内容:change vector和redo entries
redo log file由redo records(又名redo entries)组成。一条redo record由一组change vectors构成。 redo record:是change vector的集合。每个redo record是由多个change vector组成的。oracle在恢复过程中,会保证一个transaction要么被全部恢复,要么全部不恢复。实际上就是通过恢复redo record中的全部change vector来做到的,只要有一个change vector恢复失败,这个redo record的所有change v
理解REDO LOG(1) 介质恢复和实例恢复的基本概念
oracle世界,有3种数据:undo、redo和data。而redo 应"提交事务不丢失"而生的一种机制,服务于两类场景:一是instance recovery、一是media recovery。 instance recovery目的:当数据库发生故障时,确保buffer cache中的数据不好丢失,保证数据库的一致性 media recovery 目的:当数据文件发生故障时,能够恢复数据
RMAN备份FORMAT格式中%a的含义
oracle文档对%a的描述是:%a Specifies the activation ID of the database. rman备份并保存,查询%aRMAN> backup tablespace users format \'/home/oracle/think_%a\'; 由此,可知%a为:790774120 查询x$kccdisys@ORCL> SELECT didbn,dirlc,dirlc_i FROM x$kccdi; DIDBN DIRLC DIRLC_I --------- -------------------- ---------- ORCL 08/08/2012 11:28:40 790774120
dbms_stats包的使用说明书
dbms_stats包下面一共有40多个存储过程. 对执行计划的生成非常重要。常见的有: 分析数据库(包括所有的用户对象和系统对象):gather_database_stats 分析用户所有的对象(包括表、索引、簇):gather_schema_stats 分析表:gather_table_stats 分析索引:gather_index_stats 删除数据库统计
rman基本组件和主要术语
rman可以用来backup和restore数据文件、控制文件、归档日志等,也可作完全和不完全的recover的oracle工具。由命令行或者OEM的backup manager GUI控制。RMAN是块级别的备份与恢复. rman主要组件: 1)Target Database:(目标数据库) rman的作用对象 2)会话 sys@ORCL> select sid,username,program from v$session where username is not null;
rman实验之归档模式,正常关机丢失非当前的联机重做日志文件
1)查询非当前的联机重做日志文件 sys@ORCL> select group#,sequence#,status,members from v$log; GROUP# SEQUENCE# STATUS MEMBERS ---------- ---------- ---------------- ---------- 1 7 INACTIVE 2 2 8 INACTIVE 2 3 9 CURRENT 2 sys@ORCL> col member for a70 trunc sys@ORCL> select group#,member from v$logfile where group#=2;
rman实验之归档模式无备份,正常关机丢失当前联机重做日志文件的恢复
所有的备份软件都没有备份联机重做日志文件的说法。因为,它几乎时刻都在写,单独备份某个时刻,没啥意义。再者,归档日志在某种意义上,也是对联机重做日志的备份。对联机重做日志文件的保护,核心就两个字:冗余。包括:多路镜像、RAID方式、HA的运用(如DG)。 1)查看当前的联机重做日志文件sys@ORCL> select group#,members,sequence#,status from v$
rman实验之归档模式有备份,正常关机丢失控制文件的恢复
在恢复控制文件之前,必须知道目标数据库的DBID。身为DBA的你,在接手数据库时,定要把数据库的DBID给备份出来! 1)备份控制文件RMAN> list backup of controlfile; 2)测试数据hr@ORCL> create table t (name varchar2(20)); Table created. hr@ORCL> insert into t values(\'think\'); 1 row created. hr@ORCL> commit; Commit complete. 3)模拟环境sys@ORCL> shutd
oracle pl/sql 从if 到 then的“艺术鉴赏”
在oracle开发中,if和then之间的条件表达式,有很多行为充满“艺术”,需要我们去发现,去鉴赏。 欣赏一:三值逻辑 如果一个表达式中包含null值,那么表达式的最终结果会是什么呢?比如:2<null。因为null是个黑盒子,oracle不知道究竟缺失的是什么,唯一能够给出的答案就是“我不知道”。这也就是所谓三值逻辑的核心------可能的
从平衡树到oracle b-tree索引的原理探索
先话唠一下,oracle索引,有两类运用较广: 1)b-tree:OLTP(面向交易) 2)bitmap:OLAP(面向分析) 步入正题,先搭建测试环境: SQL> create table tt as select * from dba_objects; 表已创建。 SQL> select count(*) from tt; COUNT(*) ---------- 50441 SQL> insert into tt select * from tt; 已创建50441行。 SQL> / 已创建100882行
rman实验之归档模式无备份,正常关机丢失数据文件的恢复
并不是所有数据文件丢失都能够直接被恢复,如system;也不是所有数据文件丢失都需要恢复,如temp表空间。 下面模拟一张业务表。 1 创建演示环境 sys@ORCL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 16 Next log sequence