news 2026/10/9 3:07:32

Linux 7 安装 Oracle 11g 全流程:环境适配、静默安装与踩坑记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 7 安装 Oracle 11g 全流程:环境适配、静默安装与踩坑记录

1. 在Linux 7上装Oracle 11g,先别急着下介质

最近生产环境扩容,新申请的服务器清一色RHEL 7.9,业务侧却还绑死在Oracle 11g上。这种"新系统装老数据库"的组合,看起来简单,实际上一堆兼容性陷阱等着你踩。我在这几天连续装了好几套Oracle 11g单机,正好把整个流程、参数取舍、踩坑记录完整沉淀下来,给需要在Linux 7上部署11g的同学做个参考。

先说结论:Oracle 11g(11.2.0.4)官方认证的是RHEL 6,RHEL 7并不在初始支持列表里。但生产环境里跑11g的业务太多了,尤其是一些老ERP、EBS系统,绑定得死死的,换数据库根本不现实。所以实际上,Linux 7 + Oracle 11g单机这种组合早就是DBA的日常操作,只是不能再按老教程一步步点到底,安装前必须做好三件事:补丁介质准备、系统参数适配、安装方式选型。

这篇总结默认读者具备基础Linux操作能力,命令能看懂、会建用户、看得懂日志。如果是刚入门的小白,建议先熟悉vi、yum、chmod这些基础命令,再来操作数据库安装,不然遇到问题会非常痛苦。

1.1 为什么"官方不支持"的项目还在大量生产

Oracle 11.2.0.4是11g最后一个补丁版本,本身相当成熟。大量业务系统是基于这个版本开发、测试、上线的,应用层对数据库版本有强依赖,甚至某些存储过程、内部函数只在11g上运行正常,升级到12c或者19c要重写一大片代码。所以很多企业宁可让数据库停留在老版本,也不愿意承担升级成本。

而服务器硬件层面,新采购的机器大多预装的是RHEL 7或CentOS 7,RHEL 6的安装介质越来越难获取,内核驱动对新硬件支持也不够好。两边一挤,就逼出了Linux 7上装Oracle 11g这个"非官方但刚需"的场景。

Linux 7相比6,最大的变化在于:

  1. 系统初始化从SysVinit切到了systemd,Oracle 11g自带的服务脚本基于老init机制,开机自启要另想办法。
  2. 默认依赖包变化很大,11g需要的兼容库在7上要么没有、要么被改名,装依赖是一道坎。
  3. 防火墙从iptables切成了firewalld,SELinux默认 enforcing,端口通了但连不上这种"灵异事件"一半是SELinux搞的。

这些差异不像直接报错那样显眼,而是藏在安装过程中的某个不显眼环节里,没踩过一次根本想不到。

1.2 版本选择和补丁准备

如果条件允许,只选11.2.0.4,不要选更早的11.2.0.1或11.2.0.2。11.2.0.4在Linux 7上的问题相对最少,官方虽然没认证,但很多已知Bug在新补丁里已经修复,实际运行要稳得多。

介质方面需要:

  • 11.2.0.4 Linux x86-64的Database安装包,两个zip文件(p13390677_112040,1of7和2of7)。
  • 这两个包解压后会形成database目录,里面包含runInstaller脚本和所有组件。
  • 建议同时准备最新的OPatch补丁,以及11.2.0.4后续的PSU/RU补丁,安装完成后先打补丁再建库,避免后期一堆Bug。

有人会说,我直接用老的11.2.0.1介质然后在线升级到11.2.0.4不行吗?可以,但多一步升级,时间成本和风险都增加。介质能把版本一步到位的话,就别绕路。

2. 环境准备清单:依赖包、内核参数和用户目录

这是整个安装过程中最枯燥、最容易被跳过、但决定成败的部分。11g在Linux 7上安装失败,一半原因出在环境准备不充分。

2.1 系统层面的体检

