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)
원본 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)
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)
$ 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)
원본 db
$ lsnrctl start
카탈로그 db
$ lsnrctl start
|
접속 테스트(원본 db, 카탈로그 db)
원본 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
|
존재하지 않는 ts를 입력했을 경우
카탈로그 관리유저로 접속후 테이블 확인(카탈로그 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 가 설치되어 있지 않다고 나옴
출처 : 오라클 19c rman catalog 설명 및 catalog db 생성 :: 내맘대로긍정 (tistory.com)
'오라클 > 참고' 카테고리의 다른 글
오라클 19c rman incarnation 설명 및 복구 시나리오 (0) | 2023.01.10 |
---|---|
오라클 19c rman catalog db 이용 백업, 복구 (0) | 2023.01.10 |
오라클 19c ADG 설치3 (0) | 2023.01.05 |
오라클 19c ADG 설치2 (0) | 2023.01.05 |
오라클 19c ADG 설치1 (0) | 2023.01.05 |