温馨提示×

centos oracle配置实战教程

小樊
62
2025-09-26 09:21:48
栏目: 云计算

CentOS环境下Oracle数据库配置实战教程

一、前置准备

1. 系统要求确认

  • 基础环境:确保CentOS系统(推荐7/8/9版本,64位)已更新至最新状态(yum update -y)。
  • 硬件要求
    • 内存:至少1GB(生产环境推荐4GB以上);
    • 硬盘:至少10GB可用空间(数据文件、日志文件占用较大);
    • Swap分区:建议不小于2GB(可通过free -h查看,不足则创建:dd if=/dev/zero of=/swapfile bs=1M count=2048mkswap /swapfileswapon /swapfile,并添加到/etc/fstab永久生效)。

2. 关键配置调整

  • 修改主机名(可选但推荐):
    sudo hostnamectl set-hostname oracle-db  # 设置主机名
    echo "127.0.0.1   oracle-db" | sudo tee -a /etc/hosts  # 映射IP与主机名
    
  • 关闭SELinux(Oracle对SELinux支持有限):
    sudo setenforce 0  # 临时关闭
    sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  # 永久关闭
    
  • 禁用防火墙(测试环境,生产环境需放行端口):
    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    

3. 安装必要依赖包

Oracle数据库需要多个系统库支持,使用以下命令安装:

sudo 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 pcre-devel

注:依赖包版本需与Oracle版本兼容,建议参考Oracle官方文档。

二、Oracle用户与环境配置

1. 创建用户与组

Oracle需以专用用户运行,避免权限问题:

sudo groupadd oinstall  # 归属组
sudo groupadd dba       # 数据库管理员组
sudo useradd -g oinstall -G dba oracle  # 创建oracle用户,归属oinstall组,附加dba组
sudo passwd oracle      # 设置密码(如Oracle123)

2. 创建安装与数据目录

建议将Oracle软件与数据分开存储,提升管理效率:

sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1  # Oracle软件目录
sudo mkdir -p /u01/app/oracle/oradata                 # 数据文件目录
sudo chown -R oracle:oinstall /u01                    # 所有权赋给oracle用户
sudo chmod -R 775 /u01                                # 设置读写权限

3. 配置Oracle环境变量

编辑oracle用户的.bashrc文件,添加以下内容:

sudo vi /home/oracle/.bashrc

插入以下配置(根据实际路径调整):

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

使配置生效:

source /home/oracle/.bashrc

三、Oracle安装过程

1. 下载并解压安装包

从Oracle官网下载对应版本的Linux x64安装包(如19c),上传至服务器并解压:

unzip linux.x64_193000_db_home.zip -d /u01/app/oracle/

2. 运行安装程序

切换至oracle用户,进入安装目录执行安装脚本:

su - oracle
cd /u01/app/oracle/database
./runInstaller

按照向导操作:

  • 选择“安装数据库软件”→“单实例数据库安装”;
  • 选择“企业版”(适合生产环境);
  • 指定Oracle基目录(/u01/app/oracle)和产品目录(/u01/app/oracle/product/19.3.0/dbhome_1);
  • 勾选“创建和配置数据库”(简化后续步骤);
  • 设置数据库标识(SID,默认orcl)、字符集(推荐AL32UTF8);
  • 配置管理员密码(如Oracle123);
  • 完成安装后,根据提示运行/u01/app/oracle/product/19.3.0/dbhome_1/root.sh(root用户执行)。

四、数据库配置与启动

1. 配置监听器(可选,安装时已自动配置)

监听器负责接收客户端连接请求,编辑listener.ora文件:

vi $ORACLE_HOME/network/admin/listener.ora

确保内容如下(根据IP调整):

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )

启动监听器:

lsnrctl start

设置开机自启:

sudo systemctl enable lsnrctl

2. 创建数据库实例(可选,安装时已自动创建)

若未在安装时创建数据库,可使用DBCA工具手动创建:

dbca

按照向导操作:

  • 选择“创建数据库”→“自定义数据库”;
  • 设置全局数据库名(如orcl.localdomain)、SID(orcl);
  • 选择字符集(AL32UTF8);
  • 设置管理员密码;
  • 完成创建后,数据库将自动启动。

3. 启动数据库实例

使用SQL*Plus连接并启动:

sqlplus / as sysdba

在SQL*Plus中执行:

STARTUP

若需设置开机自启,可创建systemd服务(以Oracle 19c为例):

sudo vi /etc/systemd/system/oracle-database.service

插入以下内容:

[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
Environment="ORACLE_SID=orcl"
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl enable oracle-database
sudo systemctl start oracle-database

五、验证安装

使用SQL*Plus连接数据库,验证是否成功:

sqlplus / as sysdba

执行以下SQL语句:

SELECT status FROM v$instance;  -- 查看实例状态(应为OPEN)
SELECT * FROM dual;            -- 测试基本查询

若状态为OPEN且能正常查询,说明安装成功。

六、常见问题排查

1. 监听器无法启动

  • 原因:内核参数配置错误或端口被占用。
  • 解决方法:检查/etc/sysctl.conf中的参数(如kernel.shmmaxnet.ipv4.ip_local_port_range),执行sysctl -p使配置生效;使用netstat -tulnp | grep 1521查看端口占用情况,杀掉占用进程。

2. 无法连接数据库

  • 原因:监听器未启动、SID错误或权限不足。
  • 解决方法:确认监听器已启动(lsnrctl status);检查ORACLE_SID环境变量是否正确;确保oracle用户有访问数据库的权限。

3. 依赖包缺失

  • 原因:安装前未安装所有必要依赖包。
  • 解决方法:根据错误提示安装缺失的包(如libaiocompat-libstdc++),使用yum search 包名查找对应包。

0