首页主机资讯centos系统中oracle配置技巧

centos系统中oracle配置技巧

时间2025-10-28 10:10:04发布访客分类主机资讯浏览1048
导读:一、系统准备:满足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_BASEORACLE_HOMEORACLE_SID等参数),完成安装后执行/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/19.3.0/dbhome_1/root.sh脚本。
  • 静默安装
    创建响应文件(如/data/src/response/db_install.rsp),修改关键参数(如ORACLE_BASEORACLE_HOMEORACLE_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语句多方面入手:

  • 操作系统优化
    • 关闭不必要的服务(如firewalldSELinux):systemctl stop firewalld; systemctl disable firewalld; setenforce 0(修改/etc/selinux/config中的SELINUX=disabled永久生效)。
    • 使用大内存页(HugePages):减少内存碎片,提高SGA效率。计算所需页数(sga_target/2MB),修改/etc/sysctl.confvm.nr_hugepages = 2048(示例),然后执行sysctl -p
  • 数据库参数优化
    • 调整SGA/PGA大小:根据内存大小设置(如16GB内存,可设置sga_target=8Gpga_aggregate_target=4G)。
    • 优化连接数:设置processes=300sessions=335sessions=processes*1.1+5),避免连接过多导致资源耗尽。
  • SQL语句优化
    • 避免SELECT *:明确列出所需列,减少I/O开销。
    • 使用绑定变量:减少硬解析(如SELECT * FROM employees WHERE id = :1),提高查询效率。
    • 创建合适索引:为WHEREJOINORDER 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
centos与oracle配置指南 oracle配置centos有哪些要点

游客 回复需填写必要信息