装之前先把系统底子摸清楚:

  • 内存:至少2GB,实际生产建议16GB以上。后面设置内存参数时要以物理内存为参考。
  • Swap:官方建议内存的1.5到2倍,但对16G以上的机器,受11g老版本对Swap的扫描逻辑影响,设16G就够用了。
  • 磁盘:ORACLE_BASE所在分区建议独立挂载,至少预留100GB空间,数据文件、归档日志、备份都放同一目录会非常挤。解压安装介质需要临时2GB空间,/tmp不够的话先把安装包解压到/u01下的临时目录。
  • 主机名和hosts文件:/etc/hosts里必须有主机名到本机IP的解析记录,而且主机名最好用短名,不要带域名。这一步被忽略的话,配监听时会出现各种莫名其妙的本机连接问题。

检查命令:

free -h df -h hostname cat /etc/hosts nproc

2.2 关闭SELinux和防火墙

先声明,如果企业安全基线要求必须开启,可以只放行1521端口,但SELinux和Oracle老版本的兼容性确实很差,强烈建议至少设置成permissive:

setenforce 0 sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

防火墙层面,如果内网环境,直接停掉firewalld最省心:

systemctl stop firewalld systemctl disable firewalld

如果必须保留防火墙,规则的放行方式:

firewall-cmd --permanent --add-port=1521/tcp firewall-cmd --permanent --add-port=1522/tcp firewall-cmd --reload

后面踩坑记录里我会细说SELinux是怎么"吞掉"监听连接的。

2.3 依赖包一次性装齐

这是Linux 7上最容易出问题的一步。Oracle 11g的依赖包列表和官方文档里的不完全一致,部分包在RHEL 7源里名字改过或者没有。

我实际可用的安装命令:

yum -y install binutils compat-libcap1 compat-libstdc++-33 \ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel \ libgcc libstdc++ libstdc++-devel libXext libXtst libX11 \ libXau libXi libXp numactl numactl-devel sysstat \ elfutils-libelf elfutils-libelf-devel unixODBC unixODBC-devel \ unzip xorg-x11-utils

几个容易被忽略的点:

第一,compat-libstdc++-33这个包在标准RHEL 7源里不一定有,尤其在离线内网环境。如果yum搜不到,需要从RHEL 6的安装介质或内部镜像里找这个rpm手动装。它缺失的典型表现是Oracle软件链接时报一堆/usr/bin/ld: skipping incompatible错误。

第二,libaio-devel装完之后,检查一下/usr/lib64/libaio.so.1是否存在。有些精简系统只有libaio.so.1.0.1而没有符号链接,Oracle找libaio.so会扑空:

ls -l /usr/lib64/libaio*

如果没有符号链接,手动补上:

ln -s /usr/lib64/libaio.so.1 /usr/lib64/libaio.so

第三,RHEL 7的gcc是4.8.5,和11g时代的编译器版本有代差。装完依赖包之后,建议顺手确认一下版本,编译环节如果报错,先查是不是编译器引起的问题。

2.4 用户、组、目录规划

安装Oracle不能使用root账号,必须创建专用用户。我的习惯是三个组:oinstall管Oracle软件安装,dba管数据库操作,oper是可选的操作员组。

groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle

然后规划目录。单机环境我用的是标准的OFA结构:

  • ORACLE_BASE=/u01/app/oracle
  • ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
  • Inventory目录默认在/u01/app/oraInventory
mkdir -p /u01/app/oracle mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app

特别注意,/u01如果是一个独立分区,挂载选项里不要带noexec和nosuid,否则安装执行二进制文件时会直接Permission denied。

2.5 内核参数:sysctl.conf里每一行都是干啥的

很多人直接抄官方文档,但不知道每个参数在防什么。我列出实际部署值,并解释原理:

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
  • kernel.sem的四个值分别是SEMMSL、SEMMNS、SEMOPM、SEMMNI。数据库启动时要创建信号量,如果数量不够,实例起不来,报错是ORA-27102或semget失败,这时候回头看这个参数就明白了。
  • fs.file-max控制整个系统的文件句柄上限。数据库在高并发下要打开大量数据文件、日志文件和网络socket,太低会报EMFILE。
  • net.ipv4.ip_local_port_range设成9000到65500,是为了给Oracle的客户端连接留足本地端口范围。如果不改,默认是32768到61000,高并发连接时端口耗尽,应用端报"cannot assign requested address"。
  • 四项网络缓冲区参数直接影响RAC和远程连接的稳定性,单机上把rmem_default和wmem_default设置成文档值即可。

配置完执行sysctl -p使其生效。

