oracle 11g rac R2 for linux changepublic,vipIP ,hostname (oracle 11g rac R2 修改公有,虚拟,私有IP,网卡

<p align="left">结构如下:


<p align="left">

<img src="https://www.jb51.cc/res/2019/01-18/19/28c8ae6d108512a31288cc754081ed0f.png" alt="">

<p align="left"> 


<p align="left">说明:


<p align="left">节点IP,主机名的修改步骤来自ORACLE support文档:

如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)

<p align="left">实验环境情况如下:

<div align="center">
<table class="10" style="width: 862px" border="1" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" width="224">
<p align="center">实验


</td>
<td valign="top" width="213">
<p align="center">节点名称


</td>
<td valign="top" width="165">
<p align="center">数据库实例名


</td>
<td valign="top" width="142">
<p align="center">操作系统


</td>
<td valign="top" width="118">
<p align="center">数据库版本


</td>
</tr>
<tr>
<td valign="top" width="224">
<p align="center">公网IP/vip修改


</td>
<td valign="top" width="213">
<p align="center">rac1/rac3(旧机器)


</td>
<td valign="top" width="165">
<p align="center">ogg1/ogg3


</td>
<td valign="top" width="142">
<p align="center">Linux 6.X


</td>
<td rowspan="3" valign="top" width="118">
<p align="center"> 


<p align="center"> 


<p align="center">Oracle


<p align="center">11.2.0.4


</td>
</tr>
<tr>
<td valign="top" width="224">
<p align="center">公网网卡/vip网卡修改


</td>
<td valign="top" width="213">
<p align="center">rac1/rac2(新机器)


</td>
<td valign="top" width="165">
<p align="center">orcl1/orcl2


<p align="center">racdb1/racdb2


</td>
<td valign="top" width="142">
<p align="center">Linux 6.X


</td>
</tr>
<tr>
<td valign="top" width="224">
<p align="center">Private IP/网卡修改


</td>
<td valign="top" width="213">
<p align="center">rac1/rac2(新机器)


</td>
<td valign="top" width="165">
<p align="center">orcl1/orcl2


<p align="center"> 


</td>
<td valign="top" width="142">
<p align="center">Linux 6.X


</td>
</tr>

注意:

在我们修改RAC的IP 地址之前,我们需要先备份一下OCR 和GPNP profile 文件,因为IP 地址信息是记录在OCR中的,从Oracle 11.2.0.2 之后,private network 的配置除了记录在OCR中之外,还会记录在GPNP profile里。

--任意一节点手工执行OCR的备份

[root@rac1 ~]# /u01/app/11.2.0/grid/bin/ocrconfig -manualbackup

查看ocr的手工备份:

[root@rac1 ~]# /u01/app/11.2.0/grid/bin/ocrconfig –showbackup

用grid用户两个节点执行备份:

$ cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer/

$ cp -p profile.xml profile.xml.bak

<p align="center"> 

 1. 修改公网对应的主机名

1.  步骤

集群公网对应的主机名是在安装时输入的,并且被记录在 OCR 中。这个主机名在安装之后是不能修改的。唯一的修改方法是删除节点,修改主机名,之后将节点重新添加到集群,或者直接重新安装集群软件,并完成后续的克隆配置。

 2. 只修改公网 IP或者VIP

注意:

以下的修改可以使用滚动的方式完成,例如:每次修改一个节点。

只修改公网 IP或者VIP,但是不修改网卡、子网或网络掩码信息,或者只是修改MAC地址,而不需要修改其他信息;

如果只需要修改公网 IP 地址或者VIP,而且新的地址仍然在相同的子网和相同的网络接口上,或者只是修改公网IP的MAC地址,IP/interface/subnet/netmask仍旧保持不变,集群层面不需要做任何修改,所有需要的修改是在OS层面反映IP地址的变化。

1.  关闭 Oracle 集群管理软件

1、关闭监听

grid可以分别执行lsnrctl stop

 2、关闭数据库

srvctl stop database -d ogg

 

3、关闭集群软件

所有节点ROOT关闭:

/u01/app/11.2.0/grid/bin/crsctl stop has

 

2. 修改

在网络层面,DNS和/etc/hosts文件中修改IP地址,或者直接修改MAC地址

查看IP详细情况:

 

# racdg1

172.16.10.220  racdg1

172.16.10.222  racdg1-vip

192.168.10.220 racdg1-priv

# scan-ip

172.16.10.225 scandg-vip

# racdg3

172.16.10.231  racdg3

172.16.10.232  racdg3-vip

192.168.10.231 racdg3-priv

 1. 现在需要修改成:

# racdg1

172.16.10.200  racdg1

172.16.10.202  racdg1-vip

192.168.10.220 racdg1-priv

# scan-ip

172.16.10.225 scandg-vip

# racdg3

172.16.10.211  racdg3

172.16.10.212  racdg3-vip

192.168.10.231 racdg3-priv

2. 以及网卡信息也进行修改

vi /etc/sysconfig/network-scripts/ifcfg-bond0

IPADDR=XXX

3. 重新启动 Oracle 集群管理软件

ROOT启动:

/u01/app/11.2.0/grid/bin/crsctl start has

查看修改后的IP以及集群资源状态:

 

由于我是公有IP 和VIP一起修改,VIP 节点1,节点3都正常。

节点1:

 

节点3:

 

