在 CentOS 系统上部署 Oracle 数据库是企业级应用中常见的需求,凭借 CentOS 的稳定性和 Oracle 的强大性能,这一组合被广泛采用,Oracle 的安装过程相对复杂,涉及系统配置、依赖安装、参数调整等多个环节,本文将提供一个清晰、详尽的步骤指南,帮助您在 CentOS 环境下成功安装 Oracle 数据库。
环境准备与系统配置
在开始安装之前,充分的准备工作是确保安装顺利的关键,这包括硬件资源检查、依赖包安装、用户与组的创建以及核心系统参数的调优。
硬件要求
Oracle 数据库对系统资源有最低要求,不满足这些要求可能会导致安装失败或性能低下,以下是建议的配置:
资源类型 | 最低要求 | 推荐配置 |
---|---|---|
物理内存 (RAM) | 2 GB | 8 GB 或以上 |
交换空间 | 5 倍 RAM | 2 倍 RAM 或以上 |
硬盘空间 | 15 GB (软件) + 40 GB (数据) | 100 GB 或以上 (SSD 更佳) |
处理器 (CPU) | 64 位双核 | 64 位四核或以上 |
安装必要的依赖包
Oracle 安装程序需要一系列系统库和工具的支持,您可以使用 yum
命令一次性安装所有必需的依赖。
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
创建 Oracle 用户和用户组
为了安全和管理方便,Oracle 不建议使用 root
用户进行安装,我们需要创建专门的用户和组。
# 创建用户组 groupadd oinstall groupadd dba # 创建 oracle 用户并指定组 useradd -g oinstall -G dba oracle # 为 oracle 用户设置密码 passwd oracle
配置内核参数
Oracle 需要共享内存和信号量等系统资源,默认的内核参数通常无法满足其需求,编辑 /etc/sysctl.conf
文件,在文件末尾添加以下内容:
参数 | 描述 |
---|---|
fs.file-max = 6815744 | 系统最大文件句柄数 |
kernel.sem = 250 32000 100 128 | 设置信号量 |
kernel.shmmni = 4096 | 整个系统共享内存段的最大数量 |
kernel.shmall = 1073741824 | 系统可用的共享内存总量(页) |
kernel.shmmax = 4398046511104 | 单个共享内存段的最大大小(字节) |
net.core.rmem_default = 262144 | 默认的接收套接字缓冲区大小 |
net.core.rmem_max = 4194304 | 最大的接收套接字缓冲区大小 |
net.core.wmem_default = 262144 | 默认的发送套接字缓冲区大小 |
net.core.wmem_max = 1048576 | 最大的发送套接字缓冲区大小 |
保存文件后,执行 sysctl -p
使配置立即生效。
配置用户资源限制
编辑 /etc/security/limits.conf
文件,为 oracle
用户设置进程数和文件句柄数的限制。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
禁用防火墙和 SELinux
为了简化初次安装过程,避免网络策略带来的干扰,可以临时禁用防火墙和 SELinux,在生产环境中,应配置相应的规则而非直接禁用。
# 停止防火墙 systemctl stop firewalld systemctl disable firewalld # 临时禁用 SELinux setenforce 0 # 永久禁用,需编辑 /etc/selinux/config,将 SELINUX 设置为 disabled
下载与解压 Oracle 软件
从 Oracle 官方网站下载对应版本的数据库安装包(Oracle Database 19c),您需要一个 Oracle 账户才能下载,下载完成后,将 ZIP 文件上传到服务器。
创建安装目录并设置权限:
mkdir -p /u01/app chown -R oracle:oinstall /u01 chmod -R 775 /u01
切换到 oracle
用户,解压安装文件到 /u01/app
目录下:
su - oracle unzip LINUX.X64_193000_db_home.zip -d /u01/app/
静默安装数据库软件
静默安装通过响应文件来配置安装选项,无需图形界面,非常适合服务器环境。
准备响应文件:进入解压后的目录,复制并编辑响应文件模板
db_install.rsp
,关键配置项如下:oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=your_hostname UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oinstall DECLINE_SECURITY_UPDATES=true
执行安装命令:
cd /u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller -silent -responseFile /path/to/your/db_install.rsp
执行 root 脚本:安装完成后,根据提示切换回
root
用户,执行两个脚本。su - root /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
创建监听器与数据库
软件安装完成后,还需要创建监听器和数据库实例。
创建监听器:使用
netca
工具静默配置。su - oracle netca -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp
创建数据库:使用
dbca
工具静默创建。dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -characterSet AL32UTF8 -sysPassword YourSysPassword -systemPassword YourSystemPassword
配置环境变量与开机自启
配置环境变量:编辑
oracle
用户的.bash_profile
文件,添加以下内容,以便于使用 Oracle 命令。export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
执行
source .bash_profile
使其生效。配置开机自启:可以创建
systemd
服务来管理 Oracle 数据库和监听器的启动与停止。
至此,Oracle 数据库已在您的 CentOS 系统上成功安装并配置,您可以通过 sqlplus / as sysdba
连接到数据库进行管理。
相关问答 FAQs
问题1:安装过程中提示交换空间不足怎么办?
解答: 这是一个常见问题,尤其是在云服务器或虚拟机中,您可以通过创建一个交换文件来临时或永久地增加交换空间。
- 创建文件:使用
fallocate
或dd
命令创建一个指定大小的文件,4GB:fallocate -l 4G /swapfile
。 - 设置权限:
chmod 600 /swapfile
。 - 格式化为交换空间:
mkswap /swapfile
。 - 启用交换空间:
swapon /swapfile
。 - 永久生效:编辑
/etc/fstab
文件,添加一行/swapfile swap swap defaults 0 0
,这样系统重启后会自动挂载此交换文件。
问题2:安装完成后无法远程连接数据库是什么原因?
解答: 无法远程连接通常涉及以下几个层面的问题,请逐一排查:
- 监听器状态:以
oracle
用户执行lsnrctl status
,检查监听器是否正在运行,以及数据库服务是否已注册到监听器,如果未注册,可能需要检查数据库实例是否已启动。 - 防火墙端口:确保 CentOS 防火墙允许 Oracle 默认端口 1521 的入站连接,如果之前禁用了防火墙,请重新开启并配置规则:
firewall-cmd --permanent --add-port=1521/tcp
,firewall-cmd --reload
。 - 数据库服务状态:使用
sqlplus / as sysdba
登录,执行select instance_name, status from v$instance;
,确保数据库实例状态为OPEN
。 - 网络配置:检查服务器的网络配置,确保 IP 地址、路由等设置正确,并且客户端能够 ping 通服务器。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复