干货速看!CentOS7+Oracle|干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。

写在开篇

近日,工信部印发了关于贯彻落实《推进IPv6规模部署行动计划》的通知,额。。。不好意思,跑题了!其实也没有跑题,本篇就是想要讲跟IPV6有关的东西。现在很多最新版的组件都默认支持IPV6了,比如Nginx、PHP、MySQL等等。那么本篇专门讲解一下Oracle 19C如何开启对IPV6的支持,从安装到配置、到IPV6监听的配置,一文打尽。
关于IPV6的基础知识,笔者后续会找时间,专门输出一篇文章分享给大家。
前戏热身
  1. Oracle OUI 静默安装要点概述
    Oracle OUI 静默安装,即 Oracle OUI Silent Installations,之所以能实现静默,是因为底层通过三个 response files 指定了一些必需的配置项的具体设置,管理员可以通过修改这三个 response file,针对自己的情况进行定制配置,从而实现静默安装。这三个 response files,说明如下: $ORACLE_HOME/install/response/db_install.rsp: 静默式安装或升级 oracle 二进制包时使用; $ORACLE_HOME/assistants/dbca/dbca.rsp: 静默式安装、配置、删除数据库实例时使用; $ORACLE_HOME/assistants/netca/netca.rsp: 静默式配置 oracle 数据库的网络监听时使用; 在执行静默安装前,最好备份这三个文件。

  2. 最低硬件配置
  3. 内存至少8G: grep MemTotal /proc/meminfo
  4. SWAP分区至少8G: grep SwapTotal /proc/meminfo
  5. 磁盘空间至少10g,其中/tmp目录下空间至少2g: df -h
  6. 下载相关安装包
  7. preinstall rpm 包下载链接:https://yum.oracle.com/repo/O...
  8. zip 安装包的下载链接:https://www.oracle.com/databa...
  9. 操作系统的初始化工作
  10. 配置 /etc/hosts 和 /etc/hostname;
  11. 配置 selinux 为permissive或disabled:涉及文件/etc/selinux/config 和命令 setenforce Permissive
  12. 关闭防火墙:systemctl stop/disalbe firewalld
进入主题
  1. 执行安装前自动配置
  2. 【干货速看!CentOS7+Oracle|干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。】下载对应版本的 preinstall rpm包(该rpm 包可以用来在正式安装前执行一些必要的配置);
    ># yum localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

  3. 该步骤自动在操作系统上创建了oracle系统用户:
    ># id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

  4. 准备统一安装的路径
    ># mkdir /opt/u01 ># mkdir /opt/u02 ># ln -s /opt/u01 / ># ln -s /opt/u02 /

  5. 创建oracle运行时必需的目录并赋权
    ># mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 ># mkdir -p /u02/oradata ># mkdir /u02/flash_recovery_area ># chown -R oracle:oinstall /opt/u01 /opt/u02 ># chmod -R 775 /opt/u01 /opt/u02

  6. 创建配置环境变量的辅助脚本,和数据库启停的辅助脚本,并赋权
    ># su - oracle >$ touch /home/oracle/scripts/setEnv.sh >$ touch /home/oracle/scripts/start_all.sh >$ touch /home/oracle/scripts/stop_all.sh >$ chown -R oracle:oinstall /home/oracle/scripts >$ chmod u+x /home/oracle/scripts/*.sh

  7. setEnv.sh脚本具体内容如下:
    cat > /home/oracle/scripts/setEnv.sh <

  8. start_all.sh脚本具体内容如下:
    cat > /home/oracle/scripts/start_all.sh <

  9. stop_all.sh脚本具体内容如下:
    cat > /home/oracle/scripts/stop_all.sh <

  10. 配置环境变量/home/oracle/.bash_profile,引用上述环境变量配置辅助脚本
    >$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile >$ source .bash_profile

  11. 需要注意
    注意:上述环境变量辅助脚本 setEnv 中的配置项 ORACLE_SID=zabbix 和 PDB_NAME=pdb1_zabbix,跟后文 dbca 配置文件$oracle_home/assistants/dbca/dbca.rsp 中的配置项sid=zabbix 和pdbName=pdb1_zabbix 是一一呼应的。

  12. 上传oracle19c二进制安装包并解压
  13. 上传到/u01/app/oracle/product/19.0.0/dbhome_1 路径下并解压
    cd /u01/app/oracle/product/19.0.0/dbhome_1 unzip LINUX.X64_193000_db_home.zip

  14. 配置静默安装配置文件db_install.rsp
  15. 配置文件在LINUX.X64_193000_db_home.zip中的install目录下,更改前先备份
    cd /u01/app/oracle/product/19.0.0/dbhome_1/install/response/ cp -a db_install.rsp {,db_install.rsp.bak.20220202}

  • 重点修改项如下,/u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
    oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=oinstall oracle.install.db.OSOPER_GROUP=oinstall oracle.install.db.OSBACKUPDBA_GROUP=oinstall oracle.install.db.OSDGDBA_GROUP=oinstall oracle.install.db.OSKMDBA_GROUP=oinstall oracle.install.db.OSRACDBA_GROUP=oinstall oracle.install.db.rootconfig.executeRootScript=false

  1. 执行静默安装前,可以执行以下命令,检查各种配置项是否配置正确
    >$ /u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -executePrereqs -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp Launching Oracle Database Setup Wizard...Prerequisite checks executed successfully. Moved the install session logs to: /u01/app/oraInventory/logs/InstallActions2022-02-02_11-06-47AM

  2. 执行静默安装
    >$ /u01/app/oracle/product/19.0.0/dbhome_1/runInstaller -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp

    干货速看!CentOS7+Oracle|干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。
    文章图片

  3. 根据runInstaller安装时的提示,切换使用root执行提示中的两个脚本文件
    >$ sh /u01/app/oraInventory/orainstRoot.sh >$ sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

  4. 从执行结果的提示可以看出,root.sh执行时创建了配置文件 /etc/oratab
  5. 配置文件/etc/oratab,是 oracle 运行时的一个比较重要的配置文件,后续的 dbca 命令会更新该配置文件
  6. 验证安装结果
  7. 使用sqlplus验证软件包安装结果
  8. 上述步骤完成后,oracle所有的二进制文件都已经安装完毕,可以通过sqlplus命令验证下安装结果
