模拟工业场景:数据库的用户被删除掉了,表空间,数据文件都在的 能否恢复?
环境:
SQL> show userUSER is "SYS"SQL> select flashback_on from v$database;FLASHBACK_ON------------------YESSQL> create user u1 identified by u1 default tablespace users quota 10m on users; --20:56分创建u1用户User created.SQL> grant connect,create any table to u1;Grant succeeded.SQL> conn u1/u1Connected.SQL> create table test (i int); Table created.SQL> insert into test values(1);1 row created.SQL> insert into test values(2);1 row created.SQL> commit;Commit complete.SQL> select * from test; I---------- 1 2SQL> conn / as sysdbaConnected.SQL> drop user u1 cascade; --21:09分把u1及其关联对象删除。User dropped.SQL> shutdown immediateSQL> startup mountSQL> flashback database to timestamp sysdate-9/1440;Flashback complete.SQL> alter database open resetlogs;Database altered.SQL> select * from u1.test; I---------- 1 2
小结:
整个模拟实验的关键在于创建u1和删除u1之间的时间差,flashback database指定的timestamp要落在这个之间,否则实验会失败。