oracle数据库备份方式有哪些

oracle数据库中的表被truncate掉了,怎么恢复

等等,我昨天出了点事。
我们公司有一个测试库,一名实习生不小心截断了一个表。
这张表非常重要,包含了大量的实验数据。
他吓得脸色惨白。
我告诉他,不要惊慌,我会告诉你该怎么做。

首先你需要找到截断时间点。
我记得实习生的手术时间是下午三点左右,正好赶上下班。
我打开 SQL Developer,检查 dba_objects 视图,发现该表的 last_ddl_time 是下午 2 :5 0。
截断操作应在该时间之后进行。
这个时间点只是一个粗略的估计,需要更加精确。

然后我使用 LogMiner 找到要截断的 SCN 值。
有点尴尬。
您必须首先配置LogMiner并指定归档日志范围。
我记得我花了二十分钟才找到 SCN。
我不记得具体是多少,但它是一个十六进制数字。
一旦找到SCN,就很容易管理了。
您可以将物理备份恢复到另一个测试环境并恢复截断之前的 SCN 值。
我以前也做过一次,但还是有点紧张,生怕出错。

恢复后,我让实习生跟着我一步步操作,先导出表,然后使用expdp导入到生产数据库中。
整个过程花了近一个半小时,手表终于恢复原状。
实习生松了口气,连声说了几声谢谢。
我告诉他,以后操作数据库要小心,尤其是生产环境。

但我突然想到,如果截断操作不是发生在非生产环境,而是发生在生产环境,恢复起来会不会更困难?现在还有其他办法吗?比如使用闪回技术?我需要做更多研究。

oracle备份数据库命令是什么