RAC ONE NODE (Oracle Database HA Solution)
Transcript of RAC ONE NODE (Oracle Database HA Solution)
Advanced Oracle Document
RAC ONE NODE
(Oracle Database HA Solution)
Author: Hyun-Ho, Jung
Site: http://www.commit.co.kr
Email: [email protected]
Creation Date: 2011-09-18
Advanced Oracle Document โฆ
Document 1 of 34
Document
Server Information
Items Description
Test Date 2011 / 09 / 18~24
Machine OracleVM Server 2.2.2
CPU vcpus = 4
Main Memory 3000MB
O/S version Solaris 10 (2Node)
Host Name jupiter1 , 2
GLOBAL DATABASE NAME JUPITER
ORACLE_SID JUPITER_1 , JUPITER_2
SERVICE NAME JUPITER.RON.COM
Oracle version 11.2.0.2
Advanced Oracle Document โฆ
RAC ONE NODE 2 of 34
RAC ONE NODE
RAC ONE NODE ๋ Oracle 11gR2 ์ NF ์ค ํ๋์ด๋ฉฐ,
Oracle RAC One Node ๋ ํด๋ฌ์คํฐ ๋ ธ๋ ์ค ํ๋์์ ์๋๋๋ ๋จ์ผ ์ธ์คํด์ค์ Oracle RAC ์ด๋ฉฐ
์ค๋ฒํค๋๋ฅผ ์ต์ํํ๋ฉด์๋ ๋ค์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋จ์ผ ํด๋ฌ์คํฐ์ ํตํฉํ ์ ์๊ธฐ ๋๋ฌธ์
Failover, ๋กค๋ง ๋ฐฉ์์ ์จ๋ผ์ธ ํจ์น ์ ์ฉ์ ๋น๋กฏํด Oracle Clusterware ๋ฅผ ์ํ ๋กค๋ง ๋ฐฉ์์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํตํด
๋ฐ์ด๋ HA ์ด์ ์ ์ ๊ณตํ๊ฒ ๋๋ค.
RAC ONE NODE ๋ฅผ ๊ฐ์ฅ ์ฝ๊ฒ ์ํด ํ ์ ์๋ ๊ฒ์ด ์์ ๊ทธ๋ฆผ์ด๋ค.
๊ฐ์ฅ ํฐ ๊ธฐ๋ฅ์ธ failover ์ ๋ํ ๊ทธ๋ฆผ์ด๋ฉฐ, ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ์ 1 ๊ฐ์ด์์ ์ธ์คํด์ค๋ ๊ตฌ๋๋์ด์์ ๊ฒ์ด๊ณ
ํด๋น ๋จธ์ ์ด๋ ์ธ์คํด์ค์ ์ฅ์ ๊ฐ ๋ฐ์์ ํด๋ฌ์คํฐ ๊ทธ๋ฃน๋ด ๋ค๋ฅธ ์๋ฒ๋ก Failover ๊ฐ ๋๋ ๊ฒ์ด๋ค.
OS Vender Cluster ๋ 3rd Party Cluster ๋ฅผ ์ด์ฉํ HA ๋ฐฉ์๊ณผ ์ ์ฌํ๋ค.
ํ ์๋ฃจ์ ์ ํด๋ฌ์คํฐ๋ฅผ ์ด์ฉํ HA๊ธฐ๋ฅ์ Oracle Grid infrastructure(์ดํ grid) ๊ฐ ์ ๊ณตํ๊ฒ ๋๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 3 of 34
์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ค์ดํ์์ ๋ฐ์ํ์ง ์๋๋ก Oracle RAC One Node ์ธ์คํด์ค๋ฅผ ํด๋ฌ์คํฐ์ ๋ ๋ค๋ฅธ
๋ ธ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋๋ก Omotion์ ํธ๋ฆฌํฐ(11.2.0.1 ์์๋ง) ๊ฐ ์ ๊ณต๋๋ฉฐ, ์ผ๋จ ์ธ์คํด์ค๊ฐ
๋ง์ด๊ทธ๋ ์ด์ ๋๋ฉด ๋ ธ๋์ ํจ์น๋ฅผ ์ ์ฉํ๊ฑฐ๋ ์ ๊ทธ๋ ์ด๋๋ฑ์ ํ ์ ์์ผ๋ฉฐ, ์ ์ง๋ณด์ ์์ ์ด ์๋ฃ๋๋ฉด
Oracle RAC One Node ๋ฅผ ๋ค์ ์๋ Node ๋ก Relocate ๊ฐ ๊ฐ๋ฅํ๋ค.
RAC ๊ฐ ๋์คํ๊ฐ ๋์์ง๋ง HA ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ๋งํ ๊ตฌ์ฑ์ด๋ ์๊ฑด๋ฐ์์ RAC ๋์ HA๋ฅผ ์ฌ์ฉํ๋ ์ผ์
์์ฃผ ์๋ ์ผ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ง๋ ์ฌ์ฉ ๋๋ HA ์์ OS Vender Cluster ๋ 3rd Party Cluster ์
Oracle Grid ๋ฅผ ์ด์ฉํ RAC ONE NODE ์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?
์๋ ํ๋ก ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
ํด๋น ํ์๋ ๊ธฐ์ ๋์ด ์์ง ์์ง๋ง High Availability ๋ถ๋ถ์์ 3rd Part Clustering ์์๋ ์ธ์คํด์ค์ ํ๋ก์ธ์ค๋ฅผ
๊ฐ์งํ์ฌ ์ธ์คํด์ค๊ฐ ๋ฌธ์ ์ Failover ๋ฅผ ํ ์ ์๋ค, ํ์ง๋ง ์ค๋ผํด ํ๋ก์ธ์ค ๋ชจ๋ํฐ๋ง์ด๋ผ๋ ๊ฒ์ด ๋จ์ํ
ํ๋ก์ธ์ค ์ ์ ๋ฌด๋ฅผ ๊ฐ์ง๊ณ ๋์๊ฐ๋ Shell script ์ด๊ธฐ ๋๋ฌธ์ Grid๊ฐ ์ง์ ์ ์ผ๋ก ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ๊ณผ๋
๋ง์ ์ฐจ์ด๋ฅผ ๋ณด์ด๊ฒ ๋๋ค.
์์ ํ์์ ์๋ ๋ถ๋ถ์ค ์๋ ๋ถ๋ถ๋ ์ถ๊ฐ ํด์ ๋ณด๋ ๊ฒ์ด ๋ง๋ค๋ผ๊ณ ์๊ฐํ๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 4 of 34
Grid๋ฅผ ์ฌ์ฉํ HA์ ๊ฒฝ์ฐ Instance ์ธ listener ์ ๊ฐ์ ๋ถ๊ฐ ์ ์ธ ๋ฆฌ์์ค๋ค๋ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
์ด ๋ถ๋ถ๋ 3rd ์ ํ๋ณด๋ค ์ข๋ค๊ณ ํ ์ ์๋ค.
Grid๋ฅผ ๋ฐํ์ผ๋ก ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Oracle Restart ์ ์ ์ฑ ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ฒ ๋จ์ผ๋ก instance ๊ฐ
Crash ๋๊ฑฐ๋ Listener ํ๋ก์ธ์ค Fault์ ๋จ์ํ๊ฒ Failover ๋ฅผ ์ํค๋ Vender Cluster ์ ๋ฌ๋ฆฌ Grid๊ฐ
instance ๋ฐ Listener ๋ฅผ ์ฌ๊ตฌ๋ํ๊ฒ ๋๋ค.
์ด๋ฌํ ๋ฉด์ ๋ดค์ ๋ Vendor Cluster ๋ณด๋ค oracle database ๋ฅผ HA ํ๊ฒฝ์ ์ฌ์ฉํจ์ ์์ด์ Grid๊ฐ ๋ ํ์
ํ๋ค๊ณ ํ ์ ์๋ค.
RAC ONE NODE ์ ๊ฐ์ฅ ํฐ ์ ์ฝ ์ฌํญ์ด๋ผ๋ฉด Enterprise Option ์ด๋ผ๋ ๊ฒ์ด๋ค.
๋ผ์ด์ ์ค ์ EE Option ์ผ๋ก ๋ถ๋ฅ ๋์ด ์๋ค.
ํ์ง๋ง ์๋ํ๋ฉด๊ณผ ๊ฐ์ด Grid Installation Options ์์ RAC ONE NODE ๋ฅผ ์ ํ ํ ์งํ ํด๋ standard Edition
์ด ์ ํ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ค์ ๋ก๋ DBCA ๋ฅผ ์ด์ฉํ์ฌ ์ธ์คํด์ค๋ ์์ฑ ๊ฐ๋ฅํ๋ฉฐ , RAC ONE NODE ๊ธฐ๋ฅ ๋ํ ์ฌ์ฉ
๊ฐ๋ฅํ๋ค
Advanced Oracle Document โฆ
RAC ONE NODE 5 of 34
RAC: Frequently Asked Questions [ID 220970.1] ์์ ํ์ธ ํ๋ฉด
Can I use Oracle RAC One Node for Standard Edition Oracle RAC?
No, Oracle RAC One Node is only part of Oracle Database 11g Release 2 Enterprise Edition. It is not licensed or supported for use with any other editions.
๋ผ๊ณ ๋์์๋ค.
http://www.oracle.com/us/corporate/pricing/price-lists/index.html ์ ์๋
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf ๋ฅผ ์ฐธ์กฐ ํ๋ฉด
Processor License ๊ธฐ์ค์ผ๋ก ์๋์ ๊ฐ์ด RAC ์ ๋นํด ๋ฐ ์ด์ ์ ๋ ดํ๋ค.
RAC => 23000$
RAC ONE => 10000$
๋ํ RAC ONE NODE ๋ ํน์ดํ ๋ผ์ด์ ์ค ์ ์ฑ ์ด ์กด์ฌ ํ๋ค.
RAC: Frequently Asked Questions [ID 220970.1] ์ ๋ด์ฉ ์ค ์๋ ์ ๊ฐ์ ๋ด์ฉ์ด ์กด์ฌํ๋ค.
Oracle RAC One Node licensing also includes the 10-day rule, allowing a database to relocate to another node for up to 10 days per year, without incurring additional licensing fees. This is most often used in the case of failover, or for planned maintenance and upgrading. Only one node in the cluster can be used for the 10-day rule
๋ ๊ฐ 10 ์ผ Rule ์ด๋ผ๋ ๊ฒ์ด ์กด์ฌ ํ๋๋ฐ, Omotion ์ด๋ failover, ๊ณํ๋ MA์ ์ํ ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ๋ ธ๋๋ก
์ด ๊ธฐ๋ ๊ฒ์ ๋ํด์ 1 ๋ ์ค 10 ์ผ ๋์์ ๋ฌด๋ฃ ๋ผ๋ ๋ถ๋ถ์ด๋ค.
์ธ๊ตญ ๋ธ๋ก๊ทธ ์์๋ Standby Node ์ ๋ผ์ด์ ์ค๊ฐ๊ฒฉ์ ์ ์ธ ๋๋ค๋ ๋ด์ฉ๋ ์์ง๋ง ํด๋น ๋ถ๋ถ์ ํ์ธ์ด
๋ถ๊ฐํ ๋ถ๋ถ์ด๋ค. ํ์ง๋ง ์์ FAQ ์์ ๋์จ 10 ์ผ ๋์ ๋ฌด๋ฃ ๋ผ๋ ๋ถ๋ถ์ผ๋ก ์ ์ถ ํ๊ธฐ๋ก Standby Node ์
๋ํ ๋ถ๋ถ์ 10 ์ผ๊ฐ Free ์ด๊ณ ๊ทธ ์ด์ ์ฌ์ฉ์ ๋ถ๊ฐ ๋๋ค ๋ผ๊ณ ์๊ฐ ํด๋ณผ ์ ์๋ค(๊ฒ์ฆ ์๋จ)
์ฐธ๊ณ ์ฌํญ
๊ตฌ์ฑ ์ RAC ONE NODE๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ชจ๋ Node๋ Grid๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ RAC์ ๋์ผํ๊ฒ Shared Storage(Disk) ๊ฐ ํ์ํ๋ฉฐ, RAC์ ๋์ผํ๊ฒ VIP ์ Interconnect IP ๋ฑ์ด
์ค๋น ๋์ด์์ด์ผ ํ๋ค.
๋ณธ ๋ฌธ์๋ 2Node ํ๊ฒฝ์์ Grid๊ฐ ์ค์น ์๋ฃ๋ ํ๊ฒฝ์์์ S/W์ค์น์์ ๋ถ๋ถ๋ถํฐ ๊ธฐ์ ๋์ด์์ผ๋ฉฐ, Storage Type์
ASM ์ ์ฌ์ฉ ํ๋ค.
์ค์น ์ ๊ด๋ฆฌ์ ์ฌ์ฉํ๋ ๋ช ๋ น์ด ๋ฑ์ด 11.2.01 ๊ณผ 11.2.0.2 ๋ ์ฐจ์ด๊ฐ ์๋ค 11.2.0.2 ๊ธฐ์ค์ผ๋ก ๋ฌธ์๋ ์์ฑ ๋์ด์์ผ๋ฉฐ,
์ฐจ์ด๊ฐ ๋๋ ๋ถ๋ถ์ ๋ณ๋๋ก ๊ธฐ์ ๋์ด ์๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 6 of 34
RAC ONE NODE
1. S/W
11.2.0.1 ์ S/W ์ค์น ํ๋ฉด์ด๋ค. 11.2.0.1 ๋ฒ์ ์์๋ RAC ๋ฅผ ์ ํ ํ๊ณ ์งํํ๋ค.
11.2.0.2 ์์๋ S/W ์ค์น ๋จ๊ณ์์ RAC ONE NODE ์ ํ ๋ฉ๋ด๊ฐ ์๋ค
Advanced Oracle Document โฆ
RAC ONE NODE 7 of 34
2. DBCA
11.2.0.1 ์์๋ ์๋์ ๊ฐ์ด ํ๋์ Node ๋ง ์ ํํ๊ณ ์งํํ๋ค.
11.2.0.2 ์์๋ DBCA ๋ฉ๋ด์์ ONE NODE ํญ๋ชฉ์ด ์ถ๊ฐ ๋์๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 8 of 34
์๋์ ๊ฐ์ด Global Database Name , SID, Service Name ์ ๊ธฐ์ ํ๋ค.
Service Name ์ RAC ์ Service Name ๊ณผ ์ ์ฌํจ์ผ๋ก์จ SID ์ ๋์ผ ํ ์ ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ฉํ (Active) Node ์ ์๋น Node ๊น์ง ์ ํ ํ๋ค.
๋ง์ฝ 3 ๊ฐ์ Node ์์ 2 ๊ฐ๋ง RAC ONE NODE ์ ์ฌ์ฉํ๋ ค๋ฉด 2 ๊ฐ๋ฅผ
์ ํํ๋ ๊ฒ์ด๋ค.
DBCA ๋ฅผ ์คํ ํ Local Node ๋ ๋ฐ๋์ ํ์ฑํ(์ ํ๋จ) ๋์ด ์์ผ๋ฉฐ ๊ทธ ์ธ
RAC ONE NODE ์ ์ฌ์ฉํ ๋๋จธ์ง ๋ ธ๋๋ฅผ ์ ํ ํ๋ฉด ๋๋ค.
DBCA ์งํ ์ค SCAN IP ๊ฐ ์๋ค๋ฉด SCAN LISTENER ๊ฐ ์กด์ฌ ํ์ง ์๋ ๋ค๋ ๊ฒฝ๊ณ ๊ฐ
๋ฐ์ ๋๋ค. ํ ์คํธ ๊ฒฐ๊ณผ DNS์์ด /etc/hosts์ ๋ฑ๋ก๋ 1 ๊ฐ์ SCAN IP ๋ ์ฌ์ฉ
๊ฐ๋ฅํ๋ค. ๊ฐ๋ฅํ๋ค๋ฉด Single Client Access Name(SCAN) ์ ์ฌ์ฉํด๋ ๋์์ง
์์ ๊ฒ ์ด๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 9 of 34
RAC ์ ์ ์ฌ ํ๊ฒ UNDOTBS ๋ 2 ๊ฐ๊ฐ default ์ด๋ฉฐ,
REDO ๋ํ 4 ๊ฐ์ Group ๊ณผ Thread ๊ฐ๋ ์ด ์กด์ฌํ๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 10 of 34
3. Current Status
ํ์ฌ database ์ํ ์กฐํ
srvctl status database -d JUPITER
JUPITER1_1 ์ Instance ๊ฐ jupiter1 ๋ ธ๋์์ ๊ตฌ๋ ์ค์ด๋ฉฐ,
Relocation ์ํ๋ INACTIVE ๋ผ๋ ๊ฑธ ํ์ธ ํ ์ ์๋ค.
$ srvctl config database -d JUPITER
database ์ config ํ์ฌ ์ค์ ๋ฐ ์ ์ฑ ๋ฑ์ ์ดํด ๋ณผ ์ ์๋ค
Database unique name: JUPITER Database name: JUPITER Oracle home: /oracle/product/112/db Oracle user: oracle Spfile: +DATA/JUPITER/spfileJUPITER.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: JUPITER Database instances: Disk Groups: DATA Mount point paths: Services: JUPITER.RON.COM Type: RACOneNode Online relocation timeout: 30 Instance name prefix: JUPITER Candidate servers: jupiter1,jupiter2 Database is administrator managed
Candidate Servers ๋ Servcies ๋ช Type ๋ฑ์ ์ ๋ณด ๋ฑ์ ํ์ธ ํ๋ฉด ๋๋ฉฐ,
online relocation timeout : 30 ์ ๊ฒฝ์ฐ relocation ์ ์๊ณ์น ์ด๋ฉฐ,
๋จ์ ๋ ๋ถ์ผ๋ก ์จ ์ต๋ 30 ๋ถ์์ผ๋ก relocate ํ๊ฒ ๋ค ๋ผ๋ ์๋ฏธ์ด๋ค.
Instance JUPITER_1 is running on node jupiter1 Online relocation: INACTIVE
Advanced Oracle Document โฆ
RAC ONE NODE 11 of 34
$ srvctl config service -d JUPITER
config service ๋ก ํ์ฌ JUPITER.RON.COM ์ด๋ผ๋ ์๋น์ค๋ช ๊ณผ ํด๋น ์ค์ ๋ด์ญ์
ํ์ธ ๊ฐ๋ฅ ํ๋ค Failover Type, method ๋ฑ relocate ์ ์ ์ฑ ์ด ์ค์ ๋์ด์๋ค.
11.2.0.1 ์์ ์กด์ฌ ํ์๋ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋ค.
raconestatus
raconeinit
raconefix
Omotion
11.2.0.2 ์์๋ srvctl ๋ก ๋ชจ๋ ํตํฉ ๋์์ผ๋ฉฐ, ์์ ๋ช ๋ น์ด๋ ์กด์ฌ ํ์ง ์๋๋ค.
4. RAC ONE NODE SID
RAC ONE NODE ์์์ SID ๋ ์์ ๊ณผ๋ ์กฐ๊ธ์ ๋ค๋ฅด๋ค.
์ค์น ์ Global Database Name ์ JUPITER ๋ก ์ง์ ํ์๊ณ
RAC ๋ผ๋ฉด ๋ ธ๋๋ณ๋ก JUPITER1,JUPITER2โฆ.n ์ ๋ฐฉ์์ผ๋ก SID ๊ฐ ์ง์ ๋๋ค.
Service name: JUPITER.RON.COM Service is enabled Server pool: JUPITER Cardinality: 1 Disconnect: false Service role: PRIMARY Management policy: AUTOMATIC DTP transaction: false AQ HA notifications: false Failover type: NONE Failover method: NONE TAF failover retries: 0 TAF failover delay: 0 Connection Load Balancing Goal: LONG Runtime Load Balancing Goal: NONE TAF policy specification: BASIC Edition: Preferred instances: JUPITER_1 Available instances:
Advanced Oracle Document โฆ
RAC ONE NODE 12 of 34
RAC ONE NODE ๋ JUPITER_1 , JUPITER_2 ์ ๊ฐ์ด _(์ธ๋๋ฐ) ๊ฐ ํฌํจ ๋์ด
RAC ์๋ ๋ค๋ฅด๊ฒ ํ๊ธฐ ๋๋ค.
Omotion ์ด๋ srvctl ์ ํตํด Relocate ํ์ฌ ๋ค๋ฅธ ๋ ธ๋๋ก ์ด๋ ์ํค๋ฉด ํด๋น SID๋
๋ณ๊ฒฝ ๋๋ค. ๊ฐ๋ น 1 ๋ฒ ๋ ธ๋์์ 2 ๋ฒ๋ ธ๋๋ก Relocate ์ํค๊ฒ ๋๋ฉด JUPITER_2 ๋ก
2 ๋ฒ ๋ ธ๋์์ ๊ตฌ๋ ๋๋ค.
ํ์ง๋ง 1 ๋ฒ ๋ ธ๋์์๋ ํญ์ JUPITER_1 SID ๋ก , 2 ๋ฒ๋ ธ๋์์๋ JUPITER_2 ๋ก
๊ตฌ๋ ๋๋ ๊ฒ์ ์๋๋ค. ์ด ๋ถ๋ถ์ ๋ค์์ TAF ๋ฐ Relocate ์ค๋ช ํ ์งํ ํ๊ฒ ๋ค.
5. Instance Relocate
11.2.0.1 ๊น์ง Omotion ์ด๋ผ๋ ์ปค๋งจ๋๋ก Instance Migrate ํ์๋๋ฐ,
Omotion ์ด๋ ์ปค๋งจ๋์ ์๋ฏธ๋ฅผ ๋จผ์ ์ค๋ช ํ๋ฉด
Oracle ์์๋ RAC ONE NODE ๋ฅผ ๊ฐ์ํ ์ ๋น์ท ํ๋ค๋ผ๊ณ ํํํ๋ฉด์,
Oracle VM ์์ Certified ์๋ฃจ์ ์ด๋ผ๋ ์๊ฐ๋ ํ๋ค.
VMware ์ Vmotion ์ Citrix ์ XEN Motion ์ ์ฌํ ๊ธฐ๋ฅ ์ด๋ฉฐ, ํด๋น๊ธฐ๋ฅ์
์ค์น๋ ๋ฌผ๋ฆฌ์ ์๋ฒ์์ ์๋์ค์ธ Virtual Machine ์ ๋ค๋ฅธ ESX(๋ฌผ๋ฆฌ์๋ฒ) ์๋ฒ๋ก
shutdown ํ์ง ์์ ์ฑ Live ์ํ๋ก ์ด๋์ํค๋ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค
Advanced Oracle Document โฆ
RAC ONE NODE 13 of 34
Omotion ์ด๋ผ๋ ์ปค๋งจ๋๋ ์์ ์ ์ฌํ ์๋ฏธ์ ์ง๋๊ณ ์๋ค
ํ์ง๋ง ๊ฐ์ํ์motion ๊ธฐ๋ฅ ๋ณด๋ค๋ ๋ถ๋๋ฝ์ง๋ ๋ชปํ ๊ฒ์ ์ฌ์ค์ด๋ค.
RAC ์์๋ select ๋ฅผ ์ ์ธ ํ๊ณ DML ์ ํธ๋์ ์ ์ด ๋กค๋ฐฑ ๋๋ค๋ ์ฌ์ค์ ์๊ณ
์์ ๊ฒ์ด๋ค.
๊ทธ๋ผ RAC ONE NODE ๋ ์ด๋ ๋ถ๋ถ ๊น์ง ๊ฐ๋ฅ ํ์ง๋ ๋ค์ ์๋ TEST ๋ฅผ ํตํด
ํ์ธ ํด๋ณด๋๋ก ํ๊ฒ ๋ค.
Instance ์ Migrate ์ ๋ ์ด์ Omotion ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉ ํ์ง ์๋๋ค.
11.2.0.1 ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, 11.2.0.2 ์์๋ srvctl๋ฅผ ์ฌ์ฉ ํ๊ฒ ๋๋ค.
srvctl relocate database -d ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช -n ์ด๊ธฐ๋ ค๋ ๋ ธ๋๋ช -w 1 -v
-w ์ต์ ์ ๊ธฐ์ ํ์ง ์๋๋ค๋ฉด online relocation timeout : 30 ์ด ์ ์ฉ๋๋ค
๋จ์ ๋ ๋ถ ์ด๋ฉฐ , ์ด ์๊ฐ์ ์ธ์ ์ ์ข ๋ฃ ํ๊ณ , ์ธ์คํด์ค๋ฅผ migrate , ํธ๋์ญ์ ์
OPEN ํ๋ ์๊ฐ์ ์๋ฏธ ํ๋ค.
์๊ฐ ์์ ํธ๋์ ์ ์ด ์ข ๋ฃ ๋์ง ์๋๋ค๋ฉด, shutdown abort ๊ณผ ๊ฐ์ ์ผํ์ผ๋ก
ํธ๋์ ์ ์ ์ทจ์ ๊ฐ ๋๋ฉฐ, ์ธ์ ์ ์ฌ๋ผ์ง ๊ฒ์ด๋ค.
์ด๋ฐ ์๊ฐ์ ๋ํ ์ ํ์ ๋ํด์ default 30๋ถ์ด ์๋ ๋ค๋ฅธ ์๊ฐ์ผ๋ก ์ ํ์ ๋๊ณ ์
ํ ๋ -w ์ต์ ์ ์ฌ์ฉํ๋ค.
๋ณดํต์ ๊ฒฝ์ฐ ํ ์คํธ ๋ฌธ์๋ ์ธ๊ตญ ๋ฌธ์๋ค์ ๋๋ถ๋ถ์ด -w 1 ์ ์ฃผ๋ฉฐ ์๊ฐ์ ๋ฒ์๋
1~720 ๋ถ ๊น์ง ์ด๋ค.
-v ์ต์ ์ ์งํ ์ค์ธ ์์ธํ ๋ด์ญ์ ํ์ ํ๋ ๊ฒ์ด๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 14 of 34
์ค์ ๋ก ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ก relocate ํ๊ฒ ๋๋ค.
srvctl relocate database -d JUPITER -n jupiter2 -w 1 -v
์์ ์งํ ์ํฉ์ ๋ณด๊ฒ ๋๋ฉด JUPITER_2 ๊ฐ ๋จผ์ ๊ธฐ๋์ด ๋ ํ
1 ๋ถ์์ JUPITER_1 (1 ๋ฒ NODE ์์ ๊ตฌ๋ ์ค์ธ Instance)์ ์ข ๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
์ข ๋ฃ ๋ ํ Reconfiguration ์ด ๋๋ค.
dbca ์งํ ์ ์์์ RAC ์ ๊ฐ์ Thread ๊ฐ๋ ์ด ์กด์ฌํ๋ฉฐ, undotbs ๊ฐ ๋ ธ๋๋ณ๋ก
์กด์ฌ ํ๋ ์ด์ ์ด๋ค. ์งง์ง๋ง Relocate ๋๋ ์๊ฐ, Candidate Node ์์
Instance ๋ฅผ ๊ตฌ๋ํ๊ฒ ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Datafile Umount => ์ ๊ท NODE ์์ MOUNT => Instance Startup
์ ๋ฐฉ์์ผ๋ก Instance ๊ฐ ์์ ํ ์ข ๋ฃ ๋๋ OS Vendor Cluster ํน์ 3rd Party Cluster
์๋ ๋ค๋ฅธ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์งง์ง๋ง 2 ๊ฐ์ Instance ๊ฐ ๊ตฌ๋์ด ๋๊ธฐ ๋๋ฌธ์ ๋ ธ๋ ๋ณ๋ก Thead๊ฐ
์กด์ฌ ํ๋ฉฐ, Redo, undotbs ๋ฅผ ๋ค๋ฅด๊ฒ ์ฌ์ฉ ํ๋ ๊ฒ์ด๋ค.
์งํ ์ค ๋ค๋ฅธ ์ธ์ (์ฐฝ) ์์ srvctl status database -d JUPITER ๋ก ํ์ธ ํด๋ณด๋ฉด
์๋์ ๊ฐ์ด ์งํ ๋ด์ญ์ ํ์ธ ํ ์ ์๋ค.
Configuration updated to two instances
Instance JUPITER_2 started
Services relocated
Waiting for 1 minutes for instance JUPITER_1 to stop.....
Instance JUPITER_1 stopped
Configuration updated to one instance
Advanced Oracle Document โฆ
RAC ONE NODE 15 of 34
์์ง ๊น์ง๋ INACTIVE ์ํ ์ด๋ค.
Active ์ํ๋ก ๋ณ๊ฒฝ ๋์์ผ๋ฉฐ, Source Instance ์ ๋ํ ์ ๋ณด๊ฐ ํ๊ธฐ ๋๋ค.
๊ฐ Node ๋ณ๋ก Instance ๊ฐ ๊ฐ๋ณ ์ ์ผ๋ก ๊ตฌ๋ ๋์๋ค๊ณ ์ ์ ์์ผ๋ฉฐ,
Source Instance ์ Destination Instance ๊ฐ ์ด๋ NODE ์์ ๊ตฌ๋ ๋๋์ง๊ฐ
ํ๊ธฐ๋๋ค.
JUPITER_1 ์ธ์คํด์ค(1๋ฒ NODE) ์ ๋ํ ์ ๋ณด๊ฐ ์ฌ๋ผ ์ก๋ค.
ํ์ฌ ์ํ๊ฐ JUPITER_1 ์ด shutdown ์ด ์๋ฃ ๋ ์์ ์ด๋ค.
๋ง์ง๋ง ์ผ๋ก Online relocation ์ด INACTIVE ๋๋ฉด์ 2 ๋ฒ๋ ธ๋์์
JUPITER_2 ์ธ์คํด์ค๊ฐ ์ ์ ๊ตฌ๋ ๋จ์ ์ ์ ์๋ค.
Instance JUPITER_1 is running on node jupiter1 Online relocation: INACTIVE
Instance JUPITER_1 is running on node jupiter1 Online relocation: ACTIVE
Source instance: JUPITER_1 on jupiter1
Instance JUPITER_1 is running on node jupiter1 Instance JUPITER_2 is running on node jupiter2
Online relocation: ACTIVE Source instance: JUPITER_1 on jupiter1 Destination instance: JUPITER_2 on jupiter2
Instance JUPITER_2 is running on node jupiter2 Online relocation: ACTIVE Source instance: JUPITER_1 on jupiter1 Destination instance: JUPITER_2 on jupiter2
Instance JUPITER_2 is running on node jupiter2 Online relocation: INACTIVE
Advanced Oracle Document โฆ
RAC ONE NODE 16 of 34
์์ ๊ฐ์ ํ๋ก์ธ์ค๋ก relocate ๋ ์งํ ๋๋ฉฐ ๊ทธ๋์ ๊ฐ ๋ ธ๋๋ณ๋ก _n ์ SID ๊ฐ
์กด์ฌ ํ๋ ๊ฒ์ด๋ค.
๋ค์ 1 ๋ฒ ๋ ธ๋๋ก migrate ํ๋ ค๋ฉด ์๋์ ๊ฐ์ผ๋ฉฐ ์ผ๋จ ๋ค์ relocate ๋ฅผ ํ๋ค.
srvctl relocate database -d JUPITER -n jupiter1 -w 1 -v
6. Change Settings
์์์ ์กฐํํด ๋ดค๋ฏ์ด ํ์ฌ๋ ์ ์์ ์ธ relocate ์๋ TAF,CTF๋ฑ์ ์ ์ฉ ๋์ง
์๋๋ค. default ์ ์ฑ ์์ ์์ ํด์ผ ํ๋ค.
srvctl modify service -d ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ข ์์ฑ์ ๋ณ๊ฒฝํ๋ค.
์ฌ์ฉ ๊ฐ๋ฅํ ์์ฑ์ ์๋์ ๊ฐ๋ค.
-P {BASIC|PRECONNECT|NONE} : TAF Failover ์ ์ฑ
โ BASIC : On-demand ๋ฐฉ์์ผ๋ก Failover ๊ฐ ํ์ํ ๋ ์ด์ ์๋
์ธ์คํด์ค ์ชฝ์ผ๋ก Oracle Server Process ๋ฅผ ๊ธฐ๋ ํ๋ค.
โ PRECONNECT : Failover ๊ฐ ์ด๋ฃจ์ด์ง ์ธ์คํด์ค์ ๋ฏธ๋ฆฌ Oracle Server
Process ๋ฅผ ๊ธฐ๋์์ผ Failover ๊ฐ ๋ฐ์ํ๋ ์ค๋ฒํค๋๋ฅผ
๋ฏธ๋ฆฌ ์ค์ฌ ๋๋ ๋ฐฉ์, Failover ์๋๋ ํฅ์๋์ง๋ง
์์์ ๋ญ๋น๋ ์ด๋ ํ ์ ์๋ค.
<RAC ONE NODE ์์๋ ์ฌ์ฉ๋ถ๊ฐ ์ต์ >
-j {SHORT | LONG} : Connection Load Balancing Goal
-B {NONE | SERVICE_TIME | THROUGHPUT} : Runtime Load Balancing Goal
-m {NONE | BASIC} : Failover method
-e {NONE | SESSION | SELECT} : Failover type
โ NONE : TAF ๊ธฐ๋ฅ ์ฌ์ฉ ํ์ง ์๋๋ค.
โ SESSION : select ํ๋ค๊ฐ ์ ์๋์ด์ ธ ์๋ ๋ ธ๋๊ฐ ๋ค์ด์ด ๋๋ฉด ์ด์์๋
๋ ธ๋๋ก ์ฌ ์ ์์ ๋์ง๋ง fetch ๊ฐ ์งํ ์ค์ด์๋ค๋ฉด
fetch ๋ ๋์ค์ ์คํจํ๊ฒ ๋๋ค.
โ SELECT : session ๊ณผ ๊ฐ๊ณ fetch๋ ์ด์ด์ ์งํํด ์ค๋ค.
์ฆ . ๋๋์ ๋ ์ฝ๋๋ฅผ ํ๋ฒ์ select ํ๋ app์ ํจ์จ์ ์ด๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 17 of 34
-w failover_delay : Failover ์๋์ ์ง์ฐ ์๊ณ์น
-z failover_retries : Failover ์๋ ํ์
์ ์ ์์ฑ ์ค NONE ์ผ๋ก ์ค์ ๋ TAF Failover Policy, Failover type , Failover
method ๋ฅผ ๋ณ๊ฒฝ ํ ๊ฒ์ด๋ค.
TAF Failover Policy ๋ PRECONNECT
Failover type ์ SELECT / Failover Method ๋ Basic ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
$ srvctl modify service -d JUPITER -s JUPITER.RON.COM -P PRECONNECT \
-e SELECT -m BASIC
Service name: JUPITER.RON.COM
Service is enabled
Server pool: JUPITER
Cardinality: 1
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 0
TAF failover delay: 0
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: BASIC
Edition:
Preferred instances: JUPITER_1
Available instances:
Advanced Oracle Document โฆ
RAC ONE NODE 18 of 34
7. TAF TEST
์ฐธ๊ณ ๋ก TAF ๋ OCI ๋ฐฉ์์์๋ง ๊ฐ๋ฅํ๋ฉฐ, JDBC THIN ๋๋ผ์ด๋ฒ์ ๊ฒฝ์ฐ
CTF ์ 10g JDBC ๋ถํฐ ๋์จ Fast Connection Failover(FCF) ๋ง ์ฌ์ฉ ๊ฐ๋ฅ ํ๋ค.
tnsnames.ora ์ ๊ตฌ์ฑ์ ์๋์ ๊ฐ์ด 2 ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ฐ๋ฅํ๋ค.
1) ์ด์ ๊ณผ ๋์ผํ๊ฒ 2 ๊ฐ์ VIP ์ FAILOVER=ON ์ ๊ธฐ์ ํด์ ์ฌ์ฉ ํ๋ ๋ฐฉ๋ฒ
JUPITER_VIP=
(DESCRIPTION =
(ADDRESS_LIST=
(LOAD_BALANCE=ON)
(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.169)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.1.168)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME = JUPITER)
(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
)
)
2) ์๋์ ๊ฐ์ด SCAN IP ๋ฅผ ์ด์ฉ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
JUPITER_SRV =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jupiter_scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = JUPITER.RON.COM)
)
)
SCAN IP ๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ SERVICE_NAME ์๋ DBCA ๋ก ์์ฑ์ ์ง์ ํ
SERVICE_NAME ์ผ๋ก ํด์ผ ํ๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 19 of 34
ํ ์คํธ์ ์ฌ์ฉ ํ ์ฟผ๋ฆฌ๋ ์๋์ ๊ฐ๋ค.
Filename : ron.sql
col sid format 99999
col serial# format 99999999
col failover_type format a13
col failover_method format a15
col failed_over format a11
select sid, serial#, failover_type, failover_method, failed_over from v$session where
username ='SYSTEM';
select instance_name from v$instance;
select count(*) from
(
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source
);
col sid format 99999
col serial# format 99999999
col failover_type format a13
col failover_method format a15
col failed_over format a11
Advanced Oracle Document โฆ
RAC ONE NODE 20 of 34
select sid, serial#, failover_type, failover_method, failed_over from v$session where
username ='SYSTEM';
select instance_name from v$instance;
select count(*) from
(
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source union
select * from dba_source
);
โ TEST 1 : Active Session
Test ๋ ์ฟผ๋ฆฌ ์ํ ์ค relocate ๊ฐ ๋ฐ์ ๋์์ ๋ ์ธ์ ๋ฐ Select ์์ ์ ๋ํ
TAF ๊ฐ ๊ฐ๋ฅํ์ง๋ฅผ ํ์ธํ๋ค.
๋ค๋ฅธ oracle client ๊ฐ ์ค์น๋ host์์ ์๋ ์ปค๋งจ๋๋ก ron.sql ์ ์คํํ๋ค.
sqlplus system/oracle@JUPITER_VIP<ron.sql
์คํ ์ค relocate ๋ฅผ ์ค์ ํ๋ค. ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 21 of 34
$ sqlplus system/oracle@JUPITER_VIP<ron.sql
SQL*Plus: Release 11.1.0.7.0 - Production on Tue Sep 20 03:11:44 2011
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SID SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------ --------- ------------- --------------- -----------
766 55 SELECT BASIC NO
=>> SID ๋ 766 ์ด๋ฉฐ ํ์ฌ Failover ๊ฐ ๋ ์ํ๋ ์๋๋ค.
INSTANCE_NAME
----------------
JUPITER_1
=>> Instance ์ด๋ฆ์ JUPITER_1 ์ด๋ค.
COUNT(*)
----------
158519
==>> ์ฌ๋ฌ ๊ฐ์ union ์ผ๋ก ๋ ์ฟผ๋ฆฌ๊ฐ ์ํ์ด ๋์ด count ๊ฐ return ๋์๋ค.
SID SERIAL# FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------ --------- ------------- --------------- ------------------------------------------
2278 23 SELECT BASIC YES
==>> ์์ ๋์ผ ํ๊ฒ SID๋ฑ์ ์กฐํ ํ๋ค. SID ๋ฐ SERIAL# ๊ฐ์ด ๋ณ๊ฒฝ ๋์๋ค.
FAILED_OVER ๊ฐ YES ๋ก ๋์ด์๋ ๊ฒ์ผ๋ก ์ ์์ ์ผ๋ก Failover ๊ฐ ๋จ์ ํ์ธ
๊ฐ๋ฅํ๋ค
Advanced Oracle Document โฆ
RAC ONE NODE 22 of 34
INSTANCE_NAME
----------------
JUPITER_2
==>> ์ธ์คํด์ค๋ช ๋ JUPITER_2 ๋ก ๋ณ๊ฒฝ ๋์๋ค.
COUNT(*)
----------
158519
์ธ์คํด์ค 2 ์์ ์กฐํ ํ(์ฟผ๋ฆฌ๊ฐ ์ํ๋) count ๊ฐ๋ return ๋ฐ์๋ค.
srvctl status database -d JUPITER ๋ก ์กฐํ ํ๋ฉด
2 ๋ฒ ๋ ธ๋์์ JUPITER_2 ์ธ์คํด์ค๊ฐ ๊ตฌ๋์ค์์ ํ์ธ ํ ์ ์๋ค.
โ TEST 2 : Idle Session
SYSTEM@jupiter_vip> select sid, serial#, failover_type, failover_method, failed_over from
v$session where username ='SYSTEM';
SID SERIAL# FAILOVER_TYPE FAILOVER_M FAI
---------- ---------- ------------- ---------- -------------------------
11 81 SELECT BASIC NO
==>> ํ์ฌ๋ 1 ๋ฒ๋ ธ๋์ ์ธ์คํด์ค์์ Idle session ์ํ ์ด๋ค.
Instance JUPITER_2 is running on node jupiter2
Online relocation: INACTIVE
Advanced Oracle Document โฆ
RAC ONE NODE 23 of 34
SYSTEM@jupiter_vip> select instance_name from v$instance;
INSTANCE_NAME
----------------
JUPITER_1
==>> SID ๋ JUPITER_1 ์ด๋ค. srvctl ๋ก relocate ๋ฅผ ์ค์ ํ ๋ค์ ํ์ธ ํด๋ณด๋ฉด
SYSTEM@jupiter_vip> select sid, serial#, failover_type, failover_method, failed_over from
v$session where username ='SYSTEM';
SID SERIAL# FAILOVER_TYPE FAILOVER_M FAI
---------- ---------- ------------- ---------- ------------------------
1527 5 SELECT BASIC YES
SYSTEM@jupiter_vip> select instance_name from v$instance;
INSTANCE_NAME
----------------
JUPITER_2
==>> Active Session ์ผ ๋ ํ ์คํธํ ๊ฒฐ๊ณผ์ ๋์ผํ๊ฒ Session ์ ๋ํ
Fail-over ๊ฐ ์ ์์ ์ผ๋ก ๋์ ํ์๋ค.
8. FAILOVER TEST
TEST1) pmon process kill
๋ค์ ๋ ธ๋๋ฅผ 1 ๋ฒ์ผ๋ก relocate ํ ์์ ๋์ผํ๊ฒ ์ฟผ๋ฆฌ๋ฅผ ์ํ ์ค pmon ํ๋ก์ธ์ค๋ฅผ
kill ๋ก ์ข ๋ฃ๋ฅผ ํ๊ฒ ๋ค.
crs_stat -p ora.jupiter.db ๋ก ์กฐํ ํ๋ฉด ์๋์ ๊ฐ์ CHECK_INTERVAL ์
default value ๊ฐ 1 ์ด์ด๋ค. ๋ฐ๋ก ์์ ์์ด ์งํ ํ๊ฒ ๋ค.
Advanced Oracle Document โฆ
RAC ONE NODE 24 of 34
NAME=ora.jupiter.db
TYPE=ora.database.type
ACTION_SCRIPT=
ACTIVE_PLACEMENT=1
AUTO_START=restore
CHECK_INTERVAL=1
DESCRIPTION=Oracle Database resource
FAILOVER_DELAY=0
FAILURE_INTERVAL=60
FAILURE_THRESHOLD=2
GEN_START_OPTIONS@SERVERNAME(jupiter1)=open
GEN_START_OPTIONS@SERVERNAME(jupiter2)=open
GEN_USR_ORA_INST_NAME@SERVERNAME(jupiter1)=JUPITER_1
GEN_USR_ORA_INST_NAME@SERVERNAME(jupiter2)=JUPITER_2
HOSTING_MEMBERS=
PLACEMENT=restricted
RESTART_ATTEMPTS=2
SCRIPT_TIMEOUT=60
START_TIMEOUT=600
STOP_TIMEOUT=600
UPTIME_THRESHOLD=1h
PMON ์ kill ๋ก ์ข ๋ฃ ์ํค๊ฒ ๋๋ฉด JUPITER_1 ์ Alert ์ ์๋์ ๊ฐ์ ๋ฉ์์ง์
ํจ๊ป ๋ฐ๋ก ์ธ์คํด์ค๊ฐ ์ฌ ๊ตฌ๋ ๋๋ค.
๋์ ๋ถ์ ์ค๋ช ํ ๋ด์ฉ๊ณผ ๊ฐ์ด Grid๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ Oracle Restart ์ ์ฑ ์ด
๋ฐ์ ๋์ด์๊ธฐ ๋๋ฌธ์ process ์ ๋น์ ์ ์ข ๋ฃ๋ ๋ค๋ฅธ ๋ ธ๋๋ก Take-Over ํ์ง ์๊ณ
ํ์ฌ ๋ ธ๋์์ 1 ์ด ๋ด์ธ๋ก ์ธ์คํด์ค ๊ตฌ๋์ ํ๊ฒ ๋๋ค.
Tue Sep 20 03:37:05 2011
Shutting down instance (abort)
License high water mark = 5
USER (ospid: 20092): terminating the instance
Instance terminated by USER, pid = 20092
Tue Sep 20 03:37:07 2011
Instance shutdown complete
Tue Sep 20 03:38:35 2011
Starting ORACLE instance (normal)
Advanced Oracle Document โฆ
RAC ONE NODE 25 of 34
์ด ๋ถ๋ถ ๋ํ ํ๋ก์ธ์ค ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ํฐ๋ง ํ์ฌ Take Over ํ๊ฑฐ๋ ์ธ์คํด์ค๋ฅผ
๊ตฌ๋ํ๋ Vendor Cluster ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋์ํ๋ค.
TEST2) shutdown abort
Active session ํน์ Idle session ๋ชจ๋ shutdown ์ ๋ํ ๋ถ๋ถ์ fail-over ๋์ง
์๋๋ค abort ๋ํ shutdown ์ต์ ์ค ํ๋์ด๊ธฐ ๋๋ฌธ์ instance ๋ฅผ ์ฌ๊ธฐ๋ ํ๋ค๋๊ฐ
๋ค๋ฅธ Node์์ ์ฌ์์ ํ๋ ๋ฑ์ Action์ ์กด์ฌ ํ์ง ์๋๋ค.
relocate ์ ์ธ์ ์ด ์ ์ง ๋๋ ๊ฒ์ ์์์๋ ์ค๋ช ๋์๋ ๊ฒ์ฒ๋ผ ์งง์ ์๊ฐ ๋ค๋ฅธ
Candidate node ์์ Instance ๊ฐ ๊ตฌ๋๋์ด ํด๋น ์๋ฒํ๋ก์ธ์ค ๋ฑ์ ์ ๋ณด๋ฅผ ๋ฐ์
์ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅ ํ ๋ถ๋ถ์์ผ๋ก shutdown abort ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ์ ํด ๋ ธ๋์์
์ธ์คํด์ค ๊ตฌ๋์ ๊ฑธ๋ฆฌ๋ ์๊ฐ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ข ๋ฃ ๋๋ ์ํฉ์ด๋ผ๋ฉด
Active session/ idle session ๋ชจ๋ Failover ๋ ๋ถ๊ฐ๋ฅ ํ๋ค.
TEST3) OS reboot
OS reboot ์ ๊ฒฝ์ฐ OS์ Crash์ ์ ์ฌํ ๊ฒฝ์ฐ๋ก์จ session ์ด๋ ์ฟผ๋ฆฌ์ ๋ํ
Failover ๋ ๋ถ๊ฐ๋ฅ ํ๋ค. ํ์ง๋ง ์์คํ ์ฌํฅ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง
20 ์ด~์๋ถ ์ฌ์ด์ Grid ์ ์ํด์ Candidate Node ์์ ๊ตฌ๋ ๋จ์ ํ์ธ ํ ์ ์๋ค
reboot ๋ช ๋ น์ ๋ด๋ ธ์ ๋น์ ๋ง์ง๋ง์ผ๋ก Alert.log ์ ์ฐํ ๋ด์ฉ์ ์๋์ ๊ฐ๋ค
์๊ฐ์ 14 ์ 41 ๋ถ 5 ์ด ์ ๋ง์ง๋ง์ผ๋ก ๋ก๊ทธ๊ฐ ๊ธฐ๋ก ๋์๊ณ
Wed Sep 21 14:41:05 2011
NOTE: ASMB terminating
Errors in file
/oracle/sbase/diag/rdbms/jupiter/JUPITER_1/trace/JUPITER_1_asmb_21142.trc:
ORA-15064: communication failure with ASM instance
ORA-03113: end-of-file on communication channel
Advanced Oracle Document โฆ
RAC ONE NODE 26 of 34
๋ค๋ฅธ ๋ ธ๋์ Alert.log ์์๋ ์๋์ ๊ฐ์ด 14์ 41 ๋ถ 46 ์ด์ 2 ๋ฒ์ฌ ๋ ธ๋์์
instance ๊ฐ ๊ธฐ๋์ด ์์ ๋จ์ ์ ์ ์๋ค.
์ด ๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ์์คํ ์ฌ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๋ถ๋ถ์ด๋ฉฐ, Vendor Cluster ์
๋ณต๊ตฌ์ ๋ํ ์๊ฐ์ ์ผ์ถ ๋น์ทํ ๋ฏํ๋ค. ์กฐ๊ธ ์ด๋ผ๋ ๋น ๋ฅด๋ค๋ผ๊ณ ํ๋ฉด
RAC ONE NODE ์ ํด๋น ํ๋ ๋ชจ๋ ๋ ธ๋์์ ASM ์คํ ๋ฆฌ์ง๋ ,Cluster file system
์คํ ๋ฆฌ์ง ์์ญ์ด Active ํ๊ฒ mount ๋์ด ์๊ธฐ ๋๋ฌธ์ ์คํ ๋ฆฌ์ง ์ ์ฌ ํ ๋ค์
Candidate Node ์์ mount ํ๋ Storage Failover ์ ๋ํ ์๊ฐ์ ์ ์ฝ ํ ์๋
์๋ค.
9. Dynamic SID
์์์ 1 ๋ฒ ๋ ธ๋์์๋ JUPITER_1 , 2 ๋ฒ๋ ธ๋์์๋ JUPITER_2 ๋ก
๋ํ๋จ์ ํ์ธ ํ ์ ์์๋ค. ํ์ง๋ง ์ด๊ฒ์ด ํญ์ ๋์ผ ํ์ง ์๋ค ๋ผ๊ณ ๋งํ์๋ค.
1 ๋ฒ ๋ ธ๋์์ JUPITER_1 ์ SID ๋ก ๊ธฐ๋ ๋์ด ์๋ ์ํ์์ OS์ ์ฅ์ (reboot)
๊ฐ ๋ฐ์ ๋๋ฉด SID ์ ๋ํ ๋ถ๋ถ์ด ์กฐ๊ธ ๋ฌ๋ผ์ง๋ค.
์๋์ ๊ฐ์ด 1 ๋ฒ ๋ ธ๋์์ JUPITER_1 SID ๋ก ๊ธฐ๋ ์ค์ด๋ค.
os ์์ reboot ๋ช ๋ น์ผ๋ก crash ํํ๋ฅผ ๋ง๋ ๋ค.
Wed Sep 21 14:41:46 2011
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
[root@jupiter1:/root]$ hostname
jupiter1
[root@jupiter1:/root]$ ps -ef | grep ora_smon | grep -v grep
oracle 13940 1 0 16:11:08 ? 0:03 ora_smon_JUPITER_1
Advanced Oracle Document โฆ
RAC ONE NODE 27 of 34
2 ๋ฒ ์๋ฒ์์ instance ๊ฐ ๊ธฐ๋ ๋ ํ ํ์ธ ํด๋ณด๋ฉด ์๋์ ๊ฐ์ SID ๋ก
๊ธฐ๋ ๋๋ค.
2 ๋ฒ ๋ ธ๋์์ JUPITER_2 ๊ฐ ์๋ JUPITER_1 ๋ก ๊ธฐ๋ ๋จ์ ํ์ธ ํ ์ ์๋ค.
์์ ๊ฐ์ด Crash ๋ reboot ์ํฉ์์ srvctl relocate ๋ก migrate ์ ์๋์ ๊ฐ์ด
1 ๋ฒ ๋ ธ๋์์ JUPITER_2 ๋ก ๊ตฌ๋ ๋จ์ ํ์ธ ํ ์ ์๋ค.
์ฅ์ ์ ์ํด์ Candidate ๋ ธ๋๋ก ๊ตฌ๋ ๋ ๋์๋ ์ด์ Node ์์ ์ฌ์ฉ์ค์ธ
SID ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉฐ, ์ ์์ ์ธ srvctl relocate ๋ช ๋ น์ ์ด์ฉํ์ฌ migrate ๋ฅผ
ํ๊ฒ ๋๋ฉด SID ๋ ์์ฐจ์ ์ผ๋ก ๋ณ๊ฒฝ์ด ๋๋ค.
์์ ๊ฐ์ด 1 ๋ฒ ๋ ธ๋์์ JUPITER_2 ๋ฅผ 2๋ฒ ๋ ธ๋์์๋ JUPITER_1 ๋ผ๋
SID ์์ ๋ ธ๋๋ณ๋ก SID ๋ฅผ ๋ง์ถ๋ ค๋ฉด Crash(reboot) ์ด ๋๊ฑฐ๋, srvctl stop database
๋ก ์ ์ ์ข ๋ฃ ํ start ํ๊ฒ ๋๋ฉด ํด๋น ๋ ธ๋์ ๋ง๋ SID๋ก ๊ธฐ๋ ๋๋ค.
10. Converting a Database from Oracle RAC One Node to Oracle RAC
srvctl convert ์ปค๋งจ๋๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ์กด์ RAC ONE NODE ๋ฅผ Online ์ํ์์
RAC ๋ก Convert ํ๋ ๊ธฐ๋ฅ๋ ์ ๊ณต ๋๋ฉฐ ๋ฐ๋๋ก RAC => RAC ONE NODE ๋ก๋
๊ฐ๋ฅํ๋ค.
[root@jupiter2:/root]$ hostname
jupiter2
[root@jupiter2:/root]$ ps -ef | grep ora_ | grep -v grep
oracle 28283 1 0 10:05:47 ? 0:00 ora_lms0_JUPITER_1
oracle 28363 1 0 10:05:51 ? 0:00 ora_o000_JUPITER_1
[root@jupiter1:/root]$ hostname
jupiter1
[root@jupiter1:/root]$ ps -ef | grep ora_pmon | grep -v grep
oracle 1960 1 0 10:21:38 ? 0:00 ora_pmon_JUPITER_2
Advanced Oracle Document โฆ
RAC ONE NODE 28 of 34
ํ์ฌ ์ธ์คํด์ค๋ JUPITER_1 1 ๊ฐ๋ง ์กด์ฌ ํ๋ ์ํ ์ด๋ฉฐ, node 1 ์ ๊ตฌ๋ ์ค ์ด๋ค.
๋จผ์ ์ฌ์ฉ์ค์ธ JUPITER.RON.COM ์๋น์ค๋ฅผ ์ญ์ ๋ฅผ ํด์ผ ํ๋ค.
JUPITER.RON.COM ์ ora.JUPITER ๋ผ๋ ๊ธฐ๋ณธ Server pool ์ ์ข ์ ๋์ด ์๋ค.
ora.JUPITER ๋ผ๋ Server pool ์ RAC ๋ณํ ํ์๋ ์ฌ์ฉ ํ๊ธฐ ๋๋ฌธ์ -f ์ต์ ์ ์ฌ์ฉ
ํ์ฌ JUPITER.RON.COM ์๋น์ค๋ฅผ ์ญ์ ํ๋ค.
$ srvctl remove service -d JUPITER -s JUPITER.RON.COM -f
srvctl convert ๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ์กด RAC ONE NODE ๋ฅผ RAC ๋ก ๋ณํํ๋ค.
$ srvctl convert database -d JUPITER -c RAC
srvctl config ๋ก ์กฐํ ํด๋ณด๋ฉด ์๋์ ๊ฐ์ด RAC ๋ก ๋ณ๊ฒฝ ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
์ด์ 2 ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ถ๊ฐ ํ์ฌ Active-Active ์ํ๋ก ๋ณ๊ฒฝ ํ๋ค. ํ์ฌ ๊น์ง๋
RAC ์ด์ง๋ง ์ธ์คํด์ค๋ 1 ๊ฐ ์ด๋ค.
์๋์ ๊ฐ์ด srvctl add instance ๋ฅผ ์ด์ฉํ๋ค.
$ srvctl add instance -d JUPITER -i JUPITER_2 -n jupiter2
[oracle@jupiter1:/oracle]$ srvctl config database -d JUPITER Database unique name: JUPITER Database name: JUPITER Oracle home: /oracle/product/112/db Oracle user: oracle Spfile: +DATA/JUPITER/spfileJUPITER.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: JUPITER Database instances: JUPITER_1 Disk Groups: DATA Mount point paths: Services:
Type: RAC Database is administrator managed
Advanced Oracle Document โฆ
RAC ONE NODE 29 of 34
์ถ๊ฐ ํ srvctl config database ๋ก ์กฐํ ํ๋ฉด ์๋์ ๊ฐ์ด Instance ๊ฐ ์ถ๊ฐ ๋ ๊ฒ์
ํ์ธ ํ ์ ์๋ค.
ONE NODE RAC ์์ RAC ๋ก ๋ณ๊ฒฝ ์ Online ์ผ๋ก ๋ชจ๋ ์์ ์ด ์งํ ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก _n ํ์์ SID๋ ๋ณ๊ฒฝ ๋์ง ์๋๋ค.
JUPITER_2 ์ธ์คํด์ค๋ฅผ ๊ตฌ๋ํ๋ค.
$ srvctl start instance -d JUPITER -n jupiter2
jupiter2(node2) ์์ pmon ์ด ๊ตฌ๋์ด ๋๋ ๊ฒ์ด ํ์ธ ๊ฐ๋ฅํ๋ฉฐ
crsctl stat res -t ๋ก ํ์ธ ํด๋ณด๋ฉด 2 ๊ฐ์ instance ๊ฐ OPEN ์ํ ์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
[oracle@jupiter1:/oracle]$ srvctl config database -d JUPITER Database unique name: JUPITER Database name: JUPITER Oracle home: /oracle/product/112/db Oracle user: oracle Spfile: +DATA/JUPITER/spfileJUPITER.ora Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Server pools: JUPITER
Database instances: JUPITER_1,JUPITER_2 Disk Groups: DATA Mount point paths: Services: Type: RAC Database is administrator managed
[root@jupiter2:/root]$ hostname
jupiter2
[root@jupiter2:/root]$ ps -ef | grep ora_pmon | grep -v grep
oracle 8915 1 0 03:59:37 ? 0:00 ora_pmon_JUPITER_2
[root@jupiter2:/root]$ crsctl stat res -t ora.jupiter.db 1 ONLINE ONLINE jupiter1 Open
2 ONLINE ONLINE jupiter2 Open
Advanced Oracle Document โฆ
RAC ONE NODE 30 of 34
srvctl status database ๋ก ์กฐํ ํ๋ฉด ์ด์ ๊ณผ ๋ค๋ฅด๊ฒ Online relocation: INACTIVE
๋ผ๋ ๋ฌธ๊ตฌ๋ ์กด์ฌ ํ์ง ์๋๋ค.
11. Converting a Database from Oracle RAC to Oracle RAC One Node
์์์ ๋ณ๊ฒฝ ํ RAC ๋ฅผ ๋ค์ RAC ONE NODE ๋ก ๋ณ๊ฒฝ ํ๊ฒ ๋ค.
๋จผ์ ํ ์์ ์ instance ๋ฅผ ๋จ์ผ instance ๋ก ๋ณ๊ฒฝ ํ๋ ๊ฒ์ด๋ค.
3NODE ๋ผ๋ฉด 2NODE ๋ฅผ ์ญ์ ํ๊ณ 1 ๊ฐ์ NODE ๋ฅผ ๋จ๊ฒจ ๋์ผ ํ๋ ๊ฒ์ด๋ค.
instance ์ ๊ตฌ๋์ ์ ์ง ํ๊ณ ์ญ์ ๋ฅผ ์งํํ๋ค.
instance ์ ์ง
$ srvctl stop instance -d JUPITER -i JUPITER_2
instance ์ญ์
$ srvctl remove instance -d JUPITER -i JUPITER_2
Remove instance from the database JUPITER? (y/[n]) y
RAC ONE NODE ์์ฑ์ dbca ์์ ์ค service ๋ฅผ JUPITER.RON.COM ๋ก ๋ฑ๋กํด์
์์ฑ ํ ๋ด์ญ์ด ์กด์ฌ ํ๋ค. ๋์ผํ๊ฒ RAC ONE NODE ๋ฅผ ์ํ service ๋ถํฐ ์์ฑ
ํด์ค์ผ ํ๋ค.
srvctl add service -d JUPITER -s JUPITER.RON.COM -r "JUPITER_1"
์๋น์ค ๋ค์ : JUPITER.RON.COm
์ข ์ instance : JUPITER_1
์๋น์ค๋ฅผ ์ถ๊ฐ ํ๊ฒ ๋๋ฉด ์๋์ผ๋ก server pool ์ด ์์ฑ๋๋ค.
crsctl status serverpool ๋ก ํ์ธ ํ๋ฉด ์๋์ ๊ฐ์ด ์๋ก์ด Server pool ์ด ์์ฑ
๋์์ผ๋ฉฐ, ํด๋น SERVER(node) ๊ฐ ๋ฑ๋ก ๋์์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
[oracle@jupiter1:/oracle]$ srvctl status database -d JUPITER
Instance JUPITER_1 is running on node jupiter1
Instance JUPITER_2 is running on node jupiter2
Advanced Oracle Document โฆ
RAC ONE NODE 31 of 34
๋ค์ srvctl convert ๋ฅผ ์ด์ฉํด์ RAC ONE NODE ๋ก ๋ณ๊ฒฝ ํ๋ค.
-i ์ต์ ์ Instance name prefix ์ผ๋ก ์จ JUPITER ๋ก ๊ธฐ์ ํ๋ฉด RAC ONE NODE
๋ก ์ ํ ๋๋ฉด์ SID ๋ ์๋์ผ๋ก _1 , _2 โฆ._n ํ ํ๋ก ๋ฑ๋ก ๋จ์ผ๋ก ๋ฐ๋ก _(์ธ๋๋ฐ)
๋ ๋ถ์ด์ง ์๋๋ค.
$ srvctl convert database -d JUPITER -c RACONENODE -w 1 -i JUPITER
srvctl config database ๋ก ์กฐํํ๋ฉด ๋ค์ RAC ONE NODE ๋ก ๋ณ๊ฒฝ ๋์๋ค.
[oracle@jupiter1:/oracle]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=jupiter2
NAME=Generic
ACTIVE_SERVERS=jupiter1
NAME=ora.JUPITER
ACTIVE_SERVERS=jupiter1
NAME=ora.JUPITER_JUPITER.RON.COM
ACTIVE_SERVERS=jupiter1
Advanced Oracle Document โฆ
RAC ONE NODE 32 of 34
$ srvctl config database -d JUPITER
๋ค์ srvctl status database ๋ก ์กฐํ ํ๋ฉด Online relocation: INACTIVE ์ํ๋ฅผ ํ์ธ
ํ ์ ์๋ค
[oracle@jupiter1:/oracle]$ srvctl config database -d JUPITER
Database unique name: JUPITER
Database name: JUPITER
Oracle home: /oracle/product/112/db
Oracle user: oracle
Spfile: +DATA/JUPITER/spfileJUPITER.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: JUPITER
Database instances:
Disk Groups: DATA
Mount point paths:
Services: JUPITER.RON.COM
Type: RACOneNode
Online relocation timeout: 1
Instance name prefix: JUPITER
Candidate servers: jupiter1
Database is administrator managed
[oracle@jupiter1:/oracle]$ srvctl status database -d JUPITER
Instance JUPITER_1 is running on node jupiter1
Online relocation: INACTIVE
Advanced Oracle Document โฆ
RAC ONE NODE 33 of 34
12. ๊ฒฐ๋ก
RAC ONE NODE ๋ ๋ถ๋ช ํ Vendor Cluster ์๋ ์กฐ๊ธ์ ๋ค๋ฅธ ํํ์ HA ๋์
๋ฐฉ์์ ์ ๊ณต ํ๋ฉฐ, Grid ์ ์ํด Oracle ์ HA ๋ฐฉ์์ผ๋ก ์ด์ฉํ๋ ค ํ ๋ ์ข๋
๋น ๋ฅด๊ฒ Failover ๋ฅผ ์ง์ ํ๊ฒ ๋จ์ ํ์ธ ํ ์ ์์๋ค.
relocate ์ RAC ์ ๋์ผํ๊ฒ select ์์ ๊น์ง TAF๊ฐ ์ง์ ๋จ์ผ๋ก ๊ณํ๋
Server ์์ ๋ฐ Oracle S/W Patch ์ Rolling Patch ์ Online ์ฑ์ด
Vendor Cluster ๋ณด๋ค๋ ์ข๋ ์ข๋ค ๋ผ๊ณ ํ๊ฐ ํ ์ ์๊ฒ ๋ค.