节点PUBLIC,VIP修改成功。

 3. 改公网网卡(子网或网络掩码信息)

1. 说明

注意:

如果修改涉及到了不同的子网(网络掩码)或者网卡,需要将 OCR 中已经存在的网卡信息删除并重新添加新的信息。在以下的示例中子网从 172.16.10.X修改为 172.16.20.X,需要执行两个步骤 –首先’delif’,接下来 ‘setif’:

然后,在操作系统层面进行修改。除非 OS 层面的修改需要重新启动节点,否则不需要重启 Oracle 集群管理软件。修改可以使用滚动的方式完成。

一旦公网信息被修改,与其相关的 VIP 和 SCAN VIP 也需要修改,请参考情况4和情况5。

2. 修改

情况介绍:

 

节点1运行的VIP,SCAN-IP,PUBLIC如下:

 

节点2运行的VIP,PUBLIC IP如下:

 

现在需要修改成公有网卡的信息如下(早就准备好网卡和IP):

节点1:

节点2:

 

即把原先172.16.10.X换成,172.16.20.X。

对于ORACLE 11G R2.需要两个节点执行以下,命令,且由于更改后,VIP,SCAN-IP都需要相应的修改成对于网卡的网段IP,数据库不需要停,但是业务用不了VIP,所以还是建议停止数据库。

SUPPORT官方模板如下:

% $CRS_HOME/bin/oifcfg/oifcfg delif -global [/]

% $CRS_HOME/bin/oifcfg/oifcfg setif -global /:public

例如:

% $CRS_HOME/bin/oifcfg delif -global eth0/10.2.156.0

% $CRS_HOME/bin/oifcfg setif -global eth0/10.2.166.0:public

以下操作步骤:

  • 停止数据库

srvctl stop database -d racdb

 

  • 修改公网网卡

查看信息:

/u01/app/11.2.0/grid/bin/oifcfg iflist

修改:(先删除,在添加,这里IP 地址最一个为0,代表的是一个网段。)

注意: 11gR2,删除命令要求集群在所有节点运行,否则报错PRIF-33 和 PRIF-32。

l  节点1删除:

/u01/app/11.2.0/grid/bin/oifcfg delif -global eth0/172.16.10.0

 

l  节点2删除;

 

l  节点1和节点2添加公网网卡:

/u01/app/11.2.0/grid/bin/oifcfg setif -global eth2/172.16.20.0:public

 

/u01/app/11.2.0/grid/bin/oifcfg setif -global eth2/172.16.20.0:public

 

修改后验证:

节点1:

/u01/app/11.2.0/grid/bin/oifcfg getif -global

 

节点2:

/u01/app/11.2.0/grid/bin/oifcfg getif –global

 

修改成功(后续还需要修改VIP,SCAN-IP)。

 4. 修改 VIP 相关的公网信息

 1. 说明

一般而言,只有 10.2.0.3 之前的版本需要完全的停机。从 10.2.0.3 开始,ASM 和数据库实例对 VIP 资源的依赖关系已经被删除,所以修改 VIP 不需要停止 ASM 和数据库实例,只有当修改 VIP 时产生的客户端连接会受影响。如果修改只涉及到特定的节点,那么只有连接到对应节点的客户端链接在修改时会受影响。

首先,请参考情况3以确保公网信息被修改。如果在 OS 层面的网络修改后发生了节点或者集群管理软件重启,VIP 将不会被启动,请跳过步骤“修改 VIP 和相关属性”。

 2. 修改步骤

11g RAC R2修改如下

1、查看节点1,节点2 VIP相关公网信息

节点1:

 

节点2:

版本 10g 和 11gR1,使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl config nodeapps -n -a

例如:

$ srvctl config nodeapps -n racnode1 -a

VIP exists.: /racnode1-vip/101.17.80.184/255.255.254.0/eth1

2、查看VIP 状态

crsctl stat res -t

 

3、停止 nodeapps 资源 (如果有必要的话,停止存在依赖关系的 ASM 和数据库资源):

对于版本 10g 和 11gR1,使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl stop instance -d -i    (对于 10.2.0.3 及以上版本,可以忽略)

$ srvctl stop asm -n                      (对于 10.2.0.3 及以上版本,可以忽略)

$ srvctl stop nodeapps -n

例如:

$ srvctl stop instance -d RACDB -i RACDB1

$ srvctl stop asm -n racnode1

$ srvctl stop nodeapps -n racnode1

对于版本 11gR2,使用 Grid Infrastructure 的拥有者执行下面的命令:

$ srvctl stop instance -d -n    (可以忽略)

$ srvctl stop vip -n -f

例如:

$ srvctl stop instance -d RACDB -n racnode1

$ srvctl stop vip -n racnode1 -f  (11gR2需要使用 -f 选项停止 listener 资源,否则会报错误)

由于我的数据库已经停止,直接停止节点vip资源。

srvctl stop vip -n rac1 -f

srvctl stop vip -n rac2 -f

 

查看:

 

停止成功。

4. 确定新的 VIP 地址/子网/网络掩码或者 VIP 对应的主机名,在 OS 层面修改网络配置信息,确认新的 VIP 地址应经注册到 DNS 或者确认 /etc/hosts 文件(Unix/Linux 平台),\WINDOWS\System32\drivers\etc\hosts 文件(Windows平台)已经被修改。如果网卡信息被修改,确认在修改之前新的网卡在服务器上已经可用。

