SQL*Plus에서와 OS상에서 하는 2가지 방법이 있을 것 같네요.
1. SQL*Plus에서 create table test_bak as select * from test;
- 이경우엔 table size가 크면 snap shot too old 에러가 날 수 있으며 이때엔
대용량 rollback segment(large_rb)를 만들어 해당 작업을 하는 session에서
alter session use rollback segment large_rb; 명령을 사용하고
- 대상table에 restore할때는
1> truncate table test; 하고 나서 insert into test select * from test_bk;
하거나
2> drop table test; 하고 나서 rename test_bk to test; 하고나서 원래의
index나 constraint를 생성한다.
2. OS상에서 Export & Impot를 사용
- exp user/passwd tables=test file=test.dmp
- imp user/passwd file=test.dmp ignore=y(대상table이 truncate된 경우)
::HTML맨 님께서 쓰시길::
>
>
>
> 안녕하세요..
>
> 오라클 디비에서요.
>
> 해당 유저의 테이블만을 백업을 하려고 하거든요.
>
> 테이블만 따로 파일로 백업을 해서 복구 한다거나..
>
> 아님.. 디비 안에서 해당 테이블만 다른 이름으로 똑같이(그 내용까지)
>
> 복사해 두는 방법 없나요? 오라클에서요. 오라클 8 이거든요.
>
> 명령어좀 가르쳐주세요..
>
> 그런 방법이 없다면. 다른 최선의 방책은?
>
> 테이블 하나만 백업을 해둘려구요. 물론 다음에 다시 복구시켜서 그대로 써야 되구요..
>
> 부탁드릴께요.~.
>
> p.s 제가 아직 오라클 개념을 잘 모르거든요. 설명이 좀 부족해도. 이해해주세요.
>
>
|