ORACLE集群管理-19c RAC ipv6+IPV4双栈配置实战

2023-11-05

关于IPV6支持问题

单实例环境要支持IPV6 数据库版本至少11.2.0.4版本 

其实从linux7开始系统默认开启ipv6,怎么确认ipv6是否开启呢?下面介绍两种常见的方法:

1.通过查看网卡属性确定

ifconfig-a

命令输出有“inet6......“的表示开启了ipv6功能

2.通过内核模块加载信息查看

lsmod| grep ipv6

该默认地址经测试无法ping通,需要自定义地址,修改网卡配置文件,新增内容如下:

网络配置 信息 

Network Address Configuration in a Cluster
You can configure a network interface for either IPv4, IPv6, or both types of addresses
on a given network.


If you configure redundant network interfaces using a third-party technology, then
Oracle does not support configuring one interface to support IPv4 addresses and the
other to support IPv6 addresses. You must configure network interfaces of a redundant
interface pair with the same IP address type. If you use the Oracle Clusterware
Redundant Interconnect feature, then you must use IPv4 addresses for the interfaces.
All the nodes in the cluster must use the same IP protocol configuration. Either all the
nodes use only IPv4, or all the nodes use only IPv6, or all the nodes use both IPv4
and IPv6. You cannot have some nodes in the cluster configured to support only IPv6
addresses, and other nodes in the cluster configured to support only IPv4 addresses.

要不全部V4 要不全部V6,私网不能V6


The local listener listens on endpoints based on the address types of the subnets
configured for the network resource. Possible types are IPV4, IPV6, or both.

其中对应的subnet为gw-1

2409:8002:5A06:0120:0010:0000:0002:D000  =subnet

116为netmask

Changing Static IPv4 Addresses To Static IPv6 Addresses Using
SRVCTL

核心思想:

1 先在network配置IPV4和IPV6,然后将network配置为static IPV6。

1 保障所有网卡对应的地址为 static模式 

If the IPv4 network is in mixed mode with both static and dynamic
addresses, then you cannot perform this procedure. You must first transition
all addresses to static.

2  修改/etc/hosts文件

3  To change a static IPv4 address to a static IPv6 address:

1. Add an IPv6 subnet using the following command as  root once for the entire
network:

# srvctl modify network -subnet ipv6_subnet/prefix_length

In the preceding syntax  ipv6_subnet/prefix_length is the subnet of the IPv6
address to which you are changing along with the prefix length, such as 3001::/64

[root@orcl1 bin]# ./srvctl modify network -subnet 2409:8002:5A06:0120:0010:0000:0002:D000/116/eno3

[root@orcl1 bin]# ./srvctl config network
Network 1 exists
Subnet IPv4: 192.168.12..0/255.255.255.192/eno3, static
Subnet IPv6: 2409:8002:5a06:120:10:0:2:d000/116/eno3, static (inactive)
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
[root@orcl1 bin]# 

3 修改VIP

2. Add an IPv6 VIP using the following command as  root once on each node:

# srvctl modify vip -node node_name -netnum network_number -address
vip_name/netmask

[root@orcl1 bin]# ./srvctl modify vip  -node orcl1 -netnum 1 -address orcl1-vip/116
[root@orcl1 bin]# ./srvctl modify vip  -node orcl2 -netnum 1 -address orcl2-vip/116

[root@orcl2 bin]# ./srvctl config vip -node orcl2
VIP exists: network number 1, hosting node orcl2
VIP Name: orcl2-vip
VIP IPv4 Address: 192.168.12..17
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d011 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl2 bin]# 


[root@orcl1 bin]# ./srvctl config vip -node orcl1
VIP exists: network number 1, hosting node orcl1
VIP Name: orcl1-vip
VIP IPv4 Address: 192.168.12..16
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d010 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl1 bin]# 

