๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ORACLE/Backup & Recovery

[Oracle] Flashback ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ(Versions, Transaction, Table, Drop)

by ๐ŸŒปโ™š 2020. 7. 22.

Oracle Flashback

DML ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ์˜๋„์น˜ ์•Š๊ฒŒ ํ˜น์€ ์‹ค์ˆ˜๋กœ Commit์œผ๋กœ Transaction์„ ๋๋ƒˆ๋Š”๋ฐ ์ด์ „ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Oracle์˜ Flashback ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ ํŠน์ • ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ฑฐ๋‚˜ ๋ณด์—ฌ์ฃผ๋Š” ๋ณต๊ตฌ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, Flashback ๊ธฐ์ˆ ์€ Undo Data๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— undo_retention ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’์— ์˜ํ•ด ๋ณด์กด๋˜๋Š” ์‹œ๊ฐ„์ด ์ •ํ•ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. Undo Data๋ฅผ ๋ณด์กดํ•˜๋Š”๋ฐ ๊ณต๊ฐ„๊ณผ ์ž์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ undo_retention์˜ ๊ธฐ๋ณธ๊ฐ’์€ 900์ดˆ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ ์ข€ ๋” ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋ˆ์•ˆ Undo Data๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด Flashback Data Archive ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

[Oracle] Flashback Data Archive ๋ฐ์ดํ„ฐ ๋ณต์› ์ž‘์—…

Flashback Data Archive(11g) DML ์ž‘์—…์„ ํ•˜๋ฉด์„œ ์‹ค์ˆ˜๋ฅผ ์ €์งˆ๋Ÿฌ๋ฒ„๋ฆฌ๊ณ  commit๊นŒ์ง€ ํ•ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ค์ˆ˜๋กœ delete๋ฌธ์— ์กฐ๊ฑด์ ˆ์„ ํฌํ•จํ•˜์ง€ ์•Š์•„ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š”... ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ๏ฟฝ๏ฟฝ

myjamong.tistory.com

 

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Oracle 10g์—์„œ New Feature๋กœ ๊ณต๊ฐœ๋œ ๋ช‡๊ฐ€์ง€ Flashback ๊ธฐ๋Šฅ๋“ค์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Oracle 9i release 2์—์„œ ์ฒ˜์Œ ์„ ๋ณด์ธ Flashback Query๋ฅผ ์ด์šฉํ•ด์„œ ํŠน์ • ์‹œ์ ์˜ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

[Oracle] Flashback Query AS OF ์ ˆ ์‚ฌ์šฉํ•˜๊ธฐ

Flashback Query AS OF์ ˆ Oracle 9i release 2 ๋ฒ„์ „์˜ New Feature๋กœ "AS OF"์ ˆ์„ ์ด์šฉํ•ด์„œ ํŠน์ • ์‹œ์ ์˜ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŠน์ • ์‹œ์ ์˜ ์ œํ•œ์€ ์žˆ์Šต๋‹ˆ๋‹ค. Flashback Query๋Š” Un..

myjamong.tistory.com

 

Flashback ์‹ค์Šตํ™˜๊ฒฝ

OS : Red Hat Enterprise Linux Server release 6.10
DB : Oracle 11.2.0.1
SID : orcl
host : 601d2fce71dc

Flashback ๊ด€๋ จ ์‹ค์Šต์€ ์œ„์™€ ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

Flashback Versions Query ์‹ค์Šต

Flashback Versions Query๋Š” ์ง€์ •๋œ ๊ธฐ๊ฐ„ ๋™์•ˆ ํŠน์ • ROW์˜ ์ƒํƒœ(Version)๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‹ค์Šต์šฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

[oracle@601d2fce71dc orcl]$ sqlplus scott/tiger
SCOTT@orcl> create table emp_test as select * from emp;

Table created.

SCOTT@orcl> select * from emp_test;

์‹ค์Šต์šฉ ํ…Œ์ด๋ธ”๋กœ emp_test๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

ํ…Œ์ด๋ธ” ์ˆ˜์ •

SCOTT@orcl> update emp_test set sal=sal*1.2 where deptno=10;

3 rows updated.

SCOTT@orcl> commit;    

Commit complete.
SCOTT@orcl> update emp_test set sal=sal+5000 where deptno=20;

5 rows updated.

SCOTT@orcl> commit;

Commit complete.

๋ณ€๊ฒฝ๋œ ๋‚ด์—ญ๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡๊ฐ€์ง€ ๋ณ€๊ฒฝ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

Flashback Versions ์กฐํšŒ

SCOTT@orcl> col versions_endtime for a30
SCOTT@orcl> col versions_starttime for a30 
SCOTT@orcl> set linesize 200
SCOTT@orcl> 
select
    versions_xid
    ,versions_operation
    ,versions_startscn
    ,versions_endscn
    ,versions_starttime
    ,versions_endtime
    ,empno
    ,sal
    ,deptno