原来VIP:

 

现在修改成:

 

5、使用 root 用户修改 VIP 资源

# srvctl modify nodeapps -n -A //<[if1[if2...]]>

例如:

# srvctl modify nodeapps -n racnode1 -A racnode1-nvip/255.255.255.0/eth2

注意 1:

从版本 11.2 开始,VIP 依赖于 network 资源(ora.net1.network),OCR 只记录 VIP 主机名或者 VIP 资源相关的 IP 地址。集群公网的属性(子网/网络掩码)通过网络资源记录。当 nodeapps 资源被修改后,network资源(ora.net1.network)相关的属性也会随之被修改。

从 11.2.0.2 开始,如果只修改子网/网络掩码信息,网络资源可以通过以下的 srvctl modify network 命令直接修改。

使用 root 用户:

# srvctl modify network -k ] [-S /[/if1[|if2...]]

例如:

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2

如果其他属性没有变化,不需要修改 VIP 或 SCAN VIP。

注意 2:

在12.1.0.1的版本上由于Bug 16608577 - CANNOT ADD SECOND PUBLIC INTERFACE IN ORACLE 12.1,srvctl modify network 的命令会失败并提示:

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2

PRCT-1305 : The specified interface name "eth2" does not match the existing network interface name "eth1"

需要通过以下workaround来解决:

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2

11G R2修改VIP如下;

帮助命令:

/u01/app/11.2.0/grid/bin/srvctl modify nodeapps -n rac1 -h

 

修改如下:

节点1:

/u01/app/11.2.0/grid/bin/srvctl modify nodeapps -n rac1 -A rac1-vip/255.255.255.0/eth2

 

节点2:

/u01/app/11.2.0/grid/bin/srvctl modify nodeapps -n rac2 -A rac2-vip/255.255.255.0/eth2

 

查看修改:

/u01/app/11.2.0/grid/bin/srvctl config nodeapps -a

节点1:

节点2:

 

修改成功。

 3. 11gR2 修改 VIP 主机名

11gR2 修改 VIP 主机名,但是不修改IP地址;如果即需要修改VIP,又需要修改主机名,建议先修改IP,再修改主机名。

只把 VIP 主机名从 racnode1-vip 修改为 racnode1-nvip,IP 地址和其他属性保持不变。

如果 IP 地址保持不变,以上的命令将不会改变命令‘crsctl stat res ora.racnode1.vip -p’的输出中项目 USR_ORA_VIP 的值。请使用下面的命令:

# crsctl modify res ora.racnode1.vip -attr USR_ORA_VIP=racnode1-nvip

验证项目 USR_ORA_VIP 的改变:

# crsctl stat res ora.racnode1.vip -p |grep USR_ORA_VIP

实验室把:rac1-vip,rac2-vip改成:rac1vip,rac2vip

操作如下:

crsctl stat res -t

 

$ srvctl stop instance -d -n    (可以忽略)

$ srvctl stop vip -n -f

操作如下:

[grid@rac2 ~]$ srvctl stop database -d orcl

[grid@rac2 ~]$ srvctl stop vip -n rac1 -f

[grid@rac2 ~]$ srvctl stop vip -n rac2 -f

 

crsctl stat res -t

 

任意一节点修改VIP:

 

/u01/app/11.2.0/grid/bin/crsctl modify res ora.rac1.vip -attr USR_ORA_VIP=rac1vip

/u01/app/11.2.0/grid/bin/crsctl modify res ora.rac2.vip -attr USR_ORA_VIP=rac2vip

 

验证修改VIP-HOSTNAME是否成功:

/u01/app/11.2.0/grid/bin/crsctl stat res ora.rac1.vip -p |grep USR_ORA_VIP

/u01/app/11.2.0/grid/bin/crsctl stat res ora.rac2.vip -p |grep USR_ORA_VIP

 

修改所有节点/etc/hosts

修改后结果:

 

启动VIP:

srvctl start vip -n rac1

srvctl start vip -n rac2

 

查看修改后的结果:

 

修改成功。

启动 nodeapps 和其它资源

对于版本 10g 和 11gR1,使用 Oracle 集群管理软件的拥有者执行下面的命令:

$ srvctl start nodeapps -n       

$ srvctl start asm -n                (对于 10.2.0.3 及以上版本,可以忽略)

$ srvctl start instance -d -i    (对于 10.2.0.3 及以上版本,可以忽略)

例如:

$ srvctl start nodeapps -n racnode1

$ srvctl start asm -n racnode1

$ srvctl start instance -d RACDB -i RACDB1

对于版本 11gR2,使用 Grid Infrastructure 的拥有者执行下面的命令:

$ srvctl start vip -n

$ srvctl start listener -n

$ srvctl start instance -d -n (可以忽略)

例如:

$ srvctl start vip -n racnode1

$ srvctl start listener -n racnode1

$ srvctl start instance -d RACDB -n racnode1

[grid@rac1 peer]$ srvctl start vip -n rac1

[grid@rac1 peer]$ srvctl start vip -n rac2

 

注意:如果网络的属性做了修改,比如netmask 等做了修改,需要重新启动nodeapps

 验证新的 VIP 状态为 ONLINE 并且已经绑定到集群公网网卡

