ARTICLE DETAIL

资讯详情

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

Linux安装Oracle19C避坑指南:环境准备与静默安装详解

Linux安装Oracle19C避坑指南:环境准备与静默安装详解 简介面向Linux运维人员及Oracle DBA的安装实战指南以CentOS 7和Red Hat 7系统为例详细讲解Oracle 19C基于RPM方式的部署全流程。资源为单份docx文档压缩包约2.99MB内容精炼、步骤紧凑适合离线查阅。文档从前置环境检查起步覆盖内存、硬盘及Swap分区容量确认方法接着指导关闭firewalld防火墙、图形桌面与SELinux有效规避权限和图形界面带来的安装障碍随后配置静态IP、初始化主机名并创建dba、asmdba、backupdba等专用用户组及oracle用户同时给出/u01目录授权、limits.conf资源限制、sshd_config优化以及环境变量等易忽略细节每个步骤均附有具体命令和参数说明并针对常见坑点给出备注提示能显著降低安装失败的几率。整份文档按操作顺序组织新手可照步骤执行有经验者也可作为快速核对清单。已有超过一万七千人学习下载是Linux下部署Oracle 19C时实用性较强的参考资料。1. Linux安装Oracle19C详细步骤为什么跳过环境准备必翻车Linux安装Oracle19C详细步骤这个标题下面藏着的真实问题是为什么照着一堆教程敲命令Oracle还是装不上。我见过太多人在Windows上练得好好的一换到Linux就卡在预检查最后发现是swap、/dev/shm或者/etc/hosts这种最基础的地方没到位。这篇文章把Oracle 19C对应19.3.0.0.0那个安装包在RHEL/CentOS 7系服务器上的完整落地过程过一遍从选发行版、配内核参数到静默安装、建库验证再到五类高频问题怎么排。适合给Linux服务器部署数据库的运维、在虚拟机里练手的开发以及准备把旧库迁到19C的DBA。目标不是让你跑通一个Demo而是装完敢把它放在生产环境旁边待命。2. 装前准备选对Linux发行版和内核参数能省掉后面八成的事2.1 确定Linux发行版RHEL 7系、CentOS、国产Linux的兼容边界Oracle 19C官方支持基线是RHEL 7.4以上、Oracle Linux 7.4以上Red Hat 8系也在支持矩阵里。生产环境我会直接选Oracle Linux 7.9它和RHEL二进制完全兼容装Oracle的坑最少练手或者公司没有Oracle订阅CentOS 7.6到7.9是常见的替代选择虽然CentOS 7已经停止维护但存量机器和依赖生态都还在虚拟机里跑这套流程没问题。如果你公司要求用国产LinuxopenEuler这类RHEL系发行版也能套用本文的流程yum装依赖、sysctl参数、用户组这些步骤基本一致唯一要注意的是先核对内核版本和glibc版本是否满足Oracle 19C的预检查。这台机器如果是在VMware里装的Linux出现蓝屏先别怀疑系统镜像。最常见原因是BIOS里没开启CPU虚拟化其次是新建虚拟机时选的系统版本和实际镜像不匹配比如装64位CentOS却选了“其他Linux 2.6.x内核”。先把系统装到能稳定开机、能配好静态IP再说Oracle否则后面所有报错都混在一起没法排查。另外RAC部署不在本文范围虽然RAC用的也是同一个安装包但需要先装一套独立的Grid Infrastructure网络和共享存储的要求完全不同单机跑通后再去碰RAC是更稳妥的路径。2.2 依赖包与内核参数yum一条命令装完再用sysctl做两处强制修改Oracle 19C的安装程序在预检查阶段会逐个检查几十个RPM包。缺一个就报一个错补齐之后重跑还得等半天所以第一次就把依赖装齐最省事。在RHEL/CentOS 7系上我一般用这一条命令装完基础包yum -y install binutils compat-libcap1 compat-libstdc-33 gcc gcc-c \ glibc glibc-devel ksh libaio libaio-devel libX11 libX11-devel \ libXau libXau-devel libXi libXi-devel libXtst libXtst-devel \ libXrender libXrender-devel libXrandr libXrandr-devel libgcc \ libstdc libstdc-devel make sysstat unixODBC unixODBC-devel逻辑说明前几个是编译Oracle内部组件要用的GCC工具链ksh是Oracle脚本运行时的解释器libaio负责异步I/OlibX*系列是图形安装界面需要的库unixODBC给后续配ODBC驱动留着。这一串覆盖了19C预检查里90%的RPM检查项。装完后用rpm -qa | grep compat-libstdc抽查一下如果包名带.x86_64和.i686两个版本说明多架构依赖也齐了。内核参数是另一个重灾区。Oracle文档给的是一串固定值但不同机器内存不一样我习惯按物理内存自动计算避免拿别人2G内存的参数套到64G的机器上PHY_MEM$(free -k | awk /^Mem:/{print $2}) SHMMAX$((PHY_MEM/2*1024)) echo kernel.shmmax $SHMMAX /etc/sysctl.conf echo kernel.shmall $((SHMMAX/4096)) /etc/sysctl.conf echo fs.file-max 6815744 /etc/sysctl.conf echo net.ipv4.ip_local_port_range 9000 65500 /etc/sysctl.conf sysctl -p参数说明kernel.shmmax是单个共享内存段的最大字节数Oracle的SGA就挂在这个机制上设为物理内存一半是Oracle官方建议下限kernel.shmall是共享内存页总数按页大小4096字节换算fs.file-max决定整个系统能打开多少文件Oracle单个实例的进程数和文件句柄需求很容易突破默认值net.ipv4.ip_local_port_range把客户端可用的TCP端口范围扩大是为高并发连接准备的。改完务必执行sysctl -p只改文件不加载等于白干。还有/etc/security/limits.conf要单独配。Oracle用户需要把nofile文件句柄数和nproc进程数的软硬限制都抬高否则装完启动实例时会报“ORA-27102: out of shared memory”之类误导性的错误cat /etc/security/limits.conf EOF oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 EOF这里stack限制也很关键值单位是KB给Oracle的进程留足栈空间可以避免运行时段错误。如果你的系统开了SELinux建议先setenforce 0临时关闭等确认监听和实例都正常后再决定是放行还是保持关闭生产环境如果必须开SELinux要额外给Oracle的端口和目录写策略这个放在第5章讲。2.3 用户、组与目录布局别漏了19C新增的4个附加OS组Oracle安装必须用专门的用户不能用root直接跑安装程序这是安全模型的一部分。root用户创建ORACLE用户和权限组是标准做法19C比11g多了几个组少建任何一个组安装程序都会在预检查时报错groupadd oinstall groupadd dba groupadd oper groupadd backupdba groupadd dgdba groupadd kmdba groupadd racdba useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle逻辑说明oinstall是软件所有者的主组也叫Inventory Groupdba是数据库管理员组sys用户要用它登录oper是操作员组backupdba负责备份恢复相关操作dgdba给Data Guard用kmdba管加密密钥racdba是19C为RAC部署预留的。在单机环境里你可能用不到后四个组但安装程序会检查它们是否真实存在所以照建不误。useradd里的-G参数也可以换成usermod -aG在用户已存在时追加。目录布局按Oracle的OFAOptimal Flexible Architecture约定来这套约定决定了路径里每一级目录的职责mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app这里有个必须注意的细节ORACLE_HOME是/u01/app/oracle/product/19.3.0/dbhome_1这个目录就是安装包解压的目标位置也是后续安装程序真正写入二进制的地方/u01/app/oraInventory存放安装清单卸载和打补丁都要读它。把/u01/app整个授权给oracle:oinstall是为了让Oracle用户在/u01/app下自由创建子目录避免安装中段因为权限不足回滚。目录规划完先别急着往下走。用df -h /u01确认分区空间至少预留15GB给软件/tmp也要有1GB以上剩余空间Oracle安装过程中会在/tmp写大量临时文件。如果/tmp是独立分区且空间不足用mount -o remount,size4G /tmp重新挂载或者把TMPDIR环境变量指向/u01/app/oracle/tmp再继续这也是避免安装中途失败的一个土办法。3. 下载并解压安装包用runInstaller做一次干净的静默安装3.1 下载与目录规划为什么必须把zip解压到ORACLE_HOMEOracle 19C for Linux x86-64的安装包文件名是LINUX.X64_193000_db_home.zip通常在Oracle Software Delivery Cloud上能下载到企业内网如果有镜像站也可以直接拉内网地址。下载完第一件事不是解压而是核对文件校验值官网会给出对应的SHA256值用sha256sum LINUX.X64_193000_db_home.zip比对。我在一次迁移中跳过校验解压到一半报CRC错误才回头补校验白白浪费半小时。解压位置这个坑特别容易踩。很多人习惯下载到/tmp或者家目录解压但Oracle 19C的安装方式变了这个zip解压后的内容本身就是ORACLE_HOME所以它必须直接解压到最终要用的目录下而不是先解压到别处再复制。我前面已经把/u01/app/oracle/product/19.3.0/dbhome_1建好了现在直接用oracle用户解压进去su - oracle mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 cd /u01/app/oracle/product/19.3.0/dbhome_1 unzip /path/to/LINUX.X64_193000_db_home.zip逻辑说明unzip会把这个zip里的runInstaller、bin、lib、rdbms等目录释放到当前目录释放完成后pwd就是未来的$ORACLE_HOME。如果系统没装unzip先yum -y install unzip。解压完成后检查一下runInstaller文件是否带可执行权限没有就chmod x runInstaller。另外注意整条链路最好都用oracle用户操作避免root解压出来的文件权限让oracle用户无法写入。3.2 写db_install.rsp静默安装里必须显式声明的配置项安装程序提供一个模板响应文件位于解压后的install/response/db_install.rsp。静默安装就是给runInstaller传一个填好内容的响应文件让它不弹任何窗口。先复制模板再改cp $ORACLE_HOME/install/response/db_install.rsp /home/oracle/db_install.rsp chown oracle:oinstall /home/oracle/db_install.rsp vi /home/oracle/db_install.rsp响应文件是明文的keyvalue结构19C里必须改掉的项我列在下面这张表里。其他项保持模板默认值就行不用全填配置项推荐值说明oracle.install.optionINSTALL_DB_SWONLY只装数据库软件不在这步建库库留给后面的DBCAUNIX_GROUP_NAMEoinstall软件主组INVENTORY_LOCATION/u01/app/oraInventory安装清单目录ORACLE_BASE/u01/app/oracle基础目录ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1软件家目录oracle.install.db.InstallEditionEE企业版oracle.install.db.OSDBA_GROUPdbaDBA组oracle.install.db.OSOPER_GROUPoper操作员组oracle.install.db.OSBACKUPDBA_GROUPbackupdba备份DBA组oracle.install.db.OSDGDBA_GROUPdgdbaData Guard DBA组oracle.install.db.OSKMDBA_GROUPkmdba密钥管理DBA组oracle.install.db.OSRACDBA_GROUPracdbaRAC DBA组SECURITY_UPDATES_VIA_MYORACLESUPPORTfalse不连接Oracle官网检查更新DECLINE_SECURITY_UPDATEStrue明确拒绝安全更新订阅INSTALL_DB_SWONLY这个选项很关键。很多人习惯在安装软件的同时让安装程序顺手建库一旦中间某步出错就要整个回滚。分开做的好处是每步只验证一件事先确认软件装好再用DBCA建库出问题能明确知道是软件层还是数据库层。响应文件末尾还有一堆APPS_相关参数是给EBS用的用不到就留着。3.3 跑runInstaller与root脚本看到Success后还有两件事没做完响应文件保存后回到oracle用户执行静默安装。我一般加上-ignorePrereqFailure但这不是让你跳过所有报错而是指某些非关键警告比如物理内存刚好卡在边界值可以带病安装如果你在第2章把依赖和参数都配齐了这个参数基本触发不到。命令如下su - oracle cd $ORACLE_HOME ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereqFailure参数说明-silent表示完全静默所有配置读响应文件-responseFile指向刚才编辑的文件-ignorePrereqFailure让非致命预检查失败不阻断安装。执行后终端进入等待日志写到/u01/app/oraInventory/logs和$ORACLE_HOME/cfgtoollogs下。这个过程通常要15到30分钟取决于磁盘速度。装到一半卡住不动先别杀进程tail -f安装目录里的*.out日志看它是在做链接还是等待输入。安装日志出现Successfully Setup Software只代表安装程序的事情做完了真正决定生死的是最后出现的两行提示以root用户执行/u01/app/oraInventory/orainstRoot.sh和/u01/app/oracle/product/19.3.0/dbhome_1/root.sh。前者把Inventory目录的权限改到root下后者把Oracle的启动脚本注册到系统。这一步漏掉的后果是监听能起来但/etc/oratab里没有数据库条目后续dbstart、dbshut这类自动启停脚本全都不认识你的实例。su - root /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.3.0/dbhome_1/root.shroot.sh执行时会问/etc/oratab里的本地bin目录路径直接回车用默认值。脚本结束能看到类似Entries will be added to the /etc/oratab file的提示说明注册成功。以后交运维手册时这两条root命令一定要写进去很多人安装日志一看Success就关终端最后实例起不来满世界找原因。4. 建库配监听用netca和DBCA把空数据库变成能连的实例4.1 环境变量与netca先让1521端口真正起来软件装完oracle用户的环境变量还没配。这一步做得不规范后面输sqlplus都要写全路径而且Oracle很多工具脚本会按ORACLE_HOME环境变量找自己环境变量不对经常出现“sqlplus: command not found”或者工具版本混用。cat /home/oracle/.bash_profile EOF export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1 export ORACLE_SIDorcl19c export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH EOF source /home/oracle/.bash_profile环境变量说明ORACLE_SID是实例名后面建库时保持一致PATH把$ORACLE_HOME/bin放到开头确保敲sqlplus、dbca、netca用的是19C版本而不是系统自带的旧工具LD_LIBRARY_PATH指向$ORACLE_HOME/lib让sqlplus和expdp能找到libclntsh.so等动态库。每次重新登录终端source .bash_profile才会加载这些配置。监听用netca配。netca也有静默模式最省事的是直接执行下面这条netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rspnetca会读取netca.rsp里的模板配置在$ORACLE_HOME/network/admin下生成listener.ora、sqlnet.ora和tnsnames.ora。执行完成后用lsnrctl status验证能看到LISTENER的监听端口是1521说明监听已经起来了。如果lsnrctl报找不到命令回到上一步确认环境变量如果端口被占netstat -tlnp | grep 1521看到有别的进程在听先处理冲突再重配。配置监听这件事看起来简单实际排障时最容易出问题的反而是tnsnames.ora里的主机名。默认模板里HOST会写成当前机器的主机名如果/etc/hosts里没有这个主机名对应的IP远程客户端就连不上这个问题在第5章单独展开。4.2 DBCA静默建库一条命令完成建库、设字符集、开EM数据库软件和监听就绪后建库这一步用DBCA的静默模式完成。命令行传参比写响应文件更直观出错了也更容易定位。以下是一条常见的最小建库命令dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName orcl19c \ -sid orcl19c \ -characterSet AL32UTF8 \ -sysPassword Ora#2024DB \ -systemPassword Ora#2024DB \ -memoryMgmtType AUTO_SGA \ -emConfiguration NONE \ -datafileDestination /u01/app/oracle/oradata参数说明-templateName选通用模板它建出来的是适合OLTP的普通配置-gdbName是全局数据库名-sid是实例名-characterSet AL32UTF8把字符集设为UTF-8如果业务里有中文这个值不要选ZHS16GBKAL32UTF8对多语言支持更完整-memoryMgmtType AUTO_SGA让数据库自动管理SGA大小适合不太清楚该给多少内存的起步场景-emConfiguration NONE不配Enterprise Manager省掉一堆端口占用-datafileDestination指定数据文件目录。这条命令会跑5到10分钟建库过程中终端持续输出日志。密码里的#号被单引号包住shell不会当成注释符处理这个习惯建议保留。DBCA执行完会创建$ORACLE_HOME/dbs下的参数文件并在/etc/oratab里追加一行orcl19c:/u01/app/oracle/product/19.3.0/dbhome_1:NN表示开机不自动启动。如果执行到一半报ORA-12560通常不是DBCA本身的问题是监听没起来回到4.1确认lsnrctl status。4.3 首次登录验证sqlplus能进sysdba只是最低标准建库成功后的第一件事是验证实例状态不是急着建业务表。用oracle用户执行sqlplus / as sysdba SQL select instance_name, status from v$instance; SQL select name, open_mode from v$database;如果能查到ORCL19C且实例状态是OPEN说明数据库已经起来了。v$database的OPEN_MODE显示READ WRITE代表数据库是正常读写模式。这里要留意一个区别sqlplus / as sysdba走的是本地操作系统认证不经过网络所以它能通不代表远程能连。让你验证lsnrctl status的真正原因是看服务是否注册到了监听lsnrctl status | grep -E Service|Instance看到类似Service orcl19c has 1 instance(s)的输出才说明客户端可以通过网络访问这个数据库。远程机器上配好tnsnames.ora后用sqlplus systemorcl19c测试这才能覆盖真实的业务访问路径。关于卸载这里补充一句Windows上装Oracle失败会有人去查注册表Linux没有注册表这套机制卸载就是lsnrctl stop、sqlplus / as sysdba执行shutdown immediate然后删掉$ORACLE_HOME目录、清理/etc/oratab里对应行和oracle用户的环境变量。重装之前把这两个文件备份一份比什么“一键清理工具”都靠谱。5. 安装Oracle19C避坑笔记5个反复出现的坑按现象对号入座5.1 swap不够导致进度条卡死先看free -h再动手现象安装程序跑到6%或者10%左右就停住不动终端没有任何报错等半小时还是老样子。看/var/log/messages或者Oracle安装日志里有Killed process字样。原因Oracle预检查对swap有硬性要求物理内存小于等于2GB时swap建议是内存的两倍内存2GB到8GB时swap至少等于内存大小。很多云主机默认不给swap装Oracle跑到一半内存不够直接触发OOM Killer。解决先free -h看现状再按需添加swap文件fallocate -l 4G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo /swapfile none swap sw 0 0 /etc/fstab逻辑说明fallocate预分配4GB文件mkswap把它格式化成交换区swapon立即启用写入/etc/fstab保证重启生效。有些内核版本对fallocate支持不完整mkswap报错时改用dd if/dev/zero of/swapfile bs1M count4096。配完重新跑安装程序别在没扩展swap的情况下反复重试只会重复卡死。5.2 /dev/shm太小导致实例起不来别只调MEMORY_TARGET现象DBCA建库成功但重启实例时报ORA-00845: MEMORY_TARGET not supported on this system或者数据库能起来但查询大分区表时异常卡顿。原因Oracle 19C默认把内存管理建立在/dev/shm上/dev/shm是tmpfs大小默认只有物理内存的一半。如果你给SGA设置的内存接近甚至超过这个值shm写不进去就会报错。解决确认现状df -h /dev/shm把/dev/shm调大到内存的75%左右修改/etc/fstabtmpfs /dev/shm tmpfs defaults,size4g 0 0 mount -o remount /dev/shm注意size4g按实际物理内存调整比如内存8G就设6g。改完先mount -o remount /dev/shm验证再启动数据库。如果生产环境确实不想动/dev/shm就把memory_target和sga_target设小一点让实例在/dev/shm当前容量范围内运行但这不是根本解法后续并发一上来还会碰到瓶颈。5.3 /etc/hosts没写主机名本地能连、远程连不上的典型现象服务器本机sqlplus / as sysdba一切正常但用tnsnames.ora远程连接时报ORA-12545: Connect failed because target host or object does not exist或者内部工具比如EM、DBCA在解析主机名时超时。原因Oracle 19C装好后监听和数据库会把主机名注册到监听服务里。如果/etc/hosts里没有“主机名 对应IP”这一行监听注册时就拿不到正确地址远端客户端按照tnsnames.ora里的主机名去解析自然找不到。解决在/etc/hosts加一行192.168.1.20 oradb01oradb01换成你自己的主机名IP也换成这台机器的实际IP不要写127.0.0.1。改完重启监听lsnrctl stop lsnrctl start再重新执行lsnrctl status确认监听地址显示的是实际IP。这个坑在虚拟机上尤其常见因为VMware的DHCP会随时改IP建议给虚拟机配固定IP后主机名和IP一起写进/etc/hosts一劳永逸。5.4 图形界面起不来不用DISPLAY也能装完现象在没有桌面环境的Linux服务器上直接执行runInstaller报DISPLAY not set或者X connection failed。也有人配置了X11转发后打开安装界面一片空白按钮点了没反应。原因Oracle的交互式安装需要X Server服务器没有图形界面就没有DISPLAY环境变量即使本机有桌面SSH登录后X11转发没开启安装程序依然找不到显示目标。解决两个方向。第一如果只是想让图形界面弹到自己的电脑上SSH连接时加-X参数本机装好X Server比如Windows上的Xming或macOS的XQuartz然后在终端里执行./runInstaller第二不想折腾X11转发就用第3章写的静默安装方式-silent -responseFile不需要任何图形环境。我自己的习惯是服务器统一用静默安装本地虚拟机开发倒是可以开图形界面看着它跑。装不出来的图形界面不值得硬追静默安装本身就是Oracle提供的标准通道日志一样能定位问题。另外别把Windows上“删注册表清理Oracle”的思路带过来。Linux下Oracle的配置不在注册表里而在/etc/oratab、$ORACLE_HOME/dbs、$ORACLE_BASE/diag这几个位置。重装前备份这三处比折腾没完没了的清理脚本有用得多。5.5 root脚本漏执行日志显示Success监听还是起不来现象安装日志结尾确实有Successfully Setup Software但执行lsnrctl start时报监听无法创建日志目录或者数据库实例能手动sqlplus进去dbstart脚本却完全找不到这个实例。原因安装程序最后生成的orainstRoot.sh和root.sh不会自动运行它们负责把Inventory目录和/etc/oratab的归属权交给root。没有这两步Oracle用户对/u01/app/oraInventory没有写权限监听日志写不进去/etc/oratab里没有数据库条目dbstart自然不认账。解决用root用户执行这两个脚本顺序是orainstRoot.sh在前、root.sh在后。执行完root.sh后顺手验证一下/etc/oratab里面有orcl19c:/u01/app/oracle/product/19.3.0/dbhome_1:N这行就算成功。以后每次安装完把这两条root命令直接写进自动化脚本或者交接文档里不要依赖安装日志的提示。6. 装完怎么确认真的没问题进程、监听、alert日志三件套安装完成先别急着建业务表我习惯用一个几行的小脚本把环境整体确认一遍check_ora(){ echo --- 1. 进程检查 --- ps -ef | grep -E ora_|tnslsnr | grep -v grep | head -20 echo --- 2. 监听检查 --- lsnrctl status | grep -E Service|Instance echo --- 3. 实例状态 --- sqlplus -S / as sysdba SQL set pagesize 50 select instance_name,status from v$instance; select name,open_mode from v$database; SQL }输出里ora_开头的进程只要在10个以上且包含pmon、smon、dbw0、lgwr、ckpt这五个核心后台进程实例基本是健康的监听部分能看到Service orcl19c就意味着服务已注册。这些检查都通过再去看$ORACLE_BASE/diag/rdbms/orcl19c/orcl19c/trace/alert_orcl19c.log搜索ORA-和Error确认没有起库阶段的报错。我每次装完都会把这个alert日志复制一份按日期命名存起来几个月后如果业务说数据库变慢先拿这份历史日志做对比能省掉很多瞎猜的时间。另一个容易被忽略的小习惯是把/etc/oratab里orcl19c那一行的末尾从N改成Y再配合dbstart脚本让数据库在机器重启后自动拉起。这个改动很微小但能避免一次宕机后业务等你手工启动实例的尴尬。最后提一句只要路径规划、依赖参数、root脚本这三关过了Oracle 19C在Linux上的安装其实是个体力活真正折磨人的都是环境细节把这些步骤沉淀成一页检查清单比临时翻教程可靠得多。希望帮到你。本文还有配套的精品资源点击获取
返回列表