news 2026/9/19 3:01:24

Linux部署Oracle 11g全流程:依赖配置、静默安装与排错指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux部署Oracle 11g全流程:依赖配置、静默安装与排错指南

记得第一次在Linux上装Oracle 11g,我整整折腾了两个周末。不是卡在依赖包上,就是被OUI界面频频报错搞到心态爆炸,后来把整个流程从头到尾梳理了一遍,才发现很多问题都是“顺序不对”造成的。这篇文章我就把Linux上安装Oracle 11g的完整过程、关键配置以及我踩过的坑一次性说清楚,顺便把安装包下载渠道也一并交代明白,希望能帮正在和Oracle 11g斗智斗勇的你少走弯路。

Oracle 11g虽然是老版本,但在国内政企、金融、制造等行业的存量系统里依然大量存在。很多新项目虽然已经转向12c、19c或者国产数据库,但运维老系统、帮客户做数据迁移时,还是绕不开在Linux上部署一套11g。这篇文章适合三类人:第一类是要在测试环境快速搭一套Oracle 11g的研发或运维工程师;第二类是正在备考OCP、需要用Linux环境练手的学习者;第三类是接手了老项目,被迫去维护Oracle 11g的“接盘侠”。我会从系统准备、依赖安装、静默部署、建库配置一直写到问题排查,尽量把每个步骤背后的原因也解释清楚,而不是简单地丢命令。

1. 安装前必须想明白的三件事

1.1 版本与操作系统的匹配关系

Oracle 11g有两个大版本,11.1.0和11.2.0,目前在存量系统里最常见的是11.2.0.4,这也是11g的最后一个小版本。之所以推荐11.2.0.4,是因为它修复了大量早期版本的Bug,而且对主流Linux发行版的支持也最完善。如果你在网上下载到的是11.2.0.1或11.2.0.2,建议优先在My Oracle Support或第三方合法镜像里找到11.2.0.4的安装包再动手。

操作系统方面,Oracle官方文档里列出的支持列表是Red Hat Enterprise Linux 5、6,以及Oracle Linux 5、6。但在实际项目中,我见过很多CentOS 7、Rocky Linux,甚至是Ubuntu上跑Oracle 11g的案例。这里要说明一下:Oracle 11g官方并未声明支持CentOS 7,因为CentOS 7的glibc版本更高,systemd取代了init,安装时会遇到一些小问题。不过通过修改参数和安装兼容库,CentOS 7上跑11g是完全可行的,后面我会说具体怎么处理。

所以你要做的第一件事,就是确认自己的Linux发行版和内核版本。执行下面的命令查看:

cat /etc/redhat-release uname -r cat /etc/os-release

如果是Red Hat 6或CentOS 6,那恭喜你,默认兼容性最好。如果是CentOS 7或更高版本,建议用--force参数安装依赖包时格外小心,并且要留意pam_limitssystemd的配置方式变化。

1.2 硬件与资源评估

Oracle 11g对硬件的最低要求其实不高,但真要在生产环境跑,配置还是得留足余量。根据我的经验,安装数据库的机器最好满足这些条件:

资源最低要求建议配置
内存1GB8GB以上
交换分区内存的1.5倍内存的2倍
磁盘空间4.5GB以上100GB以上
CPU1核4核以上

内存不够的话,OUI在安装时会直接报错,提示Checking swap space: must be greater than 500 MB。如果你是在虚拟机上练习,内存建议给到2GB以上,同时swap给到3GB以上,否则后面跑DBCA建库时会非常吃力。

还需要特别注意的是Linux的/tmp目录空间。Oracle安装过程中会往/tmp写大量临时文件,如果/tmp空间不足,会出现类似Exception in thread "main" java.lang.OutOfMemoryError: Java heap space或者Error in invoking target 'install'之类的诡异报错。建议/tmp至少要有1GB空间。如果你用df命令发现不够,可以用mount -o remount,size=2G /tmp临时扩容,不过这只是权宜之计,最好在安装前就规划好分区。

1.3 下载安装包的正确姿势

题主提到“提供安装包链接”,这里我分享两个最省事的渠道。