$ crs_stat -t (对于版本 11gR2,使用命令 $ crsctl stat res –t)

 

$ ifconfig -a

(HP 平台请使用 netstat –in,Windows 平台请使用 ipconfig /all)

如果集群中的其它节点也需要类似的改变,请重复同样的步骤。

其它

如果需要,修改 listener.ora,tnsnames.ora 和 LOCAL_LISTENER/REMOTE_LISTENER 参数反应 VIP 的改变。

注意: ASM和DB实例的LOCAL_LISTENER参数,是GI自动设置的。VIP的改变,LOCAL_LISTENER会自动识别,并生效。但是由于Bug 22824602,一些特定情况下。 LOCAL_LISTENER参数没有反应 VIP 的改变。workaround解决方法是重启受影响的节点的集群软件。

5. 修改SCAN-IP

注意: 文档来自SUPPORT ID 952903.1(本次只是修改SCAN IP,不修改SCAN端口)

1、停止资源

$ $GRID_HOME/bin/srvctl stop scan_listener

$ $GRID_HOME/bin/srvctl stop scan

 

查看:

 

停止成功。

2、修改SCAN IP

查看之前的SCAN:

/u01/app/11.2.0/grid/bin/srvctl config scan

 

修改SCAN IP:

修改所有/etc/hosts scan-ip

 

/u01/app/11.2.0/grid/bin/srvctl modify scan -n scan-vip (一边修改即可)

 

查看是否修改成功:

节点1:

 

节点2:

 

修改成功。

启动SCAN到节点1

srvctl start scan -n rac1

 

crsctl stat res -t

 

 6. 更改私有主机名

文档来自support ID 2103317.1,在 11.2 oracle clusterware 之前的版本,私有主机名被记录在 OCR 中,它不能被更改,一般情况下私有主机名是不需要改变的,它附属的ip 可以被更改,只有使用删除/添加节点或重新安装 oracle clusterware 来更改私有主机名。

在 11.2 Grid 结构中,私有主机名不在记录在 OCR 中,并且不存在依赖关系,所以它可以在 /etc/hosts 文件中任意更改。

 7. 只更改私有 ip 地址

只更改私有 ip 地址不更改网卡、子网及子网掩码信息,不更改网卡、子网及子网掩码信息。

私有 ip

节点1地址 192.168.10.21 更改至 192.168.10.31;

节点2地址:192.168.10.22 更改至 192.168.10.32;

网卡名字及子网保持不变。或者只改变MAC地址,保持private IP address/interface name/subnet/network不变

只要关闭需要更改主机上的 oracle clusterware 软件,在操作系统层,根据需求更改私有 ip 地址或者MAC地址(如:/etc/hosts,OS network config 等等),再重启启动 oracle clusterware 软件即可。

查看当前的私有IP地址:

 

两个节点关闭数据后,关闭集群资源,操作系统层面修改IP。

/u01/app/11.2.0/grid/bin/crsctl stop has ROOT停止集群资源,然后修改IP,重启网络服务

service network restart

/u01/app/11.2.0/grid/bin/crsctl start has 启动集群服务

查看修改是否成功:

节点1:

 

节点2:

 

修改成功。

 8. 只改变私有网络的 MTU 值

将私有网络 MTU 值从1500更改至9000(激活 jumbo frame),网卡名字保持不变。

1. 关闭集群中的所有节点。

2. 在操作系统层更改 MTU 需要设定的值,确保更改后 MTU 值的私有网卡可用并且可以 ping 通集群中的所有节点。

3. 重启所有节点的集群管理软件

9. 更改私有网卡名字,子网及掩码

提示:当子网掩码被更改,但是子网标识没有改变时,如:

子网掩码从 255.255.0.0 更改至 255.255.255.0,私网 ip 为 192.168.10.x,子网标识保持不变 192.168.10.0,网卡名字没有改变.关闭所有需要更改的主机 oracle clusterware,在操作系统层修改私有网络IP地址(如:操作系统 网络配置等等)。并重启集群中所有节点,请注意,这种更改是不能采用轮转方式(rolling manaer)完成的。

当子网掩码被改变,附属的子网标识也经常会被改变,oracle 在 OCR 中只存储网卡名字及子网标识的信息,而不存储子网掩码。可以使用oifcfg命令完成这样的变更,oifcfg 命令只需在集群中的一个节点执行,而不是所有节点。

 1. 11gR2以前的集群管理软件

1. 使用 oifcfg 命令添加新的私有网络信息,删除旧的私有网络信息:

% $ORA_CRS_HOME/bin/oifcfg/oifcfg setif -global /:cluster_interconnect

% $ORA_CRS_HOME/bin/oifcfg/oifcfg delif -global [/]]

举例:

% $ORA_CRS_HOME/bin/oifcfg setif -global eth3/192.168.2.0:cluster_interconnect

% $ORA_CRS_HOME/bin/oifcfg delif -global eth1/192.168.1.0

校验结果

% $ORA_CRS_HOME/bin/oifcfg getif  

eth0 10.2.166.0 global public

eth3 192.168.2.0 global cluster_interconnect

2. 关闭 Oracle Clusterware

使用 root 用户执行: # crsctl stop crs

3. 在操作系统层面更改网络配置,修改集群内所有节点的 /etc/hosts 文件,确保集群内所有节点新的网络设置都已生效:

% ping

% ifconfig -a  on Unix/Linux

