프린트 하기

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

 

오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법

OS환경 : Oracle Linux 7.6 (64bit) DB 환경 : Oracle Database 19.6.0.0 RAC 방법 : 오라클 19c RAC network interface 변경 후 grid 기동불가 시 해결방법 network interface 이름이 변경되었을 때는 oifcfg 명..

positivemh.tistory.com

https://positivemh.tistory.com/742

 

오라클 19c RAC IP 변경 방법(IP Change)

OS환경 : Oracle Linux 7.6 (64bit) DB 환경 : Oracle Database 19.6.0.0 방법 : 오라클 19c RAC IP 변경 방법(IP Change) 오라클 19c 2node RAC 환경에서 Public IP, Virtual IP, Scan IP, Private IP 를..

positivemh.tistory.com

https://pat98.tistory.com/m/718

https://community.oracle.com/mosc/discussion/3593716/starting-crs-in-exclusive-mode-to-restore-ocr

https://docs.oracle.com/en/database/oracle/oracle-database/19/cwadd/oracle-clusterware-control-crsctl-utility-reference.html#GUID-5D7E9B63-558B-4CC5-91CF-69DEE11083FF

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/