[굿어스데이터] DB Tech Note [83회] Oracle Failsafe
- 데이터 Tech
- 2019. 4. 25. 10:01
Oracle Fail Safe(OFS)는 Microsoft Windows Failover Cluster(이전의 Microsoft Cluster Server MSCS)와 함께 작동하여 사용자에게 고가용성(High Availability) 서비스를 더 쉽고 유연하게 제공해주는 Oracle Solution으로 두 개 이상의 Microsoft Windows System을 구성하여 Active 상태의 Node에 계획되지 않은 중단 및 장애가 발생하면 신속한 Failover 및 Restart 기보안 능을 지원합니다.
1.2. Certification Information. 5
1.3. Restriction Information. 6
1.4. Preinstallation Checklisk. 6
1.4.1. Cluster Setup Prerequisites. 6
1.4.2. Disk Space Requirements. 7
1.4.3. Install and Configuration. 7
1.4.4. Recommended Order for Software Installation 7
1.5.1. Oracle Engine install(Node1, Node2) 9
1.5.2. 최신 Window Bundle Patch 적용(Node1, Node2) 11
1.5.3. Oracle Database Install(Active상태인 Node에서 수행) 12
1.5.4. Oracle Database Postinstallation Procedures 15
1.5.5. Oracle Fail Safe Server Install(Node1, Node2) 17
1.5.6. Resource Group 생성(Main Server) 19
1.5.7. Oracle Fail Safe Client(Manager) Install(Main) 21
1.6. Oracle Fail Safe Failover Cluster와 연동.. 22
2. Troubleshooting Installaion Problems. 23
2.2. Error 0x800706BA "The RPC Server Is Unavailable" During Verify Cluster 23
2.3. FS-10815: Duplicate owner nodes for clusterwide operation. 23
2.4. FS-10751, FS-10755: in Fail Safe Manager Running Verify Cluster or Moving Group. 23
3. Oracle Fail Safe Operation Guide. 24
1. Oracle Fail Safe
Oracle Fail Safe(OFS)는 Microsoft Windows Failover Cluster(이전의 Microsoft Cluster Server MSCS)와
함께 작동하여 사용자에게 고가용성(High Availability) 서비스를 더 쉽고 유연하게 제공해주는 Oracle Solution입니다.
두 개 이상의 Microsoft Windows System을 구성하여 Active 상태의 Node에 계획되지 않은 중단 및 장애가 발생하면 신속한 Failover 및 Restart 기능을 지원합니다.
Oracle Fail Safe는 다음과 같은 장점을 제공합니다.
1.
l 고가용성 리소스 및 응용 프로그램(Fast Automatic Failover)
l 사용 및 지원 용이(GUI, Wizards, Configuration Replication)
l OCI 및 ODBC 응용프로그램과의 손쉬운 통합(TAF)
Oracle Fail Safe는 Client / Server로 나뉩니다.
l Oracle Fail Safe Client : Cluster로 구성된 Node의 Failover, Validate등 Manager역할을 수행합니다.
l Oracle Fail Safe Server : Client의 기능을 포함하고 Microsoft Windows Failover Cluster가 구성된 Node에 설치해야 하며 가상의 Group을 이용해 고가용성을 제공합니다.
1.1. Cluster Concepts
Oracle Fail Safe는 Windows Failover Cluster의 Resource 개념을 사용하여 Database를 관리합니다.
Resource는 논리적으로 가상 그룹으로 묶여 있습니다. 가상 그룹은 Resource의 Container 역할로 아래의 Resource들을 관리합니다.
OFS사용하는 Resource :
l Disks
l IP Addresses
l Network Names(NetBios names)
l An Oracle Database
l An Oracle TNS Listener
l An Oracle Intelligent Agent
클러스터 구성 및 설정은 여러 가지 방법이 있습니다. Oracle Fail Safe는 다음 구성을 지원합니다.
l Active / Passive 구성
Active 상태의 서버만 Oracle Database 작동하면서 장애가 발생할 경우 Idle 상태의 Cluster Node를 찾아서 Shared Disk & OracleService & Listener(Virtual IP) Resource Failover or Restart를 진행합니다.
l Active / Active 구성
아래의 그림은 두 개의 클러스터 노드에서 각 각의 Oracle Database 실행하는 Active/Active 구성입니다. Node1에서만 Generic Service가 실행 중입니다. Node1은 Marketing Database, Node2는 Sales Database를 실행하며 각 각의 클러스터 디스크를 사용합니다. Node1, Node2 모두 OS의 Resource를 최대로 사용하는 환경에서 장애가 발생하면 Idle 상태의 Node3가 Failover를 정상적으로 처리하지 못할 수 있습니다. Node1, Node2 두 노드가 정상 작동함에서 Resource의 50%에서
최대 75%를 활용하도록 계획하는 것을 권장합니다.
l Failover event
n 계획된 Failover : load balancing or upgrade와 같은 기능을 수행해야 할 때 사용하는 수동 작업입니다.
1. OFS는 Checkpoint를 수행하고 완료되면 Database 정상 종료합니다.
2. Fail Safe Group Resource를 Idle Cluster의 Node로 이동하도록 Window Failover Cluster에게 요청합니다.
3. Window Failover Cluster는 두 번째 노드에서 인스턴스를 시작합니다.
4. Client Application은 동일한 Virtual IP를 사용하여 두 번째 노드의 OFS Database에 연결할 수 있습니다.
n 계획되지 않은 Failover : Cluster의 Node or Resource 장애를 감지할 때 자동으로 발생합니다
1. 주기적인 Resource DLL을 감지하여 장애를 감지합니다.
2. Fail Safe Group에 대한 사전 정의된 Failover police를 준수하여 문제가 일시적으로 발생하는 경우를 대비하여 Database를 Restart 하거나 Failover를 수행합니다.
3. Failover가 완료되면 Idle Node에서 인스턴스를 시작합니다.
4. Instance Recovery 수행.
.
1.2. Certification Information
l Oracle Fail Safe Server 4.2.1
Oracle Fail Safe Server는 반드시 Microsoft Windows Failover Cluster가 구성된 곳에 설치해야 합니다. Windows 7 및 Windows 8과 같은 비 서버시스템에서는 지원되지 않습니다.
Software |
Release or Version |
Oracle Database(Standard & Enterprise) |
Oracle Database 11g Release 2 (11.2) Oracle Database 12c Release 1 (12.1) Oracle Database 12c Release 2 (12.2)
|
Oracle Management Agent |
Release 11.2 (Management Agent는 Microsoft Windows만 가능)
|
Microsoft Windows Platforms |
Microsoft Windows Server 2012 Microsoft Windows Server 2012 R2 Microsoft Windows Server 2016
|
l Oracle Fail Safe Client 4.2.1
1. Microsoft Windows Server 2012
2. Microsoft Windows Server 2012 R2
3. Microsoft Windows Server 2016
4. Windows 7
5. Windows 8
6. Windows 8.1
7. Windows 10
1.3. Restriction Information
l Oracle Application Service는 지원하지 않습니다.
l Oracle Automatic Storage Management(ASM)은 지원하지 않습니다.
l Oracle Enterprise Manager 12.1 Agents는 Oracle Fail Safe 4.2.1 릴리스에서 지원되지 않습니다.
1.4. Preinstallation Checklisk
1.4.1. Cluster Setup Prerequisites
l Oracle Fail safe가 Cluster Resource의 제어 및 관리하는데 사용하는 Windows User계정을 생성하거나 선택해야 합니다. Oracle Fail Safe Server는 설치 중에 Cluster Resource를 제어할 수 있는 유저를 지정하여 로그인합니다. 사용자 계정은 Domain User여야 하지만, 특별한 도메인 권한은 필요하지 않습니다. 계정은 각 Cluster Node의 Local Administrator Group의 구성원이어야 합니다. Cluster의 모든 Node는 동일한 사용자 계정을 사용해야 합니다.
l Microsoft Windows Failover Cluster Manager의 동작 메뉴에 있는 Cluster Validate 를 선택하고 Validation Report 를 확인하여 유효성을 검토해야 합니다. Oracle Fail Safe Server를 설치하기 전에 반드시 Failover Cluster Validate Check 중에 발생한 모든 문제를 해결하는 것을 권고합니다.
l Failover Cluster Manager를 사용하여 Cluster Group의 위치를 보거나 변경할 수 있습니다. Oracle Fail Safe Server가 설치되지 않은 Node로 Cluster Group을 이동하면 Oracle Fail Safe Server가 제대로 작동하지 않습니다.
l Oracle Fail Safe Server를 설치하는 동안 Microsoft Windows Event View가 실행되고 있지 않은지 확인해야 합니다. 해당 이슈는 In-place Upgrade 작업 중에 발생할 수 있습니다.
1.4.2. Disk Space Requirements
Installation Type |
Disk Space (MB) |
Typical Install (Oracle Fail Safe Server / Manager) |
243
|
Client Only Install (Oracle Fail Safe Manager) |
223
|
1.4.3. Install and Configuration
Windows 7을 실행하는 Oracle Fail Safe Client 사용자는 다음 전제조건이 필요합니다.
l Windows Management Framwork 4.0
l .NET 4.0 이상
1.4.4. Recommended Order for Software Installation
l Two Node Cluster에 Software를 설치할 때 권장되는 순서
1. 각 Cluster Node에 Microsoft Windows Failver Cluster 기능을 추가하여 구성합니다.
2. Oracle Fail Safe와 함께 사용할 Oracle Software(Engine, Database 및 기타 Application Program)을 설치해야 합니다. 모든 Application 및 Datafile, Control File, Redo log File을 Failover가 가능하도록 Shared Cluster Disk에 배치해야 합니다. Oracle Engine을 설치하는 경우 일반적인 Single 환경처럼 설치하면 되고 Engine은 반드시 Local Disk에 설치해야 합니다.
3. Oracle Fail Safe Server 구성 요소를 설치해야 합니다.
4. 하나 이상의 Client System에서 선택적으로 Oracle Fail Safe Manager를 설치해야 합니다(예 : 추가 관리 콘솔을 설정하는 경우)
l Local Disk에 설치된 Oracle Software(Engine, Fail Safe, etc…) 환경
1.5. Install
l 본 문서의 설치 환경
Name |
Description |
Window Version |
Window Server 2016 (64 Bit) |
Memory |
8 GB |
CPU |
2 |
Oracle Engine |
Enterprise |
Oracle Database |
12.2.0.1 |
Oracle Fail Safe |
4.2.1 |
Oracle Window DB Bundle Patch |
Patch : 28247681 12.2.0.1.180831 |
1.5.1. Oracle Engine install(Node1, Node2)
1.5.2. 최신 Window Bundle Patch 적용(Node1, Node2)
CMD> opatch apply Verifying environment and performing prerequisite checks... OPatch continues with these patches: 28247681 계속하겠습니까? [y|n] y User Responded with: Y All checks passed.
로컬 시스템의 이 ORACLE_HOME에서 실행 중인 Oracle 인스턴스를 종료하십시오. (Oracle 홈 = 'C:\app\ADMINI~1\virtual\product\122~1.0\dbhome_1')
로컬 시스템이 패치할 준비가 되었습니까? [y|n] y User Responded with: Y Backing up files... oracle.precomp.rsf, 12.2.0.1.0 구성 요소를 패치하는 중... (생략) oracle.ldap.rsf, 12.2.0.1.0 구성 요소를 패치하는 중... Patch 28247681 successfully applied.
OPatch succeeded.
CMD> opatch lsinventory Oracle Database 12c 12.2.0.1.0 이 Oracle 홈에 1개의 제품이 설치되어 있습니다. Interim 패치(1): Patch 28247681 : applied on Sun Sep 30 19:49:14 KST 2018 Unique Patch ID: 22459346 Patch description: "WINDOWS DB BUNDLE PATCH 12.2.0.1.180831(64bit):28247681" Created on 20 Sep 2018, 17:04:07 hrs PST8PDT Bugs fixed: 26418088, 25540738, 25337332, 27314206, 23065002, 25313154, 28076730 (생략) 25265499, 25780343, 26261135, 26133777, 27442041, 27405645, 25357142 27035653 -------------------------------------------------------------------------------- |
1.5.3. Oracle Database Install(Active상태인 Node에서 수행)
1.5.4. Oracle Database Postinstallation Procedures
l Datafile and log files은 Shared Cluster Disks에 있어야 합니다.
l 문제점 파악 및 관리를 쉽게 하기 위해 Alert and Tracefile, Audit File, Parameter File을 Shared Cluster Disks에 구성하는 것을 권고합니다.
SQL> alter system set audit_file_dest='S:\diag\adump' scope=spfile;
시스템이 변경되었습니다.
SQL> alter system set diagnostic_dest='S:\diag';
시스템이 변경되었습니다.
SQL> show parameter audit_file_dest
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
audit_file_dest string
S:\DIAG\ADUMP
SQL> show parameter diag
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
diagnostic_dest string
S:\DIAG
%ORACLE_HOME%\database\SPFILESID.ORA 파일을 Shared Cluster Disk로 Move
%ORACLE_HOME%\database\INITSID.ORA 파일을 생성 및 내용 추가(Node2에 복사)
SPFILE=S:\ORADATA\OFS\SPFILESID.ORA
Oracle Database Service 속성을 OS Local User로 변경
Win+R->Services.msc->OracleserviceSID 마우스 오른쪽->속성
1.5.5. Oracle Fail Safe Server Install(Node1, Node2)
1.5.6. Resource Group 생성(Main Server)
1.5.7. Oracle Fail Safe Client(Manager) Install(Main)
l Down Load : https://www.oracle.com/technetwork/database/windows/downloads/failsafe-downloads-167740.html
1.6. Oracle Fail Safe Failover Cluster와 연동
2. Troubleshooting Installaion Problems
2.1. Adding standalone database to cluster resource, error ORA-00205, O/S-Error: (OS 5) Access is denied.
The real error is "O/S-Error: (OS 5) Access is denied." After further reviewed on the permission/security on the controlfile. Found out that the local user "homeowner" do not listed under the security tab, when right click on the controlfile, select properties. After adding the user onto the security list. and redo the add standalone database operation, success. |
2.2. Error 0x800706BA "The RPC Server Is Unavailable" During Verify Cluster
Firewall is enabled on all or some nodes of the cluster. Please check and disable firewall on all nodes. |
2.3. FS-10815: Duplicate owner nodes for clusterwide operation
Check and delete the Oracle database service for database in the other node using ORADIM. ORADIM -delete -sid Then run the "Verify Standalone DB" and if it is successful , go ahead and add the DB to Failsafe |
2.4. FS-10751, FS-10755: in Fail Safe Manager Running Verify Cluster or Moving Group
First rerun the Oracle Fail Safe Security Setup: Go to Start -> Programs -> Oracle Fail Safe -> Oracle Fail Safe Security Setup Specify a Domain user that also has Local Adminsitration privileges in the form of: DOMAINNAME\Username Do this on EACH node, and then restart the Oracle Fail Safe service (On whichevernode owns the Cluster Group) Note: Depending on the version of Fail Safe that you are running, the Oracle Fail Safe service may actually be called "Oracle Services for MSCS" service. Next, check the Application Log and System Log on each node. You may find errors indicating more specifically what the problem is. You may also see additional OS error messages in the text of the FS-1075x error. For example, an error such as: 0x00040154: Class is not registered. Information on errors such as these can be found on the Microsoft website: |
3. Oracle Fail Safe Operation Guide
3.
3.1. Validate Check
l Powershell : Microsft는 Failover Cluster 관리를 위해 Powershell 명령 집합(cmdlet)을 도입했습니다. Powsershell cmdlet은 Failover Cluster 기능이 추가되면 자동으로 서버에 설치됩니다. Oracle Fail Safe Cmdlet은 Oracle Fail Safe Manager 설치할 때 추가됩니다.
C:\Users\Administrator>powershell
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
##Failover Cluster cmdlet을 사용하기 위해 Module Import
PS C:\Users\Administrator> Import-Module FailoverClusters
##Fail Safe cmdlet을 사용하기 위해 Module Import
PS C:\Users\Administrator> Import-Module FailSafe
PS C:\Users\Administrator> Test-OracleClusterGroup "OFS" -Verbose
자세한 정보 표시: FS-10371: OFS2 : Performing initialization processing
자세한 정보 표시: FS-10371: OFS1 : Performing initialization processing
자세한 정보 표시: FS-10373: OFS2 : Determining owner node of resource
자세한 정보 표시: FS-10374: OFS2 : Gathering cluster information needed to perform the specified operation
자세한 정보 표시: FS-10374: OFS1 : Gathering cluster information needed to perform the specified operation
자세한 정보 표시: FS-10461: OFS2 : Starting verification of group OFS
자세한 정보 표시: FS-10463: OFS2 : Verifying group attributes for group OFS
자세한 정보 표시: FS-10464: OFS2 : Verifying attributes for resources in group OFS
자세한 정보 표시: FS-10465: OFS2 : Verifying dependencies for resources in group OFS
자세한 정보 표시: FS-10466: OFS2 : Verification of group OFS completed successfully
자세한 정보 표시: FS-10461: OFS1 : Starting verification of group OFS
자세한 정보 표시: FS-10463: OFS1 : Verifying group attributes for group OFS
자세한 정보 표시: FS-10464: OFS1 : Verifying attributes for resources in group OFS
자세한 정보 표시: FS-10465: OFS1 : Verifying dependencies for resources in group OFS
자세한 정보 표시: FS-10466: OFS1 : Verification of group OFS completed successfully
3.2. Add Resource
3.3. Failover
Failover Test(TAF)
Client TNS
OFS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.40.40.159)(PORT = 1521))
(LOAD_BALANCE = YES)
(FAILOVER=ON)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OFS)
(FAILOVER_MODE =
(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
)
)
)
C:\Users\Goodus>sqlplus goodus/goodus@ofs
SQL*Plus: Release 11.2.0.3.0 Production on 월 10월 8 11:42:14 2018
Copyright (c) 1982, 2011, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> select instance_name,host_name,status from v$instance;
INSTANCE_NAME HOST_NAME STATUS
-------------------------------- ---------- ----------
ofs OFS1 OPEN
SQL> select username,action,failover_type,failed_over from v$session where username='GOODUS';
USERNAME ACTION FAILOVER_TYPE FAILED
---------- -------------------- -------------------------- ------
GOODUS SELECT NO
SQL> select count(*) from dba_objects a,dba_objects b;
(waiting..)
##OFS1 Active Node 장애 유발
C:\Users\Administrator>tasklist /m ora*
이미지 이름 PID 모듈
========================= ======== ============================================
(생략…)
oracle.exe 5252 oraclient12.dll, oracommon12.dll,
orageneric12.dll, oravsn12.dll,
oraodm12.dll, oraofs.dll, oraxml12.dll,
orawsec12.dll, oraskjcx12.dll,
oraslax12.dll, oraplp12.dll, orapls12.dll,
oracore12.dll, oraunls12.dll, oranls12.dll,
oraons.dll, oran12.dll, oraldapclnt12.dll,
orangsmshd12.dll, oranl12.dll,
orannzsbb12.dll, oranro12.dll,
orasql12.dll, orauts.dll, oransgr12.dll,
orasnls12.dll, oraasmclnt12.dll,
oracell12.dll, orahasgen12.dll,
oraclsra12.dll, orazt12.dll, oraztkg12.dll,
oraocr12.dll, orawwg.dll, orancrypt12.dll,
oranldap12.dll, orancds12.dll,
oranhost12.dll, orantns12.dll,
orantcp12.dll, oraocrutl12.dll,
oraclsce12.dll, oraocrb12.dll,
ORAIMR12.Dll, oranbeq12.dll,
orashpksse4212.dll, oranipc12.dll
##Oracle Process 강제종료
C:\Users\Administrator>taskkill /f /pid 5252
성공: 프로세스(PID 5252)가 종료되었습니다.
SQL> select count(*) from dba_objects a,dba_objects b;
COUNT(*)
----------
3732110281
SQL> select instance_name,host_name,status from v$instance;
INSTANCE_NAME HOST_NAME STATUS
-------------------------------- ---------- ----------
ofs OFS2 OPEN
SQL> select username,action,failover_type,failed_over from v$session where username='GOODUS';
USERNAME ACTION FAILOVER_TYPE FAILED STATUS
---------- -------------------- -------------------------- ------ ----------
GOODUS SELECT YES ACTIVE
GOODUS SELECT NO INACTIVE
3.4. Move(Failback)
4. 참고문서
l Oracle Fail Safe Version 4 and later Step-By-Step Installation and Configuration (Doc ID 1916391.1)
l How to create a cluster group, which can be used for databases managed by Fail Safe ? (Doc ID 1587417.1)
l Oracle Fail Safe and MS Cluster Concepts (Doc ID 221311.1)
l https://docs.oracle.com/cd/E67869_01/OFSRN/title.htm
l https://docs.oracle.com/cd/E67869_01/OFSCN/toc.htm
"People make a better world with Data"
[Written by GoodusData / 굿어스데이터]
'데이터 Tech' 카테고리의 다른 글
기술노트[84회] Oracle 18c New Features focused SQL (0) | 2019.05.10 |
---|---|
[굿어스데이터] Oracle 19c 출시 (0) | 2019.05.08 |
[DB기술노트82회] PostgreSQL 9.6 (Backup & Recovery) (0) | 2019.04.25 |
[DB기술노트81회] Oracle VDBENCH (1) | 2019.04.25 |
[DB기술노트80회] Oracle Golden Gate 12c New Feature (0) | 2019.04.25 |
이 글을 공유하기