from emp_test
versions between timestamp sysdate - 1/24/60*10 and sysdate
where deptno in(10,20)
order by empno;

10๋ถ„์ „๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ 10, 20๋ฒˆ ๋ถ€์„œ์— ์†ํ•ด์žˆ๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Flashback Versions Query๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ Pseudo Column์„ ์ด์šฉํ•ด์„œ ๊ฐ ํ–‰๋“ค์˜ ๋ฒ„์ „์˜ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

versions_xid : ํ–‰์˜ ๋ณ€ํ™”๋ฅผ์ฃผ์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ Transaction์˜ ID๊ฐ’
versions_operation : Transaction์˜ ์•ก์…˜
    I --> insert
    U--> update
    D--> delete
versions_startscn : ํ•ด๋‹น ๊ฐ’์œผ๋กœ ์ฒ˜์Œ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ์˜ SCN
versions_endscn : ํ•ด๋‹น ๊ฐ’์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ–๊ณ  ์žˆ์—ˆ์„ ๋•Œ์˜ SCN
versions_starttime : ํ•ด๋‹น ๊ฐ’์œผ๋กœ ์ฒ˜์Œ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ์˜ Time
versions_endtime : ํ•ด๋‹น ๊ฐ’์„ ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ–๊ณ  ์žˆ์—ˆ์„ ๋•Œ์˜ Time

 

์ค‘๊ฐ„ ์ค‘๊ฐ„ versions_start ํ˜น์€ versions_end์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์ด ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. versions_start์˜ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ์ตœ์ดˆ์˜ ๋ฐ์ดํ„ฐ๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. versions_end์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์—†๋Š” Row๋Š” ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Flashback Versions์˜ Pseudo Column๋“ค์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜์—ฌ ํ–‰๋“ค์˜ ๋ณ€๊ฒฝ๋‚ด์—ญ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Flashback Transaction Query ์‹ค์Šต

Flashback Transaction Query๋Š” ๊ฐ Transaction์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋˜ Transaction์˜ UNDO SQL ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ์ž‘์—…๋ณด๋‹ค๋Š” ํŠน์ • Transaction์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆฌ๋Š”๋ฐ ์œ ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์Šต์€ Flashback Versions Query์—์„œ ์ƒ์„ฑํ•œ emp_test ํ…Œ์ด๋ธ”๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๊ถŒํ•œ ๋ฐ ์‚ฌ์ „ ์„ค์ •

SYS@orcl> grant select on sys.flashback_transaction_query to scott;
SYS@orcl> grant select any transaction to scott;

Flashback Transaction์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ Scott ์œ ์ €๊ฐ€ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์คฌ์Šต๋‹ˆ๋‹ค.

 

SYS@orcl> alter database add supplemental log data;

Database altered.
SYS@orcl> select supplemental_log_data_min from v$database;

supplemental_log_data_min ์ •๋ณด๊ฐ€ NO๋กœ ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ UNDO_SQL์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ flashback_transaction_query ๋ทฐ๋ฅผ ์กฐํšŒํ–ˆ์„ ๋•Œ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค์ •์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

 

 

ํ…Œ์ด๋ธ” ์ˆ˜์ •

SYS@orcl> conn scott/tiger
Connected.
SCOTT@orcl> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

๋จผ์ € ํ˜„์žฌ ์‹œ๊ฐ„์„ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ํ™•์ธํ• ๊ฒ๋‹ˆ๋‹ค.

 

 

SCOTT@orcl> update emp_test set sal=sal*2 where deptno=30;

6 rows updated.

SCOTT@orcl> commit;

Commit complete.

30๋ฒˆ ๋ถ€์„œ์˜ ์‚ฌ์›๋“ค์˜ ๊ธ‰์—ฌ๋ฅผ 2๋ฐฐ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

Flashback Transaction ์กฐํšŒ

SCOTT@orcl> col undo_sql for a100
SCOTT@orcl>
select
    xid
    ,undo_sql
from flashback_transaction_query
where table_owner = 'SCOTT'
and table_name = 'EMP_TEST'
and start_timestamp > to_timestamp('2020-07-21 14:34:19','yyyy-mm-dd hh24:mi:ss');

Flashback Transaction Query๋ฅผ ์ด์šฉํ•ด์„œ ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ์˜ UNDO_SQL์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์ฟผ๋ฆฌ์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ์ž‘์—…๋งŒ ์‹คํ–‰ํ•ด์„œ ์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. Flashback Versions Query๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŠน์ • Transaction์˜ ์ž‘์—…์„ ๋˜๋Œ๋ฆฌ๋Š”๋ฐ ์œ ํžˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น SQL๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•˜๊ฒŒ๋˜๋ฉด ์ผ๋ถ€ ํŠธ๋žœ์žญ์…˜์— ํ•œํ•ด์„œ ์ด์ „ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Flashback Table

