Oracle 数据库一键安装,从未如此简单

更新记录

  • 2022/04/01
    • 创建 OracleShellInstall 脚本
  • 2022/06/16
    • 新增参数 -redo
    • 多路控制文件复用
  • 2022/06/21
    • 修复若干 bug;
    • 重写 OracleShellInstall 脚本第二版
  • 2022/07/03
    • OracleShellInstall 第二版发布
  • 2022/07/04
    • 修复若干 bug;
    • 重写参数 -pdb;
  • 2022/07/05
    • 修复若干 bug;
    • 增加参数 -er,-opd;
  • 2022/07/06
    • 删除参数 -i,-pri1,-pri2
    • 增加参数 -lf,-pf,-ord,-dp
  • 2022/07/07(待测试)
    • 新增 swap 自动配置;
    • 新增参数 -jpa,用于安装 OJVM 补丁;
    • 删除参数 -ri2,-hn1,-hn2,-vi1,-vi2,增加参数 -hn,-ri,-vi,用于支持 rac 3 节点安装;
  • 2022/07/08(待测试)
    • 新增 -am 参数,用于选择 udev 或者 asmlib 方式配置 asm 磁盘;
    • 修复若干 bug;
  • 2022/07/11(部分已测试)
    • 修复若干 bug;
  • 2022/07/12(部分已测试)
    • 修复若干 bug;
  • 2022/07/13(部分已测试)
    • 修复若干 bug;
    • 增加参数 -adc,支持无需脚本配置 asm 磁盘(多路径+udev);
  • 2022/07/15
    • 删除参数 -dbv,-install_mode;

脚本介绍

Oracle 一键安装脚本第二代强势登场了,脚本代码全部重构,优化逻辑,加快执行速度,全程无人工干预安装。

  • 重构超过 80% 代码,提升执行效率
  • 重写以及增删部分参数,脚本更加智能化
  • 重写脚本帮助(-h)功能,提高用户可读性
  • 重写代码注释,更方便用户读懂脚本,参与共创
  • 重写互信脚本,提高稳定性以及速度
  • 重写脚本日志输出功能
  • 重写脚本打印功能,保证打印内容整齐美观
  • 去除低性价比低、无效冗余代码(DNS 服务端配置,18C,单机ASM 等)
  • 优化安装过程输出显示(每一步执行提示,去除解压等无效输出)
  • 增加脚本参数判断功能
  • 增加安装数据库后优化功能

参数介绍

关于脚本的参数使用可执行 ./OracleShellInstall -h 进行查看。

Single 参数

单实例数据库无需任何参数即可安装:./OracleShellInstall,详细参数可参考如下表格。

参数缩写参数用途参数默认值是否必填
-iso是否需要配置本地 YUM 镜像源(需提前挂载 ISO)
☆ 如需使用网络 YUM 源或云主机自带 YUM 源,请配置为 -iso N 即可
Y×
-lf公网 IP 网卡名称(需自行配置网络)
☆ 主机 IP 地址需要自行配置,通过网卡名称自动识别本机 IP 地址
-n主机名
☆ 如不填写该参数,默认主机名为 orcl
orcl×
-op系统 oracle 用户密码oracle×
-d安装 Oracle 软件根目录/u01×
-ord存放 Oracle 数据文件目录/oradata×
-o数据库名称
☆ 数据库名称(db_name),实例名称(instance_name),服务名称(service_names)
orcl×
-dp数据库 sys/system 用户密码oracle×
-ds数据库字符集AL32UTF8×
-ns国家字符集UTF8×
-er是否开启归档模式true×
-pdbpdb名称
☆ 11GR2 以上版本一但配置该参数,则默认数据库安装为 CDB 架构
pdb01×
-redo在线重做日志初始大小
☆ 默认单位为 MB
1024×
-opaOracle DB 补丁,仅支持 PSU/RU 补丁
☆ 填写补丁号即可,例如补丁 p33803476_190000_Linux-x86-64.zip,只需要设置 -opa 33803476 即可
×
-jpaOracle JVM 补丁,仅支持 PSU/RU 补丁
☆ 填写补丁号即可,例如补丁 p33808367_190000_Linux-x86-64.zip,只需要设置 -jpa 33808367 即可
×
-m仅配置操作系统
☆ 一般用于需要图形化安装时,一键配置操作系统,一般与 -gui 参数配置使用
N×
-ud安装至数据库软件完成
☆ 顾名思义,只安装至 Oracle 软件,不创建数据库,一般可用于 DG,恢复演练等场景
N×
-gui是否安装图形化界面N×
-opd安装后是否优化数据库
☆ 包括配置数据库开机自启,定时备份脚本,glogin 配置,大页配置,参数优化配置
N×