In the preceding syntax:
• node_name is the name of the node
• network_number is the number of the network
• vip_name/netmask is the name of a local VIP that resolves to both IPv4 and
IPv6 addresses
The IPv4 netmask or IPv6 prefix length that follows the VIP name must satisfy
two requirements:
– If you specify a netmask in IPv4 format (such as 255.255.255.0), then
the VIP name resolves to IPv4 addresses (but can also resolve to IPv6
addresses). Similarly, if you specify an IPv6 prefix length (such as 64),
then the VIP name resolves to IPv6 addresses (but can also resolve to
IPv4 addresses).
– If you specify an IPv4 netmask, then it should match the netmask of
the registered IPv4 network subnet number, regardless of whether the
-iptype of the network is IPv6. Similarly, if you specify an IPv6 prefix
length, then it must match the prefix length of the registered IPv6 network
subnet number, regardless of whether the  -iptype of the network is IPv4.

其他

必须首先删除节点VIP,然后重新添加。

4 修改PUBLIC IP

3. Add the IPv6 network resource to OCR using the following command:

$ oifcfg setif -global if_name/subnet:public

oifcfg setif -global eno3/2409:8002:5A06:0120:0010:0000:0002:D000:public

[grid@orcl1 ~]$ oifcfg getif
eno3  192.168.12..0  global  public
ens3f0  10.2.0.0  global  cluster_interconnect,asm
eno3  2409:8002:5A06:0120:0010:0000:0002:D000  global  public

5 修改SCAN

4. Update the SCAN in DNS to have as many IPv6 addresses as there are IPv4
addresses. Add IPv6 addresses to the SCAN VIPs using the following command
as  root once for the entire network:

scan_name is the name of a SCAN that resolves to both IPv4 and IPv6 addresses.

[root@orcl1 bin]# ./srvctl modify scan -scanname eomsdb-scan

6 将V4和V6同时生效

Convert the network IP type from IPv4 to both IPv4 and IPv6 using the following
command as  root once for the entire network:
srvctl modify network -netnum network_number -iptype both
This command brings up the IPv6 static addresses.
[root@orcl1 bin]# ./srvctl modify network -netnum 1 -iptype both

6. Change all clients served by the cluster from IPv4 networks and addresses to IPv6
networks and addresses.

7 如果想只用IPV6则可以进行如下配置

7. Transition the network from using both protocols to using only IPv6 using the
following command:

如果想只用IPV6则可以进行如下配置

[root@eomsdb2 bin]# ./srvctl modify network -netnum 1  -iptype IPV6

Modify the VIP using a VIP name that resolves to IPv6 by running the following
command as  root :
# srvctl modify vip -node node_name -address vip_name -netnum
network_number

Do this once for each node.
9. Modify the SCAN using a SCAN name that resolves to IPv6 by running the
following command:
# srvctl modify scan -scanname scan_name
Do this once for the entire cluster.

6 如果本地监听不存在v6地址 配置 如下 ;

在 grid用户下的listener.ora文件中添加如下:

LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))(ADDRESS = (PROTOCOL = TCP)(HOST =2409:8002:5A06:0120:0010:0000:0002:D011)(PORT = 1521)(IP=FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST =2409:8002:5Ac06:0120:0010:0000:0002:D007)(PORT = 1521)(IP=FIRST))))
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))(ADDRESS = (PROTOCOL = TCP)(HOST =2409:8002:5A06:0120:0010:0000:0002:D011)(PORT = 1521)(IP=FIRST))(ADDRESS = (PROTOCOL = TCP)(HOST =2409:8002:5Ac06:0120:0010:0000:0002:D007)(PORT = 1521)(IP=FIRST))))
 #  增加ipv6的地址

第一行的listener进行注释

8 查看与连接V6

lsnrctl status listener_scan1

sqlplus system/ora#123@[IPV6ADDERSS]:1522/arsystem

8 清除IPV6配置:

1 关闭监听

2 关闭节点vip

3 关闭scan以及scan listener