2.6 透明大页:必须关掉的性能隐患

RHEL 7默认启用Transparent HugePages(透明大页),而Oracle 11g对THP的支持极差,会出现严重的性能抖动和内存分配延迟。官方也明确建议数据库场景关闭THP。检查方法:

cat /sys/kernel/mm/transparent_hugepage/enabled

如果是[always] madvise never这样的输出,说明开启状态。关闭命令:

echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag

但重启会失效,所以还要把这行写入/etc/rc.local:

echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local chmod +x /etc/rc.local

别忘了RHEL 7的/etc/rc.local默认没有可执行权限,chmod不做的话重启后配置不生效。这个细节我见过很多同行栽过。

2.7 limits.conf 和 nproc 限制

Oracle 11g的文档建议在/etc/security/limits.conf里加:

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768

nofile管文件句柄数,nproc管进程数,stack限制栈大小。这里要提醒:仅仅改limits.conf还不够,RHEL 7的/etc/security/limits.d/20-nproc.conf默认对所有普通用户限制了nproc为4096。需要单独为oracle用户放宽:

cat > /etc/security/limits.d/20-nproc.conf << 'EOF' * soft nproc 4096 oracle soft nproc 16384 EOF

不然并发进程数上来之后,数据库后台进程会被系统杀掉,报ORA-27300之类的错误。

2.8 oracle用户环境变量

编辑oracle用户的~/.bash_profile,加入:

export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH一定要指到$ORACLE_HOME/lib,不然sqlplus启动时会报找不到libclntsh.so。每次用oracle用户登入时检查一下env | grep ORACLE,能避免很多"明明装了为什么连不上"的问题。

3. Oracle软件安装:图形界面会踩坑,静默安装更适合生产

3.1 介质解压和权限

把两个zip包用oracle用户(不是root)解压到同一个目标目录:

su - oracle cd /u01 unzip p13390677_112040_Linux-x86-64_1of7.zip unzip p13390677_112040_Linux-x86-64_2of7.zip

解压之后生成database目录。注意1of7和2of7必须解压到同一目录,否则文件不完整,runInstaller直接报错。

3.2 图形安装流程中容易忽略的环节

有桌面环境或者通过VNC远程图形安装时,运行:

cd /u01/database ./runInstaller

图形界面下最常遇到两个问题:

第一个是DISPLAY环境变量没设置。如果通过VNC,在oracle用户下执行:

export DISPLAY=:1.0 xhost +

才能弹出安装界面,不然报"Unable to create Oracle Configuration Manager"或直接没反应。

第二个是预检查报错。11.2.0.4的runInstaller在RHEL 7上会提示系统不在认证列表中,依赖包检查也有可能飘红。只要系统配置是完整的,这一步可以放心点右上角的"Ignore All",继续安装。这里需要区分:依赖包缺失导致的检查失败不能忽略,忽略的话后面链接必挂;只有操作系统版本检测和个别非关键项可以忽略。

图形安装在步骤上基本是Next到底,选择"Install database software only"还是"Create and configure a database",我建议选前者。软件安装和建库分离,方便控制建库参数,也能更清晰地定位问题。

3.3 静默安装:生产环境的首选方案

无图形、无VNC的服务器多了去了,静默安装才是主流。修改响应文件/u01/database/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/11.2.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.type=GENERAL_PURPOSE DECLINE_SECURITY_UPDATES=true

然后执行:

cd /u01/database ./runInstaller -silent -responseFile /u01/database/response/db_install.rsp

静默安装的日志在/u01/app/oraInventory/logs/installActions*.log。安装过程持续10到20分钟,可以另一个窗口tail -f日志观察进度。日志卡住不动也不一定是死掉了,有些步骤耗时长,耐心等待即可。

安装结束时的输出会提示用root执行两条脚本:

/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

orainstRoot.sh是初始化Inventory目录权限,root.sh是注册Oracle的hostname和系统脚本。root.sh执行到最后,如果提示不支持自动启动服务,可以不管,后面我们用systemd自己处理自启。

3.4 软件安装完成后先打补丁

我建议建库之前先打补丁。用最新OPatch替换$ORACLE_HOME/OPatch目录,然后应用你准备好的PSU/RU补丁。流程是:

unzip p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME cp $ORACLE_HOME/OPatch/opatch.patch /tmp/ cd /tmp unzip pXXXXX_112040_Linux-x86-64.zip cd pXXXXX $ORACLE_HOME/OPatch/opatch apply

打完补丁后再建库,一方面省得后面补丁升级要跑catcon.pl,另一方面很多早期Bug在补丁后已经修复,建库过程更干净。

4. 监听器和数据库实例:从netca到dbca一条龙

4.1 netca创建监听

监听器是数据库对外服务的入口,创建用netca。静默创建:

su - oracle netca -silent -responsefile /u01/database/response/netca.rsp

生成的listener.ora默认在$ORACLE_HOME/network/admin/下,内容类似:

SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = yourhostname)(PORT = 1521)) ) )

验证监听是否起好:

lsnrctl status

看输出的Listener Parameter File和Services Summary,如果看到orcl服务正常注册,说明监听没问题。

这里提醒一下,如果/etc/hosts里主机名解析有问题,监听的HOST会自动变成127.0.0.1或无法解析的主机名,导致远程连接失败。很多网络端口明明是通的却连不上,第一个排查点就是监听里的HOST字段。

4.2 dbca静默建库

数据库实例的创建用dbca,静默方式非常直接:

dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl \ -sid orcl \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -memoryPercentage 25 \ -emConfiguration NONE \ -sysPassword "YourPass" \ -systemPassword "YourPass"

参数说明:

  • General_Purpose.dbc是通用模板,不需要额外图形干预。
  • characterSet选AL32UTF8,不要选ZHS16GBK。很多国内团队还在习惯性选ZHS16GBK,但AL32UTF8在11g下对中文的支持更稳定,应用的JDBC连接串也兼容,将来如果要往12c/19c迁移,字符集转换会让你少掉一层皮。
  • memoryPercentage 25表示给Oracle分配物理内存的25%。如果数据库需要更大内存,可以在建库后通过ALTER SYSTEM调整SGA/PGA,下面会细说。
  • emConfiguration NONE是关闭Enterprise Manager,省掉OEM的进程和端口开销,DBA日常直接命令行管理剧集。

建库过程需要几分钟,日志会在屏幕上滚动,最后显示数据库创建完成。

4.3 11g内存参数的真实情况

11g默认启用自动内存管理(AMM),MEMORY_TARGET会同时管理SGA和PGA。如果设置过大,实例启动时报:

ORA-00845: MEMORY_TARGET not supported on this system

原因是11g的AMM依赖/dev/shm的共享内存文件系统。大多数Linux 7默认/dev/shm只有物理内存的一半,比如物理32G,shm只有16G,而你把MEMORY_TARGET设了28G,直接超出shm容量,实例根本起不来。

解决方案有两个:

  1. 调低MEMORY_TARGET,让总和小于shm。
  2. 扩大/dev/shm容量,修改/etc/fstab重新挂载:
tmpfs /dev/shm tmpfs defaults,size=32G 0 0 mount -o remount /dev/shm

我个人更推荐第2种,因为数据库负载上来之后内存需求会增长,留出余量能省去后面的麻烦。同时注意,调整shm后free输出里swap和shm的变化容易误导人,以df -h /dev/shm为准。

4.4 开机自启:systemd下的另类方案

Oracle 11g自带dbstart和dbshut脚本,依赖/etc/oratab文件。先编辑/etc/oratab,找到这一行:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N

把最后的N改成Y:

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

脚本还需要root用户设置一个环境变量,表示数据库启动时自动拉起监听:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl

然后在systemd里注册服务,创建/etc/systemd/system/oracle.service:

[Unit] Description=Oracle Database Service After=syslog.target network.target [Service] Type=oneshot RemainAfterExit=yes User=oracle Group=oinstall ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut StandardOutput=journal [Install] WantedBy=multi-user.target

然后:

systemctl daemon-reload systemctl enable oracle systemctl start oracle

这样数据库和监听都能随系统开机自动启动,不需要再折腾chkconfig老方案。实测下来,这种用dbstart包一层systemd unit的方式最稳。

5. 安装完的验证清单与常见坑记录

5.1 安装后必须做的验证

新库装完,别急着交付给应用,先按下面清单过一遍:

  1. 数据库状态:
sqlplus / as sysdba select status from v$instance; select name, open_mode from v$database;

状态应该是OPEN,open_mode是READ WRITE。

  1. 监听状态:
lsnrctl status

确认Services Summary里orcl的实例状态是"READY"。

  1. 本地和远程连接测试:
sqlplus sys/xxx@//本机IP:1521/orcl as sysdba

这个测试能同时验证TCP端口、监听配置、hosts解析。

  1. 查看告警日志,确认没有ORA-错误:
tail -100 $ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log
  1. 归档模式。生产库一般要求开归档:
archive log list;

如果显示No Archive Mode,和业务确认后开启:

shutdown immediate; startup mount; alter database archivelog; alter database open;
  1. 密码有效期。默认PASSWORD_LIFE_TIME是180天,如果应用账号长期不换密码,到点会锁定。DBA可以把默认profile改成无限制,或让应用按规范改密:
alter profile default limit password_life_time unlimited;
  1. 备份策略。哪怕只装了单机,全库备份也要先跑通:
rman target / backup database plus archivelog;

5.2 踩坑记录一:监听服务无法启动

现象:lsnrctl start之后,命令卡住或立即退出,状态为UNKNOWN。

排查链路:

  1. lsnrctl status报TNS-12541或TNS-12545,先看端口被谁占用:netstat -lnpt | grep 1521。
  2. 端口没被占,再查listener.ora里的HOST字段,如果配置成了无法解析的主机名,把HOST改成实际IP。
  3. 还是不行,看$ORACLE_HOME/network/log/listener.log,这是最直接的证据。
  4. 如果日志里出现权限相关的报错,多半是$ORACLE_HOME/network/admin目录权限不对,chown成oracle:oinstall并确认目录可写。

我遇到过最隐蔽的情况是SELinux拦截。SELinux enforcing状态下,网络连接可以建立,但实际数据传输被丢弃,Oracle客户端报ORA-12537(连接被关闭),而监听日志几乎没内容。处理方式是先临时setenforce 0验证,确认是SELinux导致后再永久调整。

5.3 踩坑记录二:ORA-00845和/、dev/shm

这个坑在前面内存参数部分提过,再补充一个实际现象:运行时如果SGA自动扩展,把/dev/shm占满了,数据库实例会直接崩溃或者报ORA-27102。我在某台物理机上把MEMORY_TARGET设得过高,然后持续跑压测,几个小时后实例挂了,系统日志里全是Out of memory: Kill process。

所以建议:

  • /dev/shm容量至少等于你要给Oracle的内存总和的两倍,给自己留缓冲。
  • 对自动内存管理不要依赖自动调节,生产环境最好用手动设置SGA_TARGET和PGA_AGGREGATE_TARGET,避免在重负载下AMM反复调整导致性能抖动。

5.4 踩坑记录三:安装时链接报错

在Linux 7上安装Oracle 11g,链接阶段最容易报这些错:

