首页主机资讯Debian Oracle怎么配置

Debian Oracle怎么配置

时间2025-12-01 20:41:06发布访客分类主机资讯浏览942
导读:Debian 上配置 Oracle 的可执行清单 一 准备与规划 明确目标版本与用途:是安装完整的 Oracle Database(如 19c/21c XE 或企业版),还是仅配置 Oracle Instant Client 用于连接远程...

Debian 上配置 Oracle 的可执行清单

一 准备与规划

  • 明确目标版本与用途:是安装完整的 Oracle Database(如 19c/21c XE 或企业版),还是仅配置 Oracle Instant Client 用于连接远程库。
  • 规划目录与磁盘:建议将数据与软件分离,如软件在 /u01/app/oracle,数据在 /u02/oradata;确保文件系统支持大文件与良好 I/O(如 ext4/xfs)。
  • 规划网络与端口:数据库监听默认端口 1521/TCP,确保防火墙与安全组放行;准备主机名解析(/etc/hosts 或 DNS)。
  • 资源基线:至少 2–4 GB 内存(生产建议更高)、充足 swap、可用磁盘空间按数据量规划(经验值:数据+归档+备份)。

二 安装与系统配置

  • 创建用户与目录
    • 创建组与用户:sudo groupadd oinstall;sudo groupadd dba;sudo useradd -g oinstall -G dba -m -s /bin/bash oracle;sudo passwd oracle
    • 创建目录并授权:sudo mkdir -p /u01/app/oracle;sudo chown -R oracle:oinstall /u01;sudo chmod -R 755 /u01
  • 安装依赖(以 Debian 12 为例)
    • sudo apt-get update
    • sudo apt-get install -y build-essential gcc make binutils libaio1 libaio-dev libstdc++6 libnss3 libx11-6 libxext6 libxtst6 libxi6 libglib2.0-0 libpam0g libssl3 libgcc-s1 libc6-dev
  • 内核参数(/etc/sysctl.conf,sysctl -p 生效)
    • kernel.shmall = 2097152
    • kernel.shmmax = 536870912
    • kernel.shmmni = 4096
    • kernel.sem = 250 32000 100 128
    • fs.file-max = 65536
    • net.ipv4.ip_local_port_range = 1024 65000
    • net.core.rmem_default = 262144
    • net.core.rmem_max = 4194304
    • net.core.wmem_default = 262144
    • net.core.wmem_max = 1048576
    • fs.aio-max-nr = 1048576
  • 资源限制(/etc/security/limits.conf)
    • oracle soft nproc 2047
    • oracle hard nproc 16384
    • oracle soft nofile 1024
    • oracle hard nofile 65536
    • oracle soft memlock 33554432
    • oracle hard memlock 33554432
  • PAM 与安全
    • 确保 /etc/pam.d/login 包含:session required /lib64/security/pam_limits.so
    • 可选:禁用透明大页(THP)、配置 hugepages、设置 RemoveIPC=no(/etc/systemd/logind.conf),以提升稳定性与性能
  • 环境变量(oracle 用户 ~/.bashrc 或 ~/.bash_profile)
    • export ORACLE_BASE=/u01/app/oracle
    • export ORACLE_HOME=$ORACLE_BASE/product/19.3.0.0/dbhome_1
    • export ORACLE_SID=orcl
    • export PATH=$ORACLE_HOME/bin:$PATH
    • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    • 字符集可按需设置:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    • 使配置生效:source ~/.bashrc