[root@db1 bin]# ./srvctl stop scan_listener -i 1
[root@db1 bin]# ./srvctl stop scan
[root@db1 bin]# ./srvctl stop listener -n eomsdb1
[root@db1 bin]# ./srvctl stop listener -n eomsdb2
[root@db1 bin]# ./srvctl stop vip -n eomsdb1
[root@db1 bin]# ./srvctl stop vip -n eomsdb2
[root@db1 bin]# 
 

./srvctl modify network -netnum network_number -iptype ipv4

[root@orcldb1 bin]# ./oifcfg delif -global eno3/2409:8002:5A06:0120:0010:0000:0002:D000
[root@orcldb1 bin]# ./oifcfg getif

---清除VIP 在添加VIP

[root@orcldb1 bin]# ./srvctl remove vip -vip orcldb1-vip
Please confirm that you intend to remove the VIPs orcldb1-vip (y/[n]) y
[root@orcldb1 bin]# ./srvctl remove vip -vip orcldb2-vip
Please confirm that you intend to remove the VIPs orcldb2-vip (y/[n]) y

[root@orcldb1 bin]# ./srvctl add vip -node orcldb1 -netnum 1 -address 10.228.224.16/255.255.255.192/eno3
[root@orcldb1 bin]# ./srvctl add vip -node orcldb2 -netnum 1 -address 10.228.224.17/255.255.255.192/eno3
[root@orcldb1 bin]# ./srvctl modify vip  -node orcldb1 -netnum 1 -address 2409:8002:5A06:0120:0010:0000:0002:D010/116/eno3
[root@orcldb1 bin]# ./srvctl modify vip  -node orcldb2 -netnum 1 -address 2409:8002:5A06:0120:0010:0000:0002:D011/116/eno3

Modify the VIP using a VIP name that resolves to IPv4 by running the following
command as  root :
# srvctl modify vip -node node_name -address vip_name -netnum
network_number

Do this once for each node.


9. Modify the SCAN using a SCAN name that resolves to IPv4 by running the
following command:
# srvctl modify scan -scanname scan_name
Do this once for the entire cluster.

oifcfg delif -global eno3/2409:8002:5A06:0120:0010:0000:0002:D000:public  ??

实操案例总结1 

[root@orcl1 bin]# ./srvctl modify network -netnum 1 -iptype both
PRCN-3049 : Cannot change the network subnet address type to 'both' because it has only an IPv4 subnet address
[root@orcl1 bin]# ./srvctl modify scan -scanname orcl-scan
PRCS-1034 : Failed to modify Single Client Access Name orcl-scan
PRCS-1138 : invalid VIP addresses "2409:8002:5a06:120:10:0:2:d012" because the specified IP addresses are reachable


之前由于直接将节点1网卡down掉,所以地址都漂移到节点2

[root@orcl2 ~]# ifconfig -a
eno1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether c4:b8:b4:2e:b7:10  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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

eno2: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether c4:b8:b4:2e:b7:11  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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

