百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

mhr18 2024-10-02 17:07 21 浏览 0 评论

写在开篇

近日,工信部印发了关于贯彻落实《推进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/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
  • zip 安装包的下载链接:https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html

操作系统的初始化工作

  • 配置 /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的监听玩起来,说不定遇到的问题会和笔者不一样,那就仁者见仁,智者见智了。本文只是抛砖引玉,望能和广大朋友一起交流哈。非常感谢您的关注,望多多点赞、转发。

本文转载于:https://mp.weixin.qq.com/s/1ao5tS43mpFeALDPdso-Wg

相关推荐

【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...

Pure Storage推出统一数据管理云平台及新闪存阵列

PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...

对Java学习的10条建议(对java课程的建议)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!

官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...

JDK21有没有什么稳定、简单又强势的特性?

佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...

「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了

在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...

Java面试题及答案最全总结(2025版)

大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...

数据库日常运维工作内容(数据库日常运维 工作内容)

#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...

分布式之系统底层原理(上)(底层分布式技术)

作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...

oracle 死锁了怎么办?kill 进程 直接上干货

1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

取消回复欢迎 发表评论: