centos

oracle在centos上如何搭建

小樊
51
2025-09-22 03:16:22
栏目: 云计算

Oracle 19c在CentOS上的搭建步骤(详细指南)

一、安装前准备

1. 系统要求检查

2. 安装依赖包

Oracle 19c需要多个系统依赖包支持,推荐通过oracle-database-preinstall-19c预安装包自动配置(简化流程):

yum install -y oracle-database-preinstall-19c

该包会自动安装以下关键依赖:binutilscompat-libcap1compat-libstdc++-33elfutils-libelf-develgccgcc-c++glibcglibc-develkshlibaiolibaio-devellibX11libXaulibXilibXtstmakesysstatunixODBCunixODBC-devel等。

二、创建Oracle用户与目录

1. 创建用户组与用户

Oracle需要oinstall(安装组)、dba(数据库管理员组)和oper(数据库操作员组),并创建oracle用户归属这些组:

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle  # 设置oracle用户密码(如Oracle123)

2. 创建安装与数据目录

mkdir -p /home/oracle19c/app/oracle/product/19.0.0/db_1
mkdir -p /home/oracle19c/oradata
mkdir -p /home/oracle19c/oraInventory
chown -R oracle:oinstall /home/oracle19c  # 递归设置目录所有者
chmod -R 775 /home/oracle19c/app/oracle  # 设置目录权限

三、配置系统环境

1. 配置内核参数

编辑/etc/sysctl.conf,添加Oracle所需的内核参数(优化系统性能):

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934591  # 建议设置为物理内存的80%(如8GB内存则为8*1024*1024*1024=8589934592)
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

2. 配置用户环境变量

编辑oracle用户的~/.bash_profile文件,添加Oracle相关环境变量:

export ORACLE_BASE=/home/oracle19c/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1
export ORACLE_SID=orcl  # 数据库实例名(可自定义,如orcl、testdb)
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  # 字符集(推荐UTF-8)

使配置生效:

source ~/.bash_profile

四、安装Oracle 19c软件

1. 上传并解压安装包

从Oracle官网下载LINUX.X64_193000_db_home.zip(Oracle 19c Linux x64安装包),上传到/home/oracle19c目录,解压到Oracle主目录:

unzip LINUX.X64_193000_db_home.zip -d /home/oracle19c/app/oracle/product/19.0.0/db_1

2. 执行静默安装

切换到oracle用户,进入安装目录,使用响应文件进行静默安装(避免图形界面):

su - oracle
cd /home/oracle19c/app/oracle/product/19.0.0/db_1
./runInstaller -silent -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/response/db_install.rsp

响应文件参数说明(需提前创建/home/oracle19c/app/oracle/product/19.0.0/db_1/response/db_install.rsp):

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle19c/oraInventory
ORACLE_HOME=/home/oracle19c/app/oracle/product/19.0.0/db_1
ORACLE_BASE=/home/oracle19c/app/oracle
oracle.install.db.InstallEdition=EE  # 企业版(可选择SE、SEONE等)
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false  # 静默安装无需root执行

安装完成后,会提示执行两个root脚本(需切换到root用户执行):

exit  # 退出oracle用户
su -  # 切换到root
/home/oracle19c/oraInventory/orainstRoot.sh
/home/oracle19c/app/oracle/product/19.0.0/db_1/root.sh

五、创建Oracle数据库

1. 配置监听器(可选,若需远程连接)

使用netca工具配置监听器(默认端口1521):

netca -silent -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/netca/netca.rsp

2. 创建数据库实例

使用dbca工具创建数据库(静默模式):

dbca -silent -createDatabase -responseFile /home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/dbca/dbca.rsp

响应文件参数说明(需提前创建/home/oracle19c/app/oracle/product/19.0.0/db_1/assistants/dbca/dbca.rsp):

gdbName=orcl  # 全局数据库名(与ORACLE_SID一致)
sid=orcl
createAsContainerDatabase=false  # 是否创建容器数据库(false为单实例)
templateName=General_Purpose.dbc  # 数据库模板(General_Purpose、Data_Warehouse等)
sysPassword=Oracle123  # SYS用户密码
systemPassword=Oracle123  # SYSTEM用户密码
emConfiguration=NONE  # 不配置EM Express
datafileDestination=/home/oracle19c/oradata  # 数据文件目录
characterSet=AL32UTF8  # 字符集(推荐UTF-8)
totalMemory=2048  # 分配给数据库的内存(MB,根据系统内存调整,如2GB内存分配2048MB)

执行完成后,数据库实例会自动启动。

六、验证安装

1. 登录数据库

使用sqlplus工具登录数据库(SYSDBA权限):

sqlplus / as sysdba

输入命令查看数据库状态:

SELECT status FROM v$instance;  -- 应返回“OPEN”
EXIT;

2. 检查监听状态

lsnrctl status

应显示监听器正在运行,且包含orcl服务的监听信息。

七、配置开机自启动(可选)

创建systemd服务文件,实现Oracle数据库开机自启动:

cat > /etc/systemd/system/oracle-database.service <<EOF
[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/home/oracle19c/app/oracle/product/19.0.0/db_1/bin/dbstart /home/oracle19c/app/oracle/product/19.0.0/db_1
ExecStop=/home/oracle19c/app/oracle/product/19.0.0/db_1/bin/dbshut /home/oracle19c/app/oracle/product/19.0.0/db_1
Restart=no

[Install]
WantedBy=multi-user.target
EOF

启用并启动服务:

systemctl daemon-reload
systemctl enable oracle-database
systemctl start oracle-database

常见问题解决

0
看了该问题的人还看了