干货速看!CentOS7+Oracle|干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。
文章图片

  1. 使用NetCA配置 oracle监听服务
  2. 通过netca静默式配置监听服务
  3. 这里使用了默认配置,未对该配置文件做任何修改
    >$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

  4. 执行这一步是为了自动生成listener.ora
开始进入高潮部分
  1. 新增IPV6的监听地址与端口
  2. 查找监听文件listener.ora并进行修改
    >$ vim /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.oraLISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = fd15:4ba5:5a2b:1008::5)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.8)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ZABBIX.DB) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) (SID_NAME = zabbix) ) (SID_DESC = (GLOBAL_DBNAME = PDB1_ZABBIX.DB) (SID_NAME = zabbix) ) ) ADR_BASE_LISTENER=/u01/app/oracle

  3. listener.ora是服务器端用的,oracle监听程序,就是读的这个文件,里面有oracle服务器端的socket监听地址和端口(
    如果要想局域网中的其他人,能够访问我本地的oracle,要把我本机的地址写进去,如192.168.11.8、fd15:4ba5:5a2b:1008::5
  4. 启动监听和查看监听状态
    >$ lsnrctl start # 启动 >$ lsnrctl status

    干货速看!CentOS7+Oracle|干货速看!CentOS7+Oracle 19c安装并开启IPv6监听,带你一文打尽。
    文章图片

  5. 使用 DBCA 创建 Oracle 数据库实例
  6. DBCA ,即Database Configuration Assistant(数据库配置助手) ,可以用来创建 Oracle 数据库实例;
  7. DBCA 即支持 GUI 互动模式,也支持SILENT静默模式;
  8. 静默模式下需要更改配置文件 /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
  9. 改动前最好备份,重点修改项如下:
    gdbName=zabbix.db sid=zabbix createAsContainerDatabase=true pdbName=pdb1_zabbix pdbAdminPassword=Root.123456 templateName=General_Purpose.dbc sysPassword=Root.123456 systemPassword=Root.123456 dbsnmpPassword=Root.123456 datafileDestination=/u02/oradata recoveryAreaDestination=/u02/flash_recovery_area characterSet=UTF8 nationalCharacterSet=UTF8 listeners=LISTENER databaseType=OLTP sampleSchema=true

  10. gdbName: 数据库的全局数据库名称
  11. sid: 数据库的系统标识符 (SID)
  12. createAsContainerDatabase: 将数据库创建为容器数据库的标志
  13. pdbName: 如果需要创建一个或多个 pdb,请指定 pdbname/pdbanme 前缀
  14. pdbAdminPassword: PDB 管理员用户密码
  15. templateName: 模板名称
  16. sysPassword: SYS 用户密码
  17. systemPassword: SYSTEM 用户的密码
  18. dbsnmpPassword: DBSNMP 用户密码
  19. datafileDestination: 数据文件的位置
  20. recoveryAreaDestination: 数据文件的位置
  21. characterSet: 数据库字符集
  22. nationalCharacterSet: 数据库的国家字符集
  23. listeners: 指定要向其注册数据库的侦听器列表。 默认情况下,为 $ORACLE_HOME/network/admin/listener.ora 中指定的所有侦听器配置数据库
  24. databaseType: 用于指定内存百分比时的内存分配
  25. sampleSchema: 指定是否将示例模式添加到您的数据库
  26. 开始通过dbca命令静默式创建数据库
    >$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp

  27. 数据库创建完成后,使用lsnrctl status验证下监听状态
    [oracle@oracle19csvr admin]$ lsnrctl statusLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-FEB-2022 10:20:57Copyright (c) 1991, 2019, Oracle.All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=fd15:4ba5:5a2b:1008::5)(PORT=1521))) STATUS of the LISTENER ------------------------ AliasLISTENER VersionTNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date02-FEB-2022 22:16:06 Uptime2 days 12 hr. 4 min. 51 sec Trace Leveloff SecurityON: Local OS Authentication SNMPOFF Listener Parameter File/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora Listener Log File/u01/app/oracle/diag/tnslsnr/oracle19csvr/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fd15:4ba5:5a2b:1008::5)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.8)(PORT=1521))) Services Summary... Service "86b637b62fdf7a65e053f706e80a27ca.db" has 1 instance(s). Instance "zabbix", status READY, has 1 handler(s) for this service... Service "d70b94075c19d292e055000000000005.db" has 1 instance(s). Instance "zabbix", status READY, has 1 handler(s) for this service... Service "pdb1_zabbix.db" has 1 instance(s). Instance "zabbix", status READY, has 1 handler(s) for this service... Service "zabbix.db" has 1 instance(s). Instance "zabbix", status READY, has 1 handler(s) for this service... Service "zabbixXDB.db" has 1 instance(s). Instance "zabbix", status READY, has 1 handler(s) for this service... The command completed successfully [oracle@oracle19csvr admin]$

  28. 数据库创建完成后,通过sqlplus尝试登录验证下
    [oracle@oracle19csvr admin]$ sqlplus sys/Root.123456@zabbix as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sat Feb 5 10:17:47 2022 Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.All rights reserved.Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0SQL>

  29. 上述命令 “sqlplus sys/Root.123456@zabbix as sysdba” 中使用的zabbix是配置文件 dbca.rsp 中指定的 sid=zabbix,是 oracle数据库的System identifier (SID),;
  30. 上述命令执行成功后,登录的是根容器 CDB$ROOT,若要切换到某个可插拔数据库 pdb,可以使用命令 alter session set container=pdbName; 。
  31. 添加对可插拔数据库实例的监听,以及让其支持ipv6的侦听
  32. 如果使用 dbca 创建数据库时创建了可插拔数据库 pdb,则需要更改配置文件 tnsnames.ora,添加对可插拔数据库实例的监听;
  33. 配置文件路径:/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora
  34. 配置完毕的 tnsname.ora 内容如下:
    ZABBIX = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.8)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = fd15:4ba5:5a2b:1008::5)(PORT = 1521) (CONNECT_DATA = https://www.it610.com/article/(SERVER = DEDICATED) (SERVICE_NAME = ZABBIX) ) ) PDB1_ZABBIX.DB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.8)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = fd15:4ba5:5a2b:1008::5)(PORT = 1521) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PDB1_ZABBIX.DB) ) )

  35. 可见添加了对可插拔数据库实例 pdb1_zabbix 的监听配置(pdb1_zabbix是通过配置文件dbca.rsp的配置项pdbName=pdb1_zabbix 指定的)
  36. tnsnames.ora是记录客户端访问数据库的本地配置,客户端是通过tnsnames.ora来识别连接服务器的,如果你没有添加tnsnames.ora,那么你就连接不上服务器的
  37. 使用命令 tnsping 验证对可插拔数据库pdb的监听配置是否正确:
    [oracle@oracle19csvr admin]$ tnsping pdb1_zabbixTNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 05-FEB-2022 10:49:34Copyright (c) 1997, 2019, Oracle.All rights reserved.Used parameter files: /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.8)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = fd15:4ba5:5a2b:1008::5)(PORT = 1521)) (CONNECT_DATA = https://www.it610.com/article/(SERVER = DEDICATED) (SERVICE_NAME = pdb1_zabbix))) OK (20 msec)

写在最后
好了,终于结束了,整个过程下来可以说是“千辛万苦”啊!不断的碰到问题,解决问题。不断的掉到坑里,再从坑里爬出来。在本篇中笔者并没有把所遇到的问题分享出来。因为碰到的问题是五花八门呀!如果您也想在Oracle 19C将IPV6的监听玩起来,说不定遇到的问题会和笔者不一样,那就仁者见仁,智者见智了。本文只是抛砖引玉,望能和广大朋友一起交流哈。非常感谢您的关注,望多多点赞、转发。
本文转载于:https://mp.weixin.qq.com/s/1a...

    推荐阅读