% ipconfig /all on windows

4. 重新启动 Oracle Clusterware

以 root 用户:# crsctl start crs

提示:如果在 linux 系统上正在运行 OCFS2,则可能还需要更改 OCFS2 运行在其它节点的私有 ip 地址

2. 11gR212c上没有使用flex ASM 的版本

针对于 11.2 的结构,私有网络配置信息不但保存在 OCR 中,而且还保存在 gpnp 属性文件中。如果私有网络不可用或定义错误,则 CRSD 进程将无法启动,任何随后对于 OCR 的改变都是不可能完成的,因此需要注意当对私有网络的配置信息进行修改,正确的改变顺序是非常重要的。同时请注意,手动修改 gpnp 属性文件是不支持的。

在对集群中所有节点操作之前,请先备份 profile.xml 配置文件。作为 grid 用户执行:

用grid用户两个节点执行备份(首页也说过的):

$ cd $ORACLE_HOME/gpnp/`hostname`/profiles/peer/

$ cp -p profile.xml profile.xml.bak

  • 确保集群中的所有节点都已启动并正常运行

[grid@rac1 ~]$ crsctl stat res –t

  • 使用 grid 用户获取网卡

$ oifcfg getif

节点1:

 

节点2:

 

都是用的eth1网卡,192.168.10.0 网段。

  • 现在要把私有网卡修改成:eth3/192.168.20.0(注意,都是先添加,后删除,官方没有说那个节点执行,测试只需要一个节点执行,且网卡名称要所有节点一样)

节点1,节点2加入新的集群私网通讯信息:

$ oifcfg setif -global /:cluster_interconnect

节点1:

oifcfg getif

oifcfg setif -global eth3/192.168.20.0:cluster_interconnect

oifcfg getif

 

节点2:

oifcfg setif -global eth3/192.168.20.0:cluster_interconnect

oifcfg getif

 

以下是官方模板命令:

例如:

a. 加入新的并有相同子网的接口卡 bond0

$ oifcfg setif -global bond0/192.168.0.0:cluster_interconnect

b. add a new subnet with the same interface name but different subnet or new interface name

$ 添加一个新的子网具有相同网卡的名称但不同的子网或新的网卡名

$ oifcfg setif -global eth3/192.168.1.96:cluster_interconnect

注意:

1. 如果网卡不可用,需要使用 -global 选项来完成,而不能使用 –node 选项,它将导致节点被驱逐。

2. 如果网卡在服务器上可用,则可以使用下面命令识别子网地址:

$ oifcfg iflist

它列出了网卡及子网地址,即使 oracle 集群没有启动,此命令也可以被执行。请注意,子网掩码有可能不是 x.y.z.0 的格式,它可以是 x.y.z.24,x.y.z.64 或 x.y.z.128 等格式。如:

$ oifcfg iflist

lan1 18.1.2.0

lan2 10.2.3.64        << 这是一个私有网络子网地址附属的私有网络 ip 地址为 10.2.3.86

3. 如果需要添加第二个私有网络,而不是替换现有的私有网络,则需要保证两个网卡的 MTU 值相同,否则实例将无法启动并报如下错误信息:

ORA-27504: IPC error creating OSD context

ORA-27300: OS system dependent operation:if MTU failed with status: 0

ORA-27301: OS failure message: Error 0

ORA-27302: failure occurred at: skgxpcini2

ORA-27303: additional information: requested interface lan1:801 has a different MTU (1500) than lan3:801 (9000),which is not supported. Check output from ifconfig command

4. 对于 11gR2 或更高版本,不建议在 ASM 或 database 的 spfile 或 pfile 中设置 cluster interconnects 参数。无论什么原因如果设置了该参数,则需要在集群关闭之前需将新的私网 ip 地址设置在 spfile 或 pfile 中,否则它会由于私网信息不匹配而导致重启失败。

  • 使用 root 用户关闭集群中所有的节点并禁用集群:

节点1,2执行以下命令:

/u01/app/11.2.0/grid/bin/crsctl stop crs

 

/u01/app/11.2.0/grid/bin/crsctl disable crs

 

  • 使网络配置信息都已在 OS 层更改完成,确保更改完成后新的接口在所有的节点都可用有效:

1.修改所有节点/etc/hosts 文件。

 

2.OS所有节点修改私网IP

 准备好所有节点即将更改的私有网卡,并且配置好即将修改的私有地址(OS层提前修改好)。

  • 使用 root 用户激活 oracle 集群并重新启动集群中的所有节点:

/u01/app/11.2.0/grid/bin/crsctl enable crs

/u01/app/11.2.0/grid/bin/crsctl start crs

节点1:

 

节点2:

 

  • 如果需要去除旧接口卡信息:

$ oifcfg delif -global [/]

任意一节点执行:

例如节点2:

oifcfg delif -global eth1/192.168.10.0

oifcfg getif

 

节点1查看:

oifcfg getif

 

 3. 对于 12C flex ASM 结构(support 原文,没有环境测试)

请检查上面部分,并关注提示部分,按下面命令做备份:

在对集群中所有节点操作之前,请先备份 profile.xml 配置文件。 作为 grid 用户执行:

$ cd $GRID_HOME/gpnp//profiles/peer/

$ cp -p profile.xml profile.xml.bk

1. 确保 oracle 集群中的所有节点都已正常运行。

