Oracle在CentOS上的配置指南(以Oracle 19c为例)
硬件要求
sudo yum update -y);dd if=/dev/zero of=swapfile bs=1G count=2创建,mkswap swapfile格式化,swapon swapfile激活,并添加至/etc/fstab实现开机自启);关闭SELinux与防火墙
sudo setenforce 0;/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled;sudo systemctl stop firewalld;sudo systemctl disable firewalld(若需开放特定端口,可手动配置防火墙规则)。Oracle 19c需要依赖多个系统库,推荐通过Oracle官方预安装RPM简化流程(避免手动安装大量依赖):
oracle-database-preinstall-19c RPM包(适用于CentOS 7/8);sudo yum localinstall -y oracle-database-preinstall-19c-*.rpm
该RPM会自动安装gcc、libaio、compat-libstdc++等必要依赖。sudo groupadd oinstall # 安装组
sudo groupadd dba # 数据库管理员组
sudo useradd -g oinstall -G dba oracle # 创建oracle用户,归属oinstall和dba组
sudo passwd oracle # 设置oracle用户密码
id oracle # 应显示uid、gid及所属组(oinstall、dba)
编辑/etc/sysctl.conf,添加或修改以下内核参数(优化系统性能,满足Oracle运行要求):
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648 # 物理内存大小(单位:字节,如16GB则为17179869184)
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
使配置生效:
sudo sysctl -p
编辑/home/oracle/.bashrc(oracle用户的个人环境变量),添加以下内容(根据实际安装路径调整):
export ORACLE_BASE=/opt/oracle # Oracle基础目录
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1 # Oracle软件目录
export ORACLE_SID=ORCLCDB # 数据库实例名(需与后续配置一致)
export PATH=$PATH:$ORACLE_HOME/bin # 添加Oracle命令到PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 库文件路径
export LANG=en_US.UTF-8 # 字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 数据库字符集
使配置生效:
source /home/oracle/.bashrc
LINUX.X64_193000_db_home.zip)上传至服务器,解压至Oracle基础目录:unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
su - oracle
cd $ORACLE_HOME/bin
./runInstaller
按照向导选择“仅安装数据库软件”“单实例数据库”,指定Oracle基目录和软件目录,完成安装(安装过程中会提示配置root用户权限,需输入root密码)。使用DBCA创建数据库:
dbca # 启动数据库配置助手
按照向导选择“创建数据库”“自定义配置”,设置全局数据库名(如ORCLCDB)、SID(与ORACLE_SID一致)、字符集(推荐AL32UTF8),配置管理员密码(如Oracle123),完成数据库创建。
验证数据库状态:
sqlplus / as sysdba # 以sysdba身份登录
SQL> SELECT status FROM v$instance; # 检查实例状态(应为OPEN)
SQL> SHOW PDBS; # 查看PDB状态(CDB模式下)
/etc/oratab文件:/etc/oratab,将对应数据库条目的最后一位从N改为Y(允许数据库随系统启动):ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
/etc/rc.d/rc.local,添加以下内容(启动监听和服务):su oracle -lc "/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start"
su oracle -lc "/opt/oracle/product/19c/dbhome_1/bin/dbstart"
chmod +x /etc/rc.d/rc.local
/etc/systemd/system/oracle19c.service:[Unit]
Description=Oracle Database 19c Service
After=network.target
[Service]
Type=forking
User=oracle
Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable oracle19c
systemctl start oracle19c
$ORACLE_HOME/network/admin/listener.ora配置(确保主机名与服务器IP一致),执行lsnrctl status查看状态。chown -R oracle:oinstall /opt/oracle),检查内核参数是否符合要求。NLS_LANG设置为AMERICAN_AMERICA.AL32UTF8,安装时选择正确的字符集。