闹大了、生产库被我覆盖了。求闪回帖子,oracle11G

anyine 发布于 2013/08/15 22:28
阅读 1K+
收藏 7
今天心烦意乱、一天又是看需求、改BUG、设计功能、晚上弄下生产库一不小心登错了用户、覆盖了生产用户、求帖子闪回救命啊!oracle 11 G linux
加载中
1
anyine
anyine

引用来自“八木”的答案

哥,恢复完了,分享下经验呗。

这是我总结的脚本,可以参考
--1、启用和禁用回收站
--oracle系统默认启用回收站。如果要手工控制回收站是否启用,可以通过修改RECYCLEBIN参数。首先通过SHOW PARAMETER RECYCLEBIN命令检查(注意也必须是管理员用户才可以)当前回收站是否启用。
show parameter recyclebin;
NAME                                 TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 recyclebin                           string      on
--Value值是on说名回收站是启用状态;
 
--关闭回收站:
alter session set recyclebin=off;

--2、查看回收站中的信息
--两种:1、dba通过数据字典dba_recyclebin来查看2、普通用户通过show recyclebin来查看
desc user_recyclebin;

--3、恢复相依对象
create table sys_org(id number,content varchar2(30));
create index index_id on sys_org(id);
drop table sys_org;
show recyclebin;
 ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
 ---------------- ------------------------------ ------------ -------------------
SYS_ORG    BIN$gf1yHCeHQYaV7metr4X4kg==$0 TABLE        2013-08-15:21:39:32
 
--可见没有与索引相关的信息,下面用一条sql来查看删除的表和索引信息,而上面的语句只能查询到表的信息。
select original_name,object_name,type,droptime from user_recyclebin;
ORIGINAL_NAME                    OBJECT_NAME
 -------------------------------- ------------------------------
 TYPE                      DROPTIME
 ------------------------- -------------------
 SYS_ORG                   BIN$gf1yHCeHQYaV7metr4X4kg==$0
 TABLE                     2013-08-15:21:40:32
INDEX_ID                         BIN$MSHanVPZRluFmcNkmb/FYw==$0
 INDEX                     2013-08-15:21:40:32

--闪回表 查看回收站是否保存了刚才删除的表;
drop table sys_org;
--(注意sys用户和system用户除外,只有普通用户操作才能被保存到回收站中)
show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
 ---------------- ------------------------------ ------------ -------------------
SYS_ORG      BIN$/xHQTJWwTr20WgwHd65BUQ==$0 TABLE        2013-08-15:22:00:32

--执行闪回删除,相应的数据也恢复回来了:
flashback table sys_org to before drop;

--如果在执行闪回操作时数据库中已经重建了相同的表名,这时需要对闪回的表进行重命名
flashback table tb_temptest to before drop rename to newtablename;
--闪回时也可以使用RECYCLEBIN NAME进行恢复,(但要加双引号)
--我们再次drop掉表tb_temptest,并用RECYCLEBIN NAME进行闪回:
drop table sys_org;
show recyclebin;
 ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
 ---------------- ------------------------------ ------------ -------------------
SYS_ORG      BIN$EjDM+LpCQ22xKBt22KnjXQ==$0 TABLE         2013-08-15:22:03:32
flashback table "BIN$EjDM+LpCQ22xKBt22KnjXQ==$0" to before drop;

--删除sys_menu 的一条数据 开启表的移动功能
alter table sys_menu enable row movement;
--将表恢复到删除数据的时间之前(注意这个时间尽量与您删除数据的时间相同或稍微靠前)
flashback table sys_menu to timestamp to_timestamp('2013-08-15 22:50:30','yyyy-mm-dd hh24:mi:ss');





总结了一下、仅供参考!稍微麻烦了一点,一个表一个表的做。
atearsan
atearsan
恭喜你!问题解决了!不过我建议修改下问题,把解决过程直接贴到问题内容中吧。方便大家以后能直接看到解决方案。
0
红薯
红薯
没有备份??
红薯
红薯
回复 @anyine : ... 褶子了。。。
anyine
anyine
没有、才上线的项目、还没来得及处理!数据量有30w条左右!
0
迷路的游侠
迷路的游侠
赶紧打包跑路吧...
anyine
anyine
按道理是够被开好几次了
0
CeeFee
CeeFee
这个,这个。。。
0
渔樵耕读
渔樵耕读

偷摸删一个数据库文件。 把问题转移吧~~~~

虽然有点损,不过,。。

0
jingshishengxu
jingshishengxu
赶紧向领导汇报。不要捂盖子
jingshishengxu
jingshishengxu
还有数据库放那不要再动了。
0
OscerSong
OscerSong
闪回配置了没?
OscerSong
OscerSong
我记得默认是关的
anyine
anyine
好像没有!不过默认不是开着的吗?数据库到现在都没动过!
0
LimSteven
LimSteven
快用你们老板的账号再登录一次,然后再做一次覆盖。
小翔
小翔
你这个我看行哈
0
LimSteven
LimSteven

引用来自“LimSteven”的答案

快用你们老板的账号再登录一次,然后再做一次覆盖。
然后,交给上级领导处理。
0
乌龟壳
乌龟壳
没备份这个……
返回顶部
顶部