# Oracle一键安装脚本
**Repository Path**: luciferlpc/OracleShellInstall
## Basic Information
- **Project Name**: Oracle一键安装脚本
- **Description**: 一键安装 Oracle,让天下再没有难装的数据库!
- **Primary Language**: Shell
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 127
- **Forks**: 69
- **Created**: 2025-01-11
- **Last Updated**: 2025-07-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Oracle, Linux
## README
📢 Oracle 一键安装脚本开源了!
# 功能点对比
开源版和付费版的具体功能点对比如下:
| 分类 | 描述 | 开源版 | 付费版 |
| ----------- | ------------------------------------------------ | ------ | ------ |
| 功能 | 脚本帮助 help | ✅ | ✅ |
| 功能 | 脚本安装日志 | ✅ | ✅ |
| 功能 | 脚本参数配置 | ✅ | ✅ |
| 功能 | 脚本参数检查 | ✅ | ✅ |
| 功能 | 创建多个实例 | ✅ | ✅ |
| 功能 | 配置多路径、UDEV、ASM 绑盘 | ✅ | ✅ |
| 功能 | 可重复执行 | ✅ | ✅ |
| 功能 | 全程无需人工干预 | ✅ | ✅ |
| 功能 | 安装后优化数据库 | ✅ | ✅ |
| 架构 | 单机/单机 ASM | ✅ | ✅ |
| 架构 | NON-CDB/CDB(PDB) | ✅ | ✅ |
| 架构 | RAC(不限节点数) | ❌ | ✅ |
| CPU | X86 | ✅ | ✅ |
| CPU | ARM | ❌ | ✅ |
| 系统 | 红帽 RHEL/Oracle Linux/Centos | ✅ | ✅ |
| 系统 | 国产化系统(麒麟、欧拉、统信、龙蜥等等 20 多种) | ❌ | ✅ |
| Oracle 版本 | 11GR2/12CR2/19C/21C/23ai | ✅ | ✅ |
| 兼容性 | Oracle 官方认证组合安装 | ✅ | ✅ |
| 兼容性 | 非 Oracle 官方认证组合安装 | ❌ | ✅ |
| 安装补丁 | Grid/DB/OJVM 一键安装打补丁 | ❌ | ✅ |
| 安装介质 | 提供系统镜像 ISO、Oracle 安装包/补丁等安装介质 | ❌ | ✅ |
| 脚本答疑 | 安装日志排错、专属付费群、群直播答疑等 | ❌ | ✅ |
如需完整付费版功能,请添加作者微信订阅:Lucifer-0622
# 更新记录
- `2025/01/12`
- 开源 OracleShellInstall 脚本
# Oracle一键安装脚本
作为 IT 人,相信大家多多少少都接触使用过 Oracle 数据库,但是很少有人安装过 Oracle 数据库,因为这种活一般都是 DBA 干的,比如我。那么,如果自己想安装一套 Oracle 数据库进行测试,如何安装呢?
**首先想要成功安装一套Oracle数据库,至少需要满足以下几个条件:**
- 了解基础的硬件资源配置:硬盘,内存,CPU 等;
- 熟悉如何安装 Linux 系统,包括多种虚拟机的使用;
- 熟悉 Linux 常用命令和系统服务;
- 熟悉 Oracle 数据库的整体安装流程,可参考官方文档;
**具体步骤可以参考:**
- 安装 Linux 操作系统;
- 配置存储,网络;
- 配置操作系统服务和参数等;
- 配置 Oracle 相关用户目录等;
- 上传解压安装介质;
- 安装 Oracle 软件;
- 创建数据库实例;
**可参考文档:**
- [《实战篇:Linux 安装 Oracle 11GR2 数据库保姆级教程》](https://www.modb.pro/db/168337)
- [《实战篇:使用 StarWind 配置 ISCSI 共享存储》](https://www.modb.pro/db/152431)
- [《实战篇:一步步教你 Linux 7 安装 Oracle 11GR2 RAC》](https://www.modb.pro/db/153861)
- [《Redhat 7 安装 Oracle 12CR2 RAC 完全避坑宝典》](https://www.modb.pro/db/193241)
- [《实战篇:Linux7 安装 Oracle 19C RAC 详细图文教程》](https://www.modb.pro/db/154424)
- [《实战篇:SUSE 15 SP3 安装 Oracle 19C RAC 数据库》](https://www.modb.pro/db/159384)
如果本篇文章只是如此,不免过于标题党,俗话说的好,抛转引玉,接下来就介绍下本文的主角:**Oracle一键安装脚本**,建库只需短短一行命令,一杯茶的功夫,敲代码的同时也不忘养生。
# 介绍
俗说得好:**"懒人"推动世界的发展。** 既然能用脚本解决的事情,为什么还要那么麻烦,干就完事儿了。
# 脚本兼容性列表
目前脚本已支持操作系统(已安装验证):
- [RedHat 6/7/8/9 全系](https://developers.redhat.com/products/rhel/download)
- [OracleLinux 6/7/8/9 全系](https://yum.oracle.com/oracle-linux-isos.html)
- [Centos 6/7/8 全系](https://mirrors.tuna.tsinghua.edu.cn/centos/)
# 目前脚本已知支持的 Oracle 版本
```bash
11GR2
12CR2
19C
21C
23ai
```
## 目前脚本已知支持列表组合
| 支持 单机/单机ASM | 11GR2 | 12CR2 | 19C | 21C | 23ai |
| -------------------- | ----- | ----- | --- | --- | ---- |
| Centos >=6 全系 | ✅ | ✅ | ✅ | ✅ | ✅ |
| RedHat >=6 全系 | ✅ | ✅ | ✅ | ✅ | ✅ |
| OracleLinux >=6 全系 | ✅ | ✅ | ✅ | ✅ | ✅ |
开源版本脚本仅适配 Oracle 官方认证列表的系统组合,非标请购买付费版本支持。
# 常见问题
1. 挂载 ISO 镜像源,必须使用 Everything 或者比较全的源,否则可能安装失败。
# 实操参考
以下为作者安装测试的教程合集,请仔细阅读:
- [Oracle 一键安装脚本实操合集,持续更新中!!!](https://www.modb.pro/db/1773583263184031744)
# 脚本使用
使用脚本前,务必先做好以下步骤:
- 安装好操作系统,最小化和图形化皆可;
- 配置好主机网络;
- 配置软件源准备(本地或者网络),脚本会自动配置,只需要挂载 ISO 镜像即可;
- 创建软件存放目录:`mkdir /soft`;
- 上传安装所需软件包:Oracle 安装包;
- 上传一键安装脚本:OracleShellInstall;
更详细可以参考:
- **单机**
- 系统组安装好操作系统(支持最小化安装)
- 网络组配置好主机网络,通常只需要一个公网 IP 地址
- DBA 创建软件目录:`mkdir /soft`
- DBA 上传 Oracle 安装介质(基础包,补丁包)到 /soft 目录下
- DBA 上传 Oracle 一键安装脚本到 /soft 目录下,授予脚本执行权限:`chmod +x OracleshellInstall`
- DBA 挂载主机 ISO 镜像,这里只需要 mount 上即可(这个很简单,不了解的可以百度下)
- 根据脚本安装脚本以及实际情况,配置好脚本的安装参数,在 /soft 目录下执行一键安装即可。
- **单机 ASM**
- 系统组安装好操作系统(支持最小化安装)
- 网络组配置好主机网络,通常只需要一个公网 IP 地址
- 存储组配置并在主机层挂载好 ASM 磁盘,虚拟化环境需要确保已开启磁盘的 UUID
- DBA 创建软件目录:`mkdir /soft`
- DBA 上传 Oracle 安装介质(基础包)到 /soft 目录下
- DBA 上传 Oracle 一键安装脚本到 /soft 目录下,授予脚本执行权限:`chmod +x OracleshellInstall`
- DBA 挂载主机 ISO 镜像,这里只需要 mount 上即可
- 根据脚本安装脚本以及实际情况,配置好脚本的安装参数,在 /soft 目录下执行一键安装即可。
## 参数介绍
关于脚本的参数使用可执行 `./OracleShellInstall -h` 进行查看,使用脚本前强烈建议全部看一遍再执行安装:
```bash
███████ ██ ████████ ██ ██ ██ ██ ██ ██ ██
██░░░░░██ ░██ ██░░░░░░ ░██ ░██ ░██░██ ░██ ░██ ░██
██ ░░██ ██████ ██████ █████ ░██ █████ ░██ ░██ █████ ░██ ░██░██ ███████ ██████ ██████ ██████ ░██ ░██
░██ ░██░░██░░█ ░░░░░░██ ██░░░██ ░██ ██░░░██░█████████░██████ ██░░░██ ░██ ░██░██░░██░░░██ ██░░░░ ░░░██░ ░░░░░░██ ░██ ░██
░██ ░██ ░██ ░ ███████ ░██ ░░ ░██░███████░░░░░░░░██░██░░░██░███████ ░██ ░██░██ ░██ ░██░░█████ ░██ ███████ ░██ ░██
░░██ ██ ░██ ██░░░░██ ░██ ██ ░██░██░░░░ ░██░██ ░██░██░░░░ ░██ ░██░██ ░██ ░██ ░░░░░██ ░██ ██░░░░██ ░██ ░██
░░███████ ░███ ░░████████░░█████ ███░░██████ ████████ ░██ ░██░░██████ ███ ███░██ ███ ░██ ██████ ░░██ ░░████████ ███ ███
░░░░░░░ ░░░ ░░░░░░░░ ░░░░░ ░░░ ░░░░░░ ░░░░░░░░ ░░ ░░ ░░░░░░ ░░░ ░░░ ░░ ░░░ ░░ ░░░░░░ ░░ ░░░░░░░░ ░░░ ░░░
注意:本脚本仅用于新服务器上实施部署数据库使用,严禁在已运行数据库的主机上执行,以免发生数据丢失或者损坏,造成不可挽回的损失!!!
用法: OracleShellInstall [选项] 对象 { 命令 | help }
单机模式:
-lrp 配置本地软件源,需要挂载本地 ISO 镜像源,默认值:[Y]
-nrp 配置网络软件源,默认值:[N]
-lf [必填] 公网 IP 的网卡名称
-n 主机名,默认值:[orcl]
-ou 系统 oracle 用户名称,默认值:[oracle]
-op 系统 oracle 用户密码,若包含特殊字符必须以单引号包裹,例如:'Passw0rd#',默认值:[oracle]
-d Oracle 软件安装根目录,默认值:[/u01]
-ord Oracle 数据文件目录,默认值:[/oradata]
-ard Oracle 归档文件目录,默认值:[/oradata/archivelog]
-o Oracle 数据库名称,默认值:[orcl]
-dp Oracle 数据库 sys/system 密码,若包含特殊字符(_,#,$)必须以单引号包裹,例如:'Passw0rd#',默认值:[oracle]
-ds 数据库字符集,默认值:[AL32UTF8]
-ns 数据库国家字符集,默认值:[AL16UTF16]
-er 是否启用归档日志,默认值:[true]
-pdb 用于 CDB 架构,PDB 名称,支持传入多个PDB:-pdb pdb01,pdb02,默认值:[pdb01]
-redo 数据库 redo 日志文件大小,单位为 MB,默认值[1024]
-m 仅配置操作系统,默认值:[N]
-ud 安装到 Oracle 软件结束,默认值:[N]
-gui 是否安装系统图形界面,默认值:[N]
-opd 安装完成是否优化 Oracle 数据库,默认值:[N]
-hf 安装完成是否配置内存大页,默认值:[N]
单机 ASM 模式:
-lrp 配置本地软件源,需要挂载本地 ISO 镜像源,默认值:[Y]
-nrp 配置网络软件源,默认值:[N]
-lf [必填] 公网 IP 的网卡名称
-n 主机名,默认值:[orcl]
-ou 系统 oracle 用户名称,默认值:[oracle]
-op 系统 oracle 用户密码,若包含特殊字符必须以单引号包裹,例如:'Passw0rd#',默认值:[oracle]
-d Oracle 软件安装根目录,默认值:[/u01]
-ord Oracle 数据文件目录,默认值:[/oradata]
-o Oracle 数据库名称,默认值:[orcl]
-gu 系统 grid 用户名称,默认值:[grid]
-gp 系统 grid 用户密码,,若包含特殊字符必须以单引号包裹,例如:'Passw0rd#',默认值:[oracle]
-dp Oracle 数据库 sys/system 密码,若包含特殊字符(_,#,$)必须以单引号包裹,例如:'Passw0rd#',默认值:[oracle]
-adc 是否需要脚本配置 ASM 磁盘,如果不需要配置,则需要自行提前配置好,默认值:[Y]
-mp 是否需要脚本配置 multipath 多路径,如果不需要配置多路径,则使用UDEV直接绑盘,默认值:[Y]
-dd [必填] ASM DATA 磁盘组的磁盘列表,默认传参为(sd名称):-dd /dev/sdb:若设置参数 -adc N,则传入已配置好的磁盘列表:-dd /dev/asm_data1
-dn ASM DATA 磁盘组名称,默认值:[DATA]
-dr ASM DATA 磁盘组冗余度,默认值:[EXTERNAL]
-ds 数据库字符集,默认值:[AL32UTF8]
-ns 数据库国家字符集,默认值:[AL16UTF16]
-er 是否启用归档日志,默认值:[true]
-pdb 用于 CDB 架构,PDB 名称,支持传入多个PDB:-pdb pdb01,pdb02,默认值:[pdb01]
-redo 数据库 redo 日志文件大小,单位为 MB,默认值[1024]
-m 仅配置操作系统,默认值:[N]
-ud 安装到 Oracle 软件结束,默认值:[N]
-gui 是否安装系统图形界面,默认值:[N]
-opd 安装完成是否优化 Oracle 数据库,默认值:[N]
-vbox 在虚拟机 virtualbox 上安装 RAC 时需要设置 -vbox Y,用于修复 BUG,默认值:[N]
-fd 过滤多路径磁盘,去除重复路径,获取唯一盘符:参数值为非ASM盘符(系统盘等),例如:-fd /dev/sda,多个盘符用逗号拼接:-fd /dev/sda,/dev/sdb
-hf 安装完成是否配置内存大页,默认值:[N]
```
## 单机
### 最简安装
```bash
./OracleShellInstall -lf eth0 `# 主机网卡名称`
```
### 生产环境安装
```bash
./OracleShellInstall -lf ens33 `# 主机网卡名称`\
-n uos1050d `# 主机名`\
-op oracle `# 主机 oracle 用户密码`\
-d /u01 `# Oracle 软件安装基础目录`\
-ord /oradata `# 数据库文件存放目录`\
-o lucifer `# 数据库名称`\
-dp 'Passw0rd#PST' `# sys/system 用户密码`\
-ds AL32UTF8 `# 数据库字符集`\
-ns AL16UTF16 `# 国家字符集`\
-redo 1000 `# 在线重做日志大小(M)`\
-opd Y `# 是否优化数据库`
```
## 单机 ASM
### 最简安装
```bash
./OracleShellInstall -lf eth0 `# 主机网卡名称` \
-dd /dev/sdc `# DATA 磁盘盘符名称`
```
### 生产环境安装
```bash
./OracleShellInstall -lf ens33 `# 主机网卡名称`\
-n uos1050d `# 主机名`\
-op oracle `# 主机 oracle 用户密码`\
-d /u01 `# Oracle 软件安装基础目录`\
-o lucifer `# 数据库名称`\
-dp 'Passw0rd#PST' `# sys/system 用户密码`\
-ds AL32UTF8 `# 数据库字符集`\
-ns AL16UTF16 `# 国家字符集`\
-redo 1000 `# 在线重做日志大小(M)`\
-dd /dev/sdc `# DATA 磁盘盘符名称`\
-opd Y `# 是否优化数据库`
```
### Grid 和 DB 不同版本
以 `19C Grid` 和 `11GR2 DB` 为例:
```bash
./OracleShellInstall -lf ens33 `# 主机网卡名称`\
-n uos1050d `# 主机名`\
-op oracle `# 主机 oracle 用户密码`\
-d /u01 `# Oracle 软件安装基础目录`\
-o lucifer `# 数据库名称`\
-dp 'Passw0rd#PST' `# sys/system 用户密码`\
-ds AL32UTF8 `# 数据库字符集`\
-ns AL16UTF16 `# 国家字符集`\
-redo 1000 `# 在线重做日志大小(M)`\
-dd /dev/sdc `# DATA 磁盘盘符名称`\
-opd Y `# 是否优化数据库`\
-giv 19 `# Grid 软件版本号`
```