centos系统中oracle配置技巧
导读:一、系统准备:满足Oracle运行的基础条件 在CentOS上配置Oracle前,需先确认系统符合基本要求: 硬件要求:Swap分区不小于2GB(若内存≥16GB,可设置为内存的1.5倍);硬盘预留至少10GB空间(用于Oracle安装目...
一、系统准备:满足Oracle运行的基础条件
在CentOS上配置Oracle前,需先确认系统符合基本要求:
- 硬件要求:Swap分区不小于2GB(若内存≥16GB,可设置为内存的1.5倍);硬盘预留至少10GB空间(用于Oracle安装目录、数据文件等);建议使用SSD提升I/O性能。
- 系统版本:推荐使用CentOS 7或8(64位系统,Oracle 19c及以上版本对CentOS的支持更完善)。
- 依赖包安装:通过yum命令安装Oracle所需的依赖包,避免安装过程中报错。常用命令:
yum -y install binutils compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* unixODBC* unzip lrzsz。
二、用户与组管理:隔离Oracle运行权限
Oracle需以专用用户身份运行,避免权限过高导致系统安全风险:
- 创建组:创建
oinstall(Oracle软件安装组)和dba(数据库管理员组)。
groupadd oinstall; groupadd dba - 创建用户:创建
oracle用户,加入上述两组,并设置密码。
useradd -m -g oinstall -G dba oracle; passwd oracle - 目录权限:Oracle安装目录(如
/u01/app/oracle)和数据目录(如/u01/app/oracle/oradata)需归属oracle:oinstall,并赋予读写执行权限。
chown -R oracle:oinstall /u01/app/oracle; chmod -R 755 /u01/app/oracle。
三、内核参数调优:适配Oracle内存与进程需求
Oracle对系统内核参数(如内存、进程、网络)有特定要求,需修改/etc/sysctl.conf文件优化:
- 关键参数配置(以Oracle 19c为例):
fs.aio-max-nr = 1048576 # 异步I/O最大请求数 fs.file-max = 6815744 # 系统最大文件句柄数 kernel.shmall = 2097152 # 共享内存总页数(每页4KB) kernel.shmmax = 4294967295 # 单个共享内存段最大大小(4GB) 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 # 发送缓冲区最大大小 vm.swappiness = 10 # 减少内存交换(0-100,值越小越少交换) - 使配置生效:执行
sysctl -p命令加载修改后的参数。
四、环境变量配置:确保Oracle命令全局可用
为oracle用户配置环境变量,使其能正确识别Oracle软件路径和库文件:
- 编辑
/home/oracle/.bashrc文件,添加以下内容(以Oracle 19c为例):export ORACLE_BASE=/u01/app/oracle # Oracle安装基目录 export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1 # Oracle主目录 export ORACLE_SID=orcl # 数据库实例名(需与后续创建的实例一致) export PATH=$ORACLE_HOME/bin:$PATH # 将Oracle命令加入PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # 指定Oracle库文件路径 export LANG=en_US.UTF-8 # 设置语言环境 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 设置字符集(与数据库字符集一致) - 使配置生效:执行
source /home/oracle/.bashrc命令。
五、Oracle安装:静默或图形化方式部署
Oracle安装分为图形化(适合有界面的CentOS)和静默(适合无界面的服务器)两种方式:
- 图形化安装:
切换至oracle用户,进入安装包目录(如/data/src/database),运行./runInstaller,按照向导选择“典型安装”(指定ORACLE_BASE、ORACLE_HOME、ORACLE_SID等参数),完成安装后执行/u01/app/oraInventory/orainstRoot.sh和/u01/app/oracle/product/19.3.0/dbhome_1/root.sh脚本。 - 静默安装:
创建响应文件(如/data/src/response/db_install.rsp),修改关键参数(如ORACLE_BASE、ORACLE_HOME、ORACLE_SID),然后执行./runInstaller -silent -responseFile /data/src/response/db_install.rsp。
六、监听器与数据库实例配置:启用数据库服务
安装完成后,需配置监听器和创建数据库实例:
- 配置监听器:
使用netca(Net Configuration Assistant)工具,选择“监听程序配置”,添加TCP协议(主机名为localhost,端口为1521),保存配置后启动监听器:
lsnrctl start(查看状态:lsnrctl status)。 - 创建数据库实例:
使用dbca(Database Configuration Assistant)工具,选择“创建数据库”,按照向导设置数据库名(如orcl)、SID、字符集(如AL32UTF8)、密码等参数,完成实例创建。也可通过命令行创建:sqlplus / as sysdba CREATE DATABASE orcl USER SYS IDENTIFIED BY password USER SYSTEM IDENTIFIED BY password CONTROLFILE REUSE LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 500M, GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 500M, GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 500M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf' SIZE 325M REUSE SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
七、性能优化:提升Oracle运行效率
Oracle性能优化需从操作系统、数据库参数、SQL语句多方面入手:
- 操作系统优化:
- 关闭不必要的服务(如
firewalld、SELinux):systemctl stop firewalld; systemctl disable firewalld; setenforce 0(修改/etc/selinux/config中的SELINUX=disabled永久生效)。 - 使用大内存页(HugePages):减少内存碎片,提高SGA效率。计算所需页数(
sga_target/2MB),修改/etc/sysctl.conf:vm.nr_hugepages = 2048(示例),然后执行sysctl -p。
- 关闭不必要的服务(如
- 数据库参数优化:
- 调整SGA/PGA大小:根据内存大小设置(如16GB内存,可设置
sga_target=8G、pga_aggregate_target=4G)。 - 优化连接数:设置
processes=300、sessions=335(sessions=processes*1.1+5),避免连接过多导致资源耗尽。
- 调整SGA/PGA大小:根据内存大小设置(如16GB内存,可设置
- SQL语句优化:
- 避免
SELECT *:明确列出所需列,减少I/O开销。 - 使用绑定变量:减少硬解析(如
SELECT * FROM employees WHERE id = :1),提高查询效率。 - 创建合适索引:为
WHERE、JOIN、ORDER BY子句中的列创建索引(如CREATE INDEX idx_emp_name ON employees(name)),但避免过度索引(影响DML性能)。
- 避免
- 定期维护:
- 更新统计信息:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS('SCHEMA_NAME');(帮助优化器生成最佳执行计划)。 - 重建索引:
ALTER INDEX idx_emp_name REBUILD;(定期清理碎片,提高索引效率)。 - 使用AWR/ASH报告:通过
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,1,1,1));生成报告,分析性能瓶颈(如CPU、内存、I/O使用情况)。
- 更新统计信息:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos系统中oracle配置技巧
本文地址: https://pptw.com/jishu/736516.html