三 安装 Oracle 软件与创建数据库

  • 图形化安装(有 GUI)
    • 以 oracle 用户解压安装介质,执行:./runInstaller(按向导选择安装类型、目录、清单目录、创建数据库等)
  • 静默安装(推荐用于服务器)
    • 复制并编辑响应文件(如 db_install.rsp 或 dbhome.rsp),设置 ORACLE_BASE、ORACLE_HOME、ORACLE_SID、INVENTORY_LOCATION 等
    • 执行:./runInstaller -silent -responseFile /path/db_install.rsp
    • 安装完成后按提示以 root 执行 $ORACLE_HOME/root.sh
  • 仅客户端(Instant Client)
    • 从 Oracle 官网下载 Basic/SDK/SQL*Plus 的 Linux x86-64 RPM 包
    • 在 Debian 上可用 alien 转换为 .deb 并安装,或配置本地 YUM/APT 仓库后直接安装 RPM
    • 配置环境变量:ORACLE_HOME、LD_LIBRARY_PATH、PATH、TNS_ADMIN(指向 $ORACLE_HOME/network/admin)
  • 创建监听与数据库
    • 监听:编辑 $ORACLE_HOME/network/admin/listener.ora,示例
      • LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))))
      • SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl)(ORACLE_HOME = $ORACLE_HOME)))
      • 启动:lsnrctl start
    • 创建数据库(DBCA 静默或 SQL*Plus 手工建库)
      • 示例(SQL*Plus):sqlplus / as sysdba
        • CREATE DATABASE orcl USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 (‘/u02/oradata/orcl/redo01.log’) SIZE 200M, GROUP 2 (‘/u02/oradata/orcl/redo02.log’) SIZE 200M MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 1024 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE ‘/u02/oradata/orcl/system01.dbf’ SIZE 1G REUSE SYSAUX DATAFILE ‘/u02/oradata/orcl/sysaux01.dbf’ SIZE 1G REUSE DEFAULT TABLESPACE users DATAFILE ‘/u02/oradata/orcl/users01.dbf’ SIZE 500M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED UNDO TABLESPACE undotbs1 DATAFILE ‘/u02/oradata/orcl/undotbs01.dbf’ SIZE 500M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
        • 执行 @?/rdbms/admin/catalog.sql 与 @?/rdbms/admin/catproc.sql 完成数据字典与过程对象创建
  • 启动与自启
    • 配置 systemd 服务(示例):/etc/systemd/system/oracle.service
      • [Unit] Description=Oracle Database Service After=network.target
      • [Service] Type=simple User=oracle Environment=“ORACLE_HOME=/u01/app/oracle/product/19.3.0.0/dbhome_1” Environment=“ORACLE_SID=orcl” ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME RemainAfterExit=yes
      • [Install] WantedBy=multi-user.target
    • 启用:sudo systemctl daemon-reload;sudo systemctl enable --now oracle

四 网络与安全配置

  • 主机名与解析
    • /etc/hosts 添加:127.0.1.1 your_hostname(或服务器真实 IP 与 FQDN),确保监听与客户端解析一致
  • 防火墙放行
    • UFW:sudo ufw allow 1521/tcp;sudo ufw reload
    • firewalld:sudo firewall-cmd --add-port=1521/tcp --permanent;sudo firewall-cmd --reload
  • 监听与客户端连接
    • 监听状态:lsnrctl status;注册服务后可看到 SID/Service
    • 客户端连接串(tnsnames.ora 或 Easy Connect):
      • ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = orcl)))
      • sqlplus system/密码@//dbhost:1521/orcl
  • SELinux/AppArmor
    • Debian 默认使用 AppArmor,确保 Oracle 目录与进程未被不当限制;必要时为 $ORACLE_HOME/bin/oracle 配置合适配置

五 验证与常见问题

  • 基本验证
    • 监听:lsnrctl status(应看到端口 1521 与已注册服务)
    • 实例:sqlplus / as sysdba;select name, open_mode from v$database;
    • 监听日志:$ORACLE_HOME/diag/tnslsnr/LISTENER/trace/listener.log
  • 常见问题速查
    • 无法远程连接:检查监听端口、防火墙、/etc/hosts 主机名解析、数据库服务是否注册到监听
    • 共享内存不足:调大 kernel.shmmax(如 2–8 GB,视内存而定),sysctl -p 生效
    • 打开文件数限制:limits.conf 中 oracle 的 nofile 与 nproc 值过低,调整后重新登录 oracle 用户
    • 依赖缺失:安装 build-essential、libaio-dev、libnss3 等基础包
    • Instant Client 找不到库:确认 LD_LIBRARY_PATH 包含 $ORACLE_HOME/lib,或使用 ldconfig 注册库路径

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Oracle怎么配置
本文地址: https://pptw.com/jishu/760473.html
Debian系统中Zookeeper的权限管理 Zookeeper在Debian上的监控与告警设置

游客 回复需填写必要信息