04 手把手部署Oracle 19c——单实例ASM安装全流程(图形化+静默) 一、先搞懂核心:ASM磁盘组规划与创建 1.1 ASM磁盘组规划原则(生产环境必看) 1.2 实操:创建ASM磁盘(以CentOS 7为例) 1.2.1 识别磁盘 1.2.2 磁盘分区 1.2.3 标记ASM磁盘(关键步骤) 1.3 创建ASM磁盘组(两种方式) 二、图形化安装:新手友好,ASM配置一步到位 2.1 前置:VNC远程连接配置(同文件系统安装) 2.2 图形化安装全流程(核心步骤) 2.2.1 步骤5:存储类型选择(核心差异点) 2.2.2 步骤6:数据库存储配置 2.2.3 后续步骤(与文件系统一致) 三、静默安装:生产首选,ASM脚本化部署 3.1 核心响应文件:新增ASM配置文件(asmca.rsp) 3.2 步骤1:准备并修改响应文件(oracle用户执行) 3.2.1 复制模板文件 3.2.2 修改db_install.rsp(软件安装,含ASM支持) 3.2.3 修改asmca.rsp(创建ASM磁盘组) 3.2.4 修改dbca.rsp(创建数据库,ASM存储) 3.3 步骤2:执行静默安装(分四步) 3.3.1 静默安装Oracle软件(oracle用户) 3.3.2 静默创建ASM磁盘组(oracle用户) 3.3.3 配置ASM环境变量(oracle用户) 3.3.4 静默创建数据库(oracle用户) 3.4 生产环境静默安装完整脚本(含注释) 3.5 ASM安装常见错误及解决办法 四、安装后验证:确认ASM与数据库都正常 4.1 验证ASM实例与磁盘组(oracle用户) 4.2 验证数据库监听状态(oracle用户) 4.3 数据库连接测试(oracle用户) 4.4 关键进程确认(root用户) 五、ASM安装的核心要点
04 手把手部署Oracle 19c——单实例ASM安装全流程(图形化+静默)
不少读者在掌握了文件系统安装后,纷纷问:“生产环境用ASM存储怎么装?” 确实,ASM(自动存储管理)作为Oracle自带的存储解决方案,在数据冗余、性能优化上比传统文件系统更有优势,是生产环境的首选。今天这篇就把单实例ASM安装讲透——从ASM磁盘组规划、图形化安装的点点操作,到静默安装的脚本编写,每一步都配具体命令和避坑提示,新手也能一次成功!
前置提醒:ASM安装比文件系统多了“磁盘组配置”环节,需提前准备好物理磁盘或分区;同时确保完成了Oracle 19c环境规划(硬件达标、依赖包齐全、用户权限配置完毕),没做的可以回顾之前的“避坑指南”。
一、先搞懂核心:ASM磁盘组规划与创建
ASM的核心是“磁盘组”——把多个物理磁盘整合为一个逻辑单元,自动实现负载均衡和故障转移。在安装Oracle软件前,必须先规划并创建好ASM磁盘组,这是ASM安装的基础。
1.1 ASM磁盘组规划原则(生产环境必看)
至少创建3个磁盘组,分别存储不同类型文件,避免IO冲突,这是Oracle官方推荐的最佳实践:
| 磁盘组名称 | 存储内容 | 磁盘要求 | 冗余模式 |
|---|---|---|---|
| DATA | 数据文件、控制文件 | SSD优先,容量≥100GB(生产) | 外部冗余(依赖RAID)/ 正常冗余(2块盘) |
| RECO | 归档日志、备份集 | 机械硬盘或SSD,容量≥DATA的1.5倍 | 外部冗余(依赖RAID)/ 正常冗余(2块盘) |
| FRA | 快速恢复区(可选,也可合并到RECO) | 同RECO | 同RECO |
| 冗余模式选择:如果服务器做了RAID,选“外部冗余”(由RAID保障数据安全);没做RAID选“正常冗余”(ASM自动镜像,至少2块盘)。 |
1.2 实操:创建ASM磁盘(以CentOS 7为例)
ASM磁盘可以是物理磁盘、分区或LVM逻辑卷,这里以“裸设备分区”为例,步骤如下(root用户执行):
1.2.1 识别磁盘
# 查看服务器磁盘列表(识别新添加的磁盘,如/dev/sdb、/dev/sdc) lsblk # 或用fdisk查看 fdisk -l
假设识别到3块新磁盘:/dev/sdb(100GB,用于DATA)、/dev/sdc(150GB,用于RECO)、/dev/sdd(50GB,用于ASM元数据)。
1.2.2 磁盘分区
# 对/dev/sdb进行分区(其他磁盘操作相同) fdisk /dev/sdb # 输入以下命令(按提示操作) n # 新建分区 p # 主分区 1 # 分区号 (回车默认起始扇区) (回车默认结束扇区,或输入 +100G指定大小) t # 修改分区类型 8e # 类型设为Linux LVM(ASM支持此类型) w # 保存退出 # 分区完成后,查看分区结果 fdisk -l /dev/sdb # 会显示/dev/sdb1分区
重复以上操作,完成/dev/sdc1、/dev/sdd1的分区。
1.2.3 标记ASM磁盘(关键步骤)
用Oracle的asmca工具标记磁盘,让ASM识别为可用磁盘。先安装ASM依赖包(root用户):
yum install -y oracleasm-support oracleasmlib oracleasm-`uname -r`
然后配置ASM库并标记磁盘:
# 初始化ASM库(仅第一次执行) oracleasm init # 配置ASM磁盘组所属用户组(oinstall) oracleasm configure -i # 按提示输入:oracle用户、oinstall组 # 标记磁盘为ASM磁盘(命名规则:asm-磁盘用途-序号) oracleasm createdisk ASM_DATA_01 /dev/sdb1 oracleasm createdisk ASM_RECO_01 /dev/sdc1 oracleasm createdisk ASM_META_01 /dev/sdd1 # 查看标记后的ASM磁盘(状态为AVAILABLE表示正常) oracleasm listdisks
1.3 创建ASM磁盘组(两种方式)
磁盘标记完成后,可通过图形化(asmca)或命令行(sqlplus)创建磁盘组,这里先讲图形化方式(后续安装中会整合),命令行方式在静默安装部分介绍。
二、图形化安装:新手友好,ASM配置一步到位
图形化安装的核心是通过VNC连接服务器,用runInstaller向导完成“Oracle软件安装+ASM磁盘组配置+数据库创建”,比文件系统安装多了ASM配置环节。
2.1 前置:VNC远程连接配置(同文件系统安装)
# root用户安装VNC Server yum install -y tigervnc-server # 切换到oracle用户,启动VNC服务 su - oracle vncserver # 设置VNC密码,记住显示端口(如:1)
本地用VNC Viewer连接“服务器IP:1”,输入密码后进入图形化桌面。
2.2 图形化安装全流程(核心步骤)
先解压Oracle 19c安装包到ORACLE_HOME目录(oracle用户执行):
unzip /tmp/LINUX.X64_193000_db_home.zip -d $ORACLE_HOME cd $ORACLE_HOME ./runInstaller
启动安装向导后,前4步与文件系统安装一致(跳过更新、选择“创建并配置数据库”、服务器级、典型安装),从第5步“关键配置项”开始差异显现:
2.2.1 步骤5:存储类型选择(核心差异点)
在“Storage type”选项中,选择“Automatic Storage Management (ASM)”,然后点击“ASM Configuration”进入ASM配置界面:
若未创建ASM磁盘组,选择“Create new ASM disk group”;
输入ASM磁盘组名称(如DATA),选择冗余模式(如External);
在“Disks Available”中勾选标记好的ASM磁盘(如ASM_DATA_01),点击“OK”;
设置ASM实例的SYS用户密码(如Asm_123#),点击“Next”。
重复以上操作,创建RECO磁盘组。
2.2.2 步骤6:数据库存储配置
回到安装向导,此时“Database files location”会自动变为“+DATA”(ASM磁盘组路径),“Recovery options”的恢复区路径设为“+RECO”,其他配置与文件系统一致:
SID设置 :ORCL(与实例名一致);
字符集 :AL32UTF8(支持中文);
内存分配 :物理内存的70%(如32GB内存分配22GB);
密码 :sys/system密码设为Oracle123#(符合复杂度)。
2.2.3 后续步骤(与文件系统一致)
点击“Next”后完成先决条件检查(若ASM磁盘状态正常,会提示“All prerequisite checks passed”),确认概要信息后点击“Install”开始安装。
安装过程中会提示用root用户执行两个脚本(/u01/app/oraInventory/orainstRoot.sh和$ORACLE_HOME/root.sh),执行完成后回到安装界面点击“OK”,等待安装完成。
避坑提示:若先决条件检查提示“ASM磁盘不可用”,检查oracleasm listdisks是否显示磁盘,或重新标记ASM磁盘。
三、静默安装:生产首选,ASM脚本化部署
生产环境ASM安装推荐用静默方式,核心是编写“Oracle软件安装+ASM磁盘组创建+数据库创建”三个响应文件,实现全自动化部署。
3.1 核心响应文件:新增ASM配置文件(asmca.rsp)
相比文件系统静默安装,ASM安装多了ASM磁盘组创建步骤,需要新增asmca.rsp响应文件。三个核心响应文件模板路径均在$ORACLE_HOME/assistants/下。
3.2 步骤1:准备并修改响应文件(oracle用户执行)
3.2.1 复制模板文件
mkdir -p /tmp/rsp cd $ORACLE_HOME/assistants/ # 复制三个核心响应文件 cp dbca/dbca.rsp /tmp/rsp/ cp asmca/asmca.rsp /tmp/rsp/ cp ../install/response/db_install.rsp /tmp/rsp/ cd /tmp/rsp
3.2.2 修改db_install.rsp(软件安装,含ASM支持)
关键参数修改如下(其他默认):
vi db_install.rsp # 安装类型:仅安装软件(后续手动创建数据库) oracle.install .option =INSTALL_DB_SWONLY # 基础路径(与环境变量一致) UNIX_GROUP_NAME =oinstall INVENTORY_LOCATION =/u01/app/oraInventory ORACLE_BASE =/u01/app/oracle ORACLE_HOME =/u01/app/oracle/product/19.3.0/dbhome_1 # 数据库版本:企业版 oracle.install.db .InstallEdition =EE # 启用ASM支持 oracle.install.db .isCustomInstall = true oracle.install.db .asmSupport = true # 跳过更新 oracle.install.db.updates .enabled = false # 自动执行root脚本 oracle.install.db.rootconfig .executeRootScript = true
3.2.3 修改asmca.rsp(创建ASM磁盘组)
vi asmca.rsp # 操作类型:创建磁盘组 operation_type =create # ASM实例配置 asm_instance_sid =+ASM asm_instance_password =Asm_123 # # ASM的SYS用户密码 # DATA磁盘组配置 diskgroup_name[0] =DATA redundancy[0] =EXTERNAL # 外部冗余 disk[0] =/dev/oracleasm/disks/ASM_DATA_01 # ASM磁盘路径 # RECO磁盘组配置 diskgroup_name[1] =RECO redundancy[1] =EXTERNAL disk[1] =/dev/oracleasm/disks/ASM_RECO_01
3.2.4 修改dbca.rsp(创建数据库,ASM存储)
vi dbca.rsp # 操作类型:创建数据库 operationType =createDatabase createDatabase .type =typical # 数据库名和实例名 gdbName =ORCL sid =ORCL # 密码配置 sysPassword =Oracle123 # systemPassword =Oracle123 # # 存储配置(核心:ASM磁盘组) storageType =ASM datafileDestination =+DATA recoveryAreaDestination =+RECO # 字符集和内存 characterSet =AL32UTF8 totalMemory = 22528 # 32GB内存分配22GB(单位MB) # 自动备份 enableArchive = true
3.3 步骤2:执行静默安装(分四步)
3.3.1 静默安装Oracle软件(oracle用户)
cd $ORACLE_HOME ./runInstaller -silent -responseFile /tmp/rsp/db_install.rsp -log /tmp/oracle_install.log
日志监控:tail -f /tmp/oracle_install.log,出现“Successfully Setup Software.”表示软件安装成功。
3.3.2 静默创建ASM磁盘组(oracle用户)
asmca -silent -responseFile /tmp/rsp/asmca.rsp -logfile /tmp/asmca.log
日志监控:tail -f /tmp/asmca.log,出现“Diskgroup created successfully”表示磁盘组创建成功。可通过asmcmd验证:
asmcmd lsdg # 会显示DATA和RECO磁盘组,状态为MOUNTED
3.3.3 配置ASM环境变量(oracle用户)
编辑~/.bash_profile,添加ASM实例环境变量:
vi ~/.bash_profile # 新增ASM环境变量 export ORACLE_SID =+ASM export PATH = $ORACLE_HOME/bin: $PATH # 生效 source ~/.bash_profile
3.3.4 静默创建数据库(oracle用户)
# 切换回数据库实例环境变量(若需要) export ORACLE_SID =ORCL # 执行静默创建命令 dbca -silent -responseFile /tmp/rsp/dbca.rsp -logfile /tmp/dbca.log
日志监控:tail -f /tmp/dbca.log,出现“Database created successfully”表示数据库创建成功。
3.4 生产环境静默安装完整脚本(含注释)
#!/bin/bash # Oracle 19c 单实例ASM静默安装完整脚本 # 适用环境:CentOS 7/8,已完成磁盘分区和ASM标记 # 1. 全局变量(根据实际环境修改) ORACLE_BASE =/u01/app/oracle ORACLE_HOME = $ORACLE_BASE/product/19.3.0/dbhome_1 RSP_DIR =/tmp/rsp INSTALL_FILE =/tmp/LINUX.X64_193000_db_home.zip SYS_PWD =Oracle123 # ASM_PWD =Asm_123 # TOTAL_MEM = 22528 # 内存(MB) # 2. root用户操作:安装依赖包和ASM库 su - root -c "yum install -y binutils compat-libcap1 glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make oracleasm-support oracleasmlib oracleasm-`uname -r`" # 3. root用户操作:配置ASM磁盘(若未配置) # su - root -c "oracleasm init" # su - root -c "oracleasm configure -i" # su - root -c "oracleasm createdisk ASM_DATA_01 /dev/sdb1" # su - root -c "oracleasm createdisk ASM_RECO_01 /dev/sdc1" # 4. oracle用户操作:解压安装包 su - oracle -c "unzip $INSTALL_FILE -d $ORACLE_HOME " # 5. oracle用户操作:创建响应文件目录并复制模板 su - oracle -c "mkdir -p $RSP_DIR " su - oracle -c "cp $ORACLE_HOME /assistants/dbca/dbca.rsp $RSP_DIR /" su - oracle -c "cp $ORACLE_HOME /assistants/asmca/asmca.rsp $RSP_DIR /" su - oracle -c "cp $ORACLE_HOME /install/response/db_install.rsp $RSP_DIR /" # 6. oracle用户操作:修改db_install.rsp su - oracle -c "sed -i 's/oracle.install.option=.*/oracle.install.option=INSTALL_DB_SWONLY/' $RSP_DIR /db_install.rsp" su - oracle -c "sed -i 's/ORACLE_BASE=.*/ORACLE_BASE= $ORACLE_BASE /' $RSP_DIR /db_install.rsp" su - oracle -c "sed -i 's/ORACLE_HOME=.*/ORACLE_HOME= $ORACLE_HOME /' $RSP_DIR /db_install.rsp" su - oracle -c "sed -i 's/oracle.install.db.asmSupport=.*/oracle.install.db.asmSupport=true/' $RSP_DIR /db_install.rsp" su - oracle -c "sed -i 's/oracle.install.db.rootconfig.executeRootScript=.*/oracle.install.db.rootconfig.executeRootScript=true/' $RSP_DIR /db_install.rsp" # 7. oracle用户操作:修改asmca.rsp su - oracle -c "sed -i 's/operation_type=.*/operation_type=create/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/asm_instance_sid=.*/asm_instance_sid=+ASM/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/asm_instance_password=.*/asm_instance_password= $ASM_PWD /' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/diskgroup_name\[0\]=.*/diskgroup_name[0]=DATA/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/redundancy\[0\]=.*/redundancy[0]=EXTERNAL/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/disk\[0\]=.*/disk[0]=\/dev\/oracleasm\/disks\/ASM_DATA_01/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/diskgroup_name\[1\]=.*/diskgroup_name[1]=RECO/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/redundancy\[1\]=.*/redundancy[1]=EXTERNAL/' $RSP_DIR /asmca.rsp" su - oracle -c "sed -i 's/disk\[1\]=.*/disk[1]=\/dev\/oracleasm\/disks\/ASM_RECO_01/' $RSP_DIR /asmca.rsp" # 8. oracle用户操作:修改dbca.rsp su - oracle -c "sed -i 's/operationType=.*/operationType=createDatabase/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/gdbName=.*/gdbName=ORCL/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/sid=.*/sid=ORCL/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/sysPassword=.*/sysPassword= $SYS_PWD /' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/systemPassword=.*/systemPassword= $SYS_PWD /' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/storageType=.*/storageType=ASM/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/datafileDestination=.*/datafileDestination=+DATA/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/recoveryAreaDestination=.*/recoveryAreaDestination=+RECO/' $RSP_DIR /dbca.rsp" su - oracle -c "sed -i 's/totalMemory=.*/totalMemory= $TOTAL_MEM /' $RSP_DIR /dbca.rsp" # 9. oracle用户操作:静默安装Oracle软件 su - oracle -c " $ORACLE_HOME /runInstaller -silent -responseFile $RSP_DIR /db_install.rsp -log /tmp/oracle_install.log" # 10. oracle用户操作:静默创建ASM磁盘组 su - oracle -c "asmca -silent -responseFile $RSP_DIR /asmca.rsp -logfile /tmp/asmca.log" # 11. oracle用户操作:配置环境变量并创建数据库 su - oracle -c "echo 'export ORACLE_SID=ORCL' >> ~/.bash_profile" su - oracle -c "source ~/.bash_profile" su - oracle -c "dbca -silent -responseFile $RSP_DIR /dbca.rsp -logfile /tmp/dbca.log" # 12. 安装完成提示 echo "Oracle 19c ASM单实例安装完成!" echo "日志路径:/tmp/oracle_install.log、/tmp/asmca.log、/tmp/dbca.log"
3.5 ASM安装常见错误及解决办法
| 错误现象 | 报错原因 | 解决办法 |
|---|---|---|
| asmca创建磁盘组失败,提示“磁盘不可用” | 磁盘未标记为ASM磁盘,或权限不足 | 1. 执行oracleasm listdisks查看磁盘;2. 重新标记磁盘:oracleasm createdisk;3. 检查磁盘权限:chown oracle:oinstall /dev/sdb1 |
| 静默安装软件时,提示“ASM支持缺失” | 未安装ASM依赖包,或db_install.rsp未启用ASM支持 | 1. 安装oracleasm-support等依赖包;2. 确保db_install.rsp中oracle.install.db.asmSupport=true |
| 数据库创建失败,提示“+DATA磁盘组未挂载” | ASM实例未启动,或磁盘组未挂载 | 1. 启动ASM实例:sqlplus / as sysasm → startup;2. 挂载磁盘组:alter diskgroup DATA mount; |
| asmcmd无法连接,提示“ORA-12514” | ASM监听未启动 | 1. 配置ASM监听:netca -silent -responseFile /tmp/rsp/netca.rsp;2. 启动监听:lsnrctl start LISTENER_ASM |
四、安装后验证:确认ASM与数据库都正常
ASM安装的验证比文件系统多了“ASM磁盘组和实例”的检查,需完成以下四步验证:
4.1 验证ASM实例与磁盘组(oracle用户)
# 1. 切换到ASM实例环境变量 export ORACLE_SID =+ASM # 2. 登录ASM实例 sqlplus / as sysasm # 3. 查看ASM实例状态 select status from v $instance; # 应为OPEN # 4. 查看磁盘组状态 select name, state, total_mb, free_mb from v $asm_diskgroup; # 应为MOUNTED,有可用空间 # 5. 或用asmcmd查看 asmcmd lsdg
4.2 验证数据库监听状态(oracle用户)
# 切换到数据库实例环境变量 export ORACLE_SID =ORCL # 查看监听状态(确保包含ASM和数据库服务) lsnrctl status # 正常输出应包含: # Service "+ASM" has 1 instance(s). Instance "+ASM", status READY # Service "ORCL" has 1 instance(s). Instance "ORCL", status READY
4.3 数据库连接测试(oracle用户)
# 本地连接 sqlplus / as sysdba # 远程连接 sqlplus sys/Oracle123 #@192.168.1.100:1521/ORCL as sysdba # 验证数据库存储路径(确认使用ASM磁盘组) select name from v$datafile ; # 路径应为+DATA/ORCL/DATAFILE/... select member from v$logfile ; # 路径应为+DATA/ORCL/ONLINELOG/...
4.4 关键进程确认(root用户)
# 查看ASM进程(ora_pmon_+ASM等) ps -ef | grep +ASM | grep -v grep # 查看数据库进程(ora_pmon_ORCL等) ps -ef | grep ORCL | grep -v grep
若两类进程都存在,说明ASM实例和数据库实例都正常运行。
五、ASM安装的核心要点
ASM安装虽然比文件系统多了磁盘组配置环节,但只要抓住核心要点,就不会出错:
-
磁盘准备是基础 :必须将磁盘标记为ASM可用磁盘,否则ASM无法识别;
-
磁盘组规划要合理 :至少分DATA和RECO,冗余模式结合RAID选择;
-
环境变量别混淆 :ASM实例(+ASM)和数据库实例(ORCL)的环境变量要区分,切换时注意修改;
-
验证要全面 :不仅要验证数据库,还要确认ASM实例和磁盘组状态。
掌握了ASM安装,你在生产环境的Oracle运维能力就又上了一个台阶。接下来我们会讲解Oracle 19c RAC——2节点实例安装全流程(图形化+静默),关注我,带你系统掌握Oracle 19c运维技能!
原文链接: https://mp.weixin.qq.com/s/tdRBrzP7bAnzfotEwAa-8w
???? 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!