RAC 参数

RAC 数据库支持 2 个节点的安装。

参数缩写参数用途参数默认值是否必填
-iso是否需要配置本地 YUM 镜像源(rac 2 个节点均需提前挂载 ISO)
☆ 如需使用网络 YUM 源或云主机自带 YUM 源,请配置为 -iso N 即可
Y×
-lf公网 IP 网卡名称(需自行配置网络)
☆ 主机 IP 地址需要自行配置,通过网卡名称自动识别本机 IP 地址
-pfrac 心跳IP 网卡名称(需自行配置网络)
☆ 主机 IP 地址需要自行配置
☆ 两个节点IP网卡名称需要对应并保持一致
☆ 最多支持 2 组心跳,以逗号隔开:-pf eth0,eth1
-nrac 2 个节点主机名的前缀
☆ 如果不配置 -hn 参数,该参数可不配置(默认 2 个节点主机名为 orcl01/orcl02)
☆ 如果不配置 -hn 参数,该参数配置为 -n lucifer(默认 2 个节点主机名为 lucifer01/lucifer02)
☆ 如果配置 -hn 参数,该参数仅用于配置集群名称和 scan 名称
☆ 如果同时配置 -hn,-cn,-sn 参数,该参数无效
orcl
-hnrac 所有节点的主机名
☆最多支持 3 个节点,以逗号隔开:-hn orcl01,orcl02
☆参数值必须要严格按照节点顺序以逗号隔开
☆ 优先级高于 -n 参数
orcl01×
-rirac 所有节点 IP 地址(需自行配置网络)
☆ 主机 IP 地址需要自行配置
☆最多支持 3 个节点,以逗号隔开:-ri 10.211.55.100,10.211.55.101
☆参数值必须要严格按照节点顺序以逗号隔开
-virac 所有节点 Virtual IP 地址(需提前规划好,避免 IP 冲突)
☆ 主机 IP 地址需要自行配置
☆最多支持 3 个节点,以逗号隔开:-vi 10.211.55.102,10.211.55.103
☆参数值必须要严格按照节点顺序以逗号隔开
-sirac scan IP 地址(需提前规划好,避免 IP 冲突)
☆ 如需配置多组 scan ip,必须要配合 DNS 参数 -dns,-dnsn,-dnsi 使用,否则不支持
☆ 最多支持 3 组 scan ip,以逗号隔开:-si 10.211.55.105,10.211.55.106,10.211.55.107
-d安装 Grid/Oracle 软件根目录/u01×
-rp系统 root 用户密码
☆ rac 2 个节点 root 用户密码必须保持一致
-gp系统 grid 用户密码oracle×
-op系统 oracle 用户密码oracle×
-cnrac 集群名称
☆ 优先级高于 -n 参数
☆ 集群名称不可超过 15 位,否则安装失败
☆ 如不配置该参数和 -n 参数,默认为 orcl-cluster
☆ 如不配置该参数,配置 -n lucifer,默认为 lucifer-cluster,此时 -n 参数主机名前缀不可超过 7 位,否则安装失败
☆ 如配置该参数,则不受 -n 参数限制
主机名前缀加上 -cluster×
-snrac scan 名称
☆ 优先级高于 -n 参数
☆如不配置该参数和 -n 参数,默认为 orcl-scan
☆ 如不配置该参数,配置 -n lucifer,默认为 lucifer-scan
☆ 如配置该参数,则不受 -n 参数限制
主机名前缀加上 -scan×
-adc是否配置 asm 磁盘(多路径+udev)
☆ 默认脚本配置
☆ 如不需要脚本配置,则传参 -adc N,此时就需要在执行脚本前提前配置好 asm 磁盘,对应的 -od,-dd,-ad 参数传入配置好的 asm 磁盘路径,例如:-od /dev/asm_ocr_1,/dev/asm_ocr_2,/dev/asm_ocr_3,-dd /dev/asm_data_1
Yx
-mp是否需要配置多路径
☆本脚本强制配置 udev
☆默认脚本配置 multipath 多路径,如需人工配置多路径,则配置该参数 -mp N
Y×
-am配置 asm 磁盘的方式
☆ 有 udevasmlib 选项
udevx
-odOCR/Voting 磁盘设备原始名称
☆支持多块磁盘(无上限),以逗号隔开:-od /dev/sda,/dev/sdb,/dev/sdc
-ddDATA 磁盘设备原始名称
☆支持多块磁盘(无上限),以逗号隔开:-od /dev/sda,/dev/sdb,/dev/sdc
-adARCH 磁盘设备原始名称
☆支持多块磁盘(无上限),以逗号隔开:-od /dev/sda,/dev/sdb,/dev/sdc
×
-onOCR/Voting 磁盘组名称OCR×
-dnDATA 磁盘组名称DATA×
-an归档磁盘组名称ARCH×
-orOCR/Voting 磁盘组冗余模式EXTERNAL×
-drDATA 磁盘组冗余模式EXTERNAL×
-arARCH 磁盘组冗余模式EXTERNAL×
-o数据库名称
☆ 数据库名称(db_name)
☆ 以默认 orcl 为例,实例名称(instance_name)和服务名称(service_names)自行拆分为 orcl1/orcl2
orcl×
-dp数据库 sys/system 用户密码oracle×
-ds数据库字符集AL32UTF8×
-ns国家字符集UTF8×
-er是否开启归档模式true×
-pdbpdb名称
☆ 11GR2 以上版本一但配置该参数,则默认数据库安装为 CDB 架构
pdb01×
-redo在线重做日志初始大小
☆ 默认单位为 MB
1024×
-tsi时间服务器 IP 地址
☆ 用于配置 rac 2 个节点间的时间同步,通过定时任务的方式执行
×
-dns是否配置 DNS
☆ 一般与 -si 参数配合使用,如果 scan ip 超过 1 个,则必须配置 DNS 参数
N×
-dnsnDNS 服务器名称×
-dnsiDNS 服务器 IP 地址×
-gpaGrid 补丁,仅支持 PSU/RU 补丁
☆ 填写补丁号即可,例如补丁 p33803476_190000_Linux-x86-64.zip,只需要设置 -opa 33803476 即可
×
-jpaOracle JVM 补丁,仅支持 PSU/RU 补丁
☆ 填写补丁号即可,例如补丁 p33808367_190000_Linux-x86-64.zip,只需要设置 -jpa 33808367 即可
×
-m仅配置操作系统
☆ 一般用于需要图形化安装时,一键配置操作系统,一般与 -gui 参数配置使用
N×
-ug安装至 Gird 软件完成
☆ 顾名思义,只安装至 Grid 软件,一般可用于集群测试,DBUA 升级等场景
N×
-ud安装至数据库软件完成
☆ 顾名思义,只安装至 Oracle 软件,不创建数据库,一般可用于 DG,恢复演练等场景
N×
-gui是否安装图形化界面N×
-opd安装后是否优化数据库
☆ 包括配置数据库开机自启,定时备份脚本,glogin 配置,大页配置,参数优化配置
N×
-vbox用于修复在 virtualbox 虚拟机安装 rac bugN×