eno3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.224.7  netmask 255.255.255.192  broadcast 192.168.224.63
        inet6 fe80::c6b8:b4ff:fe2e:b70f  prefixlen 64  scopeid 0x20<link>
        inet6 2409:8002:5a06:120:10:0:2:d007  prefixlen 116  scopeid 0x0<global>
        inet6 2409:8002:5a06:120:10:0:2:d010  prefixlen 116  scopeid 0x0<global>
        inet6 2409:8002:5a06:120:10:0:2:d011  prefixlen 116  scopeid 0x0<global>
        inet6 2409:8002:5a06:120:10:0:2:d012  prefixlen 116  scopeid 0x0<global>

        ether c4:b8:b4:2e:b7:0f  txqueuelen 1000  (Ethernet)
        RX packets 6649320  bytes 1190353795 (1.1 GiB)
        RX errors 0  dropped 811432  overruns 0  frame 0
        TX packets 4488188  bytes 1628576347 (1.5 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno3:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.224.17  netmask 255.255.255.192  broadcast 192.168.224.63
        ether c4:b8:b4:2e:b7:0f  txqueuelen 1000  (Ethernet)

eno3:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.224.18  netmask 255.255.255.192  broadcast 192.168.224.63
        ether c4:b8:b4:2e:b7:0f  txqueuelen 1000  (Ethernet)

eno4: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether c4:b8:b4:2e:b7:0e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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

ens3f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.2.0.121  netmask 255.255.255.0  broadcast 10.2.0.255
        inet6 fe80::360a:98ff:fe9c:ed3d  prefixlen 64  scopeid 0x20<link>
        ether 34:0a:98:9c:ed:3d  txqueuelen 1000  (Ethernet)
        RX packets 1264679191  bytes 1648029024996 (1.4 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1019686917  bytes 1257102142297 (1.1 TiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xa2600000-a26fffff  

ens3f0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.17.118  netmask 255.255.224.0  broadcast 169.254.31.255
        ether 34:0a:98:9c:ed:3d  txqueuelen 1000  (Ethernet)
        device memory 0xa2600000-a26fffff  

ens3f1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 34:0a:98:9c:ed:3e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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
        device memory 0xa2500000-a25fffff  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 79001912  bytes 164043179883 (152.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 79001912  bytes 164043179883 (152.7 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:2c:fa:86  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:2c:fa:86  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.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

节点2 重启网络  

service network restart

在线进行modify network模式前


[root@orcl1 bin]# ./srvctl modify scan -scanname orcl-scan
[root@orcl1 bin]# 

[grid@orcl1 ~]$ lsnrctl status listener_scan1

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 16:57:28

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:55:22
Uptime                    0 days 0 hr. 2 min. 5 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.18)(PORT=1521)))
Services Summary...
Service "orcl" has 2 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
  Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 2 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
  Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl1 ~]$ 

[root@orcl1 grid]# cd nbin
-bash: cd: nbin: No such file or directory
[root@orcl1 grid]# cd bin/
[root@orcl1 bin]# ./srvctl modify network -netnum network_number -iptype both
PRKO-2111 : Invalid number network_number for command line option netnum
[root@orcl1 bin]# ./srvctl modify network -netnum n^Ciptype both
[root@orcl1 bin]# ./srvctl config network
Network 1 exists
Subnet IPv4: 192.168.224.0/255.255.255.192/eno3, static
Subnet IPv6: 2409:8002:5a06:120:10:0:2:d000/116/eno3, static (inactive)
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
[root@orcl1 bin]# ./srvctl config vip -node1
PRKO-2002 : Invalid command line option: -node1
[root@orcl1 bin]# ./srvctl config vip -node orcl
PRKO-2310 : VIP does not exist on node orcl.
[root@orcl1 bin]# ./srvctl config vip -node orcl1
VIP exists: network number 1, hosting node orcl1
VIP Name: orcl1-vip
VIP IPv4 Address: 192.168.224.16
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d010 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl1 bin]# ./srvctl config vip -node orcl2
VIP exists: network number 1, hosting node orcl2
VIP Name: orcl2-vip
VIP IPv4 Address: 192.168.224.17
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d011 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl1 bin]# 

[root@orcl1 bin]# ps -ef|grep tns
root        816      2  0 16:39 ?        00:00:00 [netns]
grid      70758      1  0 16:41 ?        00:00:00 /u01/app/19c/grid/bin/tnslsnr ASMNET1LSNR_ASM -no_crs_notify -inherit
grid      77489      1  0 16:43 ?        00:00:00 /u01/app/19c/grid/bin/tnslsnr LISTENER -no_crs_notify -inherit
grid      90136      1  0 16:55 ?        00:00:00 /u01/app/19c/grid/bin/tnslsnr LISTENER_SCAN1 -no_crs_notify -inherit
root     117440 114119  0 16:59 pts/0    00:00:00 grep --color=auto tns
[root@orcl1 bin]# lsnrctl status
bash: lsnrctl: command not found...
[root@orcl1 bin]# su - grid
Last login: Wed Feb 15 16:57:53 CST 2023
[grid@orcl1 ~]$ lsnrctl satus

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 16:59:35

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

