시작하기 전에 Oracle용 백업 및 DR 서비스를 검토하는 것이 좋습니다.
Oracle 데이터베이스를 백업하려면 먼저 Oracle 서버를 백업 및 DR 서비스에 호스트로 추가해야 합니다. 이 기능을 사용하려면 Oracle 데이터베이스 백업을 위한 기본 요건을 참고한 후 다음 준비 단계를 따르세요.
Linux 환경에서 Oracle 데이터베이스 준비
Oracle 데이터베이스를 보호하기 전이나 데이터베이스 보호 작업이 실패하는 경우 Oracle 데이터베이스 서버에서 다음 설정이 올바른지 확인하세요.
보호할 각 Oracle 데이터베이스가 실행 중이어야 합니다. 예를 들면 다음과 같습니다.
database: actdb #ps -ef | grep pmon | grep -i actdb oracle 27688 1 0 2015 ? 00:26:24 ora_pmon_actdb
데이터베이스는 보관 로그 모드로 실행되어야 합니다. 데이터베이스가 보관 로그 모드로 실행되고 있는지 확인하려면 Oracle OS 사용자로 데이터베이스 서버에 로그인하고 데이터베이스 환경 변수를 설정합니다.
export ORACLE_HOME=<oracle home path> (get this from /etc/oratab) export ORACLE_SID=<database instance name> (you can get this through ps -ef | grep pmon) export PATH=$ORACLE_HOME/bin:$PATH
sqlplus에 로그인합니다.
#sqlplus / as sysdba #SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination +FRA Oldest online log sequence 569 Next log sequence to archive 570 Current log sequence 570 #SQL>
데이터베이스는
spfile
를 사용해야 합니다. 데이터베이스가spfile
로 실행되는지 확인합니다.#sqlplus / as sysdba SQL> show parameter spfile NAME TYPE VALUE ------------------ ----------- ------------ spfile string +DATA/ctdb/spfilectdb.ora
Oracle RAC 데이터베이스의 경우 스냅샷 제어 파일이 공유 디스크 아래에 있어야 합니다. ASM을 사용하는 Oracle RAC 데이터베이스의 경우 스냅샷 제어 파일이 공유 디스크에 있어야 합니다.
이를 확인하려면 RMAN에 연결하고
show all
명령어를 실행합니다. 필요한 경우 구성합니다.rman target /
그런 다음 RMAN에서 다음을 실행합니다.
show all
db_unique_name이 CTDB인 데이터베이스의 RMAN 구성 매개변수는 다음과 같습니다.
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/mnt/ctdb/snapcf_ctdb.f';
이 예에서는 로컬 파일 시스템에 설정된 구성을 보여줍니다.
RAC 환경에서는 공유 ASM 디스크 그룹으로 설정해야 합니다. ASM 디스크 그룹에 넣으려면 다음을 사용하세요.
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+<DG name>/snap_<DB name>.f';
ASM 디스크 그룹에 데이터 파일이 있는 Oracle 데이터베이스 백업 준비
ASM 디스크 그룹의 백업 및 DR 스테이징 디스크
ASM diskstring 매개변수가 설정되어 있어야 하며 null이 아닙니다. ASM OS 사용자로 데이터베이스 서버에 로그인하고 ASM 환경 변수를 설정합니다.
# export ORACLE_HOME=(oracle ASM home path)
(get this from /etc/oratab)
#export ORACLE_SID=(ASM instance name) (you
can get this through ps ?ef | grep pmon)
#export PATH=$ORACLE_HOME/bin:$PATH
sqlplus
에 연결합니다.
#sqlplus / as sysasm
#sql> show parameter asm_diskstring
NAME TYPE VALUE
------------------- ----------- ------------------------------
asm_diskstring string ORCL:*, /dev/sdt1, /dev/sdu1
값의 결과가 null이면 백업 및 DR 보호를 진행하기 전에 기존 ASM 디스크의 올바른 ASM 디스크 문자열 값을 가져옵니다. 백업 및 DR 백업은 ASM에 매핑하기 위해 백업 스테이징 디스크의 디스크 문자열 경로(/dev/Backup and DR/asm/*
)를 추가합니다.
파일 시스템의 백업 및 DR 스테이징 디스크
Oracle ASM 데이터베이스를 파일 시스템으로 보호하는 경우 애플리케이션 세부정보 및 설정에서 ASM을 파일 시스템으로 변환을 예로 설정해야 합니다. Oracle 데이터베이스용 애플리케이션 세부정보 및 설정을 참고하세요.
Oracle 데이터베이스 인증 준비
다음 추가 준비 단계는 데이터베이스 인증을 사용하려는 경우에만 필요합니다. Oracle 데이터베이스 인증은 데이터베이스 인증을 사용한 백업 및 DR에 설명되어 있습니다.
Linux 환경에서 Oracle 데이터베이스 준비하기의 단계를 따릅니다.
제공되지 않은 경우 백업 및 DR 백업용 데이터베이스 사용자 계정을 만듭니다.
create user act_rman_user identified by <password>;
모든 노드에
sqlplus
로 로그인하고 다음을 실행하여 모든 RAC 노드에sysdba
액세스 권한을 부여합니다.grant create session, resource, sysdba to act_rman_user;
Oracle 12c의 경우 이 역할은
of sysdba
대신sysbackup
일 수 있으며 데이터베이스 사용자 이름은 #으로 시작합니다.RAC 환경의 모든 노드에
sysdba
역할이 부여되었는지 확인합니다.#sqlplus / as sysasm # sql> select * from gv$pwfile_users; INST_ID USERNAME SYSDB SYSOP SYSAS ---------- -------------- ----- ----- ----- 1 SYS TRUE TRUE FALSE 2 SYS TRUE TRUE FALSE 1 ACT_RMAN_USER TRUE TRUE FALSE 2 ACT_RMAN_USER TRUE TRUE FALSE
다음 안내에 따라 환경 유형에 따라 서비스 이름을 테스트합니다.
RAC가 아닌 환경에서 Oracle 서비스 이름 만들기 및 확인
Oracle 서비스 이름은 데이터베이스 인증에만 사용됩니다. OS 인증에는 필요하지 않습니다.
예:
데이터베이스 이름: dbstd
,
인스턴스 이름: dbstd
Oracle 서비스 이름이 나열되지 않은 경우 다음 항목을 추가하여
$ORACLE_HOME/network/admin
또는$GRID_HOME/network/admin
에 있는tnsnames.ora
파일에 서비스 이름 항목을 만듭니다.act_svc_dbstd = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dbstd) ) )
tnsnames.ora
파일이 비표준 위치에 있는 경우 Oracle 데이터베이스용 애플리케이션 세부정보 및 설정에 설명된 대로 애플리케이션 세부정보 및 설정에서 절대 경로를 제공합니다.데이터베이스의 서비스 이름 항목을 테스트하여 구성되었는지 확인합니다.
Oracle OS 사용자로 로그인하고 Oracle 환경을 설정합니다.
TNS_ADMIN=(tnsnames.ora file location) tnsping act_svc_dbstd
데이터베이스 사용자 계정을 확인하여 백업 및 DR 백업이 연결될 수 있는지 확인합니다.
sqlplus act_rman_user/act_rman_user@act_svc_dbstd as sysdba
Oracle 데이터베이스용 애플리케이션 세부정보 및 설정에 설명된 대로 애플리케이션 세부정보 및 설정의 Oracle 서비스 이름 설정 아래에 생성된 서비스 이름 (act_svc_dbstd)을 제공합니다.
RAC 환경에서 Oracle servicename 만들기 및 확인
Oracle 서비스 이름은 데이터베이스 인증에만 사용됩니다. OS 인증에는 필요하지 않습니다.
3노드 RAC의 예:
데이터베이스 이름:
dbrac
인스턴스1 이름:
dbrac1
Instance2 이름:
dbrac2
인스턴스3 이름: 노드3 (인스턴스 이름
dbrac3
)에서 데이터베이스 보호가 설정된dbrac3
다음 항목을 추가하여
$ORACLE_HOME/network/admin
또는$GRID_HOME/network/admin
에 있는tnsnames.ora
파일에 서비스 이름 항목을 만듭니다.act_svc_dbrac3 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = (IP of the database server)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (INSTANCE_NAME = dbrac3) (SERVICE_NAME = dbrac) ) ) ) Where: HOST = This can be SCAN IP in a RAC environment or VIP or IP of the node 3 database server. SERVICE_NAME = database name INSTANCE_NAME = database instance name on node3
서비스 이름을 테스트합니다.
Oracle OS 사용자로 로그인하고 Oracle 환경을 설정합니다.
TNS_ADMIN=(tnsnames.ora file location) tnsping act_svc_dbrac3
데이터베이스 사용자 계정을 확인하여 백업 및 DR 백업이 연결될 수 있는지 확인합니다.
sqlplus act_rman_user/act_rman_user@act_svc_dbrac3 as sysdba
Oracle 데이터베이스용 애플리케이션 세부정보 및 설정에 설명된 애플리케이션 세부정보 및 설정의 Oracle 서비스 이름 설정에 생성된 서비스 이름 (act_svc_dbrac3)을 제공합니다.
tnsnames.ora 파일이 비표준 위치에 있는 경우 Oracle 데이터베이스용 애플리케이션 세부정보 및 설정에 설명된 애플리케이션 세부정보 및 설정의 Oracle
TNS_Admin
경로 설정 아래에 tnsnames.ora 파일의 절대 경로를 제공합니다.
데이터베이스 블록 변경 추적 사용 설정 (선택사항)
데이터베이스 변경 블록 추적은 Oracle 데이터베이스 블록 변경 추적 (BCT)에 설명되어 있습니다.
데이터베이스 블록 변경 추적이 사용 설정되어 있는지 확인하려면 다음 단계를 따르세요.
sqlplus / as sysdba
SQL 프롬프트에서 다음을 입력합니다.
select * from v$block_change_tracking;
데이터베이스 블록 변경 추적이 사용 설정되어 있지 않으면 sqlplus에서 데이터베이스 블록 변경 추적을 사용 설정합니다.
ASM 디스크 그룹 사용
sqlplus / as sysdba
SQL 프롬프트에서 다음을 입력합니다.
alter database enable block change tracking using file '+<ASM Disk Group Name>/<database name>/<dbname>.bct';
파일 시스템 사용
sqlplus / as sysdba
SQL 프롬프트에서 다음을 입력합니다.
alter database enable block change tracking using file '$ORACLE_HOME/dbs/<dbname>.bct';
Oracle Data Guard 노드에서 보호
기본 데이터베이스 노드 또는 Oracle Data Guard 대기 노드에서 Oracle 데이터베이스를 보호할 수 있습니다. Oracle Data Guard 노드에서 보호를 설정한 경우 관리 콘솔의 애플리케이션 세부정보 및 설정에서 기본 노드 사용자 인증 정보를 설정해야 합니다.
데이터베이스 인증 (Linux만 해당)
사용자 이름/비밀번호: 데이터베이스 사용자 계정 사용자 인증 정보입니다. 이 사용자 계정이 sysdba 액세스 권한이 있는 Data Guard 노드에서 사용 가능하려면 이 사용자가 기본 노드에서 sysdba 권한으로 생성되어야 합니다 (sysdba 액세스 권한이 있는 백업 사용자 계정 만들기 참고). 그런 다음 기본 노드의 비밀번호 파일 (
$ORACLE_HOME/dbs/
아래)을 Data Guard 노드로 복사해야 합니다.
OS 인증
- 사용자 이름/비밀번호: OS 인증에서는 sysdba 권한이 필요하지 않습니다. 이 데이터베이스 사용자 계정에는
connect, alter system
권한이 필요합니다. 이 사용자 계정을 Data Guard 노드에서 사용할 수 있으려면 기본 노드에서 이 사용자를 만들어야 합니다.
사용자에게 sysdba 역할이 없으면 grant connect, alter system, select on dba_tablespaces
가 필요합니다.
이러한 권한을 부여하려면 SQL 프롬프트에서 다음을 실행하세요.
grant connect, alter system, select on dba_tablespaces to act_rman_user;
- Oracle Data Guard 기본 노드 서비스 이름: 이는 대기 노드에서 기본 노드로 연결하기 위해 Data Guard 노드에 구성된 tnsnames.ora 파일의 서비스 이름입니다. Oracle Data Guard 데이터 가드 대기 노드에서 백업이 구성된 경우 OS 및 DB 인증 모두에 Oracle Data Guard 기본 노드 서비스 이름이 필요합니다.
모든 세부정보 및 설정에 관한 자세한 내용은 Oracle 데이터베이스용 애플리케이션 세부정보 및 설정을 참고하세요.
데이터베이스 노드 | OS 인증 | 데이터베이스 인증 |
---|---|---|
기본 | 데이터베이스 사용자 인증 정보가 필요하지 않습니다. | 데이터베이스 사용자 인증 정보가 필요합니다. 역할을 선택하지 않으면 sysdba가 사용됩니다. |
대기 | 로그를 전환하기 위해 기본에 연결하는 OS 인증의 경우에도 데이터베이스 사용자 인증 정보가 필요합니다. 데이터베이스 사용자 인증 정보에 sysdba/sysbackup 역할이 없어도 됩니다. sysdba/sysbackup 계정을 사용하는 경우 애플리케이션 세부정보 및 설정의 데이터베이스의 사용자 역할에서 사용자 역할을 설정합니다. | 데이터베이스 사용자 인증 정보가 필요합니다. 데이터베이스 사용자 인증 정보는 sysdba 또는 sysbackup 역할에 대한 것이어야 하며 애플리케이션 세부정보 및 설정에서 데이터베이스의 사용자 역할이 sysdba 또는 sysbackup으로 설정되어 있어야 합니다. 데이터베이스 인증을 설정하려면 Oracle 서버의 데이터베이스 인증 사용 설정을 참고하세요. |
다른 노드로의 RMAN 백업의 RAC 투명 장애 조치 구성
백업 장애 조치 구성에 포함할 모든 노드에 백업 및 DR 에이전트가 설치되어 실행 중이어야 합니다. 보호는 한 노드에서만 설정됩니다.
세부정보 및 설정, 클러스터 노드에서 Oracle RAC 환경의 장애 조치 노드 선택사항을 지정합니다.
<Failover choice>:<Node IP>:<Servicename>:<Role>
각 항목의 의미는 다음과 같습니다.
장애 조치 선택: 장애 조치를 수행할 노드의 순서입니다.
노드 IP: 백업을 실행할 노드의 IP 주소
Servicename: 백업 및 DR RMAN 백업을 위해 tnsnames.ora에 생성되고 지정된 서비스의 이름입니다. 이는 백업 및 DR 백업을 위해 생성된 새 전용 서비스이거나 해당 노드에 있는 데이터베이스의 SID 이름 (인스턴스 이름)일 수 있습니다.
역할: F(장애 조치 노드임을 나타냄)
tnsnames.ora 파일 ($ORACLE_HOME/network/admin/tnsnames.ora 또는 $GRID_HOME/network/admin/tnsnames.ora)의 장애 조치 노드에 새 서비스 이름을 만듭니다.
Oracle 단일 노드 환경의 예
RAC 단일 노드는 다음 두 노드로 구성됩니다.
172.15.157.200
172.15.157.201
언제든지 하나의 노드에서만 실행되는 데이터베이스 OneN이 있습니다. OneN은 172.15.157.200에서 보호되며 클러스터 노드 설정은 1:172.15.157.201:OneN:F로 지정됩니다.
OneN이 172.15.157.201로 장애 조치되면 백업 및 DR 백업이 이를 따라 200 대신 172.15.157.201에서 다음 백업 작업을 시작합니다. 백업 작업 중에 장애 조치가 발생하면 작업이 실패하고 다음 작업에서 장애 조치 노드를 사용하여 새 백업을 시작합니다.
단일 노드가 아닌 Oracle 환경의 예:
2노드 RAC (
dbrac1
,dbrac2
)dbrac1
의 데이터베이스 이름 'dbrac'을 사용하여 보호가 설정되고 장애 조치는dbrac2
로 설정됩니다.node2의 서비스 이름:
act_svc_dbrac2
Node2 IP 또는 스캔 IP:
172.1.1.0
act_svc_node2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.1.1.0)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(INSTANCE_NAME = dbrac2)
(SERVICE_NAME = dbrac)
) )
애플리케이션 세부정보 및 설정에서 클러스터 노드 항목은 다음과 같습니다.
Failoverchoice:NodeIP:Servicename:Role
1:172.1.1.1:act_svc_node2:F
클러스터 노드 항목 F 및 M의 동작
F: 장애 조치 노드. 보호 노드가 백업을 실행하지 않는 경우에만 참여합니다.
M: 유지보수 노드. 백업을 실행할 수 있는 것으로 확인되면 보호 노드를 대체합니다.
Oracle 보관 로그 압축
백업 및 DR 보관처리 로그 백업은 Oracle 로그 백업 세트 압축을 지원합니다. 선택하는 압축 유형은 이러한 RMAN 구성 설정에 따라 달라집니다. 사용 사례에 따라 옵션을 선택합니다.
압축률이 낮을수록 백업 처리량에 미치는 영향이 가장 적습니다. CPU 리소스가 제한 요소인 환경에 가장 적합합니다.
대부분의 환경에는 중간 압축이 권장됩니다. 이러한 형식은 압축률과 속도의 적절한 조합을 제공합니다.
높은 압축률은 리소스 집약적이며 제한 요소가 네트워크 속도인 느린 네트워크를 통한 백업에 가장 적합합니다.
기본 설정은 '기본'입니다. 기본에는 Oracle Advanced Compression이 필요하지 않습니다.
환경에 설정된 압축 유형을 확인하려면 RMAN 프롬프트에서 show all
명령어를 실행합니다.
rman target /
show all
여러 노드 간 부하 분산을 위해 Oracle 데이터베이스 서비스 구성
이 절차는 Oracle ASM 데이터베이스에만 적용됩니다. 이 예시에서는 4노드 RAC 환경을 가정합니다. 노드 3과 4는 백업용으로 부하 분산됩니다.
다음을 참조하세요.
Oracle RAC 노드 간 부하 분산에는 Oracle 데이터베이스 인증이 필요합니다.
여러 노드에서 병렬 RMAN 이미지 복사 구성
RAC 환경에서는 여러 노드에서 병렬로 실행되도록 백업을 구성할 수 있습니다.
모든 노드에 백업 및 DR 에이전트를 설치합니다.
애플리케이션 세부정보 및 설정을 사용하여 노드 3과 노드 4에 ASM 디스크 그룹 매핑을 설정합니다.
srvctl을 사용하여 노드 3과 노드 4에서 실행할 데이터베이스 서비스를 만듭니다.
이 서비스를 사용하여 애플리케이션 세부정보 및 설정에서 지정합니다. 고급 설정에서 채널 수를 선택합니다. RMAN은 채널을 노드 3과 노드 4 사이에 분산합니다.
Oracle servicename 및 RAC 구성원 노드를 설정합니다.
여러 노드 간 부하 분산을 위해 Oracle 데이터베이스 서비스 구성
Application Details & Settings에서 RAC Member Nodes: node3의 IP 및 node 4의 IP를 구성합니다.
백업 및 DR에서 백업에 사용할 유지관리 노드의 데이터베이스 서비스를 만듭니다.
srvctl add service -d <dbname> -s act_service_<dbname> -r <dbinstance3>,<dbinstance4> srvctl start service -d <dbname> -s act_service_<dbname>
백업 노드 (이 예에서는
dbinstance3
및dbinstance4
노드)에서 생성된 Oracle 서비스 이름의 tns 항목을 tnsnames.ora 파일 ($ORACLE_HOME/network/admin/tnsnames.ora 또는 $GRID_HOME/network/admin/tnsnames.ora) 아래에 추가합니다.act_service_<dbname> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <DATABASE NAME>) ) )
생성된 서비스 이름을 테스트합니다.
tnsping actservice
servicename 및 사용자 인증 정보를 테스트합니다.
sqlplus act_rman_user/act_rman_user@act_service_<dbname> as sysdba
애플리케이션 세부정보 및 설정 Oracle 서비스 이름 아래에 이 서비스 이름을 지정합니다.
백업에 사용할 보호된 노드(예: 노드 3)에 전용 보관 로그 백업 서비스를 만듭니다.
srvctl add service -d <dbname> -s act_arc_service_<dbname> -r <dbinstance3> srvctl start service -d <dbname> -s act_arc_service_<dbname>
tnsnames.ora
파일 ($ORACLE_HOME/network/admin/tnsnames.ora
또는$GRID_HOME/network/admin/tnsnames.ora
) 아래에 생성된 보관 로그 백업 서비스 이름의 tns 항목을 추가합니다.act_arc_service_<dbname> = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <SCAN IP>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (INSTANCE_NAME = <node 3 instance>) (SERVICE_NAME = act_arc_service_<dbname>) ) )
서비스 이름을 테스트합니다.
tnsping act_archservice
애플리케이션 세부정보 및 설정 보관 로그 백업 서비스 이름 아래에 이 서비스 이름을 지정합니다.
Oracle 12c 패치
Oracle 12c 설치에 이 패치가 포함되어 있지 않으면 백업 및 DR 애플리케이션 인식 마운트가 실패할 수 있습니다. 이 패치는 Oracle 지원 포털에서 다운로드할 수 있습니다.
Oracle Database 12c 버그# 19404068 (생성된 컨트롤 파일에 대한 데이터베이스 복구 시 ORA-1610)
- (패치 19404068) Oracle 12.1.0.2.0용 Linux x86-64
패치가 설치되었는지 확인하려면 다음을 실행합니다.
$cd $ORACLE_HOME/OPatch
$./opatch lsinventory -details
$./opatch lsinventory -details | grep 19404068
다음 단계
Oracle 호스트를 추가하기 전에 다음 단계를 진행하세요.
Oracle DBA 가이드
- Oracle 데이터베이스용 백업 및 DR
- Oracle 데이터베이스 보호를 위한 기본 요건
- Oracle 패치 및 알려진 문제
- 보호를 위해 Oracle 데이터베이스 준비
- Oracle 데이터베이스 검색 및 보호
- Oracle 데이터베이스 세부정보 및 설정
- 백업 및 DR과 함께 dNFS 사용
- 탐색된 Oracle 데이터베이스 보호
- Oracle 데이터베이스를 표준 마운트로 마운트
- Oracle 데이터베이스의 즉각적인 가상 사본 만들기
- Oracle 데이터베이스 복원 및 복구
- 마운트 및 마이그레이션을 사용하여 Oracle 데이터베이스 즉시 복구
- 백업 및 DR 워크플로를 사용하여 환경 프로비저닝