第一个是Oracle官方下载页。11.2.0.4的Linux x86-64版本在Oracle官网的下载地址是:

https://www.oracle.com/database/technologies/112060-linx8664soft.html

打开后需要登录Oracle账号,没有的话注册一个OTN账号就行,完全免费。下载时你会得到两个Zip包,文件名大概是linuxamd64_12102_database_1of2.ziplinuxamd64_12102_database_2of2.zip。注意,Oracle 11g的官方下载链接偶尔会变动,如果上面的地址失效,可以去Oracle Software Delivery Cloud搜索Oracle Database 11g Release 2下载,这个平台是Oracle官方的软件交付中心,所有历史版本都能找到,同样需要登录账号。

第二个渠道是学校或企业内部软件站。很多高校的镜像站以及企业内部的软件库会缓存Oracle 11g的安装包,下载速度比Oracle官网快很多。不过需要提醒一句,尽量别从不知名的第三方博客或网盘下载安装包,因为Oracle的zip包通常是几百MB甚至上GB,网盘资源很容易被篡改或捆绑额外程序。我见过有人从网盘下载的Oracle安装包,解压后里面多了个setup_extra.sh脚本,一看就知道不对劲。安装包这种东西,还是官方渠道最稳妥。

2. 系统准备:依赖、内核参数和用户环境

2.1 依赖包到底缺哪些,怎么一次装齐

Oracle 11g安装过程中最让人崩溃的就是依赖包缺失。明明按照错误提示装了包,再次运行runInstaller时又冒出新的缺失项。其实很多依赖没有真正失效,只是版本不对,或者32位和64位混淆了。

在Red Hat / CentOS 6上,可以直接用yum批量安装Oracle文档里列出的包。不同版本略有差别,我整理了一份经过验证的清单(适用于Oracle 11.2.0.4 64位安装):

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 make sysstat unixODBC unixODBC-devel

这些包中,compat-libstdc++-33在CentOS 7里已经不在默认源中,需要单独处理。libaio-develunixODBC-devel在Oracle执行runInstaller时会进行硬性检查,缺少任何一个都会在预检查阶段直接卡住。

如果你用的是CentOS 7,还需要额外安装lvm2等工具,在安装前执行:

yum -y install lvm2

CentOS 7上缺少compat-libstdc++-33时,可以通过以下方式获取rpm包并安装:

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

不过这个地址容易失效,更简单的办法是找到CentOS 7的DVD镜像或已有的yum源,搜索安装。实在找不到这个rpm,也可以从CentOS 6的rpm包中提取,但要注意依赖关系,我倾向于建议你在安装时跳过OUI的“检查所需包”提示,先安装完再逐个补齐。具体跳过方法后面讲。

这里有个容易忽略的点:Oracle 11g安装时需要ksh,不是默认的bash。如果你在预检查阶段看到提示/bin/ksh: No such file or directory,就是没有安装ksh。用yum -y install ksh装一下即可。还有sysstat,不装的话后面用iostatsar监控数据库服务器会不方便,OUI也会报缺失。

2.2 内核参数与资源限制的调整说明

Oracle数据库对Linux内核参数有严格要求,目的是让共享内存、信号量、文件描述符等资源满足数据库运行需要。这些参数需要写入/etc/sysctl.conf,然后执行sysctl -p使配置生效。

我常用的配置如下:

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 2147483648 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

逐个说下含义。kernel.shmmax定义了单个共享内存段的最大字节数,Oracle SGA会使用共享内存,如果这个值小于SGA大小,数据库实例启动时很可能报ORA-27102: out of memorykernel.shmall定义整个系统共享内存页的总数,一般设置为kernel.shmmax / PAGE_SIZE,在x86_64系统上PAGE_SIZE是4096字节,所以2GB的shmmax对应shmall = 524288,但为了稳妥我会设置得更大。kernel.sem四个数字分别对应信号量数组的最大值、系统范围内最大信号量数、每个信号量集合的最大信号量数和系统范围内最大集合数,Oracle官方推荐就是250 32000 100 128

