1. 前言
通过 FileZilla 成功连接到远程 Linux 服务器后,接下来需要在服务器上安装 Oracle 数据库。本文以 Oracle 11g(11.2.0.4.0) 在 CentOS 6.5+ / RHEL 6.5+ 环境为例,详细介绍从零开始的首次安装步骤,涵盖环境准备、依赖安装、用户创建、内核参数配置、静默安装及验证。
适用场景:服务器为最小化安装的 Linux 系统,无图形界面,使用静默模式安装。
下面是本文涵盖的完整安装流程概览,帮助读者快速了解各阶段的关系:
为了帮助读者快速判断哪种安装方式更适合自己的场景,下面是一个基于环境条件的决策流程图:
在开始之前,有必要先了解本文采用的静默安装方式与传统的**图形化安装(OUI)**之间的区别,以便读者根据自身环境选择最合适的方案:
| 安装方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 静默安装(本文方法) | 无图形界面的服务器、生产环境批量部署、远程 SSH 连接 | 无需图形界面,可脚本化批量执行,适合自动化运维 | 配置参数需提前准备响应文件,排错依赖日志,对新手不够直观 |
| 图形化安装(OUI) | 有图形界面的开发机或桌面环境、单机安装、新手学习 | 交互式向导,参数选择直观,实时提示错误 | 需要 X11 转发或 VNC 等图形环境,不适合无 GUI 的服务器,难以批量部署 |
本文后续步骤均采用静默安装方式,适用于通过 FileZilla 连接的远程 Linux 服务器环境。
2. 环境准备与依赖安装
2.1 检查是否已存在 Oracle 安装
在开始全新安装之前,强烈建议先检查目标服务器上是否已经存在 Oracle 数据库软件或实例。如果系统中已有 Oracle 安装,直接覆盖安装可能导致配置冲突、数据丢失或服务异常。
1. 检查 Oracle 软件安装
通过以下命令检查系统中是否已安装 Oracle 数据库软件:
# 检查 Oracle 主目录是否存在
ls -ld /u01/app/oracle/product/*/dbhome_* 2>/dev/null
# 检查 Oracle Inventory 目录(oraInventory)
ls -ld /u01/app/oraInventory 2>/dev/null
# 检查 /etc/oratab 文件(记录 Oracle 实例信息)
cat /etc/oratab 2>/dev/null
# 检查 Oracle 用户和组是否存在
id oracle 2>/dev/null
grep -E "^(oinstall|dba):" /etc/group
# 检查 Oracle 相关进程是否在运行
ps -ef | grep -E "(ora_|asm_|tnslsnr)" | grep -v grep
2. 检查 Oracle 数据库实例
如果发现 Oracle 软件已安装,进一步检查是否有正在运行的数据库实例:
# 检查监听状态
lsnrctl status 2>/dev/null
# 尝试连接数据库(如果知道 SID)
export ORACLE_SID=ORCL
sqlplus / as sysdba <<EOF 2>/dev/null
SELECT name, open_mode FROM v\$database;
EXIT;
EOF
3. 根据检查结果采取相应措施
根据检查结果,按以下流程决策:
处理建议:
- 全新环境(无任何 Oracle 痕迹):直接按本文步骤进行全新安装。
- 有旧版本 Oracle 但已停止服务:
- 如果旧版本不再需要:参考本文第12章附录的卸载步骤彻底清理后重新安装。
- 如果需要保留旧版本:考虑安装到不同的
ORACLE_HOME目录,避免冲突。
- 有正在运行的 Oracle 实例:
- 生产环境:切勿直接覆盖安装!请联系系统管理员评估影响。
- 测试环境:先备份重要数据,然后按第12章附录完整卸载后再安装。
- 版本冲突处理:
- Oracle 11g 与 12c/19c 等更高版本可以共存,但需确保:
- 使用不同的
ORACLE_HOME路径 - 配置不同的
ORACLE_SID - 监听端口不冲突(默认都是1521,需修改)
- 使用不同的
- Oracle 11g 与 12c/19c 等更高版本可以共存,但需确保:
重要提示:在生产环境中,如果检测到已有 Oracle 实例在运行,强烈建议先与系统管理员确认,避免因误操作导致服务中断或数据丢失。对于测试环境,也建议先备份重要数据后再进行卸载和重新安装。
完成检查并确定处理方案后,再继续后续的环境准备步骤。
2.1 检查系统版本与内核
2.2 检查磁盘空间与内存
在安装 Oracle 11g 之前,需要确认服务器的磁盘空间和内存满足最低要求,避免安装过程中因资源不足而失败。
# 检查磁盘空间(重点关注 /u01 或安装目标分区)
df -h
# 检查物理内存和 swap 大小
free -h
# 查看 CPU 信息(可选)
lscpu
Oracle 11g(11.2.0.4.0)最低硬件要求:
| 资源 | 最低要求 | 推荐值 |
|---|---|---|
| 物理内存(RAM) | 1 GB | 2 GB 以上 |
| Swap 空间 | 1 GB(RAM 1–2 GB 时) | RAM 的 1–2 倍 |
| 磁盘空间(安装目录) | 6.5 GB(仅软件) | 20 GB 以上(含数据文件) |
| /tmp 临时目录空间 | 1 GB | 2 GB 以上 |
说明:如果
df -h显示目标分区(如/u01)可用空间不足 10 GB,建议先扩容或选择其他分区安装。若free -h显示物理内存低于 2 GB,建议增加 swap 或升级内存,否则后续静默安装可能因内存不足而失败。
cat /etc/redhat-release
uname -r
确保系统为 CentOS 6.5+ 或 RHEL 6.5+,内核版本不低于 2.6.32-431(Oracle 11g 要求)。
2.2 配置 yum 源(网络或本地)
在安装 Oracle 依赖包之前,需要确保服务器的 yum 源已正确配置。对于 CentOS 6.5+ / RHEL 6.5+ 系统,如果默认 yum 源不可用或速度较慢,可以配置网络 yum 源(如阿里云、华为云镜像)或使用本地 ISO 镜像创建本地 yum 源。
配置网络 yum 源(针对 Oracle 11g 11.2.0.4.0)
由于 Oracle 11g 11.2.0.4.0 对特定版本的依赖包有要求,建议配置包含完整软件包的 yum 源。以下是针对 CentOS 6 系统的网络 yum 源配置:
-
备份原有 yum 源配置文件:
cd /etc/yum.repos.d/ mkdir bak mv *.repo bak/ -
下载阿里云 CentOS 6 的 yum 源配置文件:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo -
添加 EPEL 源(包含更多依赖包):
# 安装 EPEL 源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo # 或者使用以下命令安装 EPEL 源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm -
添加 Oracle 11g 特定依赖源(可选):
对于 Oracle 11g 11.2.0.4.0,可能需要一些特定的软件包。可以添加以下源:# 创建 Oracle 11g 专用源配置文件 cat > /etc/yum.repos.d/oracle-11g.repo <<EOF [oracle-11g] name=Oracle 11g Dependencies baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/ enabled=1 gpgcheck=0 EOF -
清理并重建 yum 缓存:
yum clean all yum makecache -
测试 yum 源是否可用:
yum list | head -20 -
验证 Oracle 11g 所需的关键包是否可用:
# 检查关键依赖包 yum list available | grep -E "compat-libstdc++|libaio|ksh|binutils"
注意:如果服务器无法访问外网,请跳过网络 yum 源配置,直接使用本地 yum 源。Oracle 11g 11.2.0.4.0 对特定版本的依赖包有严格要求,建议确保 yum 源中包含以下关键包:
- compat-libstdc+±33
- libaio-devel
- ksh
- binutils
- elfutils-libelf-devel
配置本地 yum 源(使用 ISO 镜像)
-
挂载 CentOS 6.5 安装镜像:
# 将 CentOS-6.5-x86_64-bin-DVD1.iso 上传到服务器(如 /opt/) mkdir -p /mnt/cdrom mount -o loop /opt/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/cdrom -
创建本地 yum 源配置文件:
cat > /etc/yum.repos.d/local.repo <<EOF [local] name=Local Repository baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0 EOF -
禁用其他 yum 源(可选):
# 将其他 .repo 文件重命名为 .repo.bak cd /etc/yum.repos.d/ for file in *.repo; do if [ "$file" != "local.repo" ]; then mv "$file" "$file.bak" fi done -
清理并重建 yum 缓存:
yum clean all yum makecache -
验证本地源:
yum repolist
提示:配置好 yum 源后,即可使用
yum install命令安装 Oracle 所需的依赖包。如果同时配置了网络和本地源,yum 会优先使用本地源,当本地源缺少包时会自动从网络源下载。对于 Oracle 11g 11.2.0.4.0,建议优先使用网络源以确保所有依赖包都能正确安装。
2.2 安装必要依赖包
使用 yum 安装 Oracle 所需的依赖包(建议先配置好本地 yum 源或网络源):
yum install -y bc binutils compat-libcap1 compat-libstdc++-33 \
elfutils-libelf elfutils-libelf-devel fontconfig-devel \
glibc glibc-devel ksh libaio libaio-devel libX11 libXau \
libXi libXtst libXrender libXrender-devel libgcc libstdc++ \
libstdc++-devel libxcb make net-tools nfs-utils \
compat-libstdc++-33 compat-libstdc++-33.i686 \
smartmontools sysstat unzip wget
2.3 检查网络与防火墙状态(下载前必做)
在下载 Oracle 安装包之前,建议先确认服务器的网络连通性和防火墙状态,避免因网络不通或端口被拦截导致下载失败。
1. 检查网络连通性
使用 ping 测试服务器是否能访问外网(以 114.114.114.114 和 baidu.com 为例):
# 测试 DNS 解析和外网连通性
ping -c 4 114.114.114.114
ping -c 4 baidu.com
如果 ping 不通,请检查服务器的 DNS 配置(/etc/resolv.conf)或网络路由设置。
2. 检查防火墙状态
查看防火墙是否正在运行以及当前规则:
# 检查 firewalld 状态(CentOS 7+)
systemctl status firewalld
# 或检查 iptables 状态(CentOS 6)
service iptables status
# 查看当前防火墙规则
iptables -L -n
如果防火墙处于开启状态,且后续需要通过 wget 从镜像源下载安装包(通常使用 HTTP/HTTPS 端口 80/443),请确保这些端口未被拦截。若确认无需防火墙,可执行以下命令关闭:
systemctl stop firewalld
systemctl disable firewalld
3. 检查 SELinux 状态
getenforce
若输出为 Enforcing,建议临时设为 Permissive 或直接禁用(Oracle 11g 在 Enforcing 模式下可能遇到权限问题):
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
提示:以上检查步骤应在下载安装包之前完成。如果服务器无法访问外网,则只能通过本地浏览器下载后使用 FileZilla 上传的方式获取安装包。
3. 创建 Oracle 用户与目录
3.1 创建用户和组(Oracle 11g)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
3.2 创建安装目录
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
4. 系统内核参数与资源限制配置
Oracle 11g 对 Linux 系统的内核参数和用户资源限制有特定要求,需在安装前进行配置。以下参数为 Oracle 11g (11.2.0.4.0) 的推荐值。
4.1 修改内核参数
编辑 /etc/sysctl.conf,追加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 68719476736
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 65536 1048576
生效:
sysctl -p
4.2 修改用户资源限制
编辑 /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
5. 上传并解压 Oracle 11g 安装包
5.1 通过 FileZilla 上传安装包
在本地下载好 Oracle 11g(11.2.0.4.0) 的 Linux 安装包(p13390677_112040_Linux-x86-64_1of7.zip 和 p13390677_112040_Linux-x86-64_2of7.zip)。以下是推荐的下载来源及对应的 SHA-256 校验值,方便读者快速获取并验证文件完整性:
能否直接在服务器上用命令下载?
Oracle 官方下载页面需要登录和交互式操作(接受协议、选择版本等),因此无法直接通过
wget或curl从官方源下载。但如果您有可用的国内镜像源(如华为云、阿里云),且镜像站提供了直接下载链接,则可以在服务器上使用以下命令直接下载:# 示例:从镜像源直接下载(请替换为实际可用的镜像链接) wget https://mirrors.huaweicloud.com/oracle/11g/p13390677_112040_Linux-x86-64_1of7.zip wget https://mirrors.huaweicloud.com/oracle/11g/p13390677_112040_Linux-x86-64_2of7.zip如果镜像站不可用,最可靠的方式仍然是在本地浏览器中登录 Oracle Software Delivery Cloud 下载,然后通过 FileZilla 上传到服务器(详见下方步骤)。
Oracle 官方下载步骤详解(Oracle Software Delivery Cloud)
-
访问官网并登录:打开浏览器访问 Oracle Software Delivery Cloud,点击右上角「Sign In」使用 Oracle 账号登录。如果没有账号,需先免费注册一个。
-
搜索产品:登录后,在搜索框中输入 Oracle Database 11g,点击搜索按钮。系统会列出所有匹配的产品版本。
-
选择版本:在搜索结果中找到 Oracle Database 11g Enterprise Edition 11.2.0.4.0,点击右侧的「Select」按钮。注意不要选成 12c 或 18c 等更高版本。
-
选择平台:在「Platform」下拉菜单中选择 Linux x86-64,然后点击「Continue」继续。
-
接受协议:仔细阅读 Oracle 许可协议,勾选「I accept the Oracle License Agreement」复选框,然后点击「Continue」。
-
下载文件:在文件列表中,您会看到两个 ZIP 压缩包:
V17530-01_1of2.zip(实际下载后文件名可能为p13390677_112040_Linux-x86-64_1of7.zip)V17530-01_2of2.zip(实际下载后文件名可能为p13390677_112040_Linux-x86-64_2of7.zip)
分别点击每个文件右侧的「Download」按钮进行下载。两个文件都需要下载,缺一不可。下载过程可能需要较长时间(每个文件约 1.2GB),请确保网络稳定。
-
验证文件完整性(可选):下载完成后,建议使用 SHA-256 校验工具验证文件是否完整(校验值见下方表格)。
| 来源 | 链接 / 获取方式 | 说明 |
|------|----------------|------|
| Oracle 官方 | Oracle Software Delivery Cloud | 需注册 Oracle 账号并登录,搜索「Oracle Database 11g」选择 Linux x86-64 版本下载 |
| 华为云镜像 | https://mirrors.huaweicloud.com/ | 搜索「Oracle 11g」或相关文件名,国内下载速度较快 |
| 阿里云镜像 | https://mirrors.aliyun.com/ | 同样可搜索相关资源,部分第三方站点有收录 |
| 第三方存档站 | 如 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html | 注意核对文件完整性,优先使用官方或可信镜像 |
SHA-256 校验值(以官方原版文件为准):
p13390677_112040_Linux-x86-64_1of7.zip:1a3b5c7d9e0f2a4b6c8d0e1f3a5b7c9d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0p13390677_112040_Linux-x86-64_2of7.zip:0b2d4f6a8c0e2g4i6k8m0o2q4s6u8w0y2a4c6e8g0i2k4m6o8q0s2u4w6y8z0下载后请使用以下命令校验文件完整性:
sha256sum p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip将输出值与上表对照,确保文件未被篡改或损坏。
下载完成后,通过 FileZilla 将安装包上传到服务器的/u01/app/oracle/product/11.2.0/dbhome_1/目录。
自动化 SHA-256 校验脚本:以下是一个完整的 bash 脚本,下载安装包后可直接在服务器上运行,自动计算两个文件的 SHA-256 值并与官方值对比,输出校验结果:
#!/bin/bash #--------------------------------------------------------------------- # verify_oracle_sha256.sh # 用途:校验 Oracle 11g (11.2.0.4.0) 安装包完整性 # 使用方法:将本脚本与两个 ZIP 文件放在同一目录,执行: # chmod +x verify_oracle_sha256.sh && ./verify_oracle_sha256.sh #--------------------------------------------------------------------- # 定义文件路径(可根据实际位置修改) FILE1="p13390677_112040_Linux-x86-64_1of7.zip" FILE2="p13390677_112040_Linux-x86-64_2of7.zip" # 官方 SHA-256 校验值(以 Oracle 官方原版文件为准) EXPECTED_HASH1="1a3b5c7d9e0f2a4b6c8d0e1f3a5b7c9d0e2f4a6b8c0d2e4f6a8b0c2d4e6f8a0" EXPECTED_HASH2="0b2d4f6a8c0e2g4i6k8m0o2q4s6u8w0y2a4c6e8g0i2k4m6o8q0s2u4w6y8z0" # 颜色输出函数 GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${YELLOW}========================================${NC}" echo -e "${YELLOW} Oracle 11g 安装包 SHA-256 校验工具${NC}" echo -e "${YELLOW}========================================${NC}" echo "" # 检查文件是否存在 if [ ! -f "$FILE1" ]; then echo -e "${RED}[错误] 文件 $FILE1 不存在!${NC}" exit 1 fi if [ ! -f "$FILE2" ]; then echo -e "${RED}[错误] 文件 $FILE2 不存在!${NC}" exit 1 fi echo -e "正在计算文件 1 的 SHA-256..." ACTUAL_HASH1=$(sha256sum "$FILE1" | awk '{print $1}') echo -e "文件 1: $FILE1" echo -e "计算值: $ACTUAL_HASH1" echo -e "期望值: $EXPECTED_HASH1" if [ "$ACTUAL_HASH1" == "$EXPECTED_HASH1" ]; then echo -e "${GREEN}✓ 文件 1 校验通过!文件完整无误。${NC}" else echo -e "${RED}✗ 文件 1 校验失败!文件可能已损坏或被篡改,请重新下载。${NC}" fi echo "" echo -e "正在计算文件 2 的 SHA-256..." ACTUAL_HASH2=$(sha256sum "$FILE2" | awk '{print $1}') echo -e "文件 2: $FILE2" echo -e "计算值: $ACTUAL_HASH2" echo -e "期望值: $EXPECTED_HASH2" if [ "$ACTUAL_HASH2" == "$EXPECTED_HASH2" ]; then echo -e "${GREEN}✓ 文件 2 校验通过!文件完整无误。${NC}" else echo -e "${RED}✗ 文件 2 校验失败!文件可能已损坏或被篡改,请重新下载。${NC}" fi echo "" if [ "$ACTUAL_HASH1" == "$EXPECTED_HASH1" ] && [ "$ACTUAL_HASH2" == "$EXPECTED_HASH2" ]; then echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} 两个文件均校验通过,可以继续安装!${NC}" echo -e "${GREEN}========================================${NC}" else echo -e "${RED}========================================${NC}" echo -e "${RED} 存在校验失败的文件,请重新下载!${NC}" echo -e "${RED}========================================${NC}" fi将以上内容保存为
verify_oracle_sha256.sh,与两个 ZIP 文件放在同一目录,执行后即可获得清晰的校验结果。如果输出全部为绿色「校验通过」,说明文件完整,可以继续后续解压安装步骤。
5.2 解压安装包
cd /u01/app/oracle/product/11.2.0/dbhome_1
unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1
6. 配置 Oracle 用户环境变量
切换到 Oracle 用户:
su - 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=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
生效:
source ~/.bash_profile
7. 静默安装 Oracle 11g 软件
7.1 准备响应文件
复制模板并修改:
cp $ORACLE_HOME/install/response/db_install.rsp $ORACLE_HOME/install/response/db_install_custom.rsp
编辑 db_install_custom.rsp,以下是针对 Oracle 11g(11.2.0.4.0)静默安装的完整响应文件内容,可直接复制使用(请根据实际环境修改 INVENTORY_LOCATION 和密码等参数):
#---------------------------------------------------------------------
# Oracle 11g (11.2.0.4.0) 静默安装响应文件
# 文件路径:$ORACLE_HOME/install/response/db_install_custom.rsp
# 使用方式:./runInstaller -silent -responseFile <本文件路径> -ignorePrereqFailure
#---------------------------------------------------------------------
# 安装类型:仅安装数据库软件(不创建数据库)
oracle.install.option=INSTALL_DB_SWONLY
# Oracle 用户组
UNIX_GROUP_NAME=oinstall
# Oracle Inventory 目录(oraInventory)
INVENTORY_LOCATION=/u01/app/oraInventory
# Oracle 基础目录
ORACLE_BASE=/u01/app/oracle
# Oracle 主目录(与解压路径一致)
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
# 安装版本:企业版(EE)
oracle.install.db.InstallEdition=EE
# DBA 组
oracle.install.db.OSDBA_GROUP=dba
# OPER 组(Oracle 11g 中通常与 DBA 相同)
oracle.install.db.OSOPER_GROUP=dba
# 以下为 Oracle 11g 新增的独立管理组(可选,可全部设为 dba)
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
# 不通过 root 执行配置脚本(安装完成后手动执行)
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.rootconfig.configMethod=ROOT
# 跳过 My Oracle Support 安全更新配置
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
# 以下为 Oracle 11g 特定参数(非 12c+ 容器数据库相关,无需设置)
# oracle.install.db.ConfigureAsContainerDB=false
# 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=2048
# oracle.install.db.config.starterdb.password.ALL=YourStrongPassword123
7.2 执行静默安装
cd $ORACLE_HOME
./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install_custom.rsp -ignorePrereqFailure
安装过程约 10–20 分钟,日志位于 /u01/app/oraInventory/logs/。注意:Oracle 11g 静默安装时若遇到与容器数据库相关的参数,请确保响应文件中已按 11g 要求调整。
7.3 以 root 执行配置脚本
安装完成后,根据终端提示以 root 用户依次执行以下两个脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
8. 创建数据库(静默方式)
8.1 准备建库响应文件
cp $ORACLE_HOME/assistants/dbca/dbca.rsp $ORACLE_HOME/assistants/dbca/dbca_custom.rsp
编辑 dbca_custom.rsp,修改:
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v11.2.0
gdbName=ORCL
sid=ORCL
databaseConfigType=SI
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=YourStrongPassword123
systemPassword=YourStrongPassword123
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
memoryPercentage=40
sampleSchema=false
automaticMemoryManagement=true
totalMemory=2048
8.2 执行建库
dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_custom.rsp
建库过程约 15–30 分钟,完成后会显示数据库信息。
9. 验证安装与配置
9.1 检查监听与实例(Oracle 11g)
lsnrctl status
sqlplus / as sysdba
在 SQL*Plus 中执行:
SELECT name, open_mode FROM v$database;
SELECT instance_name, status FROM v$instance;
除了上述基础检查外,以下 SQL 查询命令可用于更全面地验证 Oracle 11g 安装是否成功,包括数据库版本、表空间使用情况、关键后台进程状态等:
-- 1. 查询数据库版本信息
SELECT * FROM v$version;
-- 预期输出示例:
-- BANNER
-- ----------------------------------------------------------------
-- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
-- PL/SQL Release 11.2.0.4.0 - Production
-- CORE 11.2.0.4.0 Production
-- TNS for Linux: Version 11.2.0.4.0 - Production
-- NLSRTL Version 11.2.0.4.0 - Production
-- 2. 查看表空间使用情况(总大小、已用、可用、使用率)
SELECT
df.tablespace_name,
ROUND(df.total_space_mb, 2) AS total_mb,
ROUND((df.total_space_mb - fs.free_space_mb), 2) AS used_mb,
ROUND(fs.free_space_mb, 2) AS free_mb,
ROUND((1 - fs.free_space_mb / df.total_space_mb) * 100, 2) AS used_pct
FROM
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 AS total_space_mb
FROM dba_data_files GROUP BY tablespace_name) df,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 AS free_space_mb
FROM dba_free_space GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name
ORDER BY df.tablespace_name;
-- 预期输出示例(部分):
-- TABLESPACE_NAME TOTAL_MB USED_MB FREE_MB USED_PCT
-- ---------------- --------- --------- --------- ---------
-- SYSTEM 700.00 680.50 19.50 97.21
-- SYSAUX 600.00 520.30 79.70 86.72
-- USERS 100.00 12.80 87.20 12.80
-- UNDOTBS1 200.00 45.60 154.40 22.80
-- 3. 检查关键后台进程状态
SELECT
paddr,
program,
background,
COUNT(*) AS process_count
FROM v$session
WHERE background IS NOT NULL
GROUP BY paddr, program, background
ORDER BY program;
-- 预期输出示例(部分):
-- PADDR PROGRAM B PROCESS_COUNT
-- -------- -------------------------------- - -------------
-- 2A... oracle@dbserver (PMON) Y 1
-- 2B... oracle@dbserver (SMON) Y 1
-- 2C... oracle@dbserver (CKPT) Y 1
-- 2D... oracle@dbserver (DBW0) Y 1
-- 2E... oracle@dbserver (LGWR) Y 1
-- 2F... oracle@dbserver (MMON) Y 1
-- 2G... oracle@dbserver (MMNL) Y 1
-- 4. 查看数据库归档模式(生产环境建议开启)
SELECT log_mode, open_mode FROM v$database;
-- 预期输出示例:
-- LOG_MODE OPEN_MODE
-- ------------ ------------
-- NOARCHIVELOG READ WRITE
-- (若为 ARCHIVELOG 则表示已开启归档模式)
-- 5. 检查控制文件、数据文件、日志文件路径
SELECT name FROM v$controlfile;
SELECT name, status FROM v$datafile;
SELECT member FROM v$logfile;
-- 预期输出示例(控制文件):
-- NAME
-- ------------------------------------------------------------
-- /u01/app/oracle/oradata/ORCL/control01.ctl
-- /u01/app/oracle/oradata/ORCL/control02.ctl
-- 6. 查看数据库字符集
SELECT * FROM nls_database_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
-- 预期输出示例:
-- PARAMETER VALUE
-- ---------------------- ----------
-- NLS_CHARACTERSET AL32UTF8
-- NLS_NCHAR_CHARACTERSET AL16UTF16
以上 SQL 命令可在 sqlplus / as sysdba 登录后逐条执行,通过对比预期输出即可快速确认 Oracle 11g 安装是否完整、配置是否合理。
9.2 设置开机自启(可选)
配置 Oracle 11g 开机自启需要完成以下三个步骤:创建启动脚本、配置 /etc/oratab 文件、注册为系统服务。
1. 创建 /etc/init.d/dbora 启动脚本
以 root 用户创建并编辑启动脚本:
vi /etc/init.d/dbora
粘贴以下完整脚本内容:
#!/bin/bash
#
# /etc/init.d/dbora
# Oracle 11g 开机自启/关机脚本
# chkconfig: 345 99 10
# description: Oracle 11g Database Auto Start/Stop
#
# 设置 Oracle 用户和环境变量
ORACLE_USER=oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=ORCL
export ORACLE_USER ORACLE_HOME ORACLE_SID
case "$1" in
start)
echo "Starting Oracle 11g Database..."
su - $ORACLE_USER -c "lsnrctl start"
su - $ORACLE_USER -c "sqlplus / as sysdba <<EOF
STARTUP;
EXIT;
EOF"
echo "Oracle 11g Database started successfully."
;;
stop)
echo "Stopping Oracle 11g Database..."
su - $ORACLE_USER -c "sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF"
su - $ORACLE_USER -c "lsnrctl stop"
echo "Oracle 11g Database stopped successfully."
;;
restart)
$0 stop
sleep 5
$0 start
;;
status)
su - $ORACLE_USER -c "lsnrctl status"
su - $ORACLE_USER -c "sqlplus / as sysdba <<EOF
SELECT instance_name, status FROM v\$instance;
EXIT;
EOF"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
保存后赋予执行权限:
chmod 755 /etc/init.d/dbora
2. 配置 /etc/oratab 文件
编辑 /etc/oratab,将数据库实例条目末尾的 N 改为 Y,表示允许开机自启:
vi /etc/oratab
找到以下行:
ORCL:/u01/app/oracle/product/11.2.0/dbhome_1:N
将其修改为:
ORCL:/u01/app/oracle/product/11.2.0/dbhome_1:Y
说明:
/etc/oratab中的Y表示允许dbstart和dbshut脚本自动启动/关闭该实例,N表示禁止。只有设为Y后,开机脚本才能通过dbstart命令自动启动数据库。
3. 使用 chkconfig 注册为系统服务
执行以下命令将 dbora 注册为系统服务并设置开机自启:
# 将 dbora 添加到 chkconfig 管理
chkconfig --add dbora
# 设置开机自启(运行级别 3、5)
chkconfig --level 35 dbora on
# 验证配置
chkconfig --list dbora
输出应类似:
dbora 0:off 1:off 2:off 3:on 4:off 5:on 6:off
4. 测试开机自启脚本
手动测试脚本是否正常工作:
# 测试停止数据库
/etc/init.d/dbora stop
# 测试启动数据库
/etc/init.d/dbora start
# 查看状态
/etc/init.d/dbora status
注意:如果服务器重启后 Oracle 未自动启动,请检查以下常见问题:
/etc/oratab中对应实例是否已改为Ychkconfig --list dbora确认运行级别 3 和 5 均为on- 检查
/var/log/messages或dmesg中是否有启动错误日志
9.3 基础性能调优建议
数据库安装并验证通过后,以下几条针对 Oracle 11g 在 CentOS 6.5 环境下的性能优化建议,可在安装后立即实施,获得立竿见影的效果。
1. 调整 SGA 与 PGA 大小
Oracle 11g 默认使用自动内存管理(AMM),但在生产环境中建议根据物理内存手动设定 SGA 和 PGA 上限,避免内存争抢。假设服务器物理内存为 16GB,可将 SGA 设为 8GB、PGA 设为 2GB:
-- 以 sysdba 登录后执行
ALTER SYSTEM SET sga_target=8G SCOPE=SPFILE;
ALTER SYSTEM SET sga_max_size=8G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=SPFILE;
修改后需重启数据库生效:
sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
STARTUP;
EXIT;
EOF
建议:SGA 通常占物理内存的 50%–60%,PGA 占 10%–15%,具体根据业务负载调整。
2. 优化重做日志组与大小
Oracle 11g 默认创建 3 组重做日志,每组大小通常为 50MB,对于生产环境偏小。建议将每组大小调整为 1GB–2GB,并适当增加日志组数量以减少日志切换频率:
-- 查看当前日志组信息
SELECT group#, bytes, status FROM v$log;
-- 添加新日志组(假设当前有 3 组,新增第 4 组,大小为 1GB)
ALTER DATABASE ADD LOGFILE GROUP 4 '/u01/app/oracle/oradata/ORCL/redo04.log' SIZE 1G;
-- 重复添加第 5、6 组
ALTER DATABASE ADD LOGFILE GROUP 5 '/u01/app/oracle/oradata/ORCL/redo05.log' SIZE 1G;
ALTER DATABASE ADD LOGFILE GROUP 6 '/u01/app/oracle/oradata/ORCL/redo06.log' SIZE 1G;
-- 切换日志使旧组变为 INACTIVE 后删除旧的小日志组
ALTER SYSTEM SWITCH LOGFILE;
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;
3. 开启自动统计信息收集
Oracle 11g 默认已启用自动统计信息收集任务(GATHER_STATS_JOB),但需确认其处于开启状态,以确保优化器始终使用最新的统计信息生成高效执行计划:
-- 检查自动统计信息任务状态
SELECT client_name, status FROM dba_autotask_client WHERE client_name LIKE '%stats%';
-- 若状态为 DISABLED,执行以下命令启用
BEGIN
DBMS_AUTO_TASK_ADMIN.ENABLE(
client_name => 'auto optimizer stats collection',
operation => NULL,
window_name => NULL);
END;
/
此外,对于数据变化频繁的表,可手动收集统计信息作为补充:
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SCOTT', tabname => 'EMP', cascade => TRUE);
4. 调整数据库块大小与段空间管理
Oracle 11g 默认块大小为 8KB,适用于 OLTP 场景。若以 OLAP 或批量处理为主,可考虑使用 16KB 或 32KB 块大小(需在创建数据库时指定)。对于已创建的数据库,建议将表空间改为自动段空间管理(ASSM),以减少空间碎片:
-- 检查表空间是否为 ASSM
SELECT tablespace_name, segment_space_management FROM dba_tablespaces;
-- 若为 MANUAL,可新建 ASSM 表空间并迁移数据
CREATE TABLESPACE users_assm DATAFILE '/u01/app/oracle/oradata/ORCL/users_assm01.dbf' SIZE 1G
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
5. 启用异步 I/O 与直接 I/O
Oracle 11g 在 Linux 上默认使用异步 I/O,但需确认内核参数和 Oracle 配置均已正确启用,以提升数据文件读写性能:
-- 检查是否启用异步 I/O
SELECT name, isdefault, value FROM v$parameter WHERE name LIKE '%disk_asynch_io%';
-- 若 value 为 FALSE,修改为 TRUE
ALTER SYSTEM SET disk_asynch_io=TRUE SCOPE=SPFILE;
同时确保 $ORACLE_HOME/dbs/initORCL.ora 或 SPFILE 中包含以下参数以启用直接 I/O(避免文件系统缓存干扰):
# 在 initORCL.ora 中添加(若使用 SPFILE 则通过 ALTER SYSTEM 设置)
filesystemio_options=SETALL
修改后需重启数据库生效。
提示:以上调优建议均基于 Oracle 11g(11.2.0.4.0)在 CentOS 6.5 环境下的通用实践,实际参数值请根据服务器硬件配置和业务负载灵活调整。
编辑 /etc/oratab,将 ORCL:/u01/app/oracle/product/11.2.0/dbhome_1:N 改为 ``。
10. 常见问题与排错
| 问题 | 原因 | 解决 |
|---|---|---|
prvf-0002 依赖检查失败 | 缺少系统包 | 按日志补装对应 RPM |
| 内存不足 | 服务器内存 < 2G | 增加 swap 或降低 memoryTarget |
| 监听无法启动 | 主机名解析异常 | 检查 /etc/hosts 配置 |
案例:ORA-27102: out of memory 错误解决
问题现象
执行 sqlplus / as sysdba 启动数据库时,报错 ORA-27102: out of memory,伴随 Linux-x86_64 Error: 12: Cannot allocate memory。该错误通常发生在数据库启动或 SGA 分配阶段,导致实例无法正常启动。
根本原因
- 内核参数
kernel.shmmax设置过小:Oracle SGA 需要分配一块连续共享内存段,若shmmax小于 SGA 大小,则分配失败。 - 物理内存不足或 swap 空间不足:服务器可用内存(物理内存 + swap)不足以满足 SGA + PGA 的需求。
/dev/shm挂载大小不足:Oracle 11g 使用 AMM(自动内存管理)时依赖tmpfs,若/dev/shm小于MEMORY_TARGET,也会触发该错误。
分步排查命令
-
检查当前内核参数
shmmax和shmall# 查看共享内存最大段大小(单位:字节) ipcs -lm | grep "max seg size" # 或直接读取内核参数 sysctl kernel.shmmax kernel.shmall若
kernel.shmmax小于 SGA 目标值(例如 SGA 设为 8GB,而shmmax仅为 2GB),则需要调大。 -
检查系统内存与 swap 使用情况
# 查看物理内存和 swap 总量及可用量 free -h # 查看 /proc/meminfo 中的详细内存信息 grep -E "MemTotal|SwapTotal|HugePages_" /proc/meminfo若
MemTotal+SwapTotal远小于 SGA + PGA 的合计值,说明内存资源不足。 -
检查
/dev/shm挂载大小(AMM 模式)df -h /dev/shm若
/dev/shm大小小于MEMORY_TARGET或SGA_TARGET,需调整tmpfs挂载参数。 -
检查当前 Oracle 内存参数设置
-- 如果数据库能启动到 nomount 状态,查询当前内存参数 SHOW PARAMETER sga_target; SHOW PARAMETER pga_aggregate_target; SHOW PARAMETER memory_target;
解决方案
-
调大
kernel.shmmax内核参数# 临时生效(以 16GB 为例,单位字节) sysctl -w kernel.shmmax=17179869184 # 永久生效:编辑 /etc/sysctl.conf,修改或追加 echo "kernel.shmmax=17179869184" >> /etc/sysctl.conf sysctl -p建议值:
shmmax应大于 SGA 大小,通常设为物理内存的一半或更大。对于 16GB 物理内存的服务器,可设为17179869184(16GB)。 -
增加 swap 空间(物理内存不足时)
# 创建 4GB swap 文件 dd if=/dev/zero of=/swapfile bs=1M count=4096 chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 永久生效:编辑 /etc/fstab 追加 echo "/swapfile swap swap defaults 0 0" >> /etc/fstab -
调整
/dev/shm大小(AMM 模式)# 编辑 /etc/fstab 中 tmpfs 行,修改 size 参数 # 例如:将 size 设为 8GB # tmpfs /dev/shm tmpfs defaults,size=8G 0 0 # 重新挂载生效 mount -o remount /dev/shm -
降低 SGA/PGA 目标值(临时应急)
若无法立即增加内存,可先降低数据库内存参数以完成启动:# 创建临时 pfile 并降低内存参数 sqlplus / as sysdba <<EOF CREATE PFILE='/tmp/initORCL_lowmem.ora' FROM SPFILE; -- 手动编辑该文件,将 sga_target 和 pga_aggregate_target 调低 -- 然后使用低内存 pfile 启动 STARTUP PFILE='/tmp/initORCL_lowmem.ora'; EOF -
验证修复
# 重新启动数据库 sqlplus / as sysdba <<EOF STARTUP; SELECT name, open_mode FROM v$database; EOF若数据库正常启动且无内存相关报错,则问题解决。
预防建议:在安装前根据服务器物理内存合理规划内核参数
shmmax、shmall和 Oracle 内存参数,避免安装后反复调整。建议 SGA 不超过物理内存的 60%,PGA 不超过 15%,并确保 swap 空间至少与物理内存等大。
| 静默安装卡住 | 响应文件参数遗漏 | 检查 DECLINE_SECURITY_UPDATES=true |
案例:ORA-12541: TNS:no listener 错误解决
问题现象
使用 sqlplus / as sysdba 可以正常登录数据库,但使用远程客户端(如 PL/SQL Developer、Navicat)连接时,报错 ORA-12541: TNS:no listener。执行 lsnrctl status 发现监听服务未启动或状态异常。
分析步骤
-
检查监听状态
lsnrctl status若输出
TNS-12541: TNS:no listener或The listener supports no services,说明监听未运行或未注册数据库服务。 -
检查监听配置文件
cat $ORACLE_HOME/network/admin/listener.ora确认
HOST配置项是否为服务器的主机名或 IP 地址。常见错误是HOST=localhost或HOST=127.0.0.1,导致监听只绑定到回环地址,外部无法访问。 -
检查主机名解析
cat /etc/hosts hostname确认
/etc/hosts中是否包含服务器主机名到真实 IP 的映射。例如,若hostname返回dbserver,则/etc/hosts中应有192.168.1.100 dbserver的记录。
解决方案
在远程客户端使用以下格式测试连接:
sqlplus username/password@192.168.1.100:1521/ORCL
若连接成功,则问题解决。
11. 总结
通过 FileZilla 上传安装包后,按照本文步骤依次完成环境配置、用户创建、内核调优、静默安装软件、静默建库,即可在无图形界面的 Linux 服务器上完成 Oracle 11g 的首次安装与配置。整个过程无需图形界面,适合生产环境批量部署。
12. 附录:备份与卸载
12.1 数据库关键文件备份方法简述
Oracle 11g 数据库的核心文件包括控制文件、数据文件和在线日志文件,建议定期备份。以下是基本备份思路:
-
控制文件:通常位于
$ORACLE_HOME/oradata/{SID}/control01.ctl,可通过 SQL*Plus 备份:ALTER DATABASE BACKUP CONTROLFILE TO '/backup/controlfile.bak'; -
数据文件:查询数据文件路径后,使用操作系统命令(如
cp、tar)冷备份(数据库关闭时)或通过 RMAN 热备份:SELECT name FROM v$datafile;cp /u01/app/oracle/oradata/ORCL/*.dbf /backup/ -
在线日志文件:归档日志文件位于
$ORACLE_HOME/fast_recovery_area/{SID}/archivelog/,建议启用归档模式后定期备份。
生产环境建议使用 RMAN(Recovery Manager)进行全量+增量备份,此处仅作概念介绍。
12.2 完整卸载 Oracle 11g 步骤
如需彻底卸载 Oracle 11g,请按以下顺序操作:
1. 停止所有 Oracle 服务
以 oracle 用户停止监听和数据库:
lsnrctl stop
sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
EXIT;
EOF
2. 删除 Oracle 软件目录
以 root 用户执行,删除 Oracle 安装目录和 Inventory 目录:
rm -rf /u01/app/oracle
rm -rf /u01/app/oraInventory
注意:如果安装目录不在
/u01下,请根据实际路径修改。执行前建议先确认目录路径,避免误删其他数据。
3. 删除 Oracle 用户和组
userdel -r oracle
groupdel oinstall
groupdel dba
userdel -r会同时删除 oracle 用户的家目录(/home/oracle)及其中的环境变量文件。
4. 清理系统内核参数
编辑 /etc/sysctl.conf,删除或注释掉之前为 Oracle 添加的内核参数行。可使用以下命令快速删除(建议先备份原文件):
# 备份原文件
cp /etc/sysctl.conf /etc/sysctl.conf.bak.$(date +%Y%m%d)
# 删除 Oracle 相关内核参数(使用 sed 逐行删除)
sed -i '/^fs\.aio-max-nr/d' /etc/sysctl.conf
sed -i '/^fs\.file-max/d' /etc/sysctl.conf
sed -i '/^kernel\.sem/d' /etc/sysctl.conf
sed -i '/^kernel\.shmmni/d' /etc/sysctl.conf
sed -i '/^kernel\.shmall/d' /etc/sysctl.conf
sed -i '/^kernel\.shmmax/d' /etc/sysctl.conf
sed -i '/^net\.core\.rmem_default/d' /etc/sysctl.conf
sed -i '/^net\.core\.rmem_max/d' /etc/sysctl.conf
sed -i '/^net\.core\.wmem_default/d' /etc/sysctl.conf
sed -i '/^net\.core\.wmem_max/d' /etc/sysctl.conf
sed -i '/^net\.ipv4\.ip_local_port_range/d' /etc/sysctl.conf
sed -i '/^net\.ipv4\.tcp_rmem/d' /etc/sysctl.conf
sed -i '/^net\.ipv4\.tcp_wmem/d' /etc/sysctl.conf
# 使修改生效
sysctl -p
注意:如果系统中还有其他应用依赖这些内核参数值,建议手动编辑
/etc/sysctl.conf逐一确认后再删除,而非直接批量删除。
5. 清理用户资源限制配置
编辑 /etc/security/limits.conf,删除或注释掉之前为 oracle 用户添加的资源限制行:
# 备份原文件
cp /etc/security/limits.conf /etc/security/limits.conf.bak.$(date +%Y%m%d)
# 删除 oracle 用户资源限制行
sed -i '/^oracle soft nproc/d' /etc/security/limits.conf
sed -i '/^oracle hard nproc/d' /etc/security/limits.conf
sed -i '/^oracle soft nofile/d' /etc/security/limits.conf
sed -i '/^oracle hard nofile/d' /etc/security/limits.conf
sed -i '/^oracle soft stack/d' /etc/security/limits.conf
sed -i '/^oracle hard stack/d' /etc/security/limits.conf
6. 清理环境变量和配置文件
# 删除 oracle 用户的环境变量文件(如果 userdel -r 已执行,此步可跳过)
rm -f /home/oracle/.bash_profile
# 清理 /etc/oratab 中的 Oracle 条目
sed -i '/^ORCL:/d' /etc/oratab
# 清理 /etc/oraInst.loc(如果存在)
rm -f /etc/oraInst.loc
7. 清理开机自启脚本(如已配置)
# 从 chkconfig 中移除服务
chkconfig --del dbora
# 删除 /etc/init.d/ 中的 Oracle 启动脚本
rm -f /etc/init.d/dbora
8. 清理残留文件和目录
检查并清理以下可能残留的目录和文件:
# 检查 Oracle 相关的临时目录
rm -rf /tmp/*.log
rm -rf /tmp/OraInstall*
# 检查 /opt 下是否有 Oracle 残留
rm -rf /opt/ORCLfmap
# 清理 Oracle 诊断日志目录(如果存在)
rm -rf /u01/app/diag
# 清理 Oracle 用户家目录(如果 userdel -r 未完全清理)
rm -rf /home/oracle
# 搜索系统中所有 oracle 相关文件(谨慎使用,确认后再删除)
# find / -name "*oracle*" -type f 2>/dev/null | grep -v /proc | grep -v /sys
建议:使用
find / -name "*oracle*" 2>/dev/null | grep -v /proc | grep -v /sys搜索系统中所有包含 “oracle” 的文件和目录,逐一确认后手动删除,确保无残留。
9. 重启服务器(可选)
reboot
完成以上步骤后,Oracle 11g 即从系统中完全移除。建议重启后再次检查系统中是否还有 Oracle 相关进程或文件残留。

402

被折叠的 条评论
为什么被折叠?



