大家好,我是程序员小羊!
前言:
Oracle 数据库是全球广泛使用的关系型数据库管理系统 (RDBMS),提供高性能、可靠性、安全性和可扩展性,广泛应用于企业关键任务系统。下面详细介绍如何在 CentOS 系统上安装和配置 Oracle 数据库。
1. 前提条件
1.1 硬件要求
- 内存:最小 1GB,推荐 2GB 以上。
- 硬盘:至少 10GB 的可用空间,视具体应用需求而定。
1.2 软件要求
- 操作系统:CentOS 7 或 CentOS 8(确保操作系统为 64 位)。
- 用户和组:安装 Oracle 数据库需要创建
oracle
用户,并为其分配合适的用户组和权限。 - 依赖包:安装前,确保操作系统具备 Oracle 安装所需的依赖库和工具。
2. 下载 Oracle 数据库
- 访问 Oracle 官方下载页面。
- 根据系统架构选择对应的 Oracle 数据库版本(建议下载 Oracle 19c 或更高版本)。
- 下载
rpm
或zip
安装包到 CentOS 系统中。
3. 安装前的系统配置
3.1 配置主机名
Oracle 数据库要求系统有正确的主机名配置:
hostnamectl set-hostname yourhostname
3.2 关闭 SELinux 和防火墙
在安装期间建议关闭 SELinux 和防火墙,以免影响安装过程:
# 暂时关闭 SELinux
setenforce 0# 修改 SELinux 配置文件,永久禁用
vi /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.3 安装依赖包
Oracle 数据库依赖于一些特定的库和工具包。可以使用 yum
安装这些依赖包:
yum install -y binutils compat-libcap1 compat-libstdc++ gcc gcc-c++ glibc glibc-devel \
libaio libaio-devel libXext libXtst libX11 libXau libXi make sysstat ksh
3.4 创建 Oracle 用户和组
Oracle 数据库需要运行在特定的用户和用户组下:
groupadd -g 54321 oinstall
groupadd -g 54322 dba
useradd -u 54321 -g oinstall -G dba oracle
passwd oracle # 设置密码
3.5 配置系统内核参数
为确保 Oracle 正常运行,需要调整一些内核参数。编辑 /etc/sysctl.conf
:
vi /etc/sysctl.conf
添加以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
应用内核参数:
sysctl -p
3.6 配置用户资源限制
编辑 /etc/security/limits.conf
,为 oracle
用户设置系统资源限制:
vi /etc/security/limits.conf
添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
3.7 创建 Oracle 安装目录
为 Oracle 数据库创建安装和数据文件的存放目录,并为 oracle
用户设置权限:
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
4. 安装 Oracle 数据库
4.1 解压安装包
如果下载的是 zip 文件,解压到 Oracle 用户的目录中:
unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
4.2 配置环境变量
切换到 oracle
用户并配置环境变量。编辑 .bash_profile
文件:
su - oracle
vi ~/.bash_profile
添加以下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
加载环境变量:
source ~/.bash_profile
4.3 运行安装程序
以 oracle
用户身份进入解压后的安装目录,并启动 Oracle Universal Installer:
cd $ORACLE_HOME
./runInstaller
安装程序将启动一个图形界面,以下是安装流程的主要步骤:
- 配置文件位置:选择安装位置,一般保持默认。
- 安装类型:选择
Create and Configure a database
(创建并配置数据库)。 - 典型安装:根据提示填写全局数据库名和管理员密码。
- 先决条件检查:安装程序会自动检查系统是否满足安装需求,必要时根据提示安装缺少的包。
- 开始安装:点击开始安装,安装完成后执行提示的脚本,如
/u01/app/oracle/root.sh
。
5. 数据库配置
5.1 数据库监听程序配置
安装完成后,配置监听程序以允许远程连接数据库。可以使用 netca
配置网络监听:
netca
按照提示配置监听服务,选择默认值即可。
5.2 创建 Oracle 数据库
使用 dbca
工具创建新的数据库:
dbca
- 选择
Create a Database
(创建数据库)。 - 选择数据库类型(典型或自定义配置)。
- 设置数据库名称(如
orcl
)和管理员密码。 - 选择数据库存储位置,推荐使用 ASM 或文件系统。
- 设置内存分配、字符集和数据库文件位置。
- 最后,点击完成开始创建数据库。
5.3 启动和停止 Oracle 实例
- 启动数据库:
sqlplus / as sysdba startup
- 停止数据库:
sqlplus / as sysdba shutdown immediate
6. 配置自动启动
要使 Oracle 数据库和监听程序在系统启动时自动启动,编辑 /etc/oratab
文件,将最后的 N
修改为 Y
:
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
然后,创建一个启动脚本 /etc/rc.d/init.d/oracle
,内容如下:
#!/bin/bash
# Oracle auto start-stop script.
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
case "$1" in'start')su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"su - oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
startup
EOF";;'stop')su - oracle -c "$ORACLE_HOME/bin/sqlplus / as sysdba <<EOF
shutdown immediate
EOF"su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop";;*)echo "Usage: $0 {start|stop}"exit 1;;
esac
exit 0
设置脚本权限并将其添加为服务:
chmod 750 /etc/rc.d/init.d/oracle
chkconfig --add oracle
7. 连接 Oracle 数据库
通过 sqlplus
连接 Oracle 数据库:
sqlplus sys as sysdba
输入管理员密码后可以执行 SQL 命令管理数据库。要从其他计算机连接,可以使用 Oracle SQL Developer
工具,指定数据库 IP、端口和 SID 进行连接。
8. 总结
在 CentOS 上安装和配置 Oracle 数据库涉及多个步骤,包括系统准备、依赖包安装、数据库安装与配置,以及网络监听与数据库创建。掌握这些步骤后,你可以轻松地在 CentOS 系统上部署 Oracle 数据库,并进行日常管理。
结尾
今天这篇文章就到这里了,大厦之成,非一木之材也;大海之阔,非一流之归也。感谢大家观看本文