Oracle配置ipv6监听

最近由于业务需要,需要在已经安装好的数据库环境下配置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,链接是:

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=177460317852763&id=783570.1&_afrWindowMode=0&_adf.ctrl-state=29aoiluc8_205

官方文档是通过图形界面创建的,这里使用命令行模式创建,配置方式如下:

  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

  1. 在ip6tables上配置放通端口

在/etc/sysconfig/ip6tables中添加一行记录

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1522 -j ACCEPT

重启生效

service ip6tables restart

ipv6防火墙上放通所有访问22端口的地址

  1. 在数据库上配置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的名字。

 

  1. 测试连接通过

 [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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Oracle 数据库中启用 IPv6 监听,需要进行以下步骤: 1. 确保您的操作系统支持 IPv6。如果不支持,需要升级到支持 IPv6 的操作系统。 2. 在 Oracle 数据库中启用 IPv6 监听器。可以使用 Oracle Net Manager 或手动编辑 listener.ora 文件来完成此操作。在 listener.ora 文件中,需要添加一个监听器定义,指定协议为 IPv6,并指定监听器的 IP 地址和端口号。 例如,以下是一个 IPv6 监听器定义的示例: ``` LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPv6)(HOST = ::1)(PORT = 1521)) ) ) ``` 在上面的示例中,监听器的协议为 IPv6,IP 地址为 ::1(IPv6 的本地主机地址),端口号为 1521。 3. 在 Oracle 数据库中创建一个服务名称,以便客户端可以连接到 IPv6 监听器。可以使用 Oracle Net Manager 或手动编辑 tnsnames.ora 文件来完成此操作。在 tnsnames.ora 文件中,需要添加一个服务名称定义,指定协议为 IPv6,并指定服务名称、监听器的 IP 地址和端口号。 例如,以下是一个 IPv6 服务名称定义的示例: ``` ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPv6)(HOST = ::1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` 在上面的示例中,服务名称为 ORCL,协议为 IPv6,IP 地址为 ::1,端口号为 1521,服务名为 orcl。 4. 在客户端中使用 IPv6 服务名称连接到数据库。可以使用 SQL*Plus 或其他客户端工具来完成此操作。例如: ``` sqlplus user/password@ORCL ``` 在上面的示例中,使用 ORCL 服务名称连接到数据库。客户端和服务器都使用 IPv6 协议进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值