脚本使用

使用脚本前:

  • 安装好干净的 Linux 操作系统(redhat/oracle linux/centos)
  • 配置好网络(规划 IP 地址)
  • 配置好存储(规划存储)
  • 挂载 ISO 镜像源

以下提供常用安装命令,可根据实际情况进行增删。

Single 安装

最简化测试环境部署

仅需上传 Oracle 基础安装包即可:

./OracleShellInstall -lf eth0 `# local ip ifname`

生产环境安装部署

需要上传 Oracle 基础安装包和补丁包(Opatch以及PSU/RU):

./OracleShellInstall -lf enp0s5 `# local ip ifname`\
-n lucifer `# hostname`\
-op oracle `# oracle password`\
-d /u01 `# software base dir`\
-ord /oradata `# data dir`\
-o oradb `# dbname`\
-dp oracle `# sys/system password`\
-ds AL32UTF8 `# database character`\
-ns UTF8 `# national character`\
-redo 1024 `# redo size`\
-opa 33806152 `# oracle PSU/RU`\
-jpa 33808367 `# OJVM PSU/RU`\
-opd Y `# optimize db`

RAC 安装

📢 注意:最多支持 3 节点安装。

最简化测试环境部署:

./OracleShellInstall -n lucifer `# hostname prefix`\
-rp oracle `# root password`\
-lf eth0 `# local ip ifname`\
-pf eth1 `# rac private ip ifname`\
-ri 10.211.55.100,10.211.55.101 `# rac public ip`\
-vi 10.211.55.102,10.211.55.103 `# rac virtual ip`\
-si 10.211.55.105 `# rac scan ip`\
-od /dev/sdb `# rac ocr asm disk`\
-dd /dev/sdc `# rac data asm disk`

