在Ubuntu上安装Oracle数据库的方法
2026-04-30
Ubuntu 是基于 Debian 的 Linux 发行版,适用于云计算、服务器、桌面系统和物联网设备。Linux 与 Ubuntu 的主要区别在于:前者是一种类 Unix 操作系统,而后者是 Linux 的一种发行版。
Oracle 数据库以出色的可移植性、用户友好的界面和强大的功能而著称,适用于各种计算机环境。它提供了一种高效且可靠的数据库解决方案,能够满足高吞吐量需求。
在 Ubuntu 上安装 Oracle 数据库已得到广泛应用,并持续更新。本文介绍了在 Ubuntu 上安装与配置 Oracle 的方法,以帮助您完成 Ubuntu Oracle 系统的安装与升级。Ubuntu 是一款基于 Linux 的开源操作系统,免费提供,并拥有社区及专业支持。本博客详细记录了在 Ubuntu 上安装 Oracle 11 的全过程。
环境
Ubuntu:Ubuntu 14.04 LTS(64 位)
Oracle:Oracle 11
JDK:JDK 1.7
内存:1GB
硬盘:20GB
CPU:1 台
如何在 Ubuntu 上安装 Oracle 数据库?
1. 下载 Oracle 11
从官方网站下载 Oracle 11。下载链接如下:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
将下载的文件保存到 "/home" 目录中。将会有两个压缩文件。请使用以下命令解压它们:
sudo tar -zxvf linux.x64_11gR2_database_1of2.zipsudo tar -zxvf linux.x64_11gR2_database_2of2.zip
提取完成后,将在主目录中创建一个“database”文件夹。该文件夹即为 Oracle 的安装目录。
2. 安装 JDK 1.7
您可以根据需要安装 JDK 1.7。
或者,您可以使用 Ubuntu Linux 提供的默认 OpenJDK:
sudo apt-get install openjdk-7-jresudo apt-get install openjdk-7-jdk
3. 安装远程可视化桌面
由于 Oracle 的安装需通过安装向导进行,因此必须为此过程安装远程可视化桌面。
4. 更新源文件
Ubuntu 的官方源并不全面,尤其是在安装 ia32-libs 软件包时。因此,您需要更新源文件。首先备份源文件,然后将以下源添加到源列表中(删除所有现有源,并粘贴以下源):
sudo cp /etc/apt/sources.list /etc/apt/sources.list_back
5. 安装依赖项
替换源文件后,请执行以下命令进行更新:
sudo apt-get updatesudo apt-get upgrade
然后,安装以下依赖项。确保每个软件包都成功安装至关重要,因为任何失败都可能导致 Oracle 安装不成功。
sudo apt-get install bzip2sudo apt-get install elfutilssudo apt-get install automakesudo apt-get install autotools-devsudo apt-get install binutilssudo apt-get install expatsudo apt-get install gawksudo apt-get install gccsudo apt-get install gcc-multilibsudo apt-get install g++-multilibsudo apt-get install ia32-libssudo apt-get install kshsudo apt-get install lesssudo apt-get install lesstif2sudo apt-get install lesstif2-devsudo apt-get install lib32z1sudo apt-get install libaio1sudo apt-get install libaio-devsudo apt-get install libc6-devsudo apt-get install libc6-dev-i386sudo apt-get install libc6-i386sudo apt-get install libelf-devsudo apt-get install libltdl-devsudo apt-get install libmotif4sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386sudo apt-get install libpth-devsudo apt-get install libpthread-stubs0sudo apt-get install libpthread-stubs0-devsudo apt-get install libstdc++5sudo apt-get install lsb-cxxsudo apt-get install makesudo apt-get install openssh-serversudo apt-get install pdkshsudo apt-get install rlwrapsudo apt-get install rpmsudo apt-get install sysstatsudo apt-get install unixodbcsudo apt-get install unixodbc-devsudo apt-get install unzipsudo apt-get install x11-utilssudo apt-get install zlibc
6. 检查系统变量
sudo /sbin/sysctl -a | grep semsudo /sbin/sysctl -a | grep shmsudo /sbin/sysctl -a | grep file-maxsudo /sbin/sysctl -a | grep aio-maxsudo /sbin/sysctl -a | grep ip_local_port_rangesudo /sbin/sysctl -a | grep rmem_defaultsudo /sbin/sysctl -a | grep rmem_maxsudo /sbin/sysctl -a | grep wmem_defaultsudo /sbin/sysctl -a | grep wmem_max
执行上述命令获取参数值后,在 /etc/sysctl.conf 文件中添加对应的数据。可同时打开两个终端窗口,以便于输入操作。
sudo vim /etc/sysctl.conf
请在 sysctl.conf 文件中填入以下内容,并使用已获取的值:
fs.aio-max-nr = ?fs.file-max = ?kernel.shmall = ?kernel.shmmax = ?kernel.shmmni = ?kernel.sem = ?net.ipv4.ip_local_port_range = ?net.core.rmem_default = ?net.core.rmem_max = ?net.core.wmem_default = ?net.core.wmem_max = ?
执行命令以更新内核参数:
sudo sysctl -p
7. 将以下数据添加到 /etc/security/limits.conf 文件中,以设置当前用户的内核限制(XXX 表示您的当前用户名):
XXX soft nproc 2047XXX hard nproc 16384XXX soft nofile 1024XXX hard nofile 65536XXX soft stack 10240
8. 检查 /etc/pam.d/login 文件,并添加以下行(如果尚未存在):
session required pam_limits.so
检查 /etc/pam.d/su 文件,如尚未存在,则添加以下行:
session required pam_limits.so
9. 默认情况下,Oracle 不支持 Ubuntu。为欺骗 Oracle 安装程序,请执行以下命令:
sudo mkdir /usr/lib64sudo ln -s /etc /etc/rc.dsudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/sudo ln -s /usr/bin/awk /bin/awksudo ln -s /usr/bin/basename /bin/basenamesudo ln -s /usr/bin/rpm /bin/rpmsudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/echo ‘Ubuntu Linux release 14.04′ > /etc/ubuntu-release
如果无法执行最后一条命令,可改用以下命令:
sudo vim /etc/ubuntu-release
在 ubuntu-release 文件中添加“Ubuntu Linux 发行版 14.04”,然后保存并退出。
10. 配置 Oracle 的环境变量
sudo gedit ~/.profile
将以下行添加到该文件中(将 xxx 替换为您的当前用户名):
export ORACLE_BASE=/home/xxx/app/xxxexport ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1export ORACLE_SID=orclexport ORACLE_UNQNAME=orclexport PATH=PATH:${ORACLE_HOME}/bin/;
11. 启动 Oracle 安装程序以开始安装。
首先,请确认 Oracle 环境变量是否已按您指定的方式设置:
echo $ORACLE_BASEecho $ORACLE_HOMEecho $PATH
如果未正确设置,请打开一个新的终端,这样应该就可以正常工作。或者,执行以下命令:
source ~/.profile
此命令用于使您的环境变量生效。
接下来,执行以下命令以开启远程桌面服务:
vncserver :1
请记住,此命令前不要添加“sudo”。否则,将为 root 用户而非您要为其安装的用户开启远程桌面。
现在,您可以使用 Windows 上的 VNC-Viewer 软件进行连接:
注意:该号码必须与您打开的端口号一致。
远程桌面打开后,在桌面上启动终端。如果安装程序已解压到主目录:/home/database,请使用以下命令:
cd /home/database
为避免出现乱码,请先通过导出方式将终端语言设置为美国英语。
然后在该目录中运行 runInstaller:./runInstaller
您将进入图形化安装界面,然后按照安装向导的提示操作。
先决条件检查将显示失败项列表。选择“全部忽略”,然后点击“完成”。
请注意,如果您的交换空间不足,系统将提示交换空间不足,安装将无法继续。
要解决此问题,请打开另一个终端,然后使用以下命令临时增加交换空间,再重新检查:
free -mmkdir /swapfilecd /swapfilesudo dd if=/dev/zero of=swap bs=1024 count=400000sudo mkswap -f swapsudo swapon swap
12. 安装进度达 68% 时出错
出现一条与 ins_ctx.mk 相关的错误消息。请直接继续安装,跳过该错误。
之后,报告了另一个错误:
生成文件 “/.../emagent.mk” 时出错。
解决方案:
打开一个新终端并输入以下命令:
sudo sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
在安装界面点击“重试”,安装将继续进行。
类似的错误提示可能还会出现四次。请以相同方式执行以下命令行:
sudo sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdkshsudo sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mksudo sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mksudo sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
13. 安装完成后,系统将提示您运行两个 sh 文件:
请另开一个终端:
sudo /home/xxx/app/xxx/oracle/oraInventory/orainstRoot.shsudo /home/xxx/app/xxx/oracle/Oracle11gee/product/11.2.0/dbhome_1/root.sh
安装完成!
测试
1. 运行 sqlplus
运行 sqlplus 之前,请先测试 Oracle 环境变量:
echo $ORACLE_BASEecho $ORACLE_HOMEecho $PATH
如果显示的值与您的配置一致,您可以继续执行以下步骤。
2. 检查数据库监听器状态
使用命令检查监听器是否正在运行。正常情况下,应显示大量监听器相关信息。
如果此处没有输出,说明没有监听器,您需要自行配置:
lsnrctl status
无监听器问题的解决方案:
您可以通过运行 netca 并访问设置监听器的图形界面来创建监听器。
如果您尚未创建数据库,此时可以使用 dbca 创建一个。
您可以运行以下代码来修复 dbconsole:
emca -repos dropemca -repos createemca -config dbcontrol dbemca start dbconsole
此时,数据库应该已启动并正常运行。
如果没有监听器,请执行以下命令来启动它:
lsnrctl start
3. 启动 Oracle 数据库
输入以下命令启动 sqlplus:
sqlplus / as sysdba
启动和停止 Oracle 的命令如下:
SQL> startupSQL> shutdown
启动期间,您将看到一条消息,提示您的“orcl”实例已成功加载。
Vinchin 备份与恢复:面向 Oracle 数据库的企业级备份解决方案
在 Ubuntu 系统上成功部署 Oracle 数据库后,确保强大的数据保护能力变得尤为关键——尤其是考虑到非标准安装所涉及的复杂性。Vinchin 备份与恢复 是一款专业的企业级解决方案,全面支持当前主流数据库,包括对 Oracle 数据库的一流支持,以及 MySQL、SQL Server、MariaDB、PostgreSQL、PostgresPro 和 TiDB 等平台。
Vinchin 备份与恢复提供一系列核心功能,包括日志备份/归档日志备份、任意时间点恢复、计划备份自动化、针对勒索软件威胁的存储防护,以及通过 SQL 脚本实现的完整性校验与自动恢复验证——所有这些功能均专为最大限度提升可靠性而设计,同时在您这类运行 Ubuntu 并安装 Oracle 数据库的多样化环境中,显著降低管理负担与风险暴露。
直观的网页控制台将操作简化为四个简单步骤,专为备份您的 Oracle 数据库而设计:
步骤 1:选择要备份的 Oracle 数据库
步骤 2:选择备份存储位置
步骤 3:定义备份策略
步骤 4:提交任务
维晨备份与恢复软件已获得全球众多大中型企业认可,在业内同行中评分名列前茅;提供功能完备、为期六十天的免费试用;点击下方按钮,亲身体验无缝的企业级数据保护!
下载免费试用版
适用于多种数据备份
* 15天全功能免费安全下载
Ubuntu 安装 Oracle 数据库常见问题解答
问题1:我能否在不先卸载的情况下升级现有的手动安装版本?
不——由于版本间的脚本/文件系统可能存在冲突,您必须在手动升级已转换的软件包之前卸载先前的安装。
Q2:为什么基于 Docker 的数据库在重启后会丢失所有数据?
如果未使用 -v /主机路径:/opt/oracle/oradata 挂载持久卷,则容器内所有更改将在容器停止或删除后丢失;请务必显式映射本地目录!
Q3:启动容器时,如果端口 1521 已被占用,我该怎么办?
在 docker run 命令中修改暴露的端口(-p <其他端口号>:1521),并相应地配置客户端连接(localhost:<其他端口号>)。
结论
本文博客为您提供详细的指南,帮助您在 Ubuntu 系统上安装 Oracle 数据库。若您使用的 Ubuntu 版本与 Oracle 版本与本文所述版本一致,可依照分步教程顺利完成 Oracle 安装。
此外,请务必使用 Vinchin 备份与恢复软件备份您的文件,以确保数据安全。免费试用版也千万别错过!