fs.file-max是系统总文件句柄上限,Oracle需要打开大量文件,尤其在数据文件、日志文件较多时,这个值不能太小。net.ipv4.ip_local_port_range设置本地TCP/UDP可用端口范围,Oracle客户端连接监听时端口范围太窄会导致连接失败。

改完后执行:

sysctl -p

接着还要修改用户资源限制,编辑/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是文件打开数,stack是栈大小,nproc是用户进程数。不调这些限制,数据库运行一段时间后可能出现无法创建新进程、文件打开失败等问题。对于CentOS 7和部分新版系统,还需要确保/etc/pam.d/login中有session required pam_limits.so这行,而且如果是用systemd启动的sshd服务,需要在sshd.service中加上LimitNOFILE配置,否则通过SSH登录时limits.conf可能不会生效。

2.3 创建oracle用户和目录结构

Oracle不允许用root用户直接安装数据库,必须创建一个专门的oracle用户,这是安全考虑,也是安装过程的硬性要求。创建命令如下:

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

这里把oracle用户的初始组设为oinstall,附加组设为dba。oinstall是Oracle Inventory组,用来管理Oracle软件安装清单;dba是数据库管理员组,用于操作系统身份认证的DBA权限。如果你还想让oracle用户具备asmadmin或oper等组权限,可以根据需求额外添加。

目录结构方面,Oracle 11g的ORACLE_BASEORACLE_HOME是两个核心路径。我习惯按OFA(Optimal Flexible Architecture)标准来创建:

mkdir -p /u01/app/oracle mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01

ORACLE_BASE通常是/u01/app/oracleORACLE_HOME则是/u01/app/oracle/product/11.2.0/dbhome_1。为什么要用/u01而不是直接装在/home/oracle下?因为/u01多用于专门的数据存储分区,避免把数据库软件和用户主目录混在一起,便于管理,也方便后续扩容。如果你的磁盘分区中根分区空间不大,建议专门挂载一个/u01分区,并且使用ext4xfs文件系统。安装前务必用df -h /u01检查可用空间。

创建好用户和目录后,还需要在oracle用户的环境变量中写入以下内容。编辑/home/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:/usr/lib64 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export TNS_ADMIN=$ORACLE_HOME/network/admin

ORACLE_SID是数据库实例名,这里用orcl是Oracle最常见的默认名称。NLS_LANG设置字符集和语言环境,设置为AL32UTF8可以避免中文字符乱码。LD_LIBRARY_PATH必须包含$ORACLE_HOME/lib,否则sqlplus启动时会报找不到libclntsh.so的错误。

配置完成后,用source ~/.bash_profile生效,然后切换用户验证:

su - oracle id echo $ORACLE_HOME

看到输出正常,说明用户环境就绪。

3. 安装过程实操:从解压到建库

3.1 安装包解压与静默安装模板

下载回来的两个zip包需要先解压到同一个目录。假设zip包放在/opt/install下,执行:

cd /opt/install unzip linuxamd64_12102_database_1of2.zip -d /opt/install/ unzip linuxamd64_12102_database_2of2.zip -d /opt/install/

注意两个包解压后会自动合并到同一个database目录,不需要手动合并。解压完成后,确认database目录下有个runInstaller文件:

ls -l /opt/install/database/

在Linux上安装Oracle 11g,可选图形界面和静默安装两种方式。如果服务器有图形桌面且你通过VNC或直接终端登录了图形会话,那么可以执行./runInstaller启动OUI图形安装,但很多生产服务器没有图形环境,或者X11转发配置麻烦,所以我更推荐静默安装,尤其是要写脚本批量部署的时候。

静默安装需要准备一个response文件。Oracle安装包中自带了模板,在database/response/目录下,有db_install.rspdbca.rspnetca.rsp。我们可以复制一份出来,修改关键参数:

cp /opt/install/database/response/db_install.rsp /home/oracle/db_install.rsp chown oracle:oinstall /home/oracle/db_install.rsp

然后编辑/home/oracle/db_install.rsp,关键的几个参数如下:

oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOSTNAME=db-server ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba oracle.install.db.BACKUPDBA_GROUP=dba oracle.install.db.DGDBA_GROUP=dba oracle.install.db.KMDBA_GROUP=dba oracle.install.db.CLUSTER_NODES= ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 oracle.install.db.InstallEdition=EE oracle.install.db.isCustomInstall=false oracle.install.db.customComponents= oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba oracle.install.db.CLUSTER_NODES= oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryLimit=800 oracle.install.db.config.starterdb.password.ALL=oracle123 oracle.install.db.config.starterdb.dbcontrol.enable=false oracle.install.db.config.starterdb.installExampleSchemas=false

注意,如果你只是先安装数据库软件(不创建数据库),把oracle.install.option=INSTALL_DB_SWONLY,后面与starterdb相关的参数不用管。如果想全自动安装软件并创建数据库,才需要写完整的dbca响应文件。

静默安装命令是:

su - oracle cd /opt/install/database ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq

-ignorePrereq就是前面提到的跳过预检查。如果你的系统是CentOS 7,缺少某些官方支持列表中的包时,加上这个参数可以强制继续。但不建议无脑跳过,后面的问题还是得手动解决。安装过程中会卡在“完成”阶段,提示你用root执行两个脚本:

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

先用root运行第一个脚本,它会修改中央Inventory的权限。第二个root.sh会在/etc/oratab中写入实例信息,并创建dbhome相关目录。如果不执行这两个脚本,后续监听器和数据库实例启动都会出问题。

3.2 OUI图形安装的关键选项

如果你有图形环境,也可以直接运行./runInstaller走图形界面。这种方式交互比较友好,但有几个选项我建议提前注意。

在“Installation Type”界面上,选“Create and configure a database”或“Install database software only”。如果只是学习或者准备手动建库,选“Install database software only”更灵活,避免OUI自动建库后一系列权限问题。后面用DBCA建库也是同样的效果。

在“Select Configuration Type”界面,如果选了“Enterprise Edition”,就是企业版,功能最全。标准版在某些功能上有限制,比如RAC、分区、OLAP等选项不可用。在没有特殊需求时,选“Enterprise Edition”。

字符集选择上,我建议直接选AL32UTF8。如果你的应用是老旧的GBK业务,可能需要选ZHS16GBK,这个要在安装前想清楚,后期修改字符集非常痛苦,甚至需要重建数据库。

在数据库密码设置页,注意密码复杂度要求,Oracle 11g要求密码至少8位、必须包含大写字母和数字。服务端还有密码策略,如果密码太简单,点击下一步时会报错。

图形安装最后同样会要求以root身份执行orainstRoot.shroot.sh,这一步永远躲不掉,别偷懒。

3.3 用DBCA创建实例,以及监听配置

如果前面选择只装软件,创建数据库实例就要用DBCA(Database Configuration Assistant)。命令非常简单:

su - oracle dbca

图形环境下会弹出DBCA向导。如果服务器没有图形界面,可以用静默方式创建实例。先准备一个dbca.rsp,修改重点参数:

gdbName = orcl sid = orcl sysPassword = oracle123 systemPassword = oracle123 datafileDestination = /u01/app/oracle/oradata characterSet = AL32UTF8 memoryPercentage = 40 templateName = General_Purpose.dbc

然后执行:

dbca -silent -responseFile /home/oracle/dbca.rsp

等待几分钟后,实例创建完成。如果看到日志中出现Database creation complete说明成功。此时你还需要手动配置监听器,避免客户端连不上。Oracle 11g的监听器用netca命令配置:

netca /silent /responsefile /opt/install/database/response/netca.rsp

执行完成后,会生成listener.ora文件,位于$ORACLE_HOME/network/admin/目录。用lsnrctl status查看监听状态:

lsnrctl status

正常情况下可以看到:

Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db-server)(PORT=1521)))

如果监听未启动,执行lsnrctl start手工启动。再把监听配置写入tnsnames.ora,否则sqlplus里用orcl连接会提示ORA-12154: TNS:could not resolve the connect identifier specified

tnsnames.ora内容如下:

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )

配置完成后,可以用以下命令测试连接:

sqlplus sys/oracle123@orcl as sysdba

如果提示Connected to an idle instance,说明实例没有启动,执行startup即可。这一步许多初学者会忘记,只要实例状态是OPEN,sqlplus就能正常登录。

4. 高频问题速查与排查笔录

4.1 常见报错及解决方案

我在多次安装中遇到过的坑,按“高频程度”排个序,给你直接当速查表用。

报错信息常见原因解决方法
Checking monitor: must be configured to display at least 256 colors图形界面不支持Oracle OUI显示使用静默安装,或者安装xorg-x11-deprecated-libs并配置X11转发
Exception in thread "main" java.lang.OutOfMemoryError/tmp空间不足或Java堆过小清理/tmp,设置环境变量JAVA_OPTIONS=-Xmx1024m
Error in invoking target 'install'缺失libaio-devel或make版本不兼容检查libaio相关包,重装binutilsgcc-c++
ORA-27102: out of memorykernel.shmmax小于SGA调整kernel.shmmax并执行sysctl -p
ORA-12547: TNS:lost contactoracle用户没有执行root.sh或者oracle_home权限不对执行root.sh,检查$ORACLE_HOME/bin/oracle的属主和权限
ORA-01078: failure in processing system parametersinit.ora或spfile配置了不存在的参数使用默认pfile恢复,或修正非法参数值
ORA-12514: TNS listener does not currently know of service requested监听未注册实例执行alter system register;,或重启监听并检查tnsnames.ora
libclntsh.so: cannot open shared object fileLD_LIBRARY_PATH未设置~/.bash_profile中增加LD_LIBRARY_PATH=$ORACLE_HOME/lib
/lib/ld-linux.so.2: bad ELF interpreter缺少32位glibc安装glibc.i686和相关32位兼容包

第一个“Checking monitor”错误,在无图形环境的服务器上非常常见。如果你非要图形界面,可以用XmingXshell的X11转发,但说实话,静默安装更省心。我后来直接把图形安装作为一种备份方案,主要流程全部改成了静默方式。

第二个OutOfMemoryError,有时候不是物理内存不足,而是Java堆不够。你可以在运行runInstaller前加上:

export JAVA_OPTIONS="-Xmx1024m"

但如果/tmp空间不足,这个也不顶用。最好用df -h /tmp检查,低于500MB就赶紧清理或重新挂载。

4.2 安装后启动自启与备份建议

安装完成后,很多人以为数据库就能一直运行了。实际上服务器重启后,Oracle实例和监听器默认是不会自动启动的,需要通过/etc/oratab和启动脚本来管理。

/etc/oratab文件是root.sh自动生成的,内容大致为:

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

最后的N表示重启时不自动启动。想启用自启,把N改成Y

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

然后创建启动脚本。在CentOS 6里可以直接把dbstartdbshut链接到rc*.d目录,但CentOS 7用的systemd,我更建议写一个systemd service文件。

新建/etc/systemd/system/oracle.service,内容如下:

[Unit] Description=Oracle Database 11g After=network.target [Service] Type=forking User=oracle Group=oinstall RemainAfterExit=yes ExecStart=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart $ORACLE_HOME ExecStop=/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut $ORACLE_HOME [Install] WantedBy=multi-user.target

注意,dbstart执行时需要读取/etc/oratab,并且会默认启动监听。如果/etc/oratab中的SYSTEMID配置不对,可能会启动失败。配置好后执行:

systemctl daemon-reload systemctl enable oracle systemctl start oracle

备份方面,开发测试环境可以忽略,生产环境建议至少开启归档模式。一旦开启归档,数据文件、控制文件、日志文件才有完整的恢复链。

sqlplus / as sysdba shutdown immediate; startup mount; alter database archivelog; alter database open; archive log list;

当然,开启归档后要注意归档日志盘空间,否则数据库会因为无法归档而挂起。我建议把归档目录设置到单独分区,并配置DB_RECOVERY_FILE_DEST_SIZE

4.3 一些容易忽略的细节

