删除AWR导入的SNAPSHOT时快照没有被彻底删除

尝试删除AWR导入的SNAPSHOT,发现快照并没有被彻底删除。

在10.2.0.3环境下执行的DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE过程,Oracle很快就返回了结果,感觉似乎Oracle并没有真正进行删除,因为这部分快照的导入用了将近一个小时:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database10gEnterpriseEdition Release10.2.0.3.0 - 64bi

PL/SQL Release 10.2.0.3.0 - Production

CORE    10.2.0.3.0      Production

TNS for Linux: Version 10.2.0.3.0 - Production

NLSRTL Version 10.2.0.3.0 - Production

SQL> select min(snap_id), max(snap_id)

2  from dba_hist_snapshot

3  where dbid = 3944144691;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

45189        47802

SQL> exec dbms_workload_repository.drop_snapshot_range(45189, 47802, 3944144691)

PL/SQL procedure successfully completed.

SQL> select * from dba_hist_snapshot where dbid = 3944144691;

no rows selected

如果检查数据字典可以发现,Oracle仅仅修改了对应SNAPSHOT的状态,而并没有删除快照:

SQL> select dbid, status, count(*)

2  from wrm$_snapshot

3  group by dbid, status;

DBID     STATUS   COUNT(*)

---------- ---------- ----------

3812548755          0         89

96312462          0         50

3944144691          2       2614

查询metalink发现是Oracle的bug,Bug 8622802描述了这个问题,确认影响的版本包括10.2.0.3、10.2.0.4。Oracle在版本12、11.2.0.2以及10.2.0.5中修正了这个问题。

测试发现11.2中同样存在这个问题:

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

SQL> select min(snap_id), max(snap_id)

2  from dba_hist_snapshot

3  where dbid = 3944144691;

MIN(SNAP_ID) MAX(SNAP_ID)

------------ ------------

45189        47802

SQL> exec dbms_workload_repository.drop_snapshot_range(45189, 47802, 3944144691)

PL/SQL过程已成功完成。

SQL> select dbid, status, count(*)

2  from wrm$_snapshot

3  group by dbid, status;

DBID     STATUS   COUNT(*)

---------- ---------- ----------

4284478783          0        197

3944144691          2       2614

对于这个错误导致的一个比较严重的影响就是占用空间没有释放,如果和当前例子一样,打算删除指定数据库的所有快照,可以使用下面的过程:

SQL> select dbid, status, count(*)

2  from wrm$_snapshot

3  group by dbid, status;

DBID     STATUS   COUNT(*)

---------- ---------- ----------

3812548755          0         94

96312462          0         50

3944144691          2       2614

SQL> exec dbms_swrf_internal.unregister_database(3944144691)

PL/SQL procedure successfully completed.

SQL> select dbid, status, count(*)

2  from wrm$_snapshot

3  group by dbid, status;

DBID     STATUS   COUNT(*)

---------- ---------- ----------

3812548755          0         94

96312462          0         50

时间: 2024-10-28 10:02:09

删除AWR导入的SNAPSHOT时快照没有被彻底删除的相关文章

Oracle 10204 AWR导入性能的问题

测试发现10g的AWR在导入大数据量的SNAP数据时,性能明显下降. 一个不到2G的AWR导出文件,利用AWR导入到目标数据库中,居然用时超过了5个小时. bash-2.03$ sqlplus / as sysdba SQL*Plus: Release10.2.0.4.0 - Production on星期五11月19 08:42:16 2010 Copyright (c) 1982, 2007, Oracle.  All Rights Reserved. 连接到: Oracle Databas

Hyper-V的备份方式——snapshot虚拟机快照

我们可以先回顾一下前几年玩vmware workstation或者VPC等产品的时候是个什么样的情景.配置好了虚拟机各项参数,搭好了实验环境,就要开始做测试了,打住,我们还要做什么? snapshot!OK,看来您是真玩过虚拟机,呵呵...没错,虚拟机快照可以完整地保存当前虚拟机上运行的系统,应用程序甚至内存使用的状态.当虚拟机发生系统故障等问题时我们只要选择还原到合适的时间点上的正常的状态就又可以使用了.很方便很强大. 我们来简单地看一下如何在Hyper-V上为虚拟机抓取一次快照: 这里我新建

access数据库-Excel删除表头导入Access

问题描述 Excel删除表头导入Access 如图所示,我在把Excel数据导入到ACCESS数据库时,怎么把前3行的表头删除然后从第四行数据导入Excel 解决方案 是在ASP.NET中C#D代码实现 解决方案二: 你是用代码还是手工操作?代码的话,估计不会问这问题.猜你是手工导入,按下面步骤: 创建一个备份表,删除前2行===>保存==>打开access并新建一个空库==>选中"表"==>选中"文件"菜单==>获取外部数据==>

sqlite删除数据库中的数据时偶尔会出现错误

问题描述 sqlite删除数据库中的数据时偶尔会出现错误 java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed. 求助,connection pool 是啥啊,求大神指教. 解决方案 如果确定不是连接被关闭,那还有可能就是多线程访问sqlite,sqlite数据库是单线程操作的,那么当N多个Thread同时调用的时候,可能报这错误.这也就

有一个几万条的文本文档信息在导入MySql数据库时,总是出现错误,该如何解决?

问题描述 有一个几万条的文本文档信息在导入MySql数据库时,总是出现错误,该如何解决? 有一个几万条的文本文档信息在导入MySql数据库时,总是出现错误,该如何解决? 解决方案 具体看错误类型,可能某行数据格式等不规范. 解决方案二: 把错误信息发上来,或者通过二分法拆分成多个文件来分批导入. 解决方案三: 几万条数据不是很多,这要根据错误也解决.

当删除文件时,提示没权限删除文件怎么办

删除文件的时候提示没有权限不能删除,这只是我们平常不能删除文件遇到的其中一个提示而已,面对这个提示要解决很简单,只需要把我们要删除的文件给予我们当前账号要删除的权限就行了. 1 如何给予用户权限 定位到你要删除的文件,然后右击改文件,选择属性,切换到"安全"项.然后点击右下方的"高级"按钮,切换到"所有者"项,点击下方的"编辑"按钮.最好选着自己当前使用的用户,将文件的所有者变更为当前用户名,如Administrators,同

maven导入jar包时,提示搜索不到

问题描述 maven导入jar包时,提示搜索不到 想导C3p0这个jar包,结果搜不到,就是个别的找不到,大多数还好 解决方案 是不是因为中央仓库中没有这些jar包,要怎么更新进去呀 解决方案二: 你的maven仓库是用的本地吗?如果本地仓库没有该jar,那么可以把jar添加到本地仓库的. 操作过程参考:http://blog.csdn.net/yejin191258966/article/details/23795379 祝好!

imp 导入dmp文件时出错

问题描述 imp 导入dmp文件时出错 IMP-00058: ORACLE error 1461 encountered ORA-01461: can bind a LONG value only for insert into a LONG column IMP-00028: partial import of previous table rolled back: 236 rows rolled back 我安装数据库的时候是选择的 UTF-8字符集编码 解决方案 有比较详细的各种情况解释h

csv文件导入到数据库时字段中的分隔符怎么屏蔽

问题描述 csv文件导入到数据库时字段中的分隔符怎么屏蔽 csv文件导入到数据库过程中,字段中有分隔符的情况应该怎么处理呢?维基百科上说应该用双引号包裹,但这样并没有效果.我用的是sql server2012,请大神指教.