待验证---Oracle 19c 在 CentOS 7 上的快速安装部署指南

Oracle 19c 在 CentOS 7 上的快速安装部署指南

Oracle Database 19c 是一个功能强大的企业级数据库系统,下面我将为您提供在 CentOS 7 上快速安装部署 Oracle 19c 的详细步骤。

一、准备工作

1. 系统要求

  • CentOS 7 (64位)
  • 最小内存: 2GB (推荐 8GB 以上)
  • 最小磁盘空间: 12GB (推荐 50GB 以上)
  • Swap 空间: 至少等于物理内存大小

2. 安装必要的软件包

bash 复制代码
yum install -y oracle-database-preinstall-19c

这个包会自动配置系统环境,包括创建用户组、设置内核参数等。

二、下载 Oracle 19c 软件

从 Oracle 官方网站下载 Oracle Database 19c 安装包:

bash 复制代码
# 创建下载目录
mkdir -p /opt/oracle/software
cd /opt/oracle/software

# 下载安装包 (需要 Oracle 账号)
# 可以从 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 下载
# 文件名: LINUX.X64_193000_db_home.zip(Oracle Database 19c for Linux x86-64选择后面的zip)

三、安装 Oracle 19c

1. 解压安装包

bash 复制代码
# 切换到 oracle 用户
su - oracle

# 创建安装目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1

# 解压安装包
cd /u01/app/oracle/product/19.0.0/dbhome_1
unzip -q /opt/oracle/software/LINUX.X64_193000_db_home.zip

2. 执行静默安装

bash 复制代码
# 创建响应文件
cat > /home/oracle/db_install.rsp <<EOF
oracle.install.option=INSTALL_DB_SWONLY
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=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
EOF

# 执行安装
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller -silent -responseFile /home/oracle/db_install.rsp -noconfig

3. 执行根脚本

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

bash 复制代码
# 以 root 用户执行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

四、创建数据库

1. 准备响应文件

bash 复制代码
# 切换回 oracle 用户
su - oracle

# 创建响应文件
cat > /home/oracle/dbca.rsp <<EOF
gdbName=orcl
sid=orcl
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=YourPassword123
systemPassword=YourPassword123
emConfiguration=NONE
datafileDestination=/u01/app/oracle/oradata
characterSet=AL32UTF8
totalMemory=2048
EOF

2. 创建数据库

bash 复制代码
# 设置环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

# 使用 DBCA 创建数据库
dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp

五、配置环境

1. 设置环境变量

bash 复制代码
# 为 oracle 用户添加环境变量
cat > /home/oracle/.bash_profile <<EOF
# Oracle 环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=\$PATH:\$ORACLE_HOME/bin
EOF

# 使环境变量生效
source /home/oracle/.bash_profile

2. 配置监听

bash 复制代码
# 配置监听
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp

3. 启动数据库

bash 复制代码
# 连接到 SQL*Plus
sqlplus / as sysdba

# 启动数据库
SQL> startup

六、验证安装

bash 复制代码
# 检查数据库状态
sqlplus / as sysdba <<EOF
select status from v\$instance;
exit;
EOF

# 检查监听状态
lsnrctl status

七、配置自启动

bash 复制代码
# 创建自启动脚本
cat > /etc/systemd/system/oracle-database.service <<EOF
[Unit]
Description=Oracle Database Service
After=network.target

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

[Install]
WantedBy=multi-user.target
EOF

# 启用服务
systemctl daemon-reload
systemctl enable oracle-database.service

八、常见问题解决

  1. 内存不足 :修改 /etc/sysctl.conf 增加 swap 空间

  2. 权限问题:确保 oracle 用户对安装目录有完全权限

  3. 防火墙问题 :配置防火墙允许 Oracle 端口 (默认 1521)

    bash 复制代码
    firewall-cmd --permanent --add-port=1521/tcp
    firewall-cmd --reload

总结

通过以上步骤,您已经成功在 CentOS 7 上安装并配置了 Oracle Database 19c。这种静默安装方式适合快速部署,无需图形界面交互,特别适合服务器环境。

请记得修改示例中的密码,并根据实际环境调整内存和存储配置。

复制代码
    当前模型请求量过大,请求排队约 1 位,请稍候或切换至其他模型问答体验更流畅。
相关推荐
有想法的py工程师几秒前
PostgreSQL 字符集双重转义击穿 磁盘 I/O
数据库·postgresql
头发还在的女程序员4 分钟前
【无标题】
网络·数据库·短剧小程序·短剧系统·海外短剧·短剧后台
千千寰宇7 分钟前
[数据库系统] 数据库系统的设计原理研究
数据结构·数据库·database-opengemini/influxdb·database-dament/达梦
麦壳饼23 分钟前
SonnetDB SQL 分页查询:LIMIT/OFFSET 与 FETCH 语法
数据库·sonnetdb
Gauss松鼠会27 分钟前
【GaussDB】破除gaussdb ugin索引支持中文模糊查询的迷思-字符序
java·运维·服务器·网络·数据库·gaussdb·经验总结
l1t1 小时前
DeepSeek总结的PostgreSQL因选择而宽松,因偶然而永久
数据库·postgresql
Nturmoils1 小时前
数据同步中断后,KFS 怎么把链路接回来
数据库
leisoo80971 小时前
股票筹码分布怎么用获利比例成本区间与集中度实战 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·开源
字节跳动的猫1 小时前
LikeShop 商品评价体系二开:追评、晒图审核与评价标签筛选功能开发
运维·数据结构·数据库
xiaoqiMikko2 小时前
Linux 实战(三):服务起不来、定时任务不执行 —— CentOS 7 / Rocky 9 / Ubuntu 24.04 实测差异
linux·centos