十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

银河麒麟V10 Server SP1上Oracle 19c静默安装完整指南

银河麒麟V10 Server SP1上Oracle 19c静默安装完整指南 先说结论在银河麒麟V10 Server SP1上安装Oracle 19c本质上和CentOS 7/RHEL 7环境没太大区别但坑全藏在细节里。我一开始以为把Oracle安装包复制过去、解压、跑一遍runInstaller就能收工结果光是依赖检查、内核参数和操作系统版本拦截就折腾了大半天。这篇文章把我实际跑通的静默安装流程、关键参数怎么选、踩过的坑和排障思路完整记录下来给同样要在银河麒麟V10服务器上部署Oracle 19c的朋友一份可以直接照着做的作业。这篇内容适合这几类人看需要在内网服务器上部署Oracle 19c的DBA或运维工程师正在做国产化系统适配、却不想被Oracle官方支持列表卡住的技术人以及被网上各种零散教程绕晕、想找一套完整可落地方案的新手。我会尽量把每个步骤为什么要这样做讲清楚而不只是贴命令。1. 项目概述与整体设计思路1.1 银河麒麟V10 Server SP1对Oracle 19c的支持情况银河麒麟V10 Server SP1是基于Linux内核的服务器操作系统在x86_64架构下的基础能力和CentOS 7/RHEL 7比较接近跑Oracle 19c没有天然障碍。不过要注意一个现实问题Oracle官方发布的安装包默认只认自家支持列表里的发行版银河麒麟并不在认证名单里。所以安装过程中OUIOracle Universal Installer很可能会弹出“操作系统不在官方支持列表”或者“缺少XXX包”的提示这不是说完全装不了而是需要我们对环境做一轮预检和参数对齐。我在生产环境里遇到的实际情况是只要把依赖包、内核参数、用户权限、目录规划这四个方面提前处理好面具式安装过程中的拦截点其实很少。真正耗时间的反而是那些不起眼的小问题比如libnsl库缺失、hosts文件解析异常、内存锁定参数不够这些问题在常规Linux发行版上不太会出现但在国产系统上确实要留意。1.2 为什么选择19c而不是11g或12c当前这个时间点做新项目部署我建议直接上19c不要再碰11g和12c。原因并不复杂19c的长期支持周期覆盖到2027年左右而且它把CDB/PDB架构作为默认形态后续要做多租户、做数据迁移、做集群扩展都更顺手。如果你只是单机部署也可以选择非容器数据库Non-CDB自由度更高。热搜词里提到了“单机CDB dbca安装过程”这也说明大家关心的其实就是单机环境下的容器数据库怎么建本文后面的实操就按CDB方式走但我会把参数写清楚想建非CDB的话把参数一改就行。有人觉得19c比12c复杂实际体验下来19c的静默安装响应文件反而更简化很多参数都有默认值不确定的项可以直接省略。再加上19c的dbca工具支持通过命令行传参不需要手写完整的.rsp文件这对脚本化和自动化部署来说非常友好。1.3 为什么采用静默安装而不是图形界面银河麒麟V10 Server SP1通常不带图形桌面环境就算个别环境装了桌面你面对的也可能是一台放在机房的远程服务器靠X11转发去跑图形界面安装器既慢又容易出问题。文字界面乱码、窗口控件无法渲染、X11转发超时这些现象我都遇到过。静默安装的思维是把要回答的选项都写进responseFile参数文件里runInstaller或dbca读取参数后自动执行。表面上看比图形界面多了个文件配置但实际部署时更可控。尤其是批量部署多台机器时同一套参数文件可以直接复用改个主机名、改个目录就能跑效率高很多。所以下面的实操全部以静默方式为准。1.4 环境规划与参数表我这次演示的测试环境如下实际部署时按你的服务器资源改一下内存、目录和IP即可。项目配置操作系统银河麒麟V10 Server SP1x86_64主机名db19cIP地址192.168.10.20CPU8核内存16GB系统盘100GB数据目录/u01单独挂载分区200GB数据库SIDorcl数据库类型单机CDB含1个PDBorclpdb字符集AL32UTF8Oracle安装路径/u01/app/oracle/product/19.0.0/dbhome_1安装用户oracle这里有个建议不要把oracle安装目录放在根分区下因为数据库的redo、undo、数据文件都集中在ORACLE_BASE里根分区空间一旦不够整个系统都会受到牵连。我习惯单独划一个/u01分区容量至少留数据库实际占用的1.5倍以上这是最基础的安全冗余。2. 安装前的系统检查与内核参数调整2.1 系统基础检查很多人在安装Oracle时一上来就解压安装包结果反复报错。其实第一步应该是确认系统基础信息先把CPU架构、内存、磁盘、网络解析这几项查清楚再看适配层的问题。先检查系统架构uname -m如果是x86_64那没问题。如果是aarch64ARM架构Oracle 19c也有对应的Linux ARM版本但下载包名称不一样本文主要讲x86_64场景。再检查内存和交换分区free -mOracle 19c单实例安装的最低内存要求是1GB但实际跑业务至少要4GB起步。我的建议是内存8GB以下就别开太多PDB16GB内存跑一个CDB加一两个PDB是没问题的。swap可以按内存的0.5到1倍预留但要注意Oracle在参数检查阶段会看swap大小swap过小可能触发CVU错误。磁盘检查也很重要df -h /u01确保/u01分区有足够空间。Oracle 19c二进制解压后的安装文件大约8GB左右加上后续数据文件、归档日志数据库整体占用会膨胀得很快。我一般要求/u01至少剩余100GB以上才敢开始装。hosts解析是另一个容易忽略的点。Oracle对主机名的反解析很敏感尤其是RAC环境主机名解析错误会直接导致安装失败。单机环境也要检查cat /etc/hosts确保存在一条“IP地址 主机名”的映射记录并且和hostname命令的输出一致。2.2 依赖包安装Oracle安装程序需要一系列共享库和编译工具银河麒麟的软件仓库包名和RHEL/CentOS有些差异不能完全照搬网上CentOS的依赖列表。我实际用到的依赖包安装命令如下dnf install -y binutils gcc gcc-c make ksh sysstat elfutils-libelf-devel \ libaio libaio-devel libnsl libnsl2 libnsl2-devel \ unixODBC unixODBC-devel compat-libcap1 compat-libstdc-33 \ xorg-x11-xauth注意几点compat-libstdc-33在老仓库里可能没有如果dnf报找不到包可以先跳过。这个包主要是让OUI的预检更顺利实际缺了也不会导致Oracle无法启动不必死磕。libnsl和libnsl2要特别注意。银河麒麟较新版本的glibc默认用libnsl2但Oracle 19c的客户机和核心库文件经常需要libnsl.so.1。只装libnsl2是不行的必须确认系统里有libnsl1的兼容库。我踩过一次坑就是安装时一切正常启动sqlplus时却报找不到libnsl.so.1后来补装libnsl才解决。如果你安装过程中还要用图形界面查看日志就装上xorg-x11-xauth配合X11转发使用。纯命令行操作也可以不装。依赖包建议分两次检查一次在安装Oracle软件前一次在DBCA建库前。因为建库过程中的某些组件需要额外的系统库第一次检查通过不代表后续就不会缺。2.3 创建用户与目录规划Oracle安装不能用root直接跑必须用专用的操作系统用户。创建用户组和用户的命令如下groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle passwd oracle这里把oracle用户的主组设为oinstall附加组为dba和oper。oinstall是inventory组用来管理Oracle的中央清单central inventorydba组是系统管理员组能执行sysdba认证oper组是操作员组权限低于dba一般情况可以不仔细纠结按这个规划走就行。创建目录mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 mkdir -p /u01/app/oraInventory mkdir -p /u01/oradata mkdir -p /u01/fast_recovery_area chown -R oracle:oinstall /u01 chmod -R 775 /u01/u01/app/oraInventory是Oracle中央清单目录安装时会自动生成inventory信息/u01/app/oracle是ORACLE_BASE/u01/app/oracle/product/19.0.0/dbhome_1是ORACLE_HOME。数据文件放在/u01/oradata快速恢复区放在/u01/fast_recovery_area。目录权限给到oracle:oinstall用户组即可不要用777避免安全风险。2.4 内核参数与资源限制计算内核参数是Oracle安装的重中之重尤其是共享内存段参数设置不当会导致数据库实例根本无法启动。下面是我在16GB内存机器上用的配置。cat /etc/sysctl.conf EOF fs.suid_dumpable 1 fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 2097152 kernel.shmmax 8589934592 kernel.shmmni 4096 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 vm.swappiness 10 EOF sysctl -p关键参数的计算逻辑kernel.shmmax单个共享内存段的最大字节数。Oracle SGA默认由单个大共享内存段承载这个值要大于SGA大小。16GB内存的机器我通常会设为物理内存的一半也就是8589934592字节8GB留足余量给PGA和其他进程。kernel.shmall共享内存页总数。Linux的默认内存页大小通常是4KB所以shmall shmmax / 4096。如果你把shmmax设为8GBshmall就是2097152页。kernel.sem四个数字分别代表信号量数组最大值、系统范围内信号量总数、每个信号量集合中的信号量数、系统范围内的信号量集合数。Oracle的推荐配置就是250 32000 100 128照用即可。资源限制参数也要改编辑/etc/security/limits.conforacle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle soft memlock 3145728 oracle hard memlock 3145728这里需要重点解释memlock。它限制了oracle用户能锁定的内存大小单位是KB。我设置的是3145728KB也就是3GB。为什么要锁定内存因为Oracle使用HugePages时需要把内存页锁定在物理内存里防止被交换到swap。如果你的数据库SGA规划比较大比如8GB以上memlock建议设置为物理内存的一半以上否则数据库启动时可能报ORA-27125之类的内存锁定错误。常用做法还包括关闭Transparent HugePages透明大页。对于Oracle这种对性能和内存分配敏感的应用透明大页反而可能引发性能问题禁用后利用传统HugePages更稳。执行echo never /sys/kernel/mm/transparent_hugepage/enabled echo never /sys/kernel/mm/transparent_hugepage/defrag为了让配置重启后仍然生效可以追加到/etc/rc.d/rc.local并确保rc.local有执行权限。不过作系统版本不同rc.local的默认权限也可能不同改动后建议用reboot测试一次。2.5 关闭防火墙与SELinux按需处理银河麒麟V10默认安全策略可能和普通CentOS有差异。为了避免安装过程中出现网络层或安全模块的干扰纯内网测试环境建议临时关闭防火墙systemctl stop firewalld systemctl disable firewalldSELinux如果处于enforcing模式也可能拦截Oracle进程对文件目录的访问。查看当前状态getenforce如果是Enforcing可以临时调整为permissivesetenforce 0生产环境如果安全要求高不建议彻底关闭而是根据实际访问控制策略放行相关端口和目录但这类精细化配置不在本文讨论范围内。测试阶段先关掉能少很多排查时间。3. Oracle 19c 软件静默安装3.1 下载与介质校验Oracle 19c for Linux x86_64的安装包名称是LINUX.X64_193000_db_home.zip。下载入口在Oracle官网的Software Downloads页面需要注册Oracle账号才能下载。注册是免费的这是官方唯一的下载途径。下载完成后做一次校验是最稳妥的做法避免安装包在传输过程中损坏sha256sum LINUX.X64_193000_db_home.zip把输出结果和Oracle官网提供的校验值对比一致再继续。这个步骤很多人会跳过我建议至少养成校验大文件安装包的习惯尤其是通过内网传输的场景网络中断造成的文件损坏很常见。3.2 解压与目录权限设置Oracle 19c的zip包解压后目录结构就是完整的ORACLE_HOME基础结构所以最规范的做法是解压到ORACLE_HOME路径下。su - oracle mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 cd /u01/app/oracle/product/19.0.0/dbhome_1 unzip -q /tmp/LINUX.X64_193000_db_home.zip这里注意必须用oracle用户执行解压保证解压出来的文件和目录所有者是oracle。如果root先解压了后面大概率会出现权限问题改起来很麻烦。3.3 配置静默安装响应文件静默安装的核心是响应文件。安装目录里自带模板response/db_install.rsp但建议复制一份出来改保留原始模板备用。cp response/db_install.rsp /home/oracle/db_install.rsp vi /home/oracle/db_install.rsp需要重点关注并修改的参数如下oracle.install.responseFileVersion/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1 ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPoper oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba oracle.install.db.OSKMDBA_GROUPdba oracle.install.db.OSRACDBA_GROUPdba oracle.install.db.rootconfig.executeRootScriptfalse oracle.install.db.ConfigureAsContainerDBfalse oracle.install.db.config.starterdb.typeGENERAL_PURPOSE oracle.install.db.config.starterdb.characterSetAL32UTF8 SECURITY_UPDATES_VIA_MYORACLESUPPORTfalse几个关键点说明oracle.install.optionINSTALL_DB_SWONLY表示只安装数据库软件不建库。建库放到后面的dbca步骤做。这样做的好处是软件安装和建库解耦任何一个阶段出错都容易定位。安装版本选EE企业版否则后续有些组件会缺失。ConfigureAsContainerDBfalse这里只是软件安装阶段和后面dbca建CDB没有直接关系。这里填false不会影响后续用dbca创建容器数据库。rootconfig.executeRootScriptfalse表示安装结束后由我们手动执行root脚本而不是安装程序自动调用。这种模式更可控尤其适合需要看root.sh执行输出的场景。3.4 执行runInstaller静默安装切换到oracle用户执行su - oracle cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/db_install.rsp参数-silent表示静默模式-ignorePrereq表示跳过OUI预检。为什么要加这个参数因为银河麒麟不在Oracle官方认证列表里OUI检查到操作系统类型时会直接拦截不跳过的话根本走不到安装环节。但注意-ignorePrereq不是让你忽略所有错误依赖包、内核参数这些还是要提前检查好的。安装过程中终端会停留在固定位置没有进度条这是正常现象。此时可以另开一个终端实时查看安装日志tail -f /u01/app/oraInventory/logs/installActions2025-*.log安装成功的标志是日志末尾出现Success或者终端出现类似“Execute /u01/app/oraInventory/orainstRoot.sh”的提示。安装完成后用root执行两个脚本sh /u01/app/oraInventory/orainstRoot.sh sh /u01/app/oracle/product/19.0.0/dbhome_1/root.shroot.sh执行时会让你确认网络配置文件路径一般情况下直接回车使用默认值即可。它主要用来设置权限、生成oracle用户环境脚本等。3.5 验证软件安装结果用oracle用户检查关键组件版本su - oracle export ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH我习惯先执行sqlplus -v这里即使还没建库只要软件装好sqlplus就能正常输出版本信息。sqlplus -v正常的话会输出SQL*Plus: Release 19.0.0.0.0 - Production Version 19.3.0.0.0到这一步Oracle数据库软件本身已经算装完了。接下来才是真正建库的关键环节。4. 监听配置与数据库实例创建4.1 用netca静默配置监听器数据库实例要和外界通信先要有监听器。Oracle自带netca工具只需要一个准确的监听器名su - oracle export ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp执行完查看监听状态lsnrctl status如果看到The command completed successfully以及类似Listening on: (DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOST...)(PORT1521)))的信息说明监听已经起来了。默认端口1521生产环境如果和别的服务冲突可以在$ORACLE_HOME/network/admin/listener.ora里改端口。4.2 用dbca静默创建CDB数据库很多教程会让你手写一个完整的dbca.rsp文件但我实际用下来直接用命令行传参更简洁不容易出错。下面这个命令创建的是一个单机CDB包含一个名为orclpdb的PDBdbca -silent \ -createDatabase \ -templateName General_Purpose.dbc \ -gdbName orcl \ -sid orcl \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName orclpdb \ -useOMF true \ -datafileDestination /u01/oradata \ -recoveryAreaDestination /u01/fast_recovery_area \ -recoveryAreaSize 20480 \ -totalMemory 4096 \ -storageType FS \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -memoryPercentage 40 \ -sysPassword Your_Strong_Pass_2025 \ -systemPassword Your_Strong_Pass_2025参数逻辑解析-createAsContainerDatabase true创建容器数据库这是19c推荐的部署方式。-numberOfPDBs 1 -pdbName orclpdb同时创建一个叫orclpdb的可插拔数据库。-useOMF使用Oracle管理文件数据文件路径和文件名由Oracle自动维护省心很多。-datafileDestination数据文件目录尽量放在独立分区。-recoveryAreaDestination快速恢复区目录闪回、归档日志都会写到这里。-recoveryAreaSize恢复区容量上限单位是MB这里设置为20GB。-totalMemoryOracle实例目标使用的内存总量单位MB。这里设为4096MB在16GB内存机器上比较稳妥留出足够的空间给操作系统和其他进程。-memoryPercentage 40让实例按物理内存40%的比例自动管理SGA和PGA。这个参数和totalMemory二选一即可如果两个都配置了totalMemory优先级更高。-characterSet AL32UTF8 -nationalCharacterSet AL16UTF16字符集和各国语言字符集。国内业务系统如果历史数据里没有特殊字符集需求AL32UTF8是最稳妥的选择基本不会出现乱码问题。-sysPassword和-systemPasswordSYS和SYSTEM用户的密码。密码建议至少10位包含大小写字母、数字和特殊字符避免不符合Oracle密码策略导致创建失败。dbca建库过程会持续15到25分钟取决于磁盘IO和内存大小。此时用另一个终端观察日志tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl/createDB.log看到Database creation complete之类的信息就表示建库成功。4.3 验证CDB和PDB状态建库完成后用oracle用户登录验证sqlplus / as sysdba SQL select name, cdb, open_mode from v$database;如果CDB列为YESOPEN_MODE为READ WRITE说明CDB已经打开。再看PDB状态SQL show pdbs;正常情况下可以看到ORCLPDB处于READ WRITE状态。如果PDB没有自动打开可以手动执行SQL alter pluggable database all open;4.4 配置开机自启动生产环境下服务器重启后Oracle实例和监听器应该能自动拉起。最简单的做法是写一个systemd服务或者直接利用Oracle自带的dbstart脚本。在/etc/oratab文件中把行尾的N改成Yorcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y然后在root用户下创建systemd服务文件/etc/systemd/system/oracle-19c.service内容大致如下[Unit] DescriptionOracle 19c Database Afternetwork.target [Service] Typeforking RemainAfterExityes Userroot ExecStart/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.0.0/dbhome_1 ExecStop/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.0.0/dbhome_1 [Install] WantedBymulti-user.target启用并启动服务systemctl daemon-reload systemctl enable oracle-19c systemctl start oracle-19c注意dbstart依赖/etc/oratab中的Y标记这一步别忘了。另外数据库关闭或启动时监听器也可能存在依赖顺序问题生产环境可以再写一个组合脚本把lsnrctl stop/start包进去这里不再展开。4.5 环境变量配置最后把oracle用户的.bash_profile补充完整避免每次登录都要手工exportcat /home/oracle/.bash_profile EOF export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.0.0/dbhome_1 export ORACLE_SIDorcl export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH export NLS_LANGAMERICAN_AMERICA.AL32UTF8 EOFNLS_LANG建议显式设置哪怕你已经把数据库字符集设成了AL32UTF8。很多乱码问题的根源不是数据库字符集而是客户端环境变量没设置导致客户端和服务端字符集不一致。5. 常见问题与排障实录5.1 依赖库缺失导致的启动失败症状安装完Oracle软件执行sqlplus时报error while loading shared libraries: libnsl.so.1: cannot open shared object file。这个问题的核心还是前面提到的libnsl版本兼容性。银河麒麟新环境的glibc默认使用libnsl2但oracle的二进制文件需要的是旧版libnsl.so.1。解决办法dnf install -y libnsl装完再执行sqlplus -v一般就能正常通过。5.2 OUI预检把银河麒麟当成不兼容系统症状runInstaller执行后提示操作系统版本不被支持或者卡在某个check要求上。这种情况处理方法就是加-ignorePrereq参数跳过预检。但这里我多说一句别把它当成万能药。跳过的前提是你已经把系统补丁、内核参数、依赖库都手工核对过了。否则就算软件装完后面建库或启动时还是会报警告那时排障成本更高。5.3 共享内存和HugePages问题症状数据库实例启动时报ORA-27125: unable to create shared memory segment或者提示无法锁定内存。这类问题通常和两个地方有关一是/etc/sysctl.conf里的kernel.shmmax和kernel.shmall设置过小二是/etc/security/limits.conf里的memlock太低。我的排障顺序是先看ipcs -m确认系统里面有没有足够的共享内存可用。再看sysctl里的shmmax是否大于SGA目标。最后看oracle用户的ulimit -l这个输出是锁定内存的软限制。ulimit -l如果输出是unlimited或者大于数据库SGA基本没问题。如果只有64KB那就按第2章里的配置改limits.conf并重新登录。5.4 中文乱码与文本编辑器问题症状安装过程中日志里的中文信息全是乱码或者Oracle客户端查询出来的数据中文显示异常。这里要区分两件事。一个是操作系统的本地化环境问题一个是数据库字符集问题。Kylin桌面版或安装了一些中文语言包的服务器上如果环境变量LANG设置不完整文本编辑器、终端都可能出现中文乱码。安装Oracle时终端里看到乱码通常不影响安装本身但为了排查方便建议统一把环境变量改为export LANGen_US.UTF-8 export LC_ALLen_US.UTF-8数据库层面的中文乱码需要确认三个地方的字符集一致数据库字符集通过V$NLS_PARAMETERS查看、操作系统环境变量NLS_LANG、客户端工具字符集。只要这三者统一成AL32UTF8基本不会乱码。5.5 dbca建库过程中断症状dbca执行到某个阶段突然退出或者卡住很久没反应日志里出现ORA-03113: end-of-file on communication channel。这类问题大多出现在建库过程中进程崩溃或内存不足。首先查看dbca详细日志位置一般在/u01/app/oracle/cfgtoollogs/dbca/orcl/重点看createDB.log和trace.log。如果是内存不足检查free -m看看是否因为过度配置了totalMemory导致操作系统内存耗尽。16GB内存的机器totalMemory给4096MB或者memoryPercentage给40是比较稳的区间。如果建库过程中其他应用也在占用内存就再往低调一点。5.6 远程连接不上症状客户端用PL/SQL Developer或DBeaver连接数据库报ORA-12541、ORA-12514或ORA-12170。三步走排查查看监听状态lsnrctl status确认1521端口处于监听状态。用tnsping orcl测试网络连通性如果解析失败多半是tnsnames.ora里的主机名或IP不对。检查服务器防火墙确认1521端口放行firewall-cmd --list-ports如果之前关闭了防火墙这步可以忽略。6. 安装后的自查清单与个人心得6.1 安装完成后的自查清单每次装完Oracle我都会按下面这个清单快速过一遍确认不是“看起来能开实际一重启就废”。检查项命令期望结果软件版本sqlplus -v输出19.3.0.0.0实例状态sqlplus / as sysdbaselect status from v$instance;OPENCDB状态select name, cdb, open_mode from v$database;CDBYESREAD WRITEPDB状态show pdbs;ORCLPDB READ WRITE监听状态lsnrctl status监听器输出正常归档模式archive log list;按业务需求确认磁盘空间df -h /u01剩余空间充足环境变量cat /home/oracle/.bash_profileORACLE_HOME、ORACLE_SID等正确6.2 一条特别想强调的经验安装过程中我最想强调的还是那句话依赖库检查要走在安装前面。银河麒麟V10看着和CentOS很像但仓库里的软件包版本、名称都可能有细微差别。把libnsl、libaio、compat-libstdc这些老库提前装好能省下后面一整个下午的排障时间。6.3 生产环境部署的扩展思考单机装完只是第一步真正上生产前我还会做几件事开启归档模式让数据库具备时间点恢复能力配置RMAN备份计划至少每周一次全备、每天一次归档备份把数据库统计信息自动收集任务打开监控/u01分区的空间使用率避免归档日志把磁盘写满。另外银河麒麟这类系统在后续补丁升级时可能会影响Oracle运行所依赖的glibc和其他库建议每次系统更新前先备份Oracle相关的目录或者明确禁止在数据库服务器上做无计划的系统升级。我见过不止一次因为系统补丁更新导致Oracle起不来的情况这个风险比安装时遇到的坑更隐蔽。这篇流程基本覆盖了我自己在银河麒麟V10 Server SP1上部署Oracle 19c的全部关键环节。按照这个顺序操作大概率能一次走通万一没走通也别忘了Oracle的诊断日志目录永远是你的第一排查入口。根据我个人经验安装过程最大的敌人不是复杂性而是以为所有东西都会按默认配置完美工作所以多留点心、多看日志比任何技巧都管用。
返回列表