Debian Oracle怎么配置
导读: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 完成数据字典与过程对象创建
- 示例(SQL*Plus):sqlplus / as sysdba
- 监听:编辑 $ORACLE_HOME/network/admin/listener.ora,示例
- 启动与自启
- 配置 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
- 配置 systemd 服务(示例):/etc/systemd/system/oracle.service
四 网络与安全配置
- 主机名与解析
- /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
