RAC ONE NODE (Oracle Database HA Solution)

34
Advanced Oracle Document RAC ONE NODE (Oracle Database HA Solution) Author: Hyun-Ho, Jung Site: http://www.commit.co.kr Email: [email protected] [email protected] Creation Date: 2011-09-18

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]

[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 ๋ณด๋‹ค๋Š” ์ข€๋” ์ข‹๋‹ค ๋ผ๊ณ  ํ‰๊ฐ€ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.