Flashback Database logs里的内容是什么?
按照oracle的说法是before images of data blocks[@more@]Flashback Database is implemented using a type of log file called Flashback Database logs. TheOracle database periodically logs before images of data blocks in the Flashback Database logs.Block images can be reused to quickly back out the data file changes to any time at whichflashback logs were captured just before the desired target time. Then, changes from the redo logfiles are applied to fill in the gap. The Flashback Database logs are au
large_pool_size不能超过shared_pool_size
The large pool must be explicitly configured. The memory of the large pool does not come out ofthe shared pool, but directly out of the SGA, thus adding to the amount of shared memory theOracle server needs for an instance at startup[@more@]--===========================SQL> show parameter largeNAME TYPE VALUE------------------------------------ ----------- ------------------------------large_pool_size big integer 0SQL> show parameter sgaNAME TYPE VALUE------------------------------------ -
验证commit之后是否把其他session没有提交的事务所产生的reodo也写入了logfile
这个试验的目的是想验证一下一个session提交之后lgwr是否把其他session里的事务还没有提交所产生的redo也一起写入logfile了.在验证之前结论已经很清楚,commit的时候不管log buffer里的内容是否已经提交,lgwr会一起写入logfile,这样做的目的当然是保证写的速度,同时恢复的时候也会使用logfile“连续"恢复.通过dump logfile的内容发现session 76 commit之后把session 164没有提交的reod也一起写入logfile了,不过依据是什么似乎没有观察清楚,莫非是dump内容里的version 185599488?commit一次写入logfile之后oracle是用什么来标识
Automatic Undo Retention测试!
Automatic Undo RetentionOracle Database 10g automatically tunes a parameter called the undo retention period. The undo retention period indicates the amount of time that must pass before old undo information—that is, undo information for committed transactions—can be overwritten. The database collects usage statistics and tunes the undo retention period based on these statistics and on undo tablespace size. Provided that automatic undo management is enabled, the database automatically tunes th
oracle判断block corruption的依据是啥?
oracle判断block corruption的依据是啥也一直是困扰我的问题,今天看到一puber再次提到类似这样的问题:http://www.itpub.net/viewthread.php?tid=1303542&pid=15794986&page=1&extra=#pid15794986搜了下老熊的文章http://www.laoxiong.net/how_to_mark_corruption_block_and_recovery.html再次模拟了block corruption,不过由于对block结构了解的有些,所以要准确的彻底搞清楚oracle判断block corruption的依据目前还比较困难,下面记录一个大致的过程[@more@]--==========================C:>sqlplus test/test@orclSQL*
一篇介绍asm逻辑metadata的好文章
一直比较迷惑asm file的extents和asm disk 的AU(allocate unit)之间的mapping关系,下面这片文章详细的介绍了这个关系https://twiki.cern.ch/twiki/bin/viewfile/PSSGroup/HAandPerf?rev=1.4&filename=ASM_metadata_30012006.html同时这个连接中的图也不失为一张好图,顺便收集一下[@more@]A peek Inside Oracle ASM Metadata Luca Canali, CERN, Jan 2006. OverviewOracle ASM (Automatic Storage Management) is a new feature of Oracle 10g to streamline storage management and provisioning. ASM provides volume and (cluster
给ocr增加ocrmirror时遇到的问题总结
原本以为会很顺利,没想到遇到了几个问题,简单总结一下...[@more@][oracle@node1 bin]$ ./ocrconfigName: ocrconfig - Configuration tool for Oracle Cluster Registry.Synopsis: ocrconfig [option] option: -export <filename> [-s online] - Export cluster register contents to a file -import <filename> - Import cluster registry contents from a file -upgrade [<us
db_name和SID的长度限制
数据库的db_name和sid是有长度限制的...[@more@]先看一下数据字典:SQL> desc v$database名称 是否为空? 类型----------------------------------------- -------- ----------------------------DBID NUMBERNAME VARCHAR2(9)............................SQL> desc v$instance名称 是否为空? 类型----------------------------------------- -------- ----------------------------INSTANCE_NUMBER NUMBERINSTANCE_NAME VARCHAR2(16).......................SQL>在讲课的时候我经常强调db_name的长度不能超过8位,小于等于9位,尽
dataguard中有关lgwr async的测试
oracle选择了折中的办法...[@more@]有关dataguard的几个有意思的问题1.standby db上RFS进程是用户进程,不是后台进程,需要从primary db上获取log或者primary db上的LNS进程需要把log传递给RFS时RFS才启动2.在配置standby时primary db上的log_archive_dest_2如下:SQL> show parameter log_archive_dest_2NAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_2 string SERVICE=orcl_s LGWR ASYNC VALI
rac安装失败或者是想重新安装,在现有的机器上应该清除哪些东西!
rac的安装不可能一次成功,有时候可能需要折腾多次,这样的话就需要清除之前装进来的一些东西,清除的内容如下,步骤先后没有关系,我的os是:redhat as 4 update 7,oracle version:10.2.0.1[@more@]1. rm -rf /etc/oracle/*rm -rf /var/tmp/.oracle修改 /etc/inittab, 删除以下三行.h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 </dev/nullh2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 </dev/nullh3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 </dev/null2.rm -rf /etc/ora* -
flashback_transaction_query数据保留的时间
flashback_transaction_query里面的数据很庞大,数据的来源和数据保留的时间曾经困扰过我,简单的测试了一下...[@more@]session 1:SQL> show parameter undoNAME TYPE VALUE------------------------------------ ----------- ------------------------------undo_management string AUTOundo_retention integer 900undo_tablespace string UNDOTBS1SQL> alter system set undo_retention=10;系统已更改。S
受困于一个参数:session_cached_cursors
这个参数本身不难理解,但是和这个参赛相关的很多话题值得我们深思:1.cursor open之后oracle做了什么2.cursor close之后oracle做了什么,资源真的释放了?其实没有,ursor被关闭之后,无非是它占用的资源可以被重复使用了而已3.cursor被cache之后在uga中保存了什么4.session和library cache以及uga是如何关联的...要了解这些东西,需要对oracle的内存结构有清晰的了解...目前一团乱麻...[@more@]SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startupORACLE 例程已经启动。Total System Globa
使用sequence的cache特性时要注意的
我们在使用sequence时为了提升性能通常都会使用sequence的cache功能,但是潜在的危险就是实例crash或者由于shared pool碎片较多容易出现ora-04031错误时,此时我们都会想到alter system flush shared pool...flush之后cache的sequence值全部丢失从而造成序列不连续...[@more@]--事先创建一个序列SQL> select seq_test.nextval from dual;NEXTVAL----------1SQL> select seq_test.nextval from dual;NEXTVAL----------2SQL> select seq_test.nextval from dual;NEXTVAL----------3SQL> select seq_test.nextval from dual;NEXT
assm下oracle为什么为segment提供了shrink功能
通过试验简单的测试了一下assm下segment的space的分配和使用[@more@]SQL> select tablespace_name,segment_space_management from dba_tablespaces;TABLESPACE_NAME SEGMEN------------------------------ ------SYSTEM MANUALUNDOTBS1 MANUALSYSAUX AUTOTEMP MANUALUSERS AUTO--users标空间是assm,system标空间是mssm,下面测试是创建的表放在这2个标空间中SQL> create table t(id in
exp中参数consistent测试
consistent=N表的一致性读取consistent=Y被导出的所有表的一致性读取[@more@]SQL> select * from t_emp; ID NAME CODE---------- ---------- ---------- 1 a 01 2 b 02SQL> select *from t_depart;CODE NAME---------- ----------01 a02 b03 cSQL> insert into t_emp select * from t_emp;已创建2行。SQL> insert into t_emp select * from t_emp;已创建4行。SQL> insert into t_emp select * from t_emp;已创建8行。SQL> insert into t
11g视图dba_objects中增加了1个有用的字段namespace
oracle通过namespace来管理schema object的名字,什么是namespace可用通过下面的doc大致来了解[@more@]Schema Object NamespacesThe following have theirown namespace:• Indexes• Constraints• Clusters• Database triggers• Private databaselinks• Dimensions--=============================The following are in thesame namespace:• Tables• Views• Sequences• Private synonyms• Stand-aloneprocedures• Stand-alone storedfunctions• Packages&#
ORACLE_SID环境变量设置的问题
明明在注册表里存在环境变量ORACLE_SID的设置,可执行emctl时却提示:C:>emctlEnvironment variable ORACLE_SID not defined. Please define it.C:>在系统环境变量增加ORACLE_SID的设置之后可以解决这个问题。[@more@]在系统环境变量增加ORACLE_SID的设置之后再次执行emctl发现不会出现提示:Environment variable ORACLE_SID not defined. Please define it印象中记得asmcmd也有这样的问题(记不太清楚了),oracle的有些命令为什么不去注册表中读取oracle_sid?C:>emctl start dbconsoeOracle Enterprise Manager 10g Database
data buffer cache的一点总结。
这部分东西涉及的参数较多,感觉稍微有些乱,简单的总结一下。[@more@]SQL> show parameter db_block_sizeNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_block_size integer 8192SQL> show parameter keepNAME TYPE VALUE------------------------------------ ----------- ------------------------------buffer_pool_keep stringcontrol_f
修改+asm的名字!
使用asm创建db时oracle缺省的asm实例的sid是+asm,这个sid有时候使用起来很不方便,比如我想通过plsql developer来查询和asm实例相关的视图:V$ASM_DISKGROUP、V$ASM_DISK等,因为这些视图有很多列,通过sqlplus直接查询很不方便;或者说我想远程连接asm实例,此时都需要通过配置tns来连接,既然通过tns来连,那么必然要配置listener,但是+是特殊符合,没法在listener中书写,因此为了使用方便,我们可以尝试修改+asm为asm或者其他名字,总之只要不含特殊字符能配置listener和tns就可以[@more@]在win下修改步骤大致是:(假设要把+asm->
11g视图dba_segments中增加了一个有用的segment_subtype字段!
以前我们要查一个segment所在的表空间是assm还是mssm,需要查看这个segment所在的表空间的segment_space_management 字段属性,在11g中不需要了,只需要查看dba_segments的segment_subtype就可以了,看似一个小小的改进,却给dba们带来了方便。[@more@]SQL> select segment_name,segment_type,segment_subtype,tablespace_name from dba_segments where owner='SYS' and segment_name='T';SEGMENT_NA SEGMENT_TYPE SEGMENT_SUBTYPE TABLESPACE---------- ------------------ -------------------- ----------T TABLE ASSM TESTSQL>