relocation R_X86_64_32S against `.rodata' can not be used when making a shared object /usr/bin/ld: cannot find -lstdc++

第一种是编译器和链接器版本问题。Oracle 11g的link脚本对RHEL 7的gcc 4.8.5不完全兼容,在老版本11g介质上常见。11.2.0.4基本规避了大部分情况,但遇到的话可以尝试重新链接:

make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk

第二种是缺libstdc++库。检查一下:

ls /usr/lib64/libstdc++.so*

如果只有libstdc++.so.6而没有无后缀的符号链接,安装完整gcc和libstdc++-devel后会自动补上。如果还缺兼容库,就要回头装compat-libstdc++-33。

5.5 踩坑记录四:systemd下自启失效

这个问题很经典。Oracle老脚本依赖/etc/init.d/oracle和chkconfig注册,在RHEL 7上执行chkconfig --add oracle会提示不支持。如果谁直接复制老教程,用service oracle start拉起,大概率报unrecognized service。

解决方式就是前面写的systemd unit方案。要注意的是unit文件里ExecStart用dbstart,不要直接写sqlplus去startup,因为dbstart会读取/etc/oratab统一处理多个实例的启动,比手动startup更规范。

5.6 踩坑记录五:过时的目录权限导致ORA-27041

DBA如果图省事,用root在/u01/app/oracle下创建了目录,数据文件目录/u01/app/oracle/oradata权限就是root:root。建库或创建表空间时会直接报:

ORA-27041: unable to open file

排查时可以ls -l /u01/app/oracle/oradata,如果发现属主不是oracle,立刻chown回来。这类问题看起来是Oracle文件错,根子却在Linux权限上,排查思路要跨层。

6. 一些我在实际操作中的体会

装完这么多遍11g,最大的感受是:在Linux 7上装11g,其实不是"装"的问题,而是"适配"的问题。你只要保证所有前置参数、依赖、权限和官方文档一一对应,Oracle的安装过程反而出奇地顺利。

最后分享一个我自己动手时的习惯:每做一步环境变更(sysctl、limits、依赖包、hosts等),都先记录下来,再继续下一步。一旦后面某个环节出现异常,可以通过增量化回退排查,而不是从零开始猜。尤其是生产环境交付时,别人问起"这台机器装Oracle前都改过什么",有一份清晰的改动清单,比翻一大堆系统日志高效得多。

如果这篇总结对你也有帮助,或者你在安装中遇到不同的问题,按告警日志、监听日志、数据库alert日志这条链路去排查,大部分问题都能定位到根因。这套安装在CentOS 7和RHEL 7.4到7.9上都验证过,放心参考。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/9 3:07:21

基于SVD与SGNS的汉语子词向量构建与评测实战

简介&#xff1a;本资源面向自然语言处理课程学习者与词向量入门研究者&#xff0c;围绕汉语子词向量构建与相似度评测展开&#xff0c;提供基于SVD分解与基于SGNS两种方法的完整Python实现。语料采用训练集与测试集并集&#xff0c;SVD方法取K5获取高维分布表示后降维得到vec_…

作者头像 李华
网站建设 2026/10/9 3:07:21

从A6练手项目看计算器界面程序的核心架构与边界处理

拿到“A6&#xff1a;编写计算器界面程序”这个题目的时候&#xff0c;正文是空的&#xff0c;关键词也是空的&#xff0c;很多人可能觉得无从下手。但恰恰相反&#xff0c;这可能是最容易让我这类老开发兴奋的一个题目——计算器界面程序&#xff0c;几乎是所有编程教程里雷打…

作者头像 李华
网站建设 2026/10/9 3:05:21

Java金融信贷系统设计:从表结构到还款计划对账的核心要点

简介&#xff1a;基于Java技术的金融信贷系统设计源码&#xff0c;面向金融科技开发者与信贷系统设计人员&#xff0c;聚焦客户管理、信贷产品管理、审批流程、合同与风险控制等核心业务环节&#xff0c;适合作为信贷管理系统的学习、教学与二次开发基础。压缩包共85个文件&…

作者头像 李华
网站建设 2026/10/9 3:05:18

AI应用开发中的会话记忆持久化:方案选型与工程实现

做过对话系统或智能客服的伙伴&#xff0c;大概率都遇到过同一个尴尬场景&#xff1a;用户跟机器人聊得正起劲&#xff0c;服务端一重启&#xff0c;或者进程一崩&#xff0c;之前的聊天记录全没了。用户再次提问时&#xff0c;机器人像失忆一样&#xff0c;完全不记得三分钟前…

作者头像 李华
网站建设 2026/10/9 3:05:17

实验三 Socket 编程实战:从 TCP/UDP 到 select 模型搭建多人聊天室

简介&#xff1a;一套计算机网络实验用的Socket编程代码包&#xff0c;围绕TCP/UDP协议实现一对多聊天与多人聊天室场景&#xff0c;适合正在学习网络编程、需要完成课程实验或想动手验证传输层原理的学生与开发者。压缩包总共14个文件&#xff0c;核心源码包括C语言编写的serv…

作者头像 李华
网站建设 2026/10/9 3:05:12

用Python实现虚假新闻多模态识别:模型选型与实战训练

简介&#xff1a;这是一份基于Python的虚假新闻多模态识别项目&#xff0c;面向需要完成课程设计、期末大作业或入门多模态深度学习的高校学生与开发者。项目结合文本与视觉等多源信息&#xff0c;通过预训练模型与轻量梯度提升机、类别提升等融合策略判断新闻真伪&#xff0c;…

作者头像 李华