![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle
文章平均质量分 70
lowping
这个作者很懒,什么都没留下…
展开
-
数据缓存区管理
数据缓存区(database buffer cache)中的缓冲区(buffer)通过两个列表管理:待写列表(write list)和最近最少使用列表(least recently used(LRU)list)。待写列表中记录的是脏缓冲区(dirty buffer),即其中数据已被修改且尚未写入磁盘的缓冲区。最近最少使用列表中记录的是可用缓冲区(free buffer),锁定缓冲区(pinned原创 2015-01-11 10:04:55 · 936 阅读 · 0 评论 -
oracle 删除相同行
1、表明 t 列名 adelete from t where rowid in(select t.rowid from t,(select a,max(rid) rid from (select a,rowid rid from t where a in(select * from t group by(a) having count(a)>1)) group by a)t2wh原创 2015-01-11 10:03:43 · 390 阅读 · 0 评论 -
hints ordered leading use_nl
1:ordered 就是表示根据 from 后面表的顺序join,从左到右,左边的表做驱动表。连接方式是 HASH JOIN2:use_nl()use_nl(t1)如果只带了一个表名作为参数,则该表为被驱动表,连接方式是 HASH JOINuse_nl(t1,t2)表示对表t1、t2关联时采用嵌套循环连接 NESTED LOOPS但是并不能让优化器确定谁是驱动表或谁是被驱动的表3:原创 2015-01-11 10:03:13 · 675 阅读 · 0 评论 -
oracle 一些网址
行链接:http://www.eygle.com/archives/2011/11/oracle_block_header.htmlHWM:http://www.eygle.com/archives/2011/11/oracle_hwm_tuning.htmlbuffer cache原理:http://blog.csdn.net/robinson1988/article/details/5982原创 2015-01-11 10:02:57 · 337 阅读 · 0 评论 -
sql执行过程——延迟块清除
delete1.Oracle读Block到Buffer Cache(如果该Block在Buffer中不存在)2.在相应回滚段段头的事务表中创建一个undo条目(undo条目指向的一块空间)3.将要变化的记录(不是整个数据块)的前映象放到undo中。如果这时有别的会话需要读取这条记录,oracle先将这条记录所在的数据块复制一份,然后用undo中那条记录的前映像"旧化"这个数据块,这样一致读的数据块原创 2015-01-11 10:02:41 · 727 阅读 · 0 评论 -
window ,linux删除oracle
window下删除oracle1:停止所有oracle服务2:删除聚集同步服务CSSC:\Windows\System32>localconfig deleteStep 1: stopping local CSS stackStep 2: deleting OCR repositorysuccessfully deleted local CSS setup3:删除ASM示例C:\Windows原创 2015-01-11 10:02:19 · 325 阅读 · 0 评论 -
SQL诊断------10046事件
跟踪当前会话SQL>alter session set events '10046 trace name context forever, level 12'; --启动10046事件SQL>alter session set events '10046 trace name context off'; -- 关闭10046事件跟踪其他会话用户1:求出sidSQL> select userenv(原创 2015-01-11 10:02:11 · 339 阅读 · 0 评论 -
linux中与Oracle有关的内核参数详解
在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析。Linux安装文档中给出的最小值:fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 4294967295kernel.shmmni = 4096kernel.sem = 250 32000原创 2015-01-11 10:02:06 · 308 阅读 · 0 评论 -
归档路径
查看是否启动归档SQL> ARCHIVE LOG LIST;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 19当前日志序列 21启动归档先挂载数据库SQL> alter database mount;SQL> alter dat原创 2015-01-11 10:02:00 · 287 阅读 · 0 评论 -
sqlplus 基本操作
修改sqlplus的显示设置一个列的宽度SQL> column xid format a3XID OPERATION --- ------------------------------0A0 UNKNOWN009000C02000 SQL> column xid format a20XID OPERATION原创 2015-01-11 10:01:55 · 341 阅读 · 0 评论 -
Flashback Query 查询某个时间点的数据
一、Flashback Query正如前言中所提,Flashback Query 是利用多版本读一致性的特性从UNDO 表空间读取操作前的记录数据!什么是多版本读一致性Oracle 采用了一种非常优秀的设计,通过undo 数据来确保写不堵塞读,简单的讲,不同的事务在写数据时,会将数据的前映像写入undo 表空间,这样如果同时有其它事务查询该表数据,则可以通过undo 表空间中数据的前映像来构造所需原创 2015-01-11 10:01:44 · 428 阅读 · 0 评论 -
scn
1、SCN是什么?(system change number/system commit number) 2字节为Wrap(进位值)+4字节为Base(底值)select current_scn,dbms_flashback.get_system_change_number,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),scn_to_timestamp(dbm原创 2015-01-11 10:01:32 · 389 阅读 · 0 评论 -
expdp,impdp
1,导出导入表C:\Windows\System32>expdp '/ as sysdba' directory=data_pump_dir dumpfile=tables.dmp tables=(f.t) job_name=job1 logfile=expdp_table.log注意这个参数:data_pump_dir =E:\ORACLE\PRODUCT\11.1.0\DB_1\RDBMS\L原创 2015-01-11 10:01:18 · 448 阅读 · 0 评论 -
oracle跟踪文件
/opt/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.loggedit /opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_4137.trc/opt/oracle/diag/rdbms/orcl/orcl/alert/log.xml原创 2015-01-11 10:01:02 · 334 阅读 · 0 评论 -
undo 一致读
Undo是干嘛用的? 在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务。我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成。那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过)。 一个很典型的列子,银行转账,其实其需要两步操作,第一原创 2015-01-11 10:00:13 · 374 阅读 · 0 评论 -
重启动
重启动发生的原因: where条件读取时采用一致读和更新时采取当前读版本不一致造成Oracle在执行DML语句时,会用到两种不同的方式去读取数据块:1. 一致读:在“找到”需要修改的数据行时,会采用 consistent read2. 当前读:在“获取”数据块来实际更新数据行时,会采用 current read 如更新这个语句update test set x=1 where y=1;首先Ora原创 2015-01-11 09:59:50 · 670 阅读 · 0 评论 -
DML一致读和当前读
一致读(Consistent read): “发现”要修改的行时,所完成的获取就是一致读。当前读(Current read): 得到块来实际更新所要修改的行时,所完成的获取就是当前读。dml语句实际上都包含一个where字句,在做dml时,首先会根据where字句的条件做一致读,即去查找符合where条件的行,在进行一致读的时候,如果发现被查找行处于锁定状态时,oracle会去读取undo段,进而原创 2015-01-11 09:59:48 · 432 阅读 · 0 评论 -
索引优化
函数索引create table t(i number)begin for i in 1..1000 loop insert into t values(i); end loop; commit;end;create or replace function f(i number)return number deterministicas beginreturn i+1;end;create原创 2015-01-11 10:04:02 · 304 阅读 · 0 评论 -
oracle开发注意
1、一次尽量发多条sql,用批处理的方式addBat()函数2、一次去多条结果setfatchsize(500)3、用preparement预编译4、查询的列值类型要匹配5、关闭自动提交原创 2015-01-11 10:04:33 · 331 阅读 · 0 评论 -
一条update的过程
1、sqlplus gyj/gyj@orcl2、updatet_gyj set name='gyj1' where id=1;3、commit;4、exit 一看这个问题是不是灰常复杂,阿里系的童鞋特别喜欢用类似这样的题目面试人,从中可以快速的判断你是哪个级别的DBA(初级/中级/高级),在这个问题上我给大家抛砖迎玉,由于能力有限只能做简单解释,欢迎大家一起参与讨论并补充。嘿嘿!这是个很原创 2015-01-11 10:04:39 · 478 阅读 · 0 评论 -
表空间管理,段管理
字典表空间管理:用2个use$ free$ 2个表管理所有数据文件中的所有区本地表空间管理:每个数据文件用位图管理各自文件内部的区(高并发)手动段管理(mssm):用freelist管理数据块,但是很难控制freelist的个数,如果freelist太少会引起竞争,而且对数据块的使用程度处理的不合理自动段管理(assm):用位图管理数据块,每个位可以管理16个数据块,位图数组不同部分可以并发。但原创 2015-01-11 10:04:45 · 400 阅读 · 0 评论 -
生产数据库设置
undoundo_retention:事务结束后undo信息保留时间--设强制alter tablespace undotbs1 retention guarantee; --不强制alter tablespace undotbs1 retention noguarantee; undo使用:(有新事务需要undo空间)1)如果有空闲则使用空闲2)使用事务结束时间超过 undo_retent原创 2015-01-11 10:04:16 · 418 阅读 · 0 评论 -
ASSM内部存储研究大揭密
一、 ASSM的基本情况 在920以前,表的剩余空间的管理与分配都是由连接列表freelist来完成的,因为freelist存在串行的问题,因此容易引起往往容易引起段头的争用与空间的浪费(其实这一点并不明显),最主要的还是因为需要DBA花费大量的精力去管理这些争用并监控表的空间利用。自动段空间管理(ASSM),它首次出现在Oracle920里。有了ASSM,连接列表freelist被位图原创 2015-01-11 10:03:54 · 345 阅读 · 0 评论 -
statspack
安装statspack1:进入ORACLE_HOME/RDBMS/ADMIN目录下,并登录sqlpl / as sysdba2:创建一个专用的表空间SQL> create tablespace stats datafile 'E:\oracle\oradata\mydb\stats.dbf' size 100M autoextend on;如果创建表空间的时候没有指定自动扩展,则无法安装stats原创 2015-01-11 10:03:05 · 325 阅读 · 0 评论 -
Oracle 小细节
1有了自动段空间管理assm之后,oracle提高了并发性能,因为位图数组的不同部分可以被同时使用,消除了寻找可用空间的串行化2分区表散列分区时要最好分成2的倍数个分区原创 2015-01-11 10:02:44 · 293 阅读 · 0 评论 -
oracle 登录详解
操作系统认证登录:直接 sqlplus / as sysdba直接跳过密码文件,但只能是本地认证非操作系统认证登录:sqlplus username/password as sysdba 必须要密码文件没有密码文件用户不能被赋予sysdba权限,因为每次赋予sysdba权限是都会记录到密码文件中远程登录也是靠密码文件sqlplus username/password@orcl as s原创 2015-01-11 10:02:38 · 282 阅读 · 0 评论 -
分配set autotrace 权限
SQL> connect sys as sysdba请输入口令:已连接。SQL> @?\rdbms\admin\utlxplan (创建plan_table表)表已创建。SQL> create public synonym plan_table for plan_table;(创建全局同义词,不然用户看不见这个表,即使看的见,也是sys.plan_table)同义词已创建。SQL> grant原创 2015-01-11 10:02:36 · 378 阅读 · 0 评论 -
外部表读取跟踪文件
1 创建一个路径create or replace directory trc as 'E:\oracle\diag\rdbms\mydb\mysid\trace'; 查看是否创建成功 select * from dba_directories;2 创建外部表 create table alert_log ( text varchar2(400) ) organization external原创 2015-01-11 10:02:33 · 269 阅读 · 0 评论 -
分区小节--滑动窗口
1:oracle 分区的最大的好处是容易管理实现了滑动窗口2:全表扫描时的分区消除(一般是取得行数较多,不适合用索引的时候)3:分区的并发然而这几条都不适合OLTP滑动窗口完整例子创建分区表create table t (a number,b number,c number)partition by range(a)(partition p1 values less than(100),part原创 2015-01-11 10:02:14 · 379 阅读 · 0 评论 -
dump 命令大全
一、Oracle跟踪文件后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为.trc二、Oracle跟踪事件语法格式如下: EVENT="eventnumber trace name eventname [forever,] [level levelnumber] : ......."完整语法格式如下:alter session set events '[eve原创 2015-01-11 10:02:03 · 2382 阅读 · 0 评论 -
flashback的使用
flashback 原理flashback的原理是执行之前的语句产生的undoflashback: flashback->10 flackback->20scn: 10 20 301------- 1->2 ------原创 2015-01-11 10:01:52 · 560 阅读 · 0 评论 -
Flashback version Query 找到表,记录最后提交的开始和最后scn号
相对于Flashback Query 只能看到某一点的对象状态, Oracle 10g引入的Flashback Version Query可以看到过去某个时间段内,记录是如何发生变化的。 根据这个历史,DBA就可以快速的判断数据是在什么时点发生了错误,进而恢复到之前的状态。先看一个伪列 ORA_ROWSCN. 所谓的伪列,就是假的,不存在的数据列,用户创建表时虽然没有指定,但是Oracle为了维原创 2015-01-11 10:01:46 · 404 阅读 · 0 评论 -
flashback 数据库
1. 检查是否启动了flash recovery area? SQL> show parameter db_recovery_file NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recove原创 2015-01-11 10:01:35 · 453 阅读 · 0 评论 -
oracle 开启监听器错误
[oracle@localhost ~]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.1.0 - Production on 15-MAR-2013 08:14:20Copyright (c) 1991, 2009, Oracle. All rights reserved.Starting /opt/oracle/product/11.2.0/原创 2015-01-11 10:00:48 · 342 阅读 · 0 评论 -
oracle文档阅读顺序
Concepts | New Features __________|____________ | | Developer DBA Application原创 2015-01-11 10:00:10 · 326 阅读 · 0 评论 -
undo
数据修改后会生成undo信息,一开始存在内存中,如遇到检查点,或内存写满,就会刷入磁盘undo tablespace 中数据存在4种active:活动的 上例中 该undo事务还未提交时候 已经写入diskinactive:不活动(未过undo_retention)expired:undo blk inactive时间已经超过undo_retention设置(只是个建议参数)free:空闲使用时原创 2015-01-11 10:00:04 · 335 阅读 · 0 评论 -
虚拟机中redhat 5安装oracle11g
快速安装1、yum install oracle-rdbms-server-11gR2-preinstall.x86_642、usermod -g oinstall -G dba oracle3、为oracle用户设置密码 命令 passwd oracle 接下来会提示你输入密码和确认密码4、为数据库新建一个安装目录 命令 mkdir /opt/oracl原创 2015-01-11 09:59:24 · 482 阅读 · 0 评论 -
参数文件小节
1 启动顺序:spfilepfileinit.ora2 指定pfile启动startup pfile='$ORACLE_HOME/dbs/initorcl.ora'3 查看是用spfile 还是pfile 启动select distinct isspecified from v$spparameter; 用spfile启动ISSPEC------TRUEFALSEsel原创 2015-01-11 10:04:05 · 295 阅读 · 0 评论 -
sqlplus 上下翻页
1、确认安装了perl软件2、需要下载3个安装包3、解压3个包[root@localhost temp]# tar xzvf IO-Tty-1.09.tar.gz[root@localhost temp]# tar xzvf Term-ReadLine-Gnu-1.20.tar.gz[root@localhost temp]# tar xzvf uniread-1.01.tar.gz4、切换到ro原创 2015-01-11 10:03:51 · 490 阅读 · 0 评论 -
收缩表
表收缩的2个必要条件:1:ASSM2:设置enable row movement属性查看表空间是不是自动管理select * from dba_tablespaces;步骤:1:创建表create table tt tablespace users as select * from dba_objects ;步骤:2:查看表占的数据块,查看全表扫描读取的数据块数select blocks from原创 2015-01-11 10:02:09 · 312 阅读 · 0 评论