CentOS系统配置Oracle数据库注意事项
系统更新与兼容性检查
安装前需将CentOS系统更新至最新版本(sudo yum update -y),确保内核版本、glibc库等与Oracle数据库版本兼容(如Oracle 19c支持CentOS 7/8)。可通过uname -a查看内核版本,参考Oracle官方文档确认兼容性。
硬件资源规划
依赖包安装
必须提前安装Oracle运行所需的依赖包,否则会导致安装失败。常用命令(以CentOS 7为例):
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
部分预安装包(如oracle-database-preinstall-19c)可自动安装依赖,简化流程。
用户与组管理
创建专用用户和组以实现权限隔离:
sudo groupadd oinstall # 所属组
sudo groupadd dba # 数据库管理员组
sudo useradd -g oinstall -G dba oracle # 创建oracle用户并加入组
sudo passwd oracle # 设置密码
所有Oracle文件(如安装目录、数据目录)需归属oracle:oinstall。
内核参数调整
编辑/etc/sysctl.conf,添加以下关键参数以优化系统性能:
fs.aio-max-nr = 1048576 # 异步I/O最大请求数
fs.file-max = 6815744 # 系统最大文件句柄数
kernel.shmall = 2097152 # 共享内存总页数
kernel.shmmax = 4294967295 # 单个共享内存段最大大小(字节)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.sem = 250 32000 100 128 # 信号量参数(semmsl, semmns, semopm, semmni)
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使配置生效。
用户资源限制
编辑/etc/security/limits.conf,添加以下限制以防止Oracle进程因资源不足被终止:
oracle soft nproc 2047 # 用户进程软限制
oracle hard nproc 16384 # 用户进程硬限制
oracle soft nofile 1024 # 用户打开文件数软限制
oracle hard nofile 65536 # 用户打开文件数硬限制
oracle soft stack 10240 # 用户栈空间软限制
编辑/etc/pam.d/login,添加session required pam_limits.so以使限制生效。
PAM模块配置
确保PAM模块加载pam_limits.so,编辑/etc/pam.d/login文件,添加以下行:
session required pam_limits.so
安装目录设置
创建Oracle安装目录(如/u01/app/oracle)和数据目录(如/u01/oradata),并设置正确权限:
sudo mkdir -p /u01/app/oracle /u01/oradata
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
安装包需上传至安装目录(如/u01/app/oracle),解压后执行runInstaller启动安装向导。
环境变量配置
编辑oracle用户的~/.bash_profile(或~/.bashrc),添加以下环境变量:
export ORACLE_BASE=/u01/app/oracle # Oracle基目录
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # Oracle主目录(根据实际路径调整)
export ORACLE_SID=ORCLCDB # 数据库实例名(默认)
export PATH=$ORACLE_HOME/bin:$PATH # 添加Oracle命令到PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 库文件路径
export LANG=C # 字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 数据库字符集
执行source ~/.bash_profile使配置生效。
监听器配置
安装完成后,需配置监听器以允许远程连接。编辑$ORACLE_HOME/network/admin/listener.ora文件,确保包含以下内容:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) # 监听地址和端口
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCLCDB)
(ORACLE_HOME = $ORACLE_HOME)
(SID_NAME = ORCLCDB)
)
)
启动监听器:lsnrctl start,检查状态:lsnrctl status。
防火墙设置
若系统启用了防火墙(如CentOS 7的firewalld),需开放Oracle监听端口(默认1521):
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
生产环境中建议关闭防火墙或配置更严格的访问规则。
SELinux配置
SELinux会限制Oracle进程的权限,建议禁用:
sudo setenforce 0 # 临时禁用
sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config # 永久禁用
时间同步
确保数据库服务器与客户端时间同步(可使用NTP服务),避免因时间差异导致数据不一致或连接问题。
日志监控
定期检查Oracle日志文件(如$ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/alert_$ORACLE_SID.log),及时发现并解决问题。
备份策略
安装完成后,立即配置数据库备份(如RMAN),确保数据安全。
字符集一致性
安装前确认系统字符集(locale命令)与Oracle字符集(如AL32UTF8)一致,避免乱码问题。