내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 8.1 (64bit)
DB 환경 : Oracle Database 19.9.0.0
방법 : 오라클 19c rman catalog 설명 및 catalog db 생성
catalog 설명 및 catalog db를 생성하는방법을 설명함
catalog(복구카탈로그, recovery catalog) 란?
복구 카탈로그는 하나 이상의 Oracle 데이터베이스에 대한
메타 데이터를 저장하기 위해 RMAN에서 사용하는 데이터베이스 스키마임
일반적으로 카탈로그는 전용 데이터베이스에 저장함
카탈로그 db 사용시 백업에 관련된 정보가 카탈로그 db에 저장됨
카탈로그 db 가 없다면, 기본적으로 Target Database(원본 db)의 control file에 기록됨
catalog db 생성
rman catalog db를 만드는 방법을 설명함
원본 db = instance_name : oracle19, IP : 192.168.137.50, hostname : oel8
카탈로그 db = instance_name : catdb, IP : 192.168.137.51, hostname : oel8catalog
각 서버의 /etc/hosts 파일 확인(원본 db, 카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 | 원본 db $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.137.50 oel8 192.168.137.51 oel8catalog 카탈로그 db $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.137.51 oel8catalog 192.168.137.50 oel8 |
복구 카탈로그를 저장할 테이블 스페이스 및 카탈로그 관리유저 생성 (카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 | SQL> create tablespace cattbs datafile '/ORA19/app/oracle/oradata/CATDB/cattbs01.dbf' size 100m; Tablespace created. SQL> create user catuser identified by catuser default tablespace cattbs quota unlimited on cattbs; User created. SQL> grant connect, resource, recovery_catalog_owner to catuser; Grant succeeded. |
tnsnames.ora 에 접속 정보 등록(원본 db, 카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ vi $ORACLE_HOME/network/admin/tnsnames.ora ORACLE19 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oel8)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle19) ) ) CATDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oel8catalog)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = catdb) ) ) |
12~19번 째 줄 catdb 접속정보 등록
리스너 기동(원본 db, 카탈로그 db)
1 2 3 4 5 | 원본 db $ lsnrctl start 카탈로그 db $ lsnrctl start |
접속 테스트(원본 db, 카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 원본 db -> 카탈로그 db로 접속시도 $ tnsping catdb TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 20-JAN-2021 17:17:43 Copyright (c) 1997, 2020, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oel8catalog)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = catdb))) OK (0 msec) 카탈로그 db -> 원본 db로 접속시도 $ tnsping oracle19 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 20-JAN-2021 17:17:51 Copyright (c) 1997, 2020, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oel8)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle19))) OK (0 msec) |
모두 정상적으로 접속됨
원본 db에서 카탈로그 db로 rman 접속(원본 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ rman target / catalog catuser/catuser@catdb Recovery Manager: Release 19.0.0.0.0 - Production on Wed Jan 20 17:19:14 2021 Version 19.9.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. PL/SQL package SYS.DBMS_BACKUP_RESTORE version 19.03.00.00 in TARGET database is not current PL/SQL package SYS.DBMS_RCVMAN version 19.03.00.00 in TARGET database is not current connected to target database: ORACLE19 (DBID=3209222764) connected to recovery catalog database RMAN> |
정상 접속됨
복구 카탈로그 생성(원본 db)
1 2 3 | RMAN> create catalog tablespace cattbs; recovery catalog created |
카탈로그 관리유저로 접속후 테이블 확인(카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ sqlplus catuser/catuser SQL> select * from tab; TNAME TABTYPE CLUSTERID -------------------------------------------------------------------------------------------------------------------------------- ------------- ---------- RCVER TABLE DB TABLE NODE TABLE CONF . . SQL> select count(*) from tab; COUNT(*) ---------- 159 |
create catalog 명령 이후 catuser에 여러가지 테이블이 생성됨
rc_database 테이블 확인(카탈로그 db)
1 2 3 4 | $ sqlplus catuser/catuser SQL> select * from rc_database; no rows selected |
아직 원본db가 등록되지 않음
카탈로그 db를 등록(원본 db)
1 2 3 4 5 6 | $ rman target / catalog catuser/catuser@catdb RMAN> register database; database registered in recovery catalog starting full resync of recovery catalog full resync complete |
rc_database 테이블 재확인(카탈로그 db)
1 2 3 4 5 6 | $ sqlplus catuser/catuser SQL> select * from rc_database; DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOGS FINAL_CHANGE# ---------- ---------- ---------- -------- ----------------- --------- ------------- 1 2 3209222764 ORACLE19 1 07-JAN-20 |
정상적으로 등록됨
또는 rman incarnation 확인
1 2 3 4 5 6 7 8 | $ rman target / catalog catuser/catuser@catdb RMAN> list incarnation; List of Database Incarnations DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time ------- ------- -------- ---------------- --- ---------- ---------- 1 2 ORACLE19 3209222764 CURRENT 1 07-JAN-20 |
데이터파일 조회(원본 db, 카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 원본 db SQL> set lines 200 pages 1000 col tablespace_name for a10 col file_name for a50 select tablespace_name, file_id, file_name, bytes/1024/1024 mb from dba_data_files; TABLESPACE FILE_ID FILE_NAME MB ---------- ---------- -------------------------------------------------- ---------- SYSTEM 1 /ORA19/app/oracle/oradata/ORACLE19/system01.dbf 700 SYSAUX 2 /ORA19/app/oracle/oradata/ORACLE19/sysaux01.dbf 550 UNDOTBS1 3 /ORA19/app/oracle/oradata/ORACLE19/undotbs01.dbf 215 USERS 4 /ORA19/app/oracle/oradata/ORACLE19/users01.dbf 5 카탈로그 db SQL> set lines 200 pages 1000 col tablespace_name for a10 col file_name for a50 col db_name for a10 select db_name, tablespace_name, file# file_id, name file_name, bytes/1024/1024 mb from rc_datafile; DB_NAME TABLESPACE FILE_ID FILE_NAME MB ---------- ---------- ---------- -------------------------------------------------- ---------- ORACLE19 SYSTEM 1 /ORA19/app/oracle/oradata/ORACLE19/system01.dbf 700 ORACLE19 SYSAUX 2 /ORA19/app/oracle/oradata/ORACLE19/sysaux01.dbf 550 ORACLE19 UNDOTBS1 3 /ORA19/app/oracle/oradata/ORACLE19/undotbs01.dbf 215 ORACLE19 USERS 4 /ORA19/app/oracle/oradata/ORACLE19/users01.dbf 5 |
동일하게 확인됨
정상적으로 카탈로그 db 가 구성됨
카탈로그db 삭제(연결해제)(원본 db)
1 2 3 4 5 6 7 8 9 | $ rman target / catalog catuser/catuser@catdb RMAN> drop catalog; <-- [drop catalog 입력] recovery catalog owner is CATUSER enter DROP CATALOG command again to confirm catalog removal RMAN> drop catalog; <-- [drop catalog 재입력] recovery catalog dropped |
처음 1번 입력 후 한번더 입력해야 정상적으로 drop 됨
catuser 테이블 확인 및 recyclebin 삭제(카탈로그 db)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SQL> conn catuser/catuser Connected. SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------------------------------------------------------------------ BIN$uchSWhvUChDgUzOJqMAjBw==$0 TABLE BIN$uchmORDrCj7gUzOJqMBLsw==$0 TABLE SQL> purge recyclebin; Recyclebin purged. SQL> select * from tab; no rows selected |
recyclebin의 테이블까지 정상적으로 모두 삭제됨
rman 접속 후 확인(원본 db)
1 2 3 4 5 6 7 8 | $ rman target / catalog catuser/catuser@catdb RMAN> list backup; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of list command at 01/29/2021 13:07:43 RMAN-06428: recovery catalog is not installed |
catalog 가 설치되어 있지 않다고 나옴
참조 :
https://jeeomlove.tistory.com/110
https://otsteam.tistory.com/112
https://goodusdata.tistory.com/84
https://cafe.naver.com/prodba/49570
http://egloos.zum.com/ietranger/v/3301271
'ORACLE > Backup&Recover' 카테고리의 다른 글
오라클 19c rman catalog db 이용 백업 복구 (0) | 2021.01.21 |
---|---|
오라클 11g R2 ADG Gap 발생 시나리오1 (0) | 2021.01.18 |
오라클 11g R2 hot 백업, 복구(파일 복사 후 샘플데이터 생성) (0) | 2021.01.11 |
오라클 11g R2 begin backup 후 end backup 을 하지 않고 복구(파일 복사 후 샘플데이터 생성) (0) | 2021.01.05 |
오라클 11g R2 begin backup 후 end backup 을 하지 않고 복구(샘플데이터 생성 후 파일 복사) (0) | 2021.01.04 |