NL-00853: undefined command "satus".  Try "help"
[grid@orcl1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 16:59:38

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:43:12
Uptime                    0 days 0 hr. 16 min. 26 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.5)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.16)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX1", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ARCH" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OGG" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA1" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA2" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA3" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_REDO" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl1 ~]$ 


是否需要两个节点均激活 。

节点2 ;

[root@orcl2 bin]# ./srvctl config network
Network 1 exists
Subnet IPv4: 192.168.224.0/255.255.255.192/eno3, static
Subnet IPv6: 2409:8002:5a06:120:10:0:2:d000/116/eno3, static (inactive)
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
[root@orcl2 bin]# ./srvctl config vip -node orcl1
VIP exists: network number 1, hosting node orcl1
VIP Name: orcl1-vip
VIP IPv4 Address: 192.168.224.16
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d010 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl2 bin]# ./srvctl config vip -node orcl2
VIP exists: network number 1, hosting node orcl2
VIP Name: orcl2-vip
VIP IPv4 Address: 192.168.224.17
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d011 (inactive)
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl2 bin]# 

[grid@orcl2 ~]$ lsnrctl status listener

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 16:56:24

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:50:39
Uptime                    0 days 0 hr. 5 min. 44 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl2/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.7)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.17)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX2", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ARCH" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_OGG" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA1" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA2" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA3" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_REDO" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl2 ~]$ 

./srvctl modify network -netnum 1 -iptype both

在线进行modify network模式后

[root@orcl1 bin]# ./srvctl config network
Network 1 exists
Subnet IPv4: 192.168.224.0/255.255.255.192/eno3, static
Subnet IPv6: 2409:8002:5a06:120:10:0:2:d000/116/eno3, static
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
[root@orcl1 bin]# ./srvctl config vip -node orcl1
VIP exists: network number 1, hosting node orcl1
VIP Name: orcl1-vip
VIP IPv4 Address: 192.168.224.16
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d010
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 
[root@orcl1 bin]# ./srvctl config vip -node orcl2
VIP exists: network number 1, hosting node orcl2
VIP Name: orcl2-vip
VIP IPv4 Address: 192.168.224.17
VIP IPv6 Address: 2409:8002:5a06:120:10:0:2:d011
VIP is enabled.
VIP is individually enabled on nodes: 
VIP is individually disabled on nodes: 

[grid@orcl1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 17:03:06

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:43:12
Uptime                    0 days 0 hr. 19 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.16)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=2409:8002:5a06:120:10:0:2:d005)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.5)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=2409:8002:5a06:120:10:0:2:d010)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX1", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ARCH" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OGG" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA1" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA2" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA3" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_REDO" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl1 ~]$ lsnrctl status listener_scan1

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 17:03:18

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:55:22
Uptime                    0 days 0 hr. 7 min. 55 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.18)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=2409:8002:5a06:120:10:0:2:d012)(PORT=1521)))
Services Summary...
Service "orcl" has 2 instance(s).
  Instance "orcl1", status READY, has 2 handler(s) for this service...
  Instance "orcl2", status READY, has 2 handler(s) for this service...
Service "orclXDB" has 2 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
  Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl1 ~]$ 


节点2 确认
[grid@orcl2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-FEB-2023 16:58:14

Copyright (c) 1991, 2020, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                15-FEB-2023 16:50:39
Uptime                    0 days 0 hr. 7 min. 34 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19c/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/orcl2/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.17)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=2409:8002:5a06:120:10:0:2:d007)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.224.7)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=2409:8002:5a06:120:10:0:2:d011)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX2", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ARCH" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_OGG" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA1" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA2" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_ORADATA3" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "+ASM_REDO" has 1 instance(s).
  Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@orcl2 ~]$ 