2. 使用 grid 用户:

得到现有信息,如下:

$ oifcfg getif

eth1 100.17.10.0 global public

eth0 192.168.0.0 global cluster_interconnect,asm

上面例子显示网卡 ech0 被用作集群私网和 ASM 网络。

加入新的集群私网信息:

$ oifcfg setif -global /:cluster_interconnect[,asm]

如:

a. 加入一个新的具有相同子网网卡 bond0

$ oifcfg setif -global bond0/192.168.0.0:cluster_interconnect,asm

b. 加入一个新的并具有相同网卡名字的子网,或不同子网和具有新的接口名字

$ oifcfg setif -global eth0/192.68.10.0:cluster_interconnect,asm

$ oifcfg setif -global eth3/192.168.1.96:cluster_interconnect,asm

 如果有不同的网络用于私有网络和 ASM 网络,则可以对其进行相应的调整。

3. 当 ASMLISTENER 正被用作私有网络,如果对其修改则会影响 ASMLISTENER。需要添加一个新的 ASMLISTENER 及新的网络配置。如果 ASM 的子网网络没有改变则跳过这一步。

3.1. 加入一个新的 ASMLISTENE(例:ASMNEWLISNR_ASM)及新的子网,使用 grid 用户:

$ srvctl add  listener -asmlistener -l -subnet

如:

$ srvctl add listener -asmlistener -l ASMNEWLSNR_ASM -subnet 192.168.10.0

3.2. 删除现有的 ASMLISTENER(这个例子中 ASMLSNR_ASM)并去除依赖关系,使用 grid 用户:

$ srvctl update listener -listener ASMLSNR_ASM -asm -remove -force

$ lsnrctl stop ASMLSNR_ASM

注意. 需要使用 –force 选项,否则会出现下面错误:

$ srvctl update listener -listener ASMLSNR_ASM -asm -remove

PRCR-1025 : Resource ora.ASMLSNR_ASM.lsnr is still running

$ srvctl stop listener -l ASMLSNR_ASM

PRCR-1065 : Failed to stop resource ora.ASMLSNR_ASM.lsnr

CRS-2529: Unable to act on 'ora.ASMLSNR_ASM.lsnr' because that would require stopping or relocating 'ora.asm',but the force option was not specified

3.3 校验配置信息:

$ srvctl config listener -asmlistener

$ srvctl config asm

4. 使用 root 用户关闭集群中的所有节点并禁用集群:

# crsctl stop crs

# crsctl disable crs

5. 在操作系统层面更改网络配置,更改之后,确保所有节点上的新网卡生效:

$ ifconfig -a

$ ping

6. 使用 root 用户激活 oracle 集群并重新启动集群中的所有节点:

# crsctl enable crs

# crsctl start crs

7. 删除旧的网卡信息:

$ oifcfg delif -global [/]

如:

$ oifcfg delif -global eth0/192.168.0.0

 10.关于 11gR2 的一些注意事项

1. 关于 11gR2 的一些注意事项

1. 如果底层网络配置已经更改, 但是 oifcfg 尚未执行同样的变更,则重启 oracle 集群会导致 crsd 进程不能启动。

crsd.log 日志将会显示如下:

2010-01-30 09:22:47.234: [ default][2926461424] CRS Daemon Starting

..

2010-01-30 09:22:47.273: [ GPnP][2926461424]clsgpnp_Init: [at clsgpnp0.c:837] GPnP client pid=7153,tl=3,f=0

2010-01-30 09:22:47.282: [ OCRAPI][2926461424]clsu_get_private_ip_addresses: no ip addresses found.

2010-01-30 09:22:47.282: [GIPCXCPT][2926461424] gipcShutdownF: skipping shutdown,count 2,from [ clsinet.c : 1732],ret gipcretSuccess (0)

2010-01-30 09:22:47.283: [GIPCXCPT][2926461424] gipcShutdownF: skipping shutdown,count 1,from [ clsgpnp0.c : 1021],ret gipcretSuccess (0)

[ OCRAPI][2926461424]a_init_clsss: failed to call clsu_get_private_ip_addr (7)

2010-01-30 09:22:47.285: [ OCRAPI][2926461424]a_init:13!: Clusterware init unsuccessful : [44]

2010-01-30 09:22:47.285: [ CRSOCR][2926461424] OCR context init failure. Error: PROC-44: Error in network address and interface operations Network address and interface operations error [7]

2010-01-30 09:22:47.285: [ CRSD][2926461424][PANIC] CRSD exiting: Could not init OCR,code: 44

2010-01-30 09:22:47.285: [ CRSD][2926461424] Done.

以上错误显示操作系统层面的设置(oifcfg iflist)与 gpnp profile.xml 配置文件设置不匹配。

解决方法:恢复操作系统网络配置到最初的状态,启动 oracle 集群,然后再按照上面的步骤重新更改。

如果底层的网络并没有改变,但 oifcfg 已经被设置了一个错误的子网地址或接口名字,则会发生同样的问题。

2. 如果集群中的任何一个节点关闭,oifcfg 命令将会失败并显示错误:

$ oifcfg setif -global bond0/192.168.0.0:cluster_interconnect

PRIF-26: Error in update the profiles in the cluster

解决方案:启动 oracle 集群中没有运行的节点,确保集群中所有的节点都已启动,如果由于操作系统原因不能启动的节点,请先将此节点从集群中删除在执行私网网络变更。

