oracle恢复误删除记录和表

本文介绍了一种简单的方法来恢复Oracle数据库中被误删除的表。通过使用管理员权限执行特定的SQL语句,可以将表恢复到删除前的状态。这种方法适用于10g版本的数据库,并且对于9i版本的部分功能也适用。

注意:数据库版本是10g,不过大部分9i的也适用,闪回9i就没有.

 

1.曾经不小心把开发库的数据库表全部删除,当时吓的要死。结果找到下面的语句恢复到了1个小时之前的数据!很简单。

注意使用管理员登录系统:

select * from 表名 as of timestamp sysdate-1/12   //查询两个小时前的某表数据!既然两小时以前的数据都得到了,继续怎么做,知道了吧。。

 

如果drop了表,怎么办??见下面:

drop table 表名;


数据库误删除表之后恢复:
不过要记得删除了哪些表名。
flashback table 表名 to before drop;

Oracle 数据库中,误删除数据或文件后的恢复操作可以通过多种机制实现。以下是一些常见场景及对应的恢复方法: ### 1. 使用 `FLASHBACK` 技术恢复误删除的数据 Oracle 提供了 `FLASHBACK` 功能,可以快速恢复误删除数据或结构。该功能依赖于撤销段(Undo Segment)回收站(Recycle Bin)中的信息。 #### 恢复被 `DROP` 掉的 如果用户执行了 `DROP TABLE` 命令,但尚未清空回收站,可以使用如下命令恢复: ```sql FLASHBACK TABLE table_name TO BEFORE DROP; ``` 此操作会将从回收站中恢复,并保留其原有数据索引结构[^1]。 #### 恢复被 `DELETE` 或 `UPDATE` 的数据 对于通过 `DELETE` 删除的数据,可以使用 `FLASHBACK QUERY` 来查询历史数据并恢复: ```sql SELECT * FROM table_name AS OF TIMESTAMP TO_TIMESTAMP('2023-10-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS'); ``` 如果确认时间点正确,可以通过插入语句将数据恢复回当前中: ```sql INSERT INTO table_name SELECT * FROM table_name AS OF TIMESTAMP TO_TIMESTAMP('2023-10-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS'); ``` 此外,若需要恢复整个到某个时间点,需启用行移动功能: ```sql ALTER TABLE table_name ENABLE ROW MOVEMENT; FLASHBACK TABLE table_name TO TIMESTAMP TO_TIMESTAMP('2023-10-01 10:00:00', 'YYYY-MM-DD HH24:MI:SS'); ALTER TABLE table_name DISABLE ROW MOVEMENT; ``` ### 2. 利用 RMAN 进行物理备份与恢复 如果数据库启用了 **RMAN**(Recovery Manager),并且有完整的物理备份策略,则可以通过以下步骤进行恢复: #### 完整数据库恢复 1. **关闭数据库实例**: ```bash SHUTDOWN IMMEDIATE; ``` 2. **启动到 MOUNT 状态**: ```bash STARTUP MOUNT; ``` 3. **执行恢复操作**: ```bash RUN { RESTORE DATABASE; RECOVER DATABASE; } ``` 4. **打开数据库**: ```bash ALTER DATABASE OPEN; ``` #### 空间或数据文件恢复 如果仅丢失了部分数据文件,可针对特定空间进行恢复: ```bash RUN { ALLOCATE CHANNEL c1 TYPE DISK; RESTORE TABLESPACE users; RECOVER TABLESPACE users; RELEASE CHANNEL c1; } ``` ### 3. 使用逻辑备份(如 Data Pump) 如果系统中有使用 `Data Pump`(`expdp`/`impdp`)进行逻辑导出,则可以通过导入工具恢复数据。 #### 导入单个 ```bash impdp username/password DIRECTORY=dir_name DUMPFILE=backup.dmp TABLES=table_name; ``` #### 导入整个模式 ```bash impdp username/password DIRECTORY=dir_name DUMPFILE=backup.dmp SCHEMAS=schema_name; ``` ### 4. 避免未来误删问题的建议 - **启用回收站机制**:确保 `RECYCLEBIN=ON`,以便在误删后能够快速恢复。 - **定期备份策略**:结合 RMAN 逻辑备份工具,制定合理的全量 + 增量备份计划。 - **审计与监控**:通过 `AUDIT` 功能记录关键操作日志,便于追踪误操作行为。 - **设置 Flashback Retention**:根据业务需求调整 `UNDO_RETENTION` 参数,延长可回溯的时间窗口。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值