温馨提示×

Debian Oracle虚拟化环境搭建指南

小樊
37
2025-12-07 07:21:15
栏目: 云计算

Debian Oracle 虚拟化环境搭建指南

一 方案总览与选型

  • 目标是在 Debian 主机 上,使用 Oracle VM VirtualBox 构建可用于安装与运行 Oracle Database 的虚拟化环境。
  • 两种常见路径:
    • 路径A:在 VirtualBox 中全新安装 Debian 11/12 作为宿主机,再在宿主机上安装 Oracle 19c(或 18c/21c XE)。适合个人学习、功能验证与开发测试。
    • 路径B:在 VirtualBox 中直接运行 Debian 11 Cloud Image(配合 cloud-init)快速得到干净系统,再安装 Oracle。适合快速起步与自动化部署。
  • 若后续需要多节点 Oracle RAC,可在 Oracle VM(服务器虚拟化)环境中使用 Deploycluster 工具与模板快速部署;该方式属于 Oracle VM 生态,非 VirtualBox 场景。

二 在 VirtualBox 上部署 Debian 宿主机

  • 宿主机准备
    • 安装 Oracle VM VirtualBox(任意现代版本),创建 NAT 网络用于上网,Host-Only 网络用于与宿主机直连与端口转发(如将 2222→22 便于 SSH)。
  • 新建虚拟机
    • 类型选择 Linux → Debian 64-bit;内存建议 ≥4GB,系统盘 ≥80GB;存储控制器选择 SATA/SCSI;网卡1 NAT、网卡2 Host-Only(便于固定管理 IP)。
  • 安装 Debian 11/12
    • 使用官方 netinst/完整 DVD ISO 启动安装;分区建议:/boot 1GB(ext4)、swap 8GB(或按内存调整)、/** 剩余空间**(ext4);安装时勾选 SSH server标准系统工具
  • 基础配置
    • 更新索引:sudo apt update && sudo apt full-upgrade -y
    • 安装常用工具:sudo apt install -y build-essential vim htop net-tools unzip linux-headers-$(uname -r) dkms
    • 建议启用 SSH 并使用密钥登录,便于后续操作与复制安装介质。

三 快速起步方案 Cloud Image 与 cloud-init

  • 获取镜像与转换
    • 下载 Debian 11 Generic Cloud Image(amd64)debian-11-generic-amd64.qcow2
    • 转换为 VirtualBox VMDK:qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic debian-11-generic-amd64.qcow2 root-disk.vmdk
  • 创建 NoCloud 初始化 ISO
    • 新建 user-data(cloud-config)示例:
      #cloud-config
      password: Passw0rd!
      chpasswd: { expire: False }
      ssh_pwauth: True
      users:
        - name: sysadmin
          sudo: ALL=(ALL) NOPASSWD:ALL
          groups: sudo
          shell: /bin/bash
      write_files:
        - path: /etc/sysctl.d/70-disable-ipv6.conf
          content: |
            net.ipv6.conf.all.disable_ipv6 = 1
      
    • 生成 ISO:cloud-localds seed.iso user-data
  • VirtualBox 导入与启动
    • 新建虚拟机(不添加虚拟硬盘)→ 在“存储”中挂载 root-disk.vmdkseed.iso → 启动后自动完成初始化,得到带 sysadmin 用户的系统。
    • 登录后可按需关闭密码登录、启用密钥、配置静态 IP(在 Netplan/ifupdown 中设置)。

四 在 Debian 宿主机安装 Oracle 19c

  • 准备用户与目录
    • 创建用户与组:sudo groupadd oinstall && sudo groupadd dba && sudo useradd -g oinstall -G dba oracle
    • 创建目录:sudo mkdir -p /opt/oracle/app/oracle/product/19.0.0/dbhome_1 /opt/oracle/oradata /opt/oracle/flash_recovery_area
    • 授权:sudo chown -R oracle:oinstall /opt/oracle && sudo chmod -R 775 /opt/oracle
  • 依赖与兼容处理(Debian 为 .deb 系,Oracle 安装器为 RPM 系)
    • 基础依赖:sudo apt install -y build-essential libaio1 libaio-dev libstdc++5 libnss3 bc libx11-6 libxext6 libxtst6 libxi6 libgcc-s1 libglib2.0-0 libpam0g libssl1.1 libc6-dev unzip
    • 可选“欺骗”脚本(仅用于通过安装器对 RPM 的版本探测,不替代真实 RPM 管理):
      sudo tee /usr/bin/rpm >/dev/null <<'EOF'
      #!/usr/bin/env bash
      for a; do pkg=$a; done
      case "$pkg" in
        redhat-release) echo "7.9"; exit 0 ;;
        -*) exit 0 ;;
        *) echo "no package provides $pkg"; exit 1 ;;
      esac
      EOF
      sudo chmod +x /usr/bin/rpm
      
    • 兼容链接(解决部分库/命令路径差异):
      sudo ln -s /usr/bin/awk /bin/awk
      sudo ln -s /usr/bin/basename /bin/basename
      sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
      sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
      
  • 内核参数与资源限制
    • sysctl(示例,按内存与需求调整):
      cat | sudo tee -a /etc/sysctl.d/99-oracle.conf <<'EOF'
      fs.file-max = 6815744
      fs.aio-max-nr = 1048576
      kernel.shmmax = 1200000000
      kernel.shmall = 3145728
      kernel.shmmni = 4096
      net.core.rmem_default = 262144
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576
      net.ipv4.ip_local_port_range = 1024 65000
      EOF
      sudo sysctl --system
      
    • limits(/etc/security/limits.conf):
      oracle soft nproc 2047
      oracle hard nproc 16384
      oracle soft nofile 1024
      oracle hard nofile 65536
      oracle soft stack 10240
      
  • Oracle 用户环境
    cat | sudo tee -a /home/oracle/.bashrc <<'EOF'
    export ORACLE_BASE=/opt/oracle/app/oracle
    export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=\$ORACLE_HOME/bin:\$PATH
    export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
    EOF
    
  • 安装步骤
    • oracle 用户解压安装介质(如 V981623-01.zip 对应 19c),进入解压目录执行 ./runInstaller(图形界面可用 X11 转发或 VNC;无头环境可使用静默安装响应文件)。
    • 安装完成后按提示以 root 执行 orainstRoot.shroot.sh

五 网络与存储规划及常见问题

  • 网络
    • 建议至少两块网卡:NAT(上网/下载介质)与 Host-Only(管理网);如需远程桌面/浏览器安装器,可启用端口转发(如 2222→22)。
  • 存储
    • 数据盘与归档/闪回区分离;文件系统建议 ext4/xfs;虚拟机磁盘使用 VDI/VMDK 动态分配,并预留增长空间。
  • 常见问题与处理
    • 依赖/链接错误:安装缺失依赖,按需建立 /bin/awk/bin/basename/usr/lib64/*.a 等兼容链接。
    • GUI 安装无法显示:使用 ssh -Xx11vnc 转发;或改用静默安装。
    • 共享存储与 RAC:若需 Oracle RAC,在 Oracle VM Server/Manager 环境使用 Deploycluster 与模板部署,支持生产(直通物理盘)与测试(虚拟盘)两种形态。

0