如果CentOS 7上安装11g时OUI预检查报错Checking OS requirements: Failed,不建议直接忽略,最好在CentOS 7上修改/etc/redhat-release中的版本号来骗过检查。这个操作只影响OUI的版本识别,不影响系统本身,但我不推荐在生产环境乱改系统文件。替代方案是在runInstaller参数里加上-ignorePrereq,并在后续手动处理依赖包。

还有/dev/shm的问题。Oracle 11g使用共享内存时,如果/dev/shm太小,可能导致实例启动后出现内存不足报错。默认/dev/shm通常是物理内存的一半,可以执行df -h /dev/shm查看。如果觉得小,可以修改/etc/fstab增加挂载大小,或者在数据库中使用MEMORY_TARGET参数控制内存使用,尽量避免耗尽/dev/shm

字符集乱码也是老问题。安装时选了AL32UTF8,但客户端用ZHS16GBK连接,中文就可能变成问号。这就需要在客户端设置NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8保持两端一致。我的经验是,数据库字符集和客户端字符集最好统一用AL32UTF8,现在的应用基本都支持UTF-8,尽量不要混用GBK和UTF-8。

防火墙和SeLinux也是两个“隐形杀手”。安装前最好先执行:

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

再关闭或放行防火墙端口:

systemctl stop firewalld systemctl disable firewalld

如果坚持用防火墙,需要放行1521端口:

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

我的建议是,在测试环境里直接关闭防火墙和SELinux能省掉很多莫名其妙的坑,但生产环境请根据公司的安全规范处理,不要为了省事把安全防线全关了。

最后再分享一个我自己实际踩过的教训:安装完毕后,不要把Oracle安装包和解压目录随手删掉。因为后续如果要打补丁、添加组件,或者排查某些问题,需要回到安装介质重新运行相关工具。我一般会在服务器上保留一份/opt/install/database目录,权限设为oracle:oinstall,这样既不占太多空间,又能应急。

Oracle 11g在Linux上的安装其实并不难,只要把依赖、内核参数、用户目录这三件事理顺,再选对静默安装或图形安装的方式,整个过程基本不会超过一个小时。但如果省略了这些准备步骤,哪怕装上了,后面也可能因为资源限制、监听器配置、字符集不一致等问题反复折腾。上面这些坑,都是我一个字一个字敲出来的真实经验,希望能让你少踩一次雷。

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

AI代码工具稳定性实战:从反复调试到工程化选型避坑指南

1. 为什么“稳定性”成了AI代码工具的第一道生死线1.1 从“能跑通”到“敢上线”的认知转变过去一年我陆续试过市面上七八款主流AI代码工具,从最早的代码补全插件到后来的对话式编程助手,踩过的坑比写过的代码还多。最典型的一次经历是:用某款…

作者头像 李华
网站建设 2026/9/19 2:57:42

RPCS3 存档互转实操:PS3 实机进度 4 步搬进模拟器

RPCS3 存档互转实操:PS3 实机进度 4 步搬进模拟器 【免费下载链接】rpcs3 PlayStation 3 emulator and debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 RPCS3 是一款 PlayStation 3 模拟器,它把主机的硬盘模拟成本地的 dev_hd…

作者头像 李华
网站建设 2026/9/19 2:53:24

Homebrew 7.0官方GUI上线,Intel Mac进入一年倒计时

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 2:51:38

Flutter适配开源鸿蒙实战:环境搭建、渲染原理与AtomGit协作

开源鸿蒙(OpenHarmony)这几年的步子迈得很快,设备形态从手表、电视一路延伸到平板和PC。我手上有一款工具类App,本来就跑在Android和iOS上,现在又要支持鸿蒙,如果每个平台各写一套原生,团队真的…

作者头像 李华
网站建设 2026/9/19 2:50:56

2026年随身WiFi选购全指南:从芯片方案到流量套餐的避坑与验收

我先说个结论:2026年这个时间点,你不用再纠结“要不要拉宽带”这个问题了。我身边越来越多的朋友,从北上广深的合租房到老家的自建房,都开始拿随身WiFi当主力网络。它确实不是万能的,但在相当多场景下,它比…

作者头像 李华