내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 7.6 (64bit)
DB 환경 : Oracle Database 19.6.0.0 RAC
방법 : 오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법2 (gpnptool 이용)
network interface 이름이 변경되었을 때는 oifcfg 명령의 setif delif 로 grid 에 저장된 network interface 정보를 변경시켜주어야함
하지만 db, grid를 종료한 뒤 network interface 이름이 변경되었을 때는 grid 프로세스가 정상적으로 올라오지 못하기 때문에 oifcfg 명령을 사용하지 못함
이 경우 network interface 를 기존 값으로 변경하면 되지만 상황에 따라 network interface는 변경하지 못하는 경우가 발생할 수 있음
이런 상황이 발생했을 경우 해결하는 두가지 방법이 존재함
방법1. exclusive mode로 grid 기동 후 변경(grid가 기동중일때만 변경가능)
방법2. gpnptool 이용 변경(grid가 기동중이지 않아도 변경가능)
이번에는 방법2. gpnptool을 이용한 변경 방법에 대해 설명함
시나리오
방법2. gpnptool 이용 변경
기존 Public IP의 네트워크 인터페이스 ens32를 db, grid 종료 후 ens36으로 변경 후 grid를 기동해보고
기동되지 않을 때 해결방법을 설명함
기존 아이피 대역
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
##Public
192.168.137.10 oel19db1
192.168.137.20 oel19db2
##Private
10.10.10.10 oel19db1-priv
10.10.10.20 oel19db2-priv
##Virtual
192.168.137.100 oel19db1-vip
192.168.137.200 oel19db2-vip
##SCAN
192.168.137.150 oel19db-scan
|
기존 네트워크 인터페이스 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
1번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.10 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::20c:29ff:fed3:6d16 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:16 txqueuelen 1000 (Ethernet)
RX packets 149 bytes 15176 (14.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 141 bytes 18473 (18.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::20c:29ff:fed3:6d20 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:20 txqueuelen 1000 (Ethernet)
RX packets 38 bytes 2728 (2.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28 bytes 2380 (2.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.20 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::250:56ff:fe3d:54c6 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:3d:54:c6 txqueuelen 1000 (Ethernet)
RX packets 79 bytes 10561 (10.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93 bytes 14647 (14.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.20 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::250:56ff:fe39:a3bc prefixlen 64 scopeid 0x20<link>
ether 00:50:56:39:a3:bc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 906 (906.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
현재 Public IP의 네트워크 인터페이스가 ens32임
기존 grid 상태 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.chad
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.net1.network
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.ons
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNEWLSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 ONLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE oel19db1 STABLE
ora.OCR_VOTE.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE oel19db1 Started,STABLE
2 ONLINE ONLINE oel19db2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE OFFLINE STABLE
2 ONLINE OFFLINE STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE oel19db1 STABLE
ora.oel19db1.vip
1 ONLINE ONLINE oel19db1 STABLE
ora.oel19db2.vip
1 ONLINE ONLINE oel19db2 STABLE
ora.oradb.db
1 ONLINE ONLINE oel19db1 Open,HOME=/ORA19/app
/oracle/product/19.3
.0/db_1,STABLE
2 ONLINE ONLINE oel19db2 Open,HOME=/ORA19/app
/oracle/product/19.3
.0/db_1,STABLE
ora.qosmserver
1 ONLINE ONLINE oel19db1 STABLE
ora.scan1.vip
1 ONLINE ONLINE oel19db1 STABLE
--------------------------------------------------------------------------------
|
모두 정상
grid 종료(1번, 2번 노드 모두)
1
|
# crsctl stop crs
|
grid 자동 기동 설정 해제(1번, 2번 노드 모두)
1
2
|
# crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.
|
네트워크 인터페이스 설정
네트워크 인터페이스 추가를 위해 OS 종료(1번, 2번 노드 모두)
1
|
# poweroff
|
vmware에서 네트워크 Adapter 추가(1번, 2번 노드 모두)
Edit virtual machine settings 선택
Network Adapter 선택
NAT 선택
1번 노드, 2번 노드 동일하게 1개씩 추가됨
OS 기동 후 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
1번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.10 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::20c:29ff:fed3:6d16 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:16 txqueuelen 1000 (Ethernet)
RX packets 149 bytes 15176 (14.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 141 bytes 18473 (18.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::20c:29ff:fed3:6d20 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:20 txqueuelen 1000 (Ethernet)
RX packets 38 bytes 2728 (2.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28 bytes 2380 (2.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:d3:6d:2a txqueuelen 1000 (Ethernet)
RX packets 20 bytes 1200 (1.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.20 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::250:56ff:fe3d:54c6 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:3d:54:c6 txqueuelen 1000 (Ethernet)
RX packets 79 bytes 10561 (10.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 93 bytes 14647 (14.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.20 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::250:56ff:fe39:a3bc prefixlen 64 scopeid 0x20<link>
ether 00:50:56:39:a3:bc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 906 (906.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:62:6e:b6 txqueuelen 1000 (Ethernet)
RX packets 8 bytes 480 (480.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
정상적으로 ens36번이 생김
ens32의 ip정보를 ens36번으로 수정(/etc/udev/rules.d/)(1번, 2번 노드 모두)
MAC Address는 ifconfig에 나온 ens36 정보(ether 부분)를 넣음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1번 노드
# cd /etc/udev/rules.d/
# vi 70-persistent-net.rules
기존
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:16" , NAME=={ens32}
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:20" , NAME=={ens35}
변경
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:20" , NAME=={ens35}
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0c:29:d3:6d:2a" , NAME=={ens36}
2번 노드
# cd /etc/udev/rules.d/
# vi 70-persistent-net.rules
기존
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:16" , NAME=={ens32}
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:20" , NAME=={ens35}
변경
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0C:29:D3:6D:20" , NAME=={ens35}
SUBSYTEM=="net", ACTION=="add" , ATTR{address}=="00:0c:29:62:6e:b6" , NAME=={ens36}
|
ens36용 uuid 생성(1번, 2번 노드 모두)
1
2
3
4
5
6
7
|
1번 노드
# uuidgen
03d82d13-50a2-43a9-8ebc-836208a79a51
2번 노드
# uuidgen
059e5142-a4bf-4369-a760-d8d1be85b5ab
|
ens32의 ip정보를 ens36번으로 수정(/etc/sysconfig/network-scripts/)(1번, 2번 노드 모두)
위에서 생성한 uuid 값 넣어주고 NAME, DEVICE부분을 ens36으로 변경
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
1번 노드
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens32 ifcfg-ens36
# vi ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.137.10
PREFIX=24
GATEWAY=192.168.137.2
DNS1=168.126.63.1
IPV6_PRIVACY=no
UUID=03d82d13-50a2-43a9-8ebc-836208a79a51
2번 노드
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens32 ifcfg-ens36
# vi ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.137.20
PREFIX=24
GATEWAY=192.168.137.2
DNS1=168.126.63.1
IPV6_PRIVACY=no
UUID=059e5142-a4bf-4369-a760-d8d1be85b5ab
|
ens32의 ip 정보 삭제(1번, 2번 노드 모두)
IPADDR, GATEWAY삭제 후 ONBOOT=no 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# cd /etc/sysconfig/network-scripts/
# vi ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
DEVICE=ens32
ONBOOT=no
PREFIX=24
DNS1=168.126.63.1
IPV6_PRIVACY=no
UUID=152beb06-47c5-c5e8-95a9-385590654382
|
설정 변경후 network restart(1번, 2번 노드 모두)
1
|
# systemctl restart network
|
ifconfig로 네트워크 정보 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
1번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:d3:6d:16 txqueuelen 1000 (Ethernet)
RX packets 793 bytes 73451 (71.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 671 bytes 98038 (95.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.10 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::20c:29ff:fed3:6d20 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:20 txqueuelen 1000 (Ethernet)
RX packets 198 bytes 14623 (14.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 103 bytes 9334 (9.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.10 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::20c:29ff:fed3:6d2a prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d3:6d:2a txqueuelen 1000 (Ethernet)
RX packets 49 bytes 3633 (3.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26 bytes 2520 (2.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2번 노드
# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:50:56:3d:54:c6 txqueuelen 1000 (Ethernet)
RX packets 697 bytes 64038 (62.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 593 bytes 88055 (85.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.20 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fe80::250:56ff:fe39:a3bc prefixlen 64 scopeid 0x20<link>
ether 00:50:56:39:a3:bc txqueuelen 1000 (Ethernet)
RX packets 85 bytes 8151 (7.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 211 bytes 15496 (15.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.20 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::20c:29ff:fe62:6eb6 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:62:6e:b6 txqueuelen 1000 (Ethernet)
RX packets 35 bytes 2793 (2.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21 bytes 2066 (2.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
1번, 2번 노드 모두 ens32는 ip가 없어지고 ens36에 Public IP 가 들어감
grid 기동 시도
이상태로 grid 기동 시도(1번, 2번 노드 모두)
1
2
|
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
|
grid 상태 확인(1번, 2번 노드 모두)
1
2
3
|
# crsctl stat res -t
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4000: Command Status failed, or completed with errors.
|
grid가 제대로 올라가지 않아 상태가 나오지 않음
crs alert log 확인
1
2
3
4
5
6
7
8
9
10
11
12
|
# su - oracle
$ cd $ORACLE_BASE/diag/crs/oel19db1/crs/trace
$ vi alert.log
2021-09-28 00:33:01.594 [OSYSMOND(23000)]CRS-42216: No interfaces are configured on the local node for interface definition
ens32(:.*)?:192.168.137.0: available interface definitions are [ens35(:.*)?:10.10.10.0][ens36(:.*)?:192.168.137.0]
[ens35(:.*)?:[fe80:0:0:0:0:0:0:0]][ens36(:.*)?:[fe80:0:0:0:0:0:0:0]].
2021-09-28 00:33:01.596 [OSYSMOND(23000)]CRS-42216: No interfaces are configured on the local node for interface definition
ens32(:.*)?:192.168.137.0: available interface definitions are [ens35(:.*)?:10.10.10.0][ens36(:.*)?:192.168.137.0]
[ens35(:.*)?:[fe80:0:0:0:0:0:0:0]][ens36(:.*)?:[fe80:0:0:0:0:0:0:0]].
2021-09-28 00:33:01.597 [OSYSMOND(23000)]CRS-42216: No interfaces are configured on the local node for interface definition
ens32(:.*)?:192.168.137.0: available interface definitions are [ens35(:.*)?:10.10.10.0][ens36(:.*)?:192.168.137.0]
[ens35(:.*)?:[fe80:0:0:0:0:0:0:0]][ens36(:.*)?:[fe80:0:0:0:0:0:0:0]].
|
network interface 관련 메세지가 발생중임
oifcfg getif 명령 확인
1
2
|
# oifcfg getif
PRIF-10: failed to initialize the cluster registry
|
grid가 비정상이어서 oifcfg 명령이 제대로 되지 않음
비정상적으로 올라간 grid 강제종료(1번, 2번 노드 모두)
1
|
# crsctl stop crs -f
|
gpnp 프로파일 백업($GRID_HOME/gpnp/{hostname}/profiles/peer)(양쪽노드 모두)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
1번 노드
$ cd $GRID_HOME/gpnp/oel19db1/profiles/peer
$ cp -p profile.xml profile.xmlbak
$ cp -p profile.xml profile.xmlbak2
$ ls -al
total 24
drwxr-x--- 2 oracle dba 132 Sep 28 01:06 .
drwxr-x--- 3 oracle dba 18 Mar 4 2020 ..
-rw-r--r-- 1 oracle dba 1936 Sep 28 00:32 pending.xml
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.old
-rw-r--r-- 1 oracle dba 1873 Mar 4 2020 profile_orig.xml
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xml
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xmlbak
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xmlbak2
2번 노드
$ cd $GRID_HOME/gpnp/oel19db2/profiles/peer
$ cp -p profile.xml profile.xmlbak
$ cp -p profile.xml profile.xmlbak2
$ ls -al
total 16
drwxr-x--- 2 oracle dba 94 Sep 28 01:08 .
drwxr-x--- 3 oracle dba 18 Mar 4 2020 ..
-rw-r--r-- 1 oracle dba 1873 Mar 4 2020 profile_orig.xml
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xml
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xmlbak
-rw-r--r-- 1 oracle dba 1936 Mar 4 2020 profile.xmlbak2
|
* grid 11.2 부터 Private IP는 OCR 뿐만 아니라 gpnp 프로필에도 저장됨
Private 네트워크를 사용할 수 없거나 정의가 잘못된 경우 CRSD 프로세스가 시작되지 않고 이후에 OCR을 변경할 수 없음
따라서 Private 네트워크 구성을 수정할 때 주의가 필요함
올바른 순서로 변경을 수행하는 것이 중요하고 gpnp 프로필의 수동 변경은 지원되지 않음(gpnptool을 이용해야함)
(profile.xmlbak 파일 : gpnptool로 변경할 파일, profile.xmlbak2 파일 : 원본profile.xml 백업파일)
gpnptool 기존 정보 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$ gpnptool get
Warning: some command line parameters were defaulted. Resulting command line:
/ORA19/app/grid/19.3.0/bin/gpnptool.bin get -o-
<?xml version="1.0" encoding="UTF-8"?><gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd" ProfileSequence="5"
ClusterUId="02a6256dfde0ef43ff767a6f39994c0b" ClusterName="oel19db" PALocation=""><gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.137.0" Adapter="ens32" Use="public"/>
<gpnp:Network id="net2" IP="10.10.10.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork>
</gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/oel19db/ASMPARAMETERFILE/registry.253.1034149805" Mode="remote" Extended="false"/>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI="">
<ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/>
</ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>p0TjUQ1UECPcg8ipPUprOLanZBs=</ds:DigestValue></ds:Reference></ds:SignedInfo>
<ds:SignatureValue>aA+30+LaBnEUmRVuNgloM1vLc57HfQZLydT9kBm8kQditjC27YPKlT8L8T+ZxIvBeAgmyiz1uoBBXjaZ8j38rmQXhJVvJeWQ6xqSZ3JmMNhxV9RM/P6IdaZH3QfjMBrMwJYbE/CC/m+QjsQPVfWi9MY+oLSsl0Oxg5rFTfbgV5c=</ds:SignatureValue>
</ds:Signature></gpnp:GPnP-Profile>
Success.
|
기존 profile check 명령 확인
1
2
3
4
5
6
7
8
|
$ gpnptool check -p=/ORA19/app/grid/19.3.0/gpnp/oel19db1/profiles/peer/profile.xml
Profile cluster="oel19db", GUID="02a6256dfde0ef43ff767a6f39994c0b", version=7
GPnP profile signed by peer, signature valid.
Checking target profile networks.
Got GPnP Service current profile to check against.
Current GPnP Service Profile cluster="oel19db", GUID="02a6256dfde0ef43ff767a6f39994c0b", version=7
Warning: profile version 7 is older than- or duplicate of- GPnP Service current profile version 7.
Profile appears valid, but basic push will not succeed.
|
현재 profile의 버전은 7
백업한 profile.xmlbak 파일 unsign 처리
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$ gpnptool unsign -p=profile.xmlbak
Warning: some command line parameters were defaulted. Resulting command line:
/ORA19/app/grid/19.3.0/bin/gpnptool.bin unsign -p=profile.xmlbak -o-
<?xml version="1.0" encoding="UTF-8"?><gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="5" ClusterUId="02a6256dfde0ef43ff767a6f39994c0b" ClusterName="oel19db" PALocation=""><gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.137.0" Adapter="ens32" Use="public"/>
<gpnp:Network id="net2" IP="10.10.10.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork>
</gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/oel19db/ASMPARAMETERFILE/registry.253.1034149805" Mode="remote" Extended="false"/>
</gpnp:GPnP-Profile>
Success.
|
profile.xmlbak의 net1(Public IP) network interface 정보 변경
1
2
3
|
$ gpnptool edit -net1:net_ada=ens36 -prf_sq=10 -p=profile.xmlbak -o=profile.xmlbak -ovr
Resulting profile written to "profile.xmlbak".
Success.
|
옵션 설명
-net1:net_ada=ens36 => net1의 network_adapter을 ens36으로 변경
-prf_sq=10 => profile의 sequence를 10으로 설정(profile 버전관리 차원인듯함)
-o=profile.xmlbak => output 파일을 profile.xmlbak로 지정
-ovr => output파일에 같은 이름이 있어도 덮어씌움(overwriting)
profile.xmlbak 파일 sign 처리(output 파일은 이름이 달라야함(profile.xmlbakout))
1
2
3
|
$ gpnptool sign -p=profile.xmlbak -w=file:/ORA19/app/grid/19.3.0/gpnp/oel19db1/wallets/peer -o=profile.xmlbakout
Resulting profile written to "profile.xmlbakout".
Success.
|
옵션 설명
-w=file: => 오라클 wallet 위치 지정
-o=profile.xmlbakout => output 파일을 profile.xmlbakout로 지정
output 파일을 profile.xml로 복사 후 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
$ cp profile.xmlbakout profile.xml
$ cat profile.xml
<?xml version="1.0" encoding="UTF-8"?><gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="10" ClusterUId="02a6256dfde0ef43ff767a6f39994c0b" ClusterName="oel19db" PALocation=""><gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.137.0" Adapter="ens36" Use="public"/>
<gpnp:Network id="net2" IP="10.10.10.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork>
</gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/oel19db/ASMPARAMETERFILE/registry.253.1034149805" Mode="remote" Extended="false"/>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI="">
<ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/>
</ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>v4jAb+l5MobTeM/dT79zUvafsZI=</ds:DigestValue></ds:Reference></ds:SignedInfo>
<ds:SignatureValue>XYZLQrLiWPu5wOeFTyNN6V0NHDBXA5AYpgPlkZtg7R8sCtMYBYWYVz4NlfqyjSXkLjRJagVRL+CxM8YtgYwmSOQG0BiRVZxMuX/ruUP9seFT0hEld8B6uLSFg3/UoCAsm/1xaHBUru9KaqhV7Qa3RDXgAegPJCGFMV9cirqC5is=</ds:SignatureValue>
</ds:Signature></gpnp:GPnP-Profile>
$ gpnptool get -p=profile.xml
Warning: some command line parameters were defaulted. Resulting command line:
/ORA19/app/grid/19.3.0/bin/gpnptool.bin get -p=profile.xml -o-
get-profile request to ipc://GPNPD_oel19db1 (ipc://GPNPD_oel19db1):
<?xml version="1.0" encoding="UTF-8"?><gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="10" ClusterUId="02a6256dfde0ef43ff767a6f39994c0b" ClusterName="oel19db" PALocation=""><gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.137.0" Adapter="ens36" Use="public"/>
<gpnp:Network id="net2" IP="10.10.10.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork>
</gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/oel19db/ASMPARAMETERFILE/registry.253.1034149805" Mode="remote" Extended="false"/>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI="">
<ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/>
</ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>v4jAb+l5MobTeM/dT79zUvafsZI=</ds:DigestValue></ds:Reference></ds:SignedInfo>
<ds:SignatureValue>XYZLQrLiWPu5wOeFTyNN6V0NHDBXA5AYpgPlkZtg7R8sCtMYBYWYVz4NlfqyjSXkLjRJagVRL+CxM8YtgYwmSOQG0BiRVZxMuX/ruUP9seFT0hEld8B6uLSFg3/UoCAsm/1xaHBUru9KaqhV7Qa3RDXgAegPJCGFMV9cirqC5is=</ds:SignatureValue>
</ds:Signature></gpnp:GPnP-Profile>
Success.
|
정상적으로 net1(Public IP)의 network interface 값이 변경됨
ProfileSequence도 10으로 변경됨
변경 후 profile check 명령 확인
1
2
3
4
5
6
7
8
|
$ gpnptool check -p=/ORA19/app/grid/19.3.0/gpnp/oel19db1/profiles/peer/profile.xml
Profile cluster="oel19db", GUID="02a6256dfde0ef43ff767a6f39994c0b", version=10
GPnP profile signed by peer, signature valid.
Checking target profile networks.
Got GPnP Service current profile to check against.
Current GPnP Service Profile cluster="oel19db", GUID="02a6256dfde0ef43ff767a6f39994c0b", version=10
Warning: profile version 10 is older than- or duplicate of- GPnP Service current profile version 10.
Profile appears valid, but basic push will not succeed.
|
10으로 변경됨
2번 노드도 동일하게 변경
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
$ gpnptool unsign -p=profile.xmlbak
$ gpnptool edit -net1:net_ada=ens36 -prf_sq=10 -p=profile.xmlbak -o=profile.xmlbak -ovr
Resulting profile written to "profile.xmlbak".
Success.
$ gpnptool sign -p=profile.xmlbak -w=file:/ORA19/app/grid/19.3.0/gpnp/oel19db2/wallets/peer -o=profile.xmlbakout
Resulting profile written to "profile.xmlbakout".
Success.
$ cp profile.xmlbakout profile.xml
$ cat profile.xml
<?xml version="1.0" encoding="UTF-8"?><gpnp:GPnP-Profile Version="1.0" xmlns="http://www.grid-pnp.org/2005/11/gpnp-profile"
xmlns:gpnp="http://www.grid-pnp.org/2005/11/gpnp-profile" xmlns:orcl="http://www.oracle.com/gpnp/2005/11/gpnp-profile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.grid-pnp.org/2005/11/gpnp-profile gpnp-profile.xsd"
ProfileSequence="10" ClusterUId="02a6256dfde0ef43ff767a6f39994c0b" ClusterName="oel19db" PALocation=""><gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*"><gpnp:Network id="net1" IP="192.168.137.0" Adapter="ens36" Use="public"/>
<gpnp:Network id="net2" IP="10.10.10.0" Adapter="ens35" Use="asm,cluster_interconnect"/></gpnp:HostNetwork>
</gpnp:Network-Profile><orcl:CSS-Profile id="css" DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/oracleasm/disks/*" SPFile="+OCR_VOTE/oel19db/ASMPARAMETERFILE/registry.253.1034149805" Mode="remote" Extended="false"/>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI=""><ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="gpnp orcl xsi"/></ds:Transform>
</ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>v4jAb+l5MobTeM/dT79zUvafsZI=</ds:DigestValue>
</ds:Reference></ds:SignedInfo><ds:SignatureValue>XYZLQrLiWPu5wOeFTyNN6V0NHDBXA5AYpgPlkZtg7R8sCtMYBYWYVz4NlfqyjSXkLjRJagVRL+CxM8YtgYwmSOQG0BiRVZxMuX/ruUP9seFT0hEld8B6uLSFg3/UoCAsm/1xaHBUru9KaqhV7Qa3RDXgAegPJCGFMV9cirqC5is=</ds:SignatureValue>
</ds:Signature></gpnp:GPnP-Profile>
|
grid 기동
1
2
3
4
5
6
7
|
1번 노드
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
2번 노드
# crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
|
grid 상태 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE OFFLINE oel19db1 STABLE
ora.chad
ONLINE OFFLINE oel19db1 STABLE
ora.net1.network
ONLINE OFFLINE oel19db1 STABLE
ora.ons
ONLINE OFFLINE oel19db1 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNEWLSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE OFFLINE STABLE
2 ONLINE OFFLINE STABLE
3 ONLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 OFFLINE OFFLINE STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE OFFLINE STABLE
ora.OCR_VOTE.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 OFFLINE OFFLINE STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE INTERMEDIATE oel19db1 Started,STABLE
2 ONLINE OFFLINE STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE OFFLINE STABLE
2 ONLINE OFFLINE STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE OFFLINE STABLE
ora.oel19db1.vip
1 ONLINE OFFLINE STABLE
ora.oel19db2.vip
1 ONLINE OFFLINE STABLE
ora.oradb.db
1 ONLINE OFFLINE Instance Shutdown,ST
ABLE
2 ONLINE OFFLINE STABLE
ora.qosmserver
1 ONLINE OFFLINE STABLE
ora.scan1.vip
1 ONLINE OFFLINE STABLE
--------------------------------------------------------------------------------
|
몇가지 리소스가 ONLINE 이지만 VIP가 OFFLINE임
vip nodeapps 정보 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# srvctl config nodeapps -a
Network 1 exists
Subnet IPv4: 192.168.137.0/255.255.255.0/ens32, static
Subnet IPv6:
Ping Targets:
Network is enabled
Network is individually enabled on nodes:
Network is individually disabled on nodes:
VIP exists: network number 1, hosting node oel19db1
VIP Name: oel19db1-vip
VIP IPv4 Address: 192.168.137.100
VIP IPv6 Address:
VIP is enabled.
VIP is individually enabled on nodes:
VIP is individually disabled on nodes:
VIP exists: network number 1, hosting node oel19db2
VIP Name: oel19db2-vip
VIP IPv4 Address: 192.168.137.200
VIP IPv6 Address:
VIP is enabled.
VIP is individually enabled on nodes:
VIP is individually disabled on nodes:
|
vip는 아직 ens32정보로 저장되어 있음
vip 정보 ens36으로 업데이트 후 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
vip 정보 변경
# srvctl modify nodeapps -n oel19db1 -A oel19db1-vip/255.255.255.0/ens36
# srvctl modify nodeapps -n oel19db2 -A oel19db2-vip/255.255.255.0/ens36
확인
# srvctl config nodeapps -a
Network 1 exists
Subnet IPv4: 192.168.137.0/255.255.255.0/ens36, static
Subnet IPv6:
Ping Targets:
Network is enabled
Network is individually enabled on nodes:
Network is individually disabled on nodes:
VIP exists: network number 1, hosting node oel19db1
VIP Name: oel19db1-vip
VIP IPv4 Address: 192.168.137.100
VIP IPv6 Address:
VIP is enabled.
VIP is individually enabled on nodes:
VIP is individually disabled on nodes:
VIP exists: network number 1, hosting node oel19db2
VIP Name: oel19db2-vip
VIP IPv4 Address: 192.168.137.200
VIP IPv6 Address:
VIP is enabled.
VIP is individually enabled on nodes:
VIP is individually disabled on nodes:
|
정상적으로 ens36으로 변경됨
다시 grid 상태 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
2번 노드 기동
# crsctl start crs
grid 상태 확인
# crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.chad
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.net1.network
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
ora.ons
ONLINE ONLINE oel19db1 STABLE
ONLINE ONLINE oel19db2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNEWLSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 ONLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE oel19db1 STABLE
ora.OCR_VOTE.dg(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE oel19db1 Started,STABLE
2 ONLINE ONLINE oel19db2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE oel19db1 STABLE
2 ONLINE ONLINE oel19db2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE oel19db1 STABLE
ora.oel19db1.vip
1 ONLINE ONLINE oel19db1 STABLE
ora.oel19db2.vip
1 ONLINE ONLINE oel19db2 STABLE
ora.oradb.db
1 ONLINE ONLINE oel19db1 Open,HOME=/ORA19/app
/oracle/product/19.3
.0/db_1,STABLE
2 ONLINE ONLINE oel19db2 Open,HOME=/ORA19/app
/oracle/product/19.3
.0/db_1,STABLE
ora.qosmserver
1 ONLINE ONLINE oel19db1 STABLE
ora.scan1.vip
1 ONLINE ONLINE oel19db1 STABLE
--------------------------------------------------------------------------------
|
모두 정상 상태
oifcfg getif 확인
1
2
3
4
5
|
# oifcfg getif
ens36 192.168.137.0 global public
ens35 10.10.10.0 global cluster_interconnect,asm
Only in OCR: ens32 192.168.137.0 global public
PRIF-30: Network information in OCR and GPnP profile differs
|
기존 ens32정보가 OCR에만 존재하며 현재 gpnp의 값과 내용이 다르다고 나와있음
ens32 정보 삭제 후 확인
1
2
3
4
|
# oifcfg delif -global ens32
# oifcfg getif
ens36 192.168.137.0 global public
ens35 10.10.10.0 global cluster_interconnect,asm
|
정상적으로 제거됨
이렇게 네트워트 인터페이스가 변경되어 grid가 제대로 기동되지 않을때는
grid를 exclusive mode로 기동된다면
exclusive mode 로 기동 시킨후 oifcfg 명령으로 grid에 등록된 네트워크 정보를 변경해 준뒤
grid 재기동 후 vip 정보도 변경시켜주면 정상적으로 사용이 가능함
(오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법 https://positivemh.tistory.com/743 )
exclusive mode로 기동 되지 않는다면
gpnp에 등록된 정보를 변경하는 gpnptool을 이용하면됨
(오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법2(gpnptool 이용) https://positivemh.tistory.com/755)
*grid가 기동중인 상태에서 gpnptool을 이용해 gpnp 정보를 변경할 시 grid를 재기동 해줘야 정상적으로 반영됨)
+gpnptool help
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
|
$ gpnptool help
Oracle GPnP Tool
Usage:
"gpnptool <verb> <switches>", where verbs and switches are:
create Create a new GPnP Profile
-prf[=id|-id|1|0] Profile Tag: <GPnP-Profile>, optional
-[id:]prf_cn=<val> Profile Tag: <GPnP-Profile [Id="id"] ClusterName="<val>">, optional
-[id:]prf_pa=<uri> Profile Tag: <GPnP-Profile [Id="id"] PALocation="<uri>">, optional
-[id:]prf_sq=<num> Profile Tag: <GPnP-Profile [Id="id"] ProfileSequence="<num>">, optional
-[id:]prf_cid=<val> Profile Tag: <GPnP-Profile [Id="id"] ClusterUId="<val>">, optional
-[pid:]nets[=id|-id|1|0]Profile Tag: <Network-Profile> child of <GPnP-Profile Id="pid">, optional
-[pid:]haip[=id|-id|1|0]Profile Tag: <HAIP> child of <Network-Profile Id="pid">, optional
-[id:]haip_ma=<val> Profile Tag: <HAIP [Id="id"] MulticastAddress="<val>">, optional
-[id:]haip_bm=<val> Profile Tag: <HAIP [Id="id"] BootMode="<val>">, optional
-[id:]haip_s=<val> Profile Tag: <HAIP [Id="id"] Subnet="<val>">, optional
-[pid:]hnet[=id|-id|1|0]Profile Tag: <HostNetwork> child of <Network-Profile Id="pid">, optional
-[id:]hnet_nm=<val> Profile Tag: <HostNetwork [Id="id"] HostName="<val>">, optional
-[pid:]net[=id|-id|1|0]Profile Tag: <Network> child of <HostNetwork Id="pid">, optional
-[id:]net_ip=<val> Profile Tag: <Network [Id="id"] IP="<val>">, optional
-[id:]net_use=<val> Profile Tag: <Network [Id="id"] Use="<val>">, optional
-[id:]net_nt=<val> Profile Tag: <Network [Id="id"] NameTempl="<val>">, optional
-[id:]net_aip=<val> Profile Tag: <Network [Id="id"] AutoIP="<val>">, optional
-[id:]net_ada=<val> Profile Tag: <Network [Id="id"] Adapter="<val>">, optional
-[pid:]bc[=id|-id|1|0]Profile Tag: <BC-BigCluster> child of <GPnP-Profile Id="pid">, optional
-[id:]bc_vip=<val> Profile Tag: <BC-BigCluster [Id="id"] DiscoveryVIP="<val>">, optional
-[pid:]asm[=id|-id|1|0]Profile Tag: <ASM-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]asm_dis=<val> Profile Tag: <ASM-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]asm_spf=<val> Profile Tag: <ASM-Profile [Id="id"] SPFile="<val>">, optional
-[id:]asm_uid=<hexnum>Profile Tag: <ASM-Profile [Id="id"] UniverseId="<hexnum>">, optional
-[id:]asm_m=<val> Profile Tag: <ASM-Profile [Id="id"] Mode="<val>">, optional
-[id:]asm_ext=<val> Profile Tag: <ASM-Profile [Id="id"] Extended="<val>">, optional
-[pid:]css[=id|-id|1|0]Profile Tag: <CSS-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]css_dis=<val> Profile Tag: <CSS-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]css_ld=<num> Profile Tag: <CSS-Profile [Id="id"] LeaseDuration="<num>">, optional
-[id:]css_cin=<num> Profile Tag: <CSS-Profile [Id="id"] ProfileCIN="<num>">, optional
-[id:]css_cuv=<val> Profile Tag: <CSS-Profile [Id="id"] CUV="<val>">, optional
-[pid:]ocr[=id|-id|1|0]Profile Tag: <OCR-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]ocr_oid=<num> Profile Tag: <OCR-Profile [Id="id"] OCRId="<num>">, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
edit Edit existing GPnP Profile
-prf[=id|-id|1|0] Profile Tag: <GPnP-Profile>, optional
-[id:]prf_cn=<val> Profile Tag: <GPnP-Profile [Id="id"] ClusterName="<val>">, optional
-[id:]prf_pa=<uri> Profile Tag: <GPnP-Profile [Id="id"] PALocation="<uri>">, optional
-[id:]prf_sq=<num> Profile Tag: <GPnP-Profile [Id="id"] ProfileSequence="<num>">, optional
-[id:]prf_cid=<val> Profile Tag: <GPnP-Profile [Id="id"] ClusterUId="<val>">, optional
-[pid:]nets[=id|-id|1|0]Profile Tag: <Network-Profile> child of <GPnP-Profile Id="pid">, optional
-[pid:]haip[=id|-id|1|0]Profile Tag: <HAIP> child of <Network-Profile Id="pid">, optional
-[id:]haip_ma=<val> Profile Tag: <HAIP [Id="id"] MulticastAddress="<val>">, optional
-[id:]haip_bm=<val> Profile Tag: <HAIP [Id="id"] BootMode="<val>">, optional
-[id:]haip_s=<val> Profile Tag: <HAIP [Id="id"] Subnet="<val>">, optional
-[pid:]hnet[=id|-id|1|0]Profile Tag: <HostNetwork> child of <Network-Profile Id="pid">, optional
-[id:]hnet_nm=<val> Profile Tag: <HostNetwork [Id="id"] HostName="<val>">, optional
-[pid:]net[=id|-id|1|0]Profile Tag: <Network> child of <HostNetwork Id="pid">, optional
-[id:]net_ip=<val> Profile Tag: <Network [Id="id"] IP="<val>">, optional
-[id:]net_use=<val> Profile Tag: <Network [Id="id"] Use="<val>">, optional
-[id:]net_nt=<val> Profile Tag: <Network [Id="id"] NameTempl="<val>">, optional
-[id:]net_aip=<val> Profile Tag: <Network [Id="id"] AutoIP="<val>">, optional
-[id:]net_ada=<val> Profile Tag: <Network [Id="id"] Adapter="<val>">, optional
-[pid:]bc[=id|-id|1|0]Profile Tag: <BC-BigCluster> child of <GPnP-Profile Id="pid">, optional
-[id:]bc_vip=<val> Profile Tag: <BC-BigCluster [Id="id"] DiscoveryVIP="<val>">, optional
-[pid:]asm[=id|-id|1|0]Profile Tag: <ASM-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]asm_dis=<val> Profile Tag: <ASM-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]asm_spf=<val> Profile Tag: <ASM-Profile [Id="id"] SPFile="<val>">, optional
-[id:]asm_uid=<hexnum>Profile Tag: <ASM-Profile [Id="id"] UniverseId="<hexnum>">, optional
-[id:]asm_m=<val> Profile Tag: <ASM-Profile [Id="id"] Mode="<val>">, optional
-[id:]asm_ext=<val> Profile Tag: <ASM-Profile [Id="id"] Extended="<val>">, optional
-[pid:]css[=id|-id|1|0]Profile Tag: <CSS-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]css_dis=<val> Profile Tag: <CSS-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]css_ld=<num> Profile Tag: <CSS-Profile [Id="id"] LeaseDuration="<num>">, optional
-[id:]css_cin=<num> Profile Tag: <CSS-Profile [Id="id"] ProfileCIN="<num>">, optional
-[id:]css_cuv=<val> Profile Tag: <CSS-Profile [Id="id"] CUV="<val>">, optional
-[pid:]ocr[=id|-id|1|0]Profile Tag: <OCR-Profile> child of <GPnP-Profile Id="pid">, optional
-[id:]ocr_oid=<num> Profile Tag: <OCR-Profile [Id="id"] OCRId="<num>">, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-p[=profile.xml] GPnP profile name
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
getpval Get value(s) from GPnP Profile
-prf Profile Tag: <GPnP-Profile>, optional
-[id:]prf_cn Profile Tag: <GPnP-Profile [Id="id"] ClusterName="<val>">, optional
-[id:]prf_pa Profile Tag: <GPnP-Profile [Id="id"] PALocation="<uri>">, optional
-[id:]prf_sq Profile Tag: <GPnP-Profile [Id="id"] ProfileSequence="<num>">, optional
-[id:]prf_cid Profile Tag: <GPnP-Profile [Id="id"] ClusterUId="<val>">, optional
-[pid:]nets Profile Tag: <Network-Profile> children of <GPnP-Profile Id="pid">, optional
-[pid:]haip Profile Tag: <HAIP> children of <Network-Profile Id="pid">, optional
-[id:]haip_ma Profile Tag: <HAIP [Id="id"] MulticastAddress="<val>">, optional
-[id:]haip_bm Profile Tag: <HAIP [Id="id"] BootMode="<val>">, optional
-[id:]haip_s Profile Tag: <HAIP [Id="id"] Subnet="<val>">, optional
-[pid:]hnet Profile Tag: <HostNetwork> children of <Network-Profile Id="pid">, optional
-[id:]hnet_nm Profile Tag: <HostNetwork [Id="id"] HostName="<val>">, optional
-[pid:]net Profile Tag: <Network> children of <HostNetwork Id="pid">, optional
-[id:]net_ip Profile Tag: <Network [Id="id"] IP="<val>">, optional
-[id:]net_use Profile Tag: <Network [Id="id"] Use="<val>">, optional
-[id:]net_nt Profile Tag: <Network [Id="id"] NameTempl="<val>">, optional
-[id:]net_aip Profile Tag: <Network [Id="id"] AutoIP="<val>">, optional
-[id:]net_ada Profile Tag: <Network [Id="id"] Adapter="<val>">, optional
-[pid:]bc Profile Tag: <BC-BigCluster> children of <GPnP-Profile Id="pid">, optional
-[id:]bc_vip Profile Tag: <BC-BigCluster [Id="id"] DiscoveryVIP="<val>">, optional
-[pid:]asm Profile Tag: <ASM-Profile> children of <GPnP-Profile Id="pid">, optional
-[id:]asm_dis Profile Tag: <ASM-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]asm_spf Profile Tag: <ASM-Profile [Id="id"] SPFile="<val>">, optional
-[id:]asm_uid Profile Tag: <ASM-Profile [Id="id"] UniverseId="<hexnum>">, optional
-[id:]asm_m Profile Tag: <ASM-Profile [Id="id"] Mode="<val>">, optional
-[id:]asm_ext Profile Tag: <ASM-Profile [Id="id"] Extended="<val>">, optional
-[pid:]css Profile Tag: <CSS-Profile> children of <GPnP-Profile Id="pid">, optional
-[id:]css_dis Profile Tag: <CSS-Profile [Id="id"] DiscoveryString="<val>">, optional
-[id:]css_ld Profile Tag: <CSS-Profile [Id="id"] LeaseDuration="<num>">, optional
-[id:]css_cin Profile Tag: <CSS-Profile [Id="id"] ProfileCIN="<num>">, optional
-[id:]css_cuv Profile Tag: <CSS-Profile [Id="id"] CUV="<val>">, optional
-[pid:]ocr Profile Tag: <OCR-Profile> children of <GPnP-Profile Id="pid">, optional
-[id:]ocr_oid Profile Tag: <OCR-Profile [Id="id"] OCRId="<num>">, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-p[=profile.xml] GPnP profile name
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
get Get profile in effect on local node
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-noocr Do not try shared resources in OCR, optional
-nowait Do not wait if GPNPD is not ready, optional
-inf Show server call info, optional
-p[=profile.xml] GPnP profile name, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
rget Get profile in effect on remote GPnP node
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-h=<val> Hostname, optional
-c=<val> Clustername, optional
-u=<val> ClusterGUID, optional
-rdp[=mdns] RD discovery service provider name, optional
-g=<num> RD gather time, secs, optional
-i[=2] RD gather tries, optional
-call=<val> Service URL to call, optional
-noocr Do not try shared resources in OCR, optional
-nowait Do not wait if GPNPD is not ready, optional
-inf Show server call info, optional
-p[=profile.xml] GPnP profile name, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
put Put profile as a current best
-p[=profile.xml] GPnP profile name
-noocr Do not try shared resources in OCR, optional
-nowait Do not wait if GPNPD is not ready, optional
-call=<val> Service URL to call, optional
-inf Show server call info, optional
-peersign Sign profile as peer before sending to GPNPD, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
find Find all RD-discoverable resources of given type
-h=<val> Hostname, optional
-c=<val> Clustername, optional
-u=<val> ClusterGUID, optional
-rdp[=mdns] RD discovery service provider name, optional
-r[=gpnp] RD-discoverable resource type name, optional
-g=<num> RD gather time, secs, optional
-i[=2] RD gather tries, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
lfind Find local gpnpd server
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
check Perform basic profile sanity checks
-p[=profile.xml] GPnP profile name
-s[=gpnp-profile.xsd] XML GPnPProfile Schema URI to validate profile against, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
c14n Canonicalize, format profile text (XML C14N)
-p[=profile.xml] GPnP profile name
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-excl[=gpnp,orcl] Use exclusive C14N and inclusive prefixes, optional
-comm Keep comments when C14N, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-fmtonly Don't C14N - format only, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
sign Sign/re-sign profile with wallet's private key
-p[=profile.xml] GPnP profile name
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-w[=cw-fs:] WRL-locator of OracleWallet with crypto keys
-wp=<val> OracleWallet password, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
unsign Remove profile signature, if any
-p[=profile.xml] GPnP profile name
-o[=gpnptool.out] Output result to a file, optional
-o- Output result to stdout
-ovr Overwrite output file, if exists, optional
-rmws Remove whitespace from xml, optional
-fmt[=0,2] Format profile. Value is ident level,step, optional
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
verify Verify profile signature against wallet certificate
-p[=profile.xml] GPnP profile name
-w[=cw-fs:] WRL-locator of OracleWallet with crypto keys
-wp=<val> OracleWallet password, optional
-wu[=owner] Wallet certificate user (enum: owner,peer,pa)
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
help Print detailed tool help
ver Show tool version
-t[=3] Trace level (min..max=0..7), optional
-f=<val> Command file name, optional
-? Print verb help and exit
|
참조 :
https://positivemh.tistory.com/743
https://positivemh.tistory.com/742
https://pat98.tistory.com/m/718
https://community.oracle.com/mosc/discussion/3593716/starting-crs-in-exclusive-mode-to-restore-ocr
https://airydba.wordpress.com/2016/11/29/gpnp-grid-plug-n-play-profile-in-oracle-11g-r212c-rac/
https://www.hhutzler.de/blog/fix-a-wrong-entry-profile-xml-and-redistribute-the-fixed-profile-with-gpnptool-put/
https://oraclegurukul.blogspot.com/2015/03/edit-gpnp-profile-11g-r2-rac.html
https://sites.google.com/site/bed0racled0cs/home/rac/gpnptool-command-reference
http://oracle-help.com/oracle-rac/grid-plug-and-playgpnp-profile/
'ORACLE > Rac' 카테고리의 다른 글
오라클 19c RAC OS 커널 패치시 작업 가이드 (0) | 2021.12.06 |
---|---|
오라클 11g R2 RAC grid 재기동시 db 자동기동 중지 (5) | 2021.10.27 |
오라클 19c RAC 리스너 포트 변경 방법 (0) | 2021.08.14 |
오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법 (0) | 2021.08.04 |
오라클 19c RAC IP 변경 방법(IP Change) (8) | 2021.07.27 |