Oracle Linux 7.8 静默安装 Oracle 11g R2 单机 ASM 详细教程
Oracle Linux 7.8 静默安装 Oracle 11g R2 单机 ASM 笔记
一、系统环境准备
操作系统要求
- Oracle Linux 7.8 x86_64(内核:3.10.0-1127.el7.x86_64)
- 内存:≥ 4GB(推荐 8GB)
- 交换空间:≥ 8GB
- 磁盘空间:
/tmp
≥ 1GB- Grid 安装目录:≥ 10GB
- Oracle 安装目录:≥ 10GB
- ASM 磁盘:≥ 20GB(推荐 3 块磁盘)
配置主机名和解析
hostnamectl set-hostname ol7-ora11g echo "192.168.1.100 ol7-ora11g" >> /etc/hosts
禁用 SELinux 和防火墙
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config systemctl stop firewalld systemctl disable firewalld
安装依赖包
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel \ ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat \ unixODBC unixODBC-devel elfutils-libelf-devel
二、创建用户和组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmadmin
groupadd -g 54325 asmdba
groupadd -g 54326 asmoperuseradd -u 54321 -g oinstall -G dba,asmdba,oper oracle
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba gridecho "oracle:oracle" | chpasswd
echo "grid:grid" | chpasswd
三、内核参数优化
编辑 /etc/sysctl.conf
:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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
应用配置:
sysctl -p
四、资源限制配置
编辑 /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 hard stack 32768grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
五、禁用透明大页(THP)
- 编辑
/etc/default/grub
:GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
- 更新 GRUB:
grub2-mkconfig -o /boot/grub2/grub.cfg reboot
- 验证:
cat /sys/kernel/mm/transparent_hugepage/enabled # 输出:[never] ...
六、配置 ASM 磁盘
- 准备磁盘(示例:/dev/sdb, /dev/sdc)
fdisk /dev/sdb # 创建分区(n → p → 1 → 回车 → t → 8e → w) fdisk /dev/sdc # 同上
- 配置 UDEV 规则
创建/etc/udev/rules.d/99-oracle-asm.rules
:
生效配置:KERNEL=="sdb1", OWNER="grid", GROUP="asmadmin", MODE="0660" KERNEL=="sdc1", OWNER="grid", GROUP="asmadmin", MODE="0660"
udevadm control --reload-rules udevadm trigger
七、目录结构规划
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/grid /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app
八、上传并解压安装包
- 上传文件到
/opt
linux.x64_11gR2_grid.zip
linux.x64_11gR2_database_*.zip
- 解压文件
unzip linux.x64_11gR2_grid.zip -d /opt/grid unzip linux.x64_11gR2_database_1of2.zip -d /opt/database unzip linux.x64_11gR2_database_2of2.zip -d /opt/database chown -R grid:oinstall /opt/grid chown -R oracle:oinstall /opt/database
九、配置响应文件
- Grid 响应文件 (
/opt/grid/grid.rsp
)oracle.install.responseFileVersion=/oracle/install/rspfmt_gridinstall_response_schema_v11_2_0 INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en oracle.install.option=HA_CONFIG ORACLE_BASE=/u01/app/grid ORACLE_HOME=/u01/app/11.2.0/grid oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.ClusterType=STANDALONE oracle.install.asm.SYSASMPassword=Oracle123 oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=1 oracle.install.asm.diskGroup.disks=/dev/sdb1,/dev/sdc1 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/sd* oracle.install.asm.monitorPassword=Oracle123
- DB 响应文件 (
/opt/database/db.rsp
)oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper DECLINE_SECURITY_UPDATES=true
十、静默安装 Grid Infrastructure
- 以 grid 用户运行
su - grid cd /opt/grid ./runInstaller -silent -responseFile /opt/grid/grid.rsp -ignorePrereq
- 执行 root 脚本
/u01/app/oraInventory/orainstRoot.sh /u01/app/11.2.0/grid/root.sh
- 验证 ASM 实例
export ORACLE_SID=+ASM sqlplus / as sysasm SQL> SELECT name, state FROM v$asm_diskgroup;
十一、静默安装 Oracle 数据库软件
- 以 oracle 用户运行
su - oracle cd /opt/database ./runInstaller -silent -responseFile /opt/database/db.rsp -ignorePrereq
- 执行 root 脚本
/u01/app/oracle/product/11.2.0/db_1/root.sh
十二、创建数据库(使用 DBCA)
- 准备 DBCA 响应文件 (
/opt/database/dbca.rsp
)responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v11_2_0 gdbName=orcl sid=orcl templateName=General_Purpose.dbc sysPassword=Oracle123 systemPassword=Oracle123 characterSet=AL32UTF8 memoryPercentage=40 databaseType=MULTIPURPOSE storageType=ASM diskGroupName=DATA recoveryGroupName=DATA
- 静默创建数据库
dbca -silent -responseFile /opt/database/dbca.rsp
- 验证数据库
sqlplus / as sysdba SQL> SELECT name, open_mode FROM v$database;
十三、配置环境变量
- grid 用户 (
~grid/.bash_profile
)export ORACLE_HOME=/u01/app/11.2.0/grid export ORACLE_SID=+ASM export PATH=$PATH:$ORACLE_HOME/bin
- oracle 用户 (
~oracle/.bash_profile
)export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin
十四、验证安装
# 检查 ASM 实例
crsctl check has
sqlplus / as sysasm
SELECT * FROM v$asm_diskgroup;# 检查数据库
lsnrctl status
sqlplus / as sysdba
SELECT * FROM v$version;
常见问题解决
- 磁盘权限问题
chown grid:asmadmin /dev/sd[b-c]1
- ORA-00845 错误
确保/dev/shm
大小 ≥ 内存设置:mount -t tmpfs shmfs -o size=4g /dev/shm
- 安装日志路径
- Grid:
/u01/app/oraInventory/logs/installActions_*.log
- DB:
/u01/app/oracle/oraInventory/logs/installActions_*.log
- Grid: