写在开篇
近日,工信部印发了对于贯彻落实《推动 IPv6 规模部署行动计划》的告诉,额。。。不好意思,跑题了!其实也没有跑题,本篇就是想要讲跟 IPV6 无关的货色。当初很多最新版的组件都默认反对 IPV6 了,比方 Nginx、PHP、MySQL 等等。那么本篇专门解说一下 Oracle 19C 如何开启对 IPV6 的反对,从装置到配置、到 IPV6 监听的配置,一文打尽。
对于 IPV6 的基础知识,笔者后续会找工夫,专门输入一篇文章分享给大家。
前戏热身
-
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 数据库的网络监听时应用;在执行静默装置前,最好备份这三个文件。
- 最低硬件配置
- 内存至多 8G: grep MemTotal /proc/meminfo
- SWAP 分区至多 8G: grep SwapTotal /proc/meminfo
- 磁盘空间至多 10g,其中 /tmp 目录下空间至多 2g: df -h
- 下载相干安装包
- preinstall rpm 包下载链接:https://yum.oracle.com/repo/O…
- zip 安装包的下载链接:https://www.oracle.com/databa…
- 操作系统的初始化工作
- 配置 /etc/hosts 和 /etc/hostname;
- 配置 selinux 为 permissive 或 disabled:波及文件 /etc/selinux/config 和命令 setenforce Permissive
- 敞开防火墙:systemctl stop/disalbe firewalld
进入主题
- 执行装置前主动配置
-
下载对应版本的 preinstall rpm 包(该 rpm 包能够用来在正式装置前执行一些必要的配置);
># yum localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
-
该步骤主动在操作系统上创立了 oracle 零碎用户:
># id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
-
筹备对立装置的门路
># mkdir /opt/u01 ># mkdir /opt/u02 ># ln -s /opt/u01 / ># ln -s /opt/u02 /
-
创立 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
-
创立配置环境变量的辅助脚本,和数据库启停的辅助脚本,并赋权
># 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
-
setEnv.sh 脚本具体内容如下:
cat > /home/oracle/scripts/setEnv.sh <<EOF # Oracle Settings export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=oracle19csvr export ORACLE_UNQNAME=cdb1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 export ORA_INVENTORY=/u01/app/oraInventory export ORACLE_SID=zabbix export PDB_NAME=pdb1_zabbix export DATA_DIR=/u02/oradata export PATH=/usr/sbin:/usr/local/bin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib EOF
-
start_all.sh 脚本具体内容如下:
cat > /home/oracle/scripts/start_all.sh <<EOF #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbstart \$ORACLE_HOME EOF
-
stop_all.sh 脚本具体内容如下:
cat > /home/oracle/scripts/stop_all.sh <<EOF #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbshut \$ORACLE_HOME EOF
-
配置环境变量 /home/oracle/.bash_profile,援用上述环境变量配置辅助脚本
>$ echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile >$ source .bash_profile
-
须要留神
留神:上述环境变量辅助脚本 setEnv 中的配置项 ORACLE_SID=zabbix 和 PDB_NAME=pdb1_zabbix,跟后文 dbca 配置文件 $oracle_home/assistants/dbca/dbca.rsp 中的配置项 sid=zabbix 和 pdbName=pdb1_zabbix 是一一响应的。
- 上传 oracle19c 二进制安装包并解压
-
上传到 /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
- 配置静默装置配置文件 db_install.rsp
-
配置文件在 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
-
执行静默装置前,能够执行以下命令,查看各种配置项是否配置正确
>$ /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
-
执行静默装置
>$ /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
-
依据 runInstaller 装置时的提醒,切换应用 root 执行提醒中的两个脚本文件
>$ sh /u01/app/oraInventory/orainstRoot.sh >$ sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
- 从执行后果的提醒能够看出,root.sh 执行时创立了配置文件 /etc/oratab
- 配置文件 /etc/oratab,是 oracle 运行时的一个比拟重要的配置文件,后续的 dbca 命令会更新该配置文件
- 验证装置后果
- 应用 sqlplus 验证软件包装置后果
- 上述步骤实现后,oracle 所有的二进制文件都曾经装置结束,能够通过 sqlplus 命令验证下装置后果
- 应用 NetCA 配置 oracle 监听服务
- 通过 netca 静默式配置监听服务
-
这里应用了默认配置,未对该配置文件做任何批改
>$ netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
- 执行这一步是为了主动生成 listener.ora
开始进入低潮局部
- 新增 IPV6 的监听地址与端口
-
查找监听文件 listener.ora 并进行批改
>$ vim /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora LISTENER = (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
- listener.ora 是服务器端用的,oracle 监听程序,就是读的这个文件,外面有 oracle 服务器端的 socket 监听地址和端口(
如果要想局域网中的其他人,可能拜访我本地的 oracle,要把我本机的地址写进去,如 192.168.11.8、fd15:4ba5:5a2b:1008::5 -
启动监听和查看监听状态
>$ lsnrctl start # 启动 >$ lsnrctl status
- 应用 DBCA 创立 Oracle 数据库实例
- DBCA,即 Database Configuration Assistant(数据库配置助手),能够用来创立 Oracle 数据库实例;
- DBCA 即反对 GUI 互动模式,也反对 SILENT 静默模式;
- 静默模式下须要更改配置文件 /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
-
改变前最好备份,重点批改项如下:
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
- gdbName: 数据库的全局数据库名称
- sid: 数据库的零碎标识符 (SID)
- createAsContainerDatabase: 将数据库创立为容器数据库的标记
- pdbName: 如果须要创立一个或多个 pdb,请指定 pdbname/pdbanme 前缀
- pdbAdminPassword: PDB 管理员用户明码
- templateName: 模板名称
- sysPassword: SYS 用户明码
- systemPassword: SYSTEM 用户的明码
- dbsnmpPassword: DBSNMP 用户明码
- datafileDestination: 数据文件的地位
- recoveryAreaDestination: 数据文件的地位
- characterSet: 数据库字符集
- nationalCharacterSet: 数据库的国家字符集
- listeners: 指定要向其注册数据库的侦听器列表。默认状况下,为 $ORACLE_HOME/network/admin/listener.ora 中指定的所有侦听器配置数据库
- databaseType: 用于指定内存百分比时的内存调配
- sampleSchema: 指定是否将示例模式增加到您的数据库
-
开始通过 dbca 命令静默式创立数据库
>$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
-
数据库创立实现后,应用 lsnrctl status 验证下监听状态
[oracle@oracle19csvr admin]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 05-FEB-2022 10:20:57 Copyright (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 ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 02-FEB-2022 22:16:06 Uptime 2 days 12 hr. 4 min. 51 sec Trace Level off Security ON: Local OS Authentication SNMP OFF 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]$
-
数据库创立实现后,通过 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.0 Copyright (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.0 SQL>
- 上述命令“sqlplus sys/Root.123456@zabbix as sysdba”中应用的 zabbix 是配置文件 dbca.rsp 中指定的 sid=zabbix,是 oracle 数据库的 System identifier (SID),;
- 上述命令执行胜利后,登录的是根容器 CDB$ROOT,若要切换到某个可插拔数据库 pdb,能够应用命令 alter session set container=pdbName;。
- 增加对可插拔数据库实例的监听,以及让其反对 ipv6 的侦听
- 如果应用 dbca 创立数据库时创立了可插拔数据库 pdb,则须要更改配置文件 tnsnames.ora,增加对可插拔数据库实例的监听;
- 配置文件门路:/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora
-
配置结束的 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 = (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) ) )
- 可见增加了对可插拔数据库实例 pdb1_zabbix 的监听配置(pdb1_zabbix 是通过配置文件 dbca.rsp 的配置项 pdbName=pdb1_zabbix 指定的)
- tnsnames.ora 是记录客户端拜访数据库的本地配置,客户端是通过 tnsnames.ora 来辨认连贯服务器的,如果你没有增加 tnsnames.ora, 那么你就连贯不上服务器的
-
应用命令 tnsping 验证对可插拔数据库 pdb 的监听配置是否正确:
[oracle@oracle19csvr admin]$ tnsping pdb1_zabbix TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 05-FEB-2022 10:49:34 Copyright (c) 1997, 2019, Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora Used 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 = (SERVER = DEDICATED) (SERVICE_NAME = pdb1_zabbix))) OK (20 msec)
写在最初
好了,终于完结了,整个过程下来能够说是“含辛茹苦”啊!一直的碰到问题,解决问题。一直的掉到坑里,再从坑里爬出来。在本篇中笔者并没有把所遇到的问题分享进去。因为碰到的问题是形形色色呀!如果您也想在 Oracle 19C 将 IPV6 的监听玩起来,说不定遇到的问题会和笔者不一样,那就仁者见仁,智者见智了。本文只是抛砖引玉,望能和宽广敌人一起交换哈。十分感谢您的关注,望多多点赞、转发。