3. 如果执行上面命令的的用户非 GI 的拥有者,则会出现相同的错误:

$ oifcfg setif -global bond0/192.168.0.0:cluster_interconnect

PRIF-26: Error in update the profiles in the cluster

解决方案:确保使用 GI 的拥有者登录并执行上面命令。

4. 从 11.2.0.2 开始,如果在没有加入一个新私有网卡,就试图删除最后一个私有网卡(集群私网)则会发生下面错误:

PRIF-31: Failed to delete the specified network interface because it is the last private interface

解决方案:在删除旧的私有网卡之前,先加入新的私有网卡。

5. 如果主机节点的 oracle 集群关闭在关闭状态,则会报下面错误:

$ oifcfg getif

PRIF-10: failed to initialize the cluster registry

解决方案:启动该主机节点上的 oracle 集群软件。

 2. 关于 Windows 系统注意事项

更改网卡的语法在 windows/RAC 和Unix/Linux 集群是一样的,但是网卡名称会略有不同,在 windows 系统上,默认分配给接口通常的名称为:

Local Area Connection

Local Area Connection 1

Local Area Connection 2

如果使用一个网卡名称含有空格,则名称必须使用引号括起来,同时,请注意这是区分大小写的。例如,在 windows上,设置集群私网链接:

C:\oracle\product\10.2.0\crs\bin\oifcfg setif -global "Local Area Connection 1"/192.168.1.0:cluster_interconnect

然而,在 windows 上重新命名网卡按最佳实践更有意义,如重命名为”ocwpublic” 和”ocwprivate”。如果 oracle 集群安装完成后需要更改网卡名字,则需要运行”oifcfg”命令来添加新的网卡并删除旧的。综上所述。

您可以运行下面命令查看每个节点上可用的网卡名字。

oifcfg iflist -p -n

必须在每个节点上运行这个命令来验证网卡名称相同的定义。

3. oifcfg 命令

使用 oifcfg 命令更改网卡名字的影响

对于私网网卡,数据库将使用存储在 OCR 中定义为集群互联的网卡作为节点间缓存融合通信。在告警日志开始的时候,就会显示集群互联有效的信息。在参数清单。例如:

For pre 11.2.0.2:

Cluster communication is configured to use the following interface(s) for this instance

192.168.1.1

For 11.2.0.2+: (HAIP address will show in alert log instead of private IP)

Cluster communication is configured to use the following interface(s) for this instance

  169.254.86.97