Flashback Table์€ ํŠน์ • ์‹œ์ ์œผ๋กœ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ๋ณต๊ตฌํ• ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— Flashbackํ•  Table์— ๋Œ€ํ•ด Flashback Object ๊ถŒํ•œ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. Flashback Transaction Query์—์„œ ANY TABLE์— ๋Œ€ํ•ด FLASHBACK ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ์œผ๋‹ˆ emp_test ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ณ  ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์‚ฌ์ „ ์„ค์ •

SCOTT@orcl> alter table emp_test enable row movement;

Table altered.

๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜ ์ด๋™์„ ํ™œ์„ฑํ™”ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. row movement๋ฅผ ํ™œ์„ฑํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ–‰์˜ rowid๊ฐ€ ๋ณด์กด๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. Flashback ์ž‘์—… ์ด์ „์˜ rowid๋ฅผ ํŠน์ •ํ•œ application์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด Flashback ์ดํ›„์˜ rowid๊ฐ’๊ณผ ์ƒ์‘ํ•˜์ง€ ๋ชปํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

 

ํ…Œ์ด๋ธ” ์ˆ˜์ •

SCOTT@orcl> conn / as sysdba
Connected.
SYS@orcl> select current_scn from v$database;

๋˜๋Œ์•„๊ฐˆ SCN์„ ๋ฏธ๋ฆฌ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.

 

 

SCOTT@orcl> select * from emp_test;

๋น„๊ต๋ฅผ ์œ„ํ•ด ๋ณ€๊ฒฝ์ „ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.

 

 

SCOTT@orcl> update emp_test set sal = 1000;

14 rows updated.

SCOTT@orcl> commit;

Commit complete.

SCOTT@orcl> select * from emp_test;

๋ชจ๋“  ์‚ฌ์›์˜ ๊ธ‰์—ฌ๋ฅผ 1000์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ Commitํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

Flashback Table ์ž‘์—…

SCOTT@orcl> flashback table emp_test to scn 1406603;

Flashback complete.

์ด์ „์— ๋ฏธ๋ฆฌ ํ™•์ธํ•ด๋†จ๋˜ SCN ๋ฒˆํ˜ธ๋กœ flashback ์ž‘์—…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

SCOTT@orcl> select * from emp_test;

๋ณ€๊ฒฝํ•˜๊ธฐ ์ด์ „์˜ ์‹œ์ ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณต๊ตฌ๋œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

Flashback Drop

Oracle์—์„œ Drop  Table๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ฉด recycle bin ํœด์ง€ํ†ต์œผ๋กœ ํ…Œ์ด๋ธ”์˜ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์ด๋™๋ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ ํœด์ง€ํ†ต์œผ๋กœ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ์•„์ง ํœด์ง€ํ†ต์— ํŒŒ์ผ์ด ๋‚จ์•„์žˆ๋‹ค๋ฉด ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋“ฏ์ด, ์˜ค๋ผํด์—์„œ๋„ Flashback Drop ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ๋ณต์›์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, purge ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”์„ Dropํ–ˆ๋‹ค๋ฉด ๋ณต์›์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

์‹ค์Šต์šฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

SCOTT@orcl> create table dept_test as select deptno from dept;

Table created.

SCOTT@orcl> drop table dept_test;

Table dropped.

SCOTT@orcl> create table dept_test as select deptno, dname from dept;

Table created.

SCOTT@orcl> drop table dept_test;

Table dropped.

SCOTT@orcl> create table dept_test as select deptno, dname, loc from dept;

Table created.

SCOTT@orcl> drop table dept_test;

Table dropped.

์‹ค์Šต์„ ์œ„ํ•ด dept_test๋ผ๋Š” ํ…Œ์ด๋ธ”์„ 3๋ฒˆ ๊ฐ๊ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  Dropํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

recycle bin

SCOTT@orcl> show recyclebin

๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํœด์ง€ํ†ต์— ์žˆ๋Š” ํ…Œ์ด๋ธ”๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dropํ•œ 3๊ฐœ์˜ dept_test ํ…Œ์ด๋ธ”์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

Flashback Drop ์ž‘์—…

SCOTT@orcl> flashback table dept_test to before drop;

Flashback complete.

SCOTT@orcl> desc dept_test;

to before drop ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— Dropํ•œ ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

SCOTT@orcl> drop table dept_test;

Table dropped.

SCOTT@orcl> flashback table "BIN$qvYhLOvKQqngUBGsAgAC+g==$0" to before drop;

Flashback complete.

SCOTT@orcl> desc dept_test;

recycle bin์˜ RECYCLE_NAME์„ ์ด์šฉํ•ด์„œ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํ…Œ์ด๋ธ”์ด๋”๋ผ๋„ ์›ํ•˜๋Š” DROP version์˜ ํ…Œ์ด๋ธ”์„ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๋Œ“๊ธ€