生产环境安装部署

需要上传 Oracle 基础安装包和补丁包(Opatch以及PSU/RU):

2 节点安装
./OracleShellInstall -n luciferdb `# hostname prefix`\
-hn luciferdb03,luciferdb04 `# rac node hostname`\
-cn luciferdb-cls `# cluster_name`\
-rp oracle `# root password`\
-gp oracle `# grid password`\
-op oracle `# oracle password`\
-lf team0 `# local ip ifname`\
-pf eth3,eth4 `# rac private ip ifname`\
-ri 10.211.55.100,10.211.55.101 `# rac node public ip`\
-vi 10.211.55.102,10.211.55.103 `# rac virtual ip`\
-si 10.211.55.104,10.211.55.105,10.211.55.106 `# rac scan ip`\
-od /dev/sdg `# rac ocr asm disk`\
-dd /dev/sdc,/dev/sdd,/dev/sde,/dev/sdf `# rac data asm disk`\
-o oradb `# dbname`\
-ds AL32UTF8 `# database character`\
-ns AL16UTF16 `# national character`\
-dp oracle `# sys/system password`\
-tsi 10.211.55.150 `# timeserver ip`\
-dns Y -dnsn orcl.lucifer.com -dnsi 10.211.55.200 `# DNS INFO`\
-gpa 32226491 `# grid PSU/RU`\
-jpa 33808367 `# OJVM PSU/RU`\
-opd Y `# optimize db`
3 节点安装
./OracleShellInstall -n luciferdb `# hostname prefix`\
-hn luciferdb03,luciferdb04,luciferdb05 `# rac node hostname`\
-cn luciferdb-cls `# cluster_name`\
-rp password `# root password`\
-gp oracle `# grid password`\
-op oracle `# oracle password`\
-lf eth0 `# local ip ifname`\
-pf eth1 `# rac private ip ifname`\
-ri 193.1.3.1,193.1.3.2,193.1.3.3 `# rac node public ip`\
-vi 193.1.3.4,193.1.3.5,193.1.3.6 `# rac virtual ip`\
-si 193.1.3.10 `# rac scan ip`\
-od /dev/sdb `# rac ocr asm disk`\
-dd /dev/sdc `# rac data asm disk`\
-o oradb `# dbname`\
-ds AL32UTF8 `# database character`\
-ns AL16UTF16 `# national character`\
-dp Oracle123Pwd `# sys/system password`\
-gpa 31718723 `# grid PSU/RU`\
-jpa 31668908 `# OJVM PSU/RU`\
-opd Y `# optimize db`

使用许可

