redo undo区别
1:redo.logredo log (重做日志):记录数据块的变化。生成的日志记录,保存在log buffer,在通过LGWR写入日志文件。系统出现故障时重做已经提交的事务(rolling-forward)并回滚未提交的事务(rolling-back)2:undo undo 用于撤销数据,比如insert into 以后可以delete 就用到撤销段undo 其实就是还没有commit事务的数据镜像;当事务提交以后,undo就没有此脏数据了,DBWR就把此脏数据写入数据文件了。undo_management=auto[@more@]
闪回查询表:一个小时以前的数据
闪回查询表命令: select *from PENG2as of timestamp(SYSTIMESTAMP-INTERVAL '1' hour)[@more@]
RMAN做数据迁移(一)
利用RMAN做数据迁移 由于数据库数据量大(1TB左右),数据库采用的是裸设备。而且原有的存储无法扩容,数据库正常运行必须将数据文件必须迁移至新的存储设备上(主机不变)。 1.新建RMAN恢复目录数据库(实例=rman). 第一步,在目录数据库中创建恢复目录所用表空间: create tablespace rman_tar datafile '/oracle/oradata/rman/rman_tar.dbf' size 20M; 第二步,在目录数据库中创建RMAN 用户并授权: create user rman identified by rman default tablespace rman_tar; grant recovery_catalog_owner to rman;
goldengate(四)
ODI利用goldengate实现增量数据捕获上个月,Oracle发布了ODI的最新版本10.1.3.6_02,其中增加了针对采用goldengate获取源数据库增量变化的知识模块,这样当系统需要实时数据仓库时,我们从源数据库抽取增量数据,就完全可以利用goldengate从数据库的日志中抽取,避免了对源数据库系统的影响,以前采用streams或者logminer抽取增量时,需要在源数据库部署stream,需要DBA权限,很多管理员都有抵触情绪,怕影响生产系统,goldengate在源数据库中抽取增量时,在源数据库系统上不需要部署任何东西,它只需要一个普通用户从数据库获取元数据,该
goldengate的初始化(三)
goldengate的初始化GoldenGate支持多种方式进行初始化同步,针对源和目标是相同数据库的情况,建议采用数据库的内置工具进行同步,以oracle为例,如果是全库同步建议采用rman或者transportalbe tablespace,这样可以保证效率最高,同步最安全可靠。如果是用户级别、表级别,可以采用oracle exp/imp或者expdp/impdp(datapump)功能,当然rman和datapump需要额外的存储空间,imp/exp可以通过管道进行同步,但效率相对比较低。这里如果是同版本的oracle到oracle,并且是全库同步,强烈建议采用rman来做。初始化的准备工作:在初始化前,请首先
goldgate简述(一)
初探Oracle Golden Gate(一)项目中可能要用到Golden Gate 来做为数据复制的工具,在google上查询了一番,看了些文章,写下些心得。这篇文章作为一个引子,希望自己能够坚持下来。Oracle新收购的Golden Gate,主要强调数据的实时性,号称数据提取最快,对源端开销影响最小;在Oracle官方网站上的Golden Date的介绍: http://www.oracle.com/goldengate/index.htmlGolden Gate工作原理:在源数据库端(支持各种数据库)提取日志文件以获得变化的发生,如Oralce数据库就是监控Redo Log或Archieve Log,将变化的数据写入一个本地的跟踪文件Tr
ORA-27300 ORA-27301 ORA-27302
http://blog.csdn.net/aicon/archive/2009/11/26/4877826.aspx[@more@]
ORA-01078: 处理系统参数失败
SQL> startup nomount pfile='c:pfile.ora';ORA-00119: invalid specification for system parameter LOCAL_LISTENERORA-00132: syntax error or unresolved network name 'LISTENER2TEST'ORA-01078: 处理系统参数失败解决方法如下:改pfile文件中参数*.local_listener修改之前:*.local_listener='LISTENER_TEST'修改之后:*.local_listener='LISTENER2TEST'改为这个值是参考listener.ora文件中的配置信息:SID_LIST_LISTENER2TEST = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = f:oracleproduct1
物理方式下建立oracle data guard 收藏(1-12)
物理方式下建立oracle data guard 收藏 物理方式下建立oracle data guard(一):前奏前后折腾了一个星期左右时间,把物理方式下建立ORACLE data guard配好了,同事帮了不少忙,在此表示感谢。在这个过程中遇到了很多问题,有的问题很浅显,一下就解决了;有的问题是因为粗心引起的,比如说在服务器参数文件里面少写了一点,结果花很长时间来排错;有的问题第一次碰到,解决了之后很兴奋,因为又积累了经验,就像上次配置HP MC双机的时候碰到的那个问题,之前从未碰到过,这样折腾一下倒还认识了kcmodule这么样一个命令,附带一些不同的内
物理方式下建立oracle data guard(一
物理方式下建立oracle data guard(一):前奏前后折腾了一个星期左右时间,把物理方式下建立ORACLE data guard配好了,同事帮了不少忙,在此表示感谢。在这个过程中遇到了很多问题,有的问题很浅显,一下就解决了;有的问题是因为粗心引起的,比如说在服务器参数文件里面少写了一点,结果花很长时间来排错;有的问题第一次碰到,解决了之后很兴奋,因为又积累了经验,就像上次配置HP MC双机的时候碰到的那个问题,之前从未碰到过,这样折腾一下倒还认识了kcmodule这么样一个命令,附带一些不同的内核参数。 在这之前也尝试配置过data gua
全面学习分区表及分区索引(10)--交换分区
全面学习分区表及分区索引(10)--交换分区 直白的说就是迁移数据。迁移数据的方式很多,为什么要使用exchange partition的方式呢Exchange partition提供了一种方式,让你在表与表或分区与分区之间迁移数据,注意不是将表转换成分区或非分区的形式,而仅只是迁移表中数据(互相迁移),由于其号称是采用了更改数据字典的方式,因此效率最高(几乎不涉及io操作)。Exchange partition适用于所有分区格式,你可以将数据从分区表迁移到非分区表,也可以从非分区表迁移至分区表,或者从hash partition到range partition诸如此类吧。其语法很简单:al
SGA ,PGA调整SQL语句
1:SGA预估为大于shared_pool 和buffer cache之和2:PGA直接采用pga_ADVICEshare_pool建议值,ELTTS=1select t.SHARED_POOL_SIZE_FOR_ESTIMATE "SP", t.ESTD_LC_SIZE "EL", t.ESTD_LC_MEMORY_OBJECTS "ELM",t.ESTD_LC_TIME_SAVED "ELT", t.ESTD_LC_TIME_SAVED_FACTOR "ELTS %", t.ESTD_LC_MEMORY_OBJECT_HITS "ELMO" from v$shared_pool_advice t;查看buffer cache, physical_read % 物理都比较小的时候SELECT size_for_estimate "target M", buffers_for_estimate,
查找没有使用绑定变量SQL语句
select * from v$latchname where name like 'library cache%'在分析系统性能时,如果看到有library cache这样的Latch争用,就可以断定是共享池中出现了问题,这种问题基本上是由SQL语句导致的,比如没有绑定变量或者一些存储过程被反复分析。SQL> select * from v$latchname where name like 'library cache%'; LATCH# NAME---------- ---------------------------------------------------------------- 157 library cache 158 library cache pin 159 library cache pin allocation 160 library cache lo
实际中性能问题的一条SQL语句
根据创建的函数和一些平时我经常用的DBA调优语句我找出了这条latch buffer问题的语句总体思路:1:找出SQL语句,这是调优数据库性能问题的关键2:查看执行计划,分析执行计划3:查看表大小4:分析表的统计信息5:创建新的索引6:最后,比较关键:重改SQL语句,联系开发修改程序代码。1:查看执行计划SQL> explain plan for 2 select PRICE_PROMO 3 from wiliam.TB_PROMO 4 where CORPID = 'XANDER' 5 and to_number(START_DATE) <= 20110314 6 and to_number(END_DATE) >= 20110314 7 and (PROMO_RANGE = 'A'
linux/unxi LOGMNR安装说明
晚上很多介绍是windows下如何使用LOGMNR,很少linux.我在linux下安装logmnr做个说明安装两个包 dbmslm.sql dbmslmd.sqlSQL> conn sys/pt500416@mistest as sysdba;Connected.SQL> @dbmslm.sqlPackage created.Grant succeeded.SQL> @dbmslmd.sqlProcedure created.No errors.Grant succeeded.PL/SQL procedure successfully completed.Package created.SQL> show parameter utlNAME TYPE VALUE------------------------------------ ----------- ------------------------------utl_f
logminer 分析redo log 工具
一、LogMiner的用途日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。在Oracle 8i之前,Oracle没有提供任何协助数据库管理员来读取和解释重作日志文件内容的工具。系统出现问题,对于一个普通的数据管理员来讲,唯一可以作的工作就是将所有的log文件打包,然后发给Oracle公司的技术支持,然后静静地等待Oracle 公司技术支持给我们最后的答案。然而从8i以后,Oracle提供了这样一个强有力的工具-LogMiner。LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即
$sqlarea,v$sql 查找消耗资源的SQL
$sqlarea,v$sql-----------------------从V$SQLAREA中查询最占用资源的查询select b.username username,a.disk_reads reads, a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio, a.sql_text Statementfrom v$sqlarea a,dba_users bwhere a.parsing_user_id=b.user_id and a.disk_reads > 100000order by a.disk_reads desc;用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。 V$SQL是内存共享SQL区域中已经解析的SQL语句。列出使用频率最高的5个查询:select sq
dba_tables.blocks V$ dba_segments.blocks
dba_tables.blocks V$ dba_segments.blocks 1:表的分析统计信息不全,导致dba_tables信息出错。SQL> select count(*) from TESTSIZE; COUNT(*)---------- 584576SQL> select table_name,blocks,empty_blocks from dba_tables where owner='HXG';TABLE_NAME BLOCKS EMPTY_BLOCKS------------------------------ ---------- ------------TESTSIZE SQL> BLOCKS,EMPTY_BLOCKS居然都是空值!SQL> select segment_name,blocks from dba_segments where own
oracle分布式事务总结 oracle分布式事务总结(转)
oracle分布式事务总结 oracle分布式事务总结(转) 2008-09-18 17:47 基本概念 Local Coordinator:在分布事务中,必须参考其它节点上的数据才能完成自己这部分操作的站点。 Global Coordinator:分布事务的发起者,负责协调这个分布事务。 Commit Point Site:在分布事务中,首先执行COMMIT或ROLLBACK操作的站点。一般情况下,应该把存储关键数据的站点作为Commit Point Site。因为Commit Point Site和其它站点不一样,从来不会进入prepared状态,所以不会存在IN-DOUBT事务。 可以设置初始化参数COMMIT_POINT_STRENGTH,在分布式事务中,
外键创建索引
Oracle中更新主外键时的一些注意事项1、外键无索引时,子表更新外键未提交,主表更新非子表引用的主键时被阻塞 会话1: create table t1 (x int primary key); insert into t1 values(1); insert into t1 values(2); insert into t1 values(3); commit; create table t2(y int references t1); insert into t2 values(1); commit; update t2 set y=2 where y=1; 会话2: update t1 set x=4 where x=3; //会话被阻塞 2、外键有索引时,子表更新外键未提交,主表更新非子表引用的主键时不会被阻塞 会话1: create index t2_index on