[grid@orcl2 ~]$ srvctl config network 
Network 1 exists
Subnet IPv4: 192.168.224.0/255.255.255.192/eno3, static
Subnet IPv6: 2409:8002:5a06:120:10:0:2:d000/116/eno3, static
Ping Targets: 
Network is enabled
Network is individually enabled on nodes: 
Network is individually disabled on nodes: 
[grid@orcl2 ~]$ 

GGSCI (orcl1) 6> exit
[eoms@orcl1 ggs]$ more GLOBALS 
USEIPV4
[eoms@orcl1 ggs]$ netstat -tunlp|grep 7809
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:7809            0.0.0.0:*               LISTEN      146719/./mgr        
[eoms@orcl1 ggs]$ 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORACLE集群管理-19c RAC ipv6+IPV4双栈配置实战 的相关文章

  • Delphi 5 中的 Oracle 数据库连接

    我正在使用 Delphi 5 版本 我想连接到 Oracle 数据库 我有 TDatabase 组件 我不知道如何通过 Delphi 连接到数据库 请提供连接数据库的步骤 谢谢 The TDatabase http docwiki emba
  • Oracle 中的日期字符串(以毫秒为单位)

    我想将以下字符串转换为日期 2004 09 30 23 53 48 140000000 I tried to date YYYY MM DD HH24 MI SS FF9 But PL SQL http en wikipedia org w
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 从函数内的 SELECT 返回一个变量

    我正在尝试创建一个返回 varchar 的函数 其中一个字段形成一个选择 即聚合字段 我收到下一个错误 ORA 01422 exact fetch returns more than requested number of rows 我的理
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4