MIT © Lucifer三思而后行

  • 86
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 37
    评论
### 回答1: 安装 Oracle 数据库需要先准备一些软件和配置,并且会涉及到一些系统设置,因此不能简单地写一个脚本来一键安装。下面是一些基本步骤,但是请注意,这只是一个概述,安装过程可能比这更复杂。 1. 准备安装所需的软件和配置,包括 Oracle 数据库软件安装包、Oracle 的环境变量配置文件、安装所需的系统库文件等。 2. 在系统上创建一个Oracle用户和组,并设置相应的权限. 3. 配置系统内核参数,使其满足 Oracle 数据库安装需求 4. 安装 Oracle 数据库软件,并进行初始化配置 5. 创建数据库并进行相应的配置。 6. 启动数据库并进行测试 7. 根据实际情况添加相应的脚本,例如开机自启动,设置监控等 请注意,以上步骤只是大致的描述,还需要根据实际环境进行调整,并且实际安装过程中还需要考虑很多细节问题。 ### 回答2: 编写一个shell脚本一键安装Oracle数据库的过程是比较复杂的,下面是一个简单的示例: ```bash #!/bin/bash # 检查是否为root用户 if [[ $EUID -ne 0 ]]; then echo "请使用root用户执行此脚本。" exit 1 fi # 设定Oracle安装相关参数 ORACLE_VERSION="XX.X.XX" ORACLE_EDITION="enterprise" ORACLE_INSTALL_DIR="/opt/oracle" ORACLE_SID="ORCL" # 下载Oracle安装文件 wget -P /tmp "http://www.oracle.com/xxx/xxx/xxx" # 解压缩安装文件 unzip /tmp/oracle_installer.zip -d /tmp # 运行Oracle自动安装脚本 /tmp/oracle_installer/install.sh -s RESPONSE_FILE=/tmp/oracle_installer/response_file.rsp # 运行Oracle配置助手 $ORACLE_INSTALL_DIR/oraInventory/orainstRoot.sh $ORACLE_INSTALL_DIR/product/$ORACLE_VERSION/dbhome_1/root.sh # 配置Oracle环境变量 echo "export ORACLE_HOME=$ORACLE_INSTALL_DIR/product/$ORACLE_VERSION/dbhome_1" >> /etc/profile echo "export ORACLE_SID=$ORACLE_SID" >> /etc/profile echo "export PATH=$ORACLE_HOME/bin:$PATH" >> /etc/profile source /etc/profile echo "Oracle数据库安装完成。" ``` 请注意,以上脚本只是一个示例,实际使用时需要根据Oracle安装文件的不同版本进行相应的修改。此外,需要提供一个包含Oracle安装参数的响应文件(response_file.rsp),其中包括数据库文件的位置、用户密码和其他安装选项。 ### 回答3: 编写一个Shell脚本实现一键安装Oracle数据库的步骤如下: 1. 首先,脚本需要检测操作系统的类型和版本,以确定所需的Oracle数据库安装程序和补丁; 2. 下载并解压数据库安装程序和补丁文件,可以使用wget或curl命令从Oracle官方网站获取; 3. 创建一个安装响应文件(Response File),其中包含数据库安装的配置选项; 4. 修改响应文件中的参数,根据实际需求配置数据库安装路径、端口、数据库名等信息; 5. 执行安装程序并使用安装响应文件作为配置的输入参数; 6. 等待安装程序完成数据库安装和配置; 7. 配置Oracle环境变量,将ORACLE_HOME、PATH和LD_LIBRARY_PATH添加到系统环境变量中; 8. 启动Oracle数据库实例,并检查是否成功启动; 9. 验证数据库的连接,可以使用sqlplus命令连接数据库并执行一些简单的查询语句; 10. 如果一切正常,则输出安装成功的提示信息; 11. 清理临时文件和安装程序。 编写这样一个一键安装脚本需要考虑到安装过程中的错误处理和异常情况处理,例如空间不足、权限不足、依赖软件未安装等。在脚本中可以加入合理的判断和处理逻辑,保证安装过程的稳定性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucifer三思而后行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值