如果上面信息不正确,则实例需要重启以便 OCR 条目修正,这同样适用于 ASM 实例和数据库实例。在 windows 系统上,实例被关闭后,在 OCR 将被重读之前,还需要停止/启动 OracleService < SID >(或 OracleASMService < ASMSID > 。

Oifcfg 命令用法

查看 oifcfg 命令的全部选项,只需输入:

$ /bin/oifcfg

例5 对于 11gR2 或以上版本的 HAIP 添加或删除集群私网

1. 添加另外的私有网络到现有的使用 HAIP 的集群中,作为 grid 用户执行:

$ oifcfg setif -global /:cluster_interconnect

例如:

$ oifcfg setif -global enp0s8/192.168.57.0:cluster_interconnect

 关闭 CRS 中的所有节点,通过重新启动 crs 中的所有节点,来使 HAIP 读入新的接口,不能使用滚动方式重启。

2. 在使用 HAIP 的集群中删除私有网络,作为 grid 用户执行:

$ oifcfg delif -global

例如:

$ oifcfg delif -global enp0s8

HAIP 将切换至其它可用接口,在接口被删除后,集群/数据库会继续采用此方式运行。

删除多余的 HAIP 接口,应关闭 CRS 所有节点,然后重启 CRS 所有节点。不能采用以滚动的方式重新启动 CRS。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读773次,点赞6次,收藏9次。【代码】c# json字符串转Oracle的insert into的小程序。
文章浏览阅读8.7k次,点赞2次,收藏17次。此现象一般定位到远端的监听服务来找问题,在远端查看监听服务状态(具体看下面的解决方案会详细呈现),服务是否开启,另外查看监听端点概要是否存在host未指向到计算名的,如无直接进入监听配置文件listener.ora内添加指向即可。2、查看监听服务状态 lsnrctl status,右边为远端端点状态,未添加host指向到计算名;1、本地及远端安装好Oracle并配置好连接,Oracle服务和监听已启动;1、远程Oracle数据库:Oracle11g R2。或者进入下述服务手动重启。,再进行远程连接即可。_ora-12541:tns:无监听程序
文章浏览阅读2.8k次。mysql脚本转化为oracle脚本_mysql建表语句转oracle
文章浏览阅读2.2k次。cx_Oracle报错:cx_Oracle DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library_cx_oracle.databaseerror: dpi-1047: cannot locate a 64-bit oracle client libr
文章浏览阅读1.1k次,点赞38次,收藏35次。本文深入探讨了Oracle数据库的核心要素,包括体系结构、存储结构以及各类参数。通过解析Oracle数据库的体系结构,读者可以深入了解其内部组成和工作原理。存储结构部分介绍了数据在Oracle中的存储方式,从表空间到数据文件的层层逻辑。最后,我们深入探讨了Oracle数据库中各类参数的作用和配置方法,帮助读者更好地理解和优化数据库性能。本文旨在帮助读者全面理解Oracle数据库的运作机制,为其在实践中的应用提供基础和指导。
文章浏览阅读1.5k次。默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时)由于平时默认每天只收集4小时,时间有点短了,改成每天可收集8小时。oracle 18c中默认是打开的。查看当前自动收集统计信息的时间。_oracle自动收集统计信息
文章浏览阅读929次,点赞18次,收藏20次。只有assm(Automatic Shared Memory Management)模式可以使用大页,需要关闭amm(Memory Manager Process)HugePages_Free: 306 (空闲306页,已使用306-306=0页)防止oracle使用的内存交换,所以设置的大小与oracle配置的sga、pga相关。HugePages_Rsvd: 0 (操作系统承诺给oracle预留的页数)HugePages_Total: 306 (总共306页)_oracle11g 大页
文章浏览阅读801次。例如:10046:0,1,4,8,12。默认redo日志有三个,大小为50M,循环覆盖使用。redo log再覆盖之前,会被归档,形成归档日志。答:不同事件,不同级别。trace的不同级别?_oracle 日志
文章浏览阅读4.2k次,点赞84次,收藏77次。主要讲解MySQL中SQL的DDL语句,其中包括对数据库和表的一系列操作。_sql ddl 新增字段 mysql
文章浏览阅读1.1k次。ON DEMAND:仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;ON COMMIT:一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。Method =>'C',物化视图有三种刷新方式:COMPLETE、FAST和FORCE。物化视图会占用空间,一半可用于大量数据查询时,减缓主表的查询压力使用。例如创建一个物化视图,让对接单位查询。_oracle物化视图定时刷新
文章浏览阅读713次,点赞21次,收藏18次。1.背景介绍在当今的大数据时代,数据量越来越大,传统的关系型数据库已经无法满足业务需求。因此,NoSQL数据库技术迅速崛起,成为企业和开发者的首选。Oracle NoSQL Database是Oracle公司推出的一款分布式NoSQL数据库产品,具有高性能、高可用性和易于扩展等特点。在本文中,我们将深入了解Oracle NoSQL Database的集成与开发者工具,帮助您更好地掌握这款产品的...
文章浏览阅读2.5k次,点赞2次,收藏4次。今天遇见一个问题需要将字段中包含中文字符串的筛选出来。_oracle查询包含中文字符
文章浏览阅读802次。arcmap 在oracle删除表重新创建提示表名存在解决放啊
文章浏览阅读4.3k次,点赞2次,收藏4次。Oracle连接数据库提示 ORA-12638:身份证明检索失败_ora-12638
文章浏览阅读3.4k次,点赞6次,收藏25次。etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。与windows配置环境变量是一个道理。选择Linux系统,找到适合自己系统的安装包,我的是CentOS 8 x64。接下来需要登陆Oracle账户才能下载,无账户的可以自己注册一个。Linux中export 命令用于设置或显示环境变量。模式,利用上下键到文档最后,添加以下代码。出现如图所示版本号字样,则说明安装成功。点击下载,勾选1,点击2。记住完整路径用于后面配置。找到Java并点击进去。往下翻,找到Java8。_linux安装jdk1.8
文章浏览阅读2.4w次,点赞26次,收藏109次。JDK 是的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,其中JDK包含了 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。最主流的 JDK 是Oracle公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有IBM JDK(更适合 IBM) 和OpenJDK。_jdk安装教程
文章浏览阅读7.5w次。出现 “java.sql.SQLNonTransientConnectionException:Could not create connection to database server” 的错误通常是由于无法连接到数据库服务器引起的。_java.sql.sqlnontransientconnectionexception: could not create connection to
文章浏览阅读849次,点赞7次,收藏10次。在ClickHouse中创建用户、数据库并进行权限分配是一个重要的管理任务,它涉及到安全性和访问控制。下面是一个基本的指南来帮助你完成这些操作:1. 创建数据库首先,需要创建一个数据库。使用以下命令:CREATE DATABASE IF NOT EXISTS your_database_name;将 your_database_name 替换为你想要的数据库名。2. 创建用户接下来,创建一个新用户。使用以下命令:CREATE USER your_username IDENTIFIED WIT_在clickhouse中如何创建用户 赋权
文章浏览阅读1.2k次,点赞53次,收藏39次。本文是一篇关于Oracle数据库安装和使用的博文摘要。作者以轻松幽默的笔调介绍了自己在实验中掌握的Oracle数据库基本操作,包括使用组件查看命令、配置数据库监听器等。作者也分享了在实验中遇到的一些有趣问题,如SQL语句缺少分号导致的意外错误。此外,作者还强调了登录sys用户和启动实例加载数据库的注意事项,并鼓励读者面对挑战时保持乐观,不断提升自己的能力。整体风格风趣严谨,引人入胜。
文章浏览阅读820次,点赞17次,收藏16次。KingbaseES、xml、dbms_xmlgen、SETSKIPROWS、人大金仓、KingbaseES兼容Oracle包dbms_xmlgen的功能是通过SQL查询将关系表中数据转化为XML文档。转化方式一共有两种:(1)通过查询字符串直接转化。(2)通过上下文句柄转化。对于通过查询字符串直接转化的方式,无法跳过若干行进行查询,只能直接将表格中的所有数据转化为XML文档。