最近由于业务需要,需要在已经安装好的数据库环境下配置ipv6,为了不影响业务使用,直接添加新的监听,把ipv6监听在新的端口下。
环境如下:
[root@rac1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.6 (Santiago) [root@rac1 ~]# su - oracle [oracle@rac1 ~]$ sqlplus -v
SQL*Plus: Release 12.1.0.2.0 Production |
参参考官方文档783570.1,链接是:
官方文档是通过图形界面创建的,这里使用命令行模式创建,配置方式如下:
- 配置在网卡上配置ipv6地址
[root@rac1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.31.227.7 NETMASK=255.255.255.0 IPV6INIT=yes IPV6_AUTOCONF=no IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6ADDR=FEC0::1407/123 IPV6_DEFAULTGW=2409:8C54:FF10:4010:0000:0000:0000:001F [root@rac1 ~]#service network restart |
配置的ipv6地址为FEC0::1407
- 在ip6tables上配置放通端口
在/etc/sysconfig/ip6tables中添加一行记录 -A INPUT -m state --state NEW -m tcp -p tcp --dport 1522 -j ACCEPT 重启生效 service ip6tables restart |
在ipv6防火墙上放通所有访问22端口的地址
- 在数据库上配置ipv6监听
cd $ORACLE_HOME/network/admin vi listener.ora [oracle@rac1 admin]$ cat listener.ora LISTENER6 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = fec0::1407)(PORT = 1522)) )
SID_LIST_LISTENER6 = (SID_LIST = (SID_DESC = (ORACLE_HOME = /opt/app/oracle/product/12c) (GLOBAL_DBNAME = cdb6) (SID_NAME = cdb6) ) (SID_DESC = (GLOBAL_DBNAME = pdb5) (SID_NAME = cdb6) ) ) 启动监听生效 lsnrctl start LISTENER6 配置tnsnames.ora vi tnsnames.ora ipv6 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = fec0::1407)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb5) ) ) |
注意,需要配置global_dbname,否则不会监听pdb的服务,sid的固定为cdb6,服务名需要配置为pdb的名字。
- 测试连接通过
[oracle@rac1 admin]$ tnsping ipv6
TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 11-NOV-2019 15:10:36
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = fec0::1407)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb5))) OK (0 msec) [oracle@rac1 admin]$ sqlplus test/test@ipv6
SQL*Plus: Release 12.1.0.2.0 Production on Mon Nov 11 15:10:43 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ERROR: ORA-01017: invalid username/password; logon denied
|
tnsping确认端口网络通畅,然后sqlplus测试连接一个不存在的账号,报错用户名密码错误,说明可以正常连接数据库。
附:
ipv6网络诊断
在linux上使用ping6 命令测试网络
ping6 fec0::1407
在windows上使用ping -6测试网络
ping -6 fec0::1407