随机推荐

  • Android开发-CardView卡片View的详解,头条三面技术四面HR

    CardView一般用于需要显示阴影效果的UI 此外CardView还提供了圆角的功能 嘿嘿 这东西还能直接设置成圆形 可以简单的弄成圆形View CardView其实本身是使用FrameLayout 帧布局 所以它其实还是一个布局 引用
  • JavaScript冒泡排序与插入排序的原理

    冒泡排序 原理是临近的数字两两进行比较 按照从小到大或者从大到小的顺序进行交换 这样一趟过去后 最大或最小的数字被交换到了最后一位 图片示例 代码示例 var arr 5 8 3 4 5 9 1 4 5 9 6 3 8 for var i
  • anaconda 通过命令行执行 python 文件

    win10 中 anaconda 通过命令行执行 python 文件 点击三角按钮 在跳出的菜单栏中选择 Open Terminal 通过 python 文件名 py 执行
  • "res://ieframe.dll/dnserrordiagoff.htm"

    最近用vs2005做web应用程序的时候 遇到个奇怪的问题 有的时候点击某个链接 或者触发一个页面刷新的事件时 网页就会跳转成无法显示网页的状态 地址栏中的url是 res ieframe dll dnserrordiagoff htm 一
  • VMware vSphere Hypervisor 6 (ESXi) 免费许可证使用限制

    公司在虚拟化方面使用的是hyper v方案 但是windows的不稳定让人头疼 更新补丁和死机问题都需要定期重启 对于虚拟化平台简直就是灾难 最近在查看关于EXSi6的免费使用限制 没看到太多中文资料 在vmware论坛的Hyperviso
  • C# .net 使用RabbitMq讲解

    一 环境搭建 首先 由于RabbitMQ使用Erlang编写的 需要运行在Erlang运行时环境上 所以在安装RabbitMQ Server之前需要安装Erlang 运行时环境 可以到Erlang官网下载对应平台的安装文件 如果没有安装运行
  • 强引用、软引用、弱引用和虚引用的区别

    1 强引用 StrongReference 最普遍的一种引用方式 如String s abc 变量s就是字符串 abc 的强引用 只要强引用存在 则垃圾回收器就不会回收这个对象 2 软引用 SoftReference 用于描述还有用但非必须
  • ecshop漏洞修复整理

    1 ECShop存在一个盲注漏洞 问题存在于 api client api php文件中 提交特制的恶意POST请求可进行SQL注入攻击 可获得敏感信息或操作数据库 路径 api client includes lib api php 参照
  • ABAP常用系统变量 sy-

    直接在syst结构里面可以找到 abap系统变量 SY SUBRC 系统执行某指令后 表示执行成功与否的变量 0表示成功 SY DBLNT 被处理过的记录的笔数 SY UNAME 当前使用者登入SAP的USERNAME SY DATUM 当
  • Redis 基础总结

    1 NoSQL概述 1 1 数据库分类 目前数据库分 关系型数据库与非关系型数据库 常用的关系型数据库 Oracle MySQL SqlServer DB2 常用的非关系数据库 Redis MongoDB ElasticSearch Hba
  • python实现消消乐小游戏

    import random import time 游戏面板大小 BOARD SIZE 10 图案种类数 PATTERN COUNT 4 相邻图案个数 ADJACENT COUNT 3 游戏时间限制 秒 GAME TIME 60 得分表 S
  • 记录Vue3+ts+ElementPlus 多层级表头动态表格创建

    因为工作需要 需要一个如上图 不确定层级的 多层级表头的表格 搜索网上的方法 多为vue2 element ui的方法 查到的vue3 Element plus的方法仅为建立两层级表格 经借鉴大神方法并修改成功 供自己留存 大神略过 一 创
  • Unity3D开发之Matrix4x4矩阵变换

    在Unity开发中时常会用到Matrix4x4矩阵来变换场景中对象的位置 旋转和缩放 但是很多人都不太理解这儿Matrix4x4变换矩阵 通过DX中的变换矩阵我来讲一讲在unity中这个变换矩阵是怎么变换的 在三维图形程序中 我们可以用几何
  • 稀疏数组(最详解)

    概念 当一个数组中大部分元素为0 或者为同一值的数组时 可以使用稀疏数组来保存该数组 稀疏数组的处理方式是 记录数组一共有几行几列 有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中 从而缩小程序的规模 如下图 左边是原始
  • 左手坐标系和右手坐标系

    转自 https blog csdn net xiaoluoshan article details 53384103 基本的数学知识 左手坐标系和右手坐标系 这些对于搞图像开发或者游戏开发的朋友来说 应该是很基础的东西 不过对于大部分人来
  • VB mschart控件的使用

    一 先看个小例子 Private Sub Form Load Dim MyData 20 1 As Double x轴坐标值 Y轴坐标值 MyData 0 0 0 MyData 0 1 180 本句代表了 第一点数据的X轴坐标为0 Y轴坐标
  • UCOS2的文件目录

    想着闲着也是闲着 把之前学习ucos2源码的笔记整理一下 复盘一次 总结内容将其写为博客作为学习的输出 一 为什么要学RTOS或者IOTOS 我在大一时 开始进入实验室接触单片机 摸爬滚打的参加了几次比赛 也因此入了嵌入式的坑 大三时开始思
  • 一位年薪40W的测试被开除,回怼的一番话,令人沉思

    一位年薪40W测试工程师被开除回怼道 反正我有技术 在哪不一样 一技傍身 万事不愁 当我们掌握了一技之长后 在职场上说话就硬气了许多 不用担心被炒 反过来还可以炒了老板 这一点在码农界特别明显 许多测试人在辞职时 都有一种心态 烂公司 烂领
  • 学习第一天const

    constant 指针与const const char a 指向const对象的指针或者说指向常量的指针 char const a 同上 char const a 指向类型对象的const指针 或者说常指针 const指针 const c
  • ORACLE集群管理-19c RAC ipv6+IPV4双栈配置实战

    关于IPV6支持问题 单实例环境要支持IPV6 数据库版本至少11 2 0 4版本 其实从linux7开始系统默认开启ipv6 怎么确认ipv6是否开启呢 下面介绍两种常见的方法 1 通过查看网卡属性确定 ifconfig a 命令输出有