软件ParnassusData_PRMForOracle_3002
非DBA人员也可以恢复truncate掉的数据了。。。哈哈
借着本人犯点错误的机会,连错数据库,truncate掉了10张本不想删除的数据
(还好此次错误没照成什么影响,自己负责的小系统刚运行个把月,客户没当回事未追究,万幸啊!若是其他系统后果不堪设想)
自己和自己较了把劲,琢磨2天truncate数据恢复的问题,结果记录下来和大家分享:
或许以后用得着!!(用不到最好。。。。)
先说明,本人是个菜鸟阶段的研发人员,本文章适合非DBA人员。
DBA各种高深的数据恢复手段我们这些外界研发人员真是遥不可及啊!!
当一个小团队压根不存在DBA时,误操作truncate掉了数据怎么办?
可以尝试使用这个工具进行恢复数据。傻瓜式操作。真心的适合研发人员使用。
先说下恢复结果吧:
折腾了两天,数据恢复了90%以上,有一张表未恢复全,最大的还是收获了对这个工具的认识,至少现在个人对truncate的数据恢复有一丁点信心了。因为原来压根就是空白啊。
数据库环境:
oracle 11g
服务器:坑爹的linux
第一次下载使用此软件的同仁啊。强烈建议你详读PRM技术白皮书.pdf。
此工具运行环境要求,jdk1.6以上。
最开始使用的时候,考虑到在linux上运行此软件,所以把全部时间精力都用在linux如何安装jdk以及各种无聊的命令、各种远程工具的使用测试了。
后来读了下技术书(其实技术书里未说明这点,有些地方误导了我),为什么一定要在数据库服务器上运行此工具呢?
后来干脆随便找个数据库dbf文件测试一下,在本地环境(没装oracle)运行,结果恍然大悟,原来在本地运行就可以。
此工具单存的读取数据库dbf文件即可(系统表空间所在的文件+丢失数据所在的文件)。
后来发现:原来的精力都用错方向了,此软件真是傻瓜式操作。
个人建议恢复数据时新建个用户及表结构,使用桥接的方式将数据恢复至数据库中,在常规恢复时,使用可执行文件方式将数据load时,大量数据日期类型会报错,很麻烦。耽误时间。而桥接的方式只需新建表结构,配置个连接就可以直接还原。
好了,总结一下:
1.
此软件只需要单存的读取数据库dbf文件就可以,不依赖于数据库的启动(因为很多数据库操作系统都是linux等在上面运行麻烦至极)。
2.
此点很重要:此次恢复90%的数据而未能全部恢复的原因(truncate数据后,一定要第一时间、第一时间、第一时间将丢失的数据所在的数据库文件复制出来),此次truncate数据后,是第二天才研究明白这个软件然后才把dbf文件拷贝出来使用的。所以照成了部分数据至今不能恢复。(若哪位高手能提供些其他思路挽救未能恢复的数据,不尽感激)
3.
truncate慎用。千万不要连错了数据库。。。。
4.
完整的数据库备份机制才是王道。。
另真心寻求各位DBA们帮助,还有可能找回那些至今未恢复的数据吗 ??
附件可以下载此软件。
留着吧。万一以后能用到呢。
也可以百度直接搜索。
分享到:
相关推荐
在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...
- **第三方工具**:有些商业或开源的数据恢复工具可能能够帮助从数据文件中恢复数据,但这通常需要深入的数据库知识和专业技能。 **4. 预防措施** 为了避免类似问题,应采取以下预防措施: - 定期备份:完整数据库...
用户truncate误删 schema下的若干数据表,无法使用flashback query等技术恢复数据,尝试从之前的全备份中恢复,数据库restore速度较快,但是archivelog恢复时由于HP data Protecter的不明原因导致归档恢复十分缓慢,...
- **使用RMAN(Restore and Recovery Manager)**:这是Oracle推荐的备份和恢复工具,它可以用来从备份中恢复数据。 ```bash RMAN> RESTORE TABLESPACE users; RMAN> RECOVER TABLESPACE users; ``` 上述命令将...
例如,当控制文件损坏或者数据文件丢失时,PRM能够通过扫描数据文件直接恢复数据,而不需要完整的备份。此外,PRM的跨平台性意味着它可以在Windows、Linux、Unix等各类操作系统上运行,适应性强,满足不同环境下的...
PRM-DUL Oracle数据库恢复工具,一款专为Oracle数据救援而研发的企业级工具。可在多个操作平台(AIX/HPUX/SOLARIS/Linux/Windows)使用并支持对Oracle 9i/10g/11g/12c各版本数据库的数据救援工作。软件基于JAVA 开发...
此时,可以利用Oracle提供的闪回功能直接恢复数据。 **2. 具体步骤** - **确定删除时间点**:找到数据被删除的具体时间。 - **查询删除数据**:使用如下SQL语句查询被删除的数据: ```sql SELECT * FROM 表名 AS...
**闪回整个表**:如果表结构没有发生变化,可以直接使用闪回整个表的方式来恢复数据。 ```sql ALTER TABLE 表名 ENABLE ROW MOVEMENT; FLASHBACK TABLE 表名 TO TIMESTAMP TO_TIMESTAMP('删除时间点', 'yyyy-mm-dd ...
实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-...
使用bbed强制online数据文件,修复system头损坏,找回truncate数据
### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...
总的来说,Oracle的闪回技术提供了一种强大的工具,可以在误操作后恢复数据。然而,这种恢复方法依赖于闪回日志的完整性和保留时间,因此定期备份仍然是防止数据丢失的最重要措施。在实际操作中,应谨慎使用`...
在 truncate 审计表后,可以使用以下语句来查看审计表的总量: ```sql select count(0) from sys.aud$; ``` 在创建了存储过程后,还可以使用以下语句来查看已经创建的存储过程的详细信息: ```sql SELECT text ...
Oracle的闪回功能(Flashback)是一个强大的工具,允许用户恢复到过去的某个时间点或事务,但针对`TRUNCATE TABLE`的操作,如果在闪回保留窗口(Flashback Retention)内没有开启闪回数据库(Flashback Database),...
truncate 方法不同于 delete 方法,它会直接清空表中的所有数据,无法使用闪回方法恢复数据。因此,在使用 truncate 方法时,需要特别小心。 数据库闪回 Oracle 的闪回功能除了以上基本功能外,还可以闪回整个...
- `70000`表示保存恢复数据的表空间大小。 - 填充数据块:通过调用`fill_blocks`过程填充数据块。 - 执行恢复:通过调用`recover_table`过程进行数据恢复。 ```sql Fy_Recover_data.recover_table(tgtowner, ...
总结,gdul工具在应对被TRUNCATE操作的表恢复时,主要依赖于数据库的日志文件,通过跟踪和重放事务来恢复数据。这是一个技术性强且需要谨慎操作的过程,确保数据安全性和完整性至关重要。在日常管理中,定期备份和...
- **data_path**:指定恢复数据的存放目录。如果待恢复的数据库较大,则应将此目录指向较大的存储空间。 - **charset_name**:表示数据库的字符集,需要与数据库实际使用的字符集保持一致。例如,`ZHS16GBK`是简体...