缺省undo表空间变更后执行TSPITR要注意的问题
执行TSPITR时auxiliary instance里除了有要恢复的表空间外,还必须包含system、sysaux、undo三个表空间,如果当前的undo表空间与恢复点的undo表空间不同时,就需要在recover tablespace命令里指定恢复点的undo表空间名我们要模拟的TSPITR场景:当前为T2时刻,系统缺省的undo表空间为YYY,现需要把某个表空间TSPITR到T1时...
了解什么是Soft corrupt block
简单的说soft corrupt block就是被标记为corrupt的logical corrupt block,logical corrupt block是指能够被oracle正确识别为data block的block,这些block的chkval、块首和块尾的校验值等均是正确的,但是data block存在但不仅限于如下错误:row locked by non-existent transaction - ORA-600 [4512], etc: 指的是一...
模拟oracle里的各种类型的坏块
V$DATABASE_BLOCK_CORRUPTION.corruption_type 有以下几种■ ALL ZERO - Block header on disk contained only zeros. The block may be valid if it was never filled and if it is in an Oracle7 file. The buffer will be reformatted to the Oracle8 standard for an empty block.■ FRACTUR...
使用RMAN report need backup命令检查备份时遇到一个诡异的问题
在检查一个测试库的备份时出现了这样一个问题(该测试库没有使用recovery catalog):RETENTION POLICY设置为REDUNDANCY 1,运行report need backup提示有一个datafile需要备份,但使用list命令查看这个datafile已经有3个备份,满足retention policy的设置,没有必要重新backup。以下是对这个问题的详细分析:###RMAN confi...
针对archival backup的backup optimization效果测试
archival backup,又叫历史归档备份,目的是将数据库某一时刻数据生成历史备份,备份里包含了datafile、spfile、controlfile、archivelog,这个历史备份不受retention policy的限制,通过使用backup ... keep ...指定备份的保留时长,archival backup主要应用与历史数据的永久保留以及将数据库完整恢复到另一个环境里。b...
没有tag标识备份的情况下incremental updating backup是如何运行的
incremental updating backups能够将增量备份应用在datafilecopy上,使得datafilecopy能始终保持更新,很大程度上缩短了恢复时间,典型的用法是run{recover copy of datafile 10 with tag 'df10';backup incremental level 1 for recover of copy with tag 'df10' datafile 10;}上面两次出现了tag 'df10',对datafil...
都是时区惹的祸
想把时间戳转换为SCN的时候,出现ORA-08180: no snapshot found based on specified time报错SCOTT@tstdb1-SQL> select timestamp_to_scn(to_date('20150513 20:00:00','yyyymmdd hh24:mi:ss')) from dual;Select timestamp_to_scn(to_date('20150513 20:00:00','yyyymmdd hh24:mi:ss')) from dual &...
使用dbms_flashback.transaction_backout闪回事务的四种可选项介绍
Flashback transaction通过dbms_flashback.transaction_backout实现事务的闪回,考虑到被闪回的事务与其它事务间可能存在不同程度的依赖关系,oracle提供了四种闪回选项:NOCASCADE:若检测到Transaction之间存在依赖关系,则无法进行回退NOCASCADE_FORCE:若Transaction间仅存在” Write-after-write dep...
SYS_FBA_为前缀表如何服务于Flashback Data Archive
undo里的before-image受系统负荷等因素的影响保留时间较短有的时候无法完全满足flashback query、flashback version query等闪回查询较早前数据的功能要求,flashback data archive的引入正是为了解决这个问题,将before image从undo定时归档到archive table。数据库里如果创建了flashback data archive,那么后台进程FBDA...
通过Flashback Version Query了解Flashback Table的行为过程
Flashback Version Query是用来查看表中行的修改历史,在undo保留期限内能够了解到哪些transaction对哪些行进行了修改,结合flashback transaction可以对误操作进行准确定位与及时回退。这里我们利用Flashback Version Query的特性观察一下Flashback table的工作过程。1、先对常见DML操作后用flashback version query查...
Fast Recovery Area空间用满后的自动清理机制
使用Fast Recovery Area最大的好处在于oracle能够对于其中存放的备份恢复相关的对象进行自动管理,特别是在Fast Recovery Area空间利用率达到100%时能够按照保留策略对其中的transient files进行自动清理,及时腾挪出可用空间,很大程度上减少了数据库Hang的发生。下面模拟了FRA空间用满的场景,之后通过不同的处理方式使得...
flashback database如何选择需要应用的flashback log
flashback database过程由flashback restore和flashback recover两阶段组成,flashback restore是apply flashback log,flashback recover是apply redolog最近在使用flashback database时有个疑问,flashback restore到底是从哪个flashback logfile开始apply的?要把这个问题说清楚,先从下面两个隐含参数说起_flashb...
配置了FRA的情况下如何正确指定archivelog的生成路径
当配置了Fast Recovery Area的时候,db_recovery_file_dest和log_archive_dest_n都能决定archivelog的生成路径,Archivelog最终生成在哪个路径下,请看下面的测试按照oracle的说法,当db_recovery_file_dest被指定,且没有log_archive_dest_n参数被显式指定的时候,log_archive_dest_10被隐含指向db_recovery_file_dest...
flashback log的写入机制研究
Flashback log里存放的是data block修改前的image,当我们修改一个data block时,data block before image会首先从buffer cache被复制到flashback generation buffer,然后再由RVWR(Recovery writer)进程将before image从flashback generation buffer读取出来写入到flashback log。Flashback database时会使用flashback log...
细粒度访问控制(Fine-Grained access control)的一个简单例子
限制用户只能从ad.t0320_2表中查询到和自己用户名匹配的记录,例如:A用户登陆后,执行select * from ad.t0320_2,在FGAC的作用下,相当于为这条语句增加了一个隐含的条件where username='A',等于执行了select * from ad.t0320_2 where username='A'仅返回符合username='A'这一条件的记录,实现方法如下###connect S...
glogin.sql配置不当引起sqlplus hang的假象分析
不久前遇到的一个问题,"故障"现象如下:A主机上跑了两个单实例的数据库testa和testb,对testa实例进行例行重启时先shutdown immediate,然后再通过sqlplus '/as sysdba'连进去尝试重启时发现,sqlplus Hang住不动了sqlplus '/as sysdba'SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 28 16:53:32 2015...
Oracle Scheduler学习笔记分享
Oracle Scheduler学习笔记分享初次接触oraclescheduler会觉得这东西并不难,但是涉及到方方面面的概念比较多,看似比较分散的知识点间往往又存在较为紧密的关联,技术细节的掌握成为了用好oracle scheduler的关键。下面是我在oracle scheduler学习过程中的总结和提炼出的一些内容,希望对正在学习oracle scheduler的...
在oracle 11g下安装配置scheduler agent
oracle Scheduler是功能强大的定时调度程序,不但能调度job在本地数据库上运行,还能在远程主机上发起这些job,远程主机上不一定要安装oracle数据库,但必须安装有Scheduler agent,下面是完整的安装过程安装过程中涉及到以下两部分操作:1、对于存放remote job信息、负责发起调度的主数据库进行配置2、在运行remote j...
_resource_manager_always_on=FALSE引起调度异常的解决案例
一台测试库上所有的autotask当前均处于disable状态,现在想立即启用sql tuning advisor做一次SQL语句的自动调优,于是作了如下操作---设置sql tuning advisor为enable状态SQL> select client_name,status from dba_autotask_client;CLIENT_NAME  ...
执行impdp时出现ORA-39154错误的解决案例
一次数据表的导入导出操作在使用impdp导入的时候遇到了ORA-39154,花了点时间解决了。下面我在测试环境里真实还原了这个错误,并附上解决思路和方案#####创建测试表,不过表上的索引建在另一个schema下sqlplus ad/123456create table adtab1 tablespace ts_pub as select * from all_users;SQL> select count(*) f...