내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
다운로드
trending_flat
OS환경 : Oracle Linux 6.8 (64bit)
DB 환경 : Oracle Database 11.2.0.4
방법 : 오라클 11g R2 hot 백업 후 until scn 을 이용한 복구 방법
hot 백업을 이용해 full 백업 후 데이터 생성 삭제 후 원하는 scn으로 이동하는 시나리오
hot 백업
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
SQL> alter database begin backup;
Database altered.
$ cd /shcsw/oracle/app/oracle/oradata/ORCL11/
$ mkdir -p ../hot
$ cp -av ./* ../hot/
`./afiedt.buf' -> `../hot/afiedt.buf'
`./control01.ctl' -> `../hot/control01.ctl'
`./control02.ctl' -> `../hot/control02.ctl'
`./redo01.log' -> `../hot/redo01.log'
`./redo02.log' -> `../hot/redo02.log'
`./redo03.log' -> `../hot/redo03.log'
`./sysaux01.dbf' -> `../hot/sysaux01.dbf'
`./system01.dbf' -> `../hot/system01.dbf'
`./temp01.dbf' -> `../hot/temp01.dbf'
`./temp02.dbf' -> `../hot/temp02.dbf'
`./undotbs01.dbf' -> `../hot/undotbs01.dbf'
`./users01.dbf' -> `../hot/users01.dbf'
SQL> alter database end backup;
Database altered.
|
테이블 생성 및 count, scn 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
SQL> create table reco as select * from dba_objects;
Table created.
SQL> select count(*) from reco;
COUNT(*)
----------
13632
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
12234813
|
데이터 delete 및 count, scn 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
SQL> delete reco where rownum <= 10000;
10000 rows deleted.
SQL> commit;
Commit complete.
SQL> select count(*) from reco;
COUNT(*)
----------
3632
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
12234830
|
데이터 insert 및 count, scn 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
SQL> insert into reco select * from dba_objects;
13632 rows created.
SQL> commit;
Commit complete.
SQL> select count(*) from reco;
COUNT(*)
----------
17264
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
12234839
|
db 강제종료
1
2
|
SQL> shutdown abort
ORACLE instance shut down.
|
db를 데이터 delete 이후 시점으로 복구하고자함
hot 백업본 restore
1
2
3
4
5
6
7
8
|
$ cd /shcsw/oracle/app/oracle/oradata/hot/
$ cp -av ./*.dbf ../ORCL11/
`./sysaux01.dbf' -> `../ORCL11/sysaux01.dbf'
`./system01.dbf' -> `../ORCL11/system01.dbf'
`./temp01.dbf' -> `../ORCL11/temp01.dbf'
`./temp02.dbf' -> `../ORCL11/temp02.dbf'
`./undotbs01.dbf' -> `../ORCL11/undotbs01.dbf'
`./users01.dbf' -> `../ORCL11/users01.dbf'
|
mount 기동
1
2
3
4
5
6
7
8
|
$ cd /shcsw/oracle/app/oracle/oradata/hot/
$ cp -av ./*.dbf ../ORCL11/
`./sysaux01.dbf' -> `../ORCL11/sysaux01.dbf'
`./system01.dbf' -> `../ORCL11/system01.dbf'
`./temp01.dbf' -> `../ORCL11/temp01.dbf'
`./temp02.dbf' -> `../ORCL11/temp02.dbf'
`./undotbs01.dbf' -> `../ORCL11/undotbs01.dbf'
`./users01.dbf' -> `../ORCL11/users01.dbf'
|
recover database until scn 실행(delete 이후 시점 scn 12234830)
1
2
3
4
5
6
7
8
9
10
11
|
RMAN> recover database until scn 12234830;
Starting recover at 23-APR-21
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 23-APR-21
|
sqlplus 에서 alter database open resetlogs 로 기동
1
2
3
|
SQL> alter database open resetlogs;
Database altered.
|
데이터 확인
1
2
3
4
5
|
SQL> select count(*) from reco;
COUNT(*)
----------
3632
|
정상적으로 delete 후 시점으로 와짐
'ORACLE > Backup&Recover' 카테고리의 다른 글
오라클 11g R2 XML데이터 update 로그마이너 복구 테스트 (0) | 2021.10.06 |
---|---|
오라클 11g R2 에서 오라클 19c Rman 백업셋 이용 업그레이드 방법 (4) | 2021.06.10 |
오라클 11g R2 rman 백업 후 until scn 을 이용한 복구 방법 (2) | 2021.04.23 |
오라클 11g R2 엔진 백업 복구 테스트(windows) (0) | 2021.02.06 |
오라클 DDL(drop 등)도 로그마이너로 복구가 될까? (0) | 2021.01.31 |