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

2021-12-30 19:17:59 浏览数 (1)

Shell-InstallOracle

整个项目的完整目录:

代码语言:javascript复制
├── Documents
│   ├── packer box
│   │   ├── Vagrant Box 镜像准备:Packer 打包 Oracle Linux 6.10 系统.md
│   │   ├── Vagrant Box 镜像准备:Packer 打包 Oracle Linux 8.3 系统.md
│   │   ├── Vagrant Box 镜像准备:Packer 打包 Centos 6.10 系统.md
│   │   ├── Vagrant Box 镜像准备:Packer 打包 Centos 7.9 系统.md
│   │   ├── Vagrant Box 镜像准备:Packer 打包 Centos 8.3 系统.md
│   │   └── Vagrant Box 镜像准备:Packer 打包 Oracle Linux 7.9 系统.md
│   ├── rac_db
│   │   ├── 《零基础安装 Oracle 数据库》RAC集群系列 ❶ 简单两步快速安装 Oracle 11GR2 RAC 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》RAC集群系列 ❷ 简单两步快速安装 Oracle 12CR2 RAC 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》RAC集群系列 ❸ 简单两步快速安装 Oracle 18C RAC 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》RAC集群系列 ❹ 简单两步快速安装 Oracle 19C RAC 数据库.md
│   │   └── 《零基础安装 Oracle 数据库》RAC集群系列 ❺ 简单两步快速安装 Oracle 21C RAC 数据库.md
│   ├── single_db
│   │   ├── 《零基础安装 Oracle 数据库》单机系列 ① 一键快速安装 Oracle 11GR2 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》单机系列 ② 一键快速安装 Oracle 12CR2 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》单机系列 ③ 一键快速安装 Oracle 18C 数据库.md
│   │   ├── 《零基础安装 Oracle 数据库》单机系列 ④ 一键快速安装 Oracle 19C 数据库.md
│   │   └── 《零基础安装 Oracle 数据库》单机系列 ⑤ 一键快速安装 Oracle 21C 数据库.md
│   └── singleasm_db
│       ├── 《零基础安装 Oracle 数据库》单机ASM系列 1️⃣ 一键快速安装 Oracle 11GR2 数据库.md
│       ├── 《零基础安装 Oracle 数据库》单机ASM系列 2️⃣ 一键快速安装 Oracle 12CR2 数据库.md
│       ├── 《零基础安装 Oracle 数据库》单机ASM系列 3️⃣ 一键快速安装 Oracle 18C 数据库.md
│       ├── 《零基础安装 Oracle 数据库》单机ASM系列 4️⃣ 一键快速安装 Oracle 19C 数据库.md
│       └── 《零基础安装 Oracle 数据库》单机ASM系列 5️⃣ 一键快速安装 Oracle 21C 数据库.md
├── LICENSE
├── OracleShellInstall.sh
├── ParameterREADME.md
├── README.md
├── rac_db
│   ├── README.md
│   ├── Vagrantfile
│   ├── config
│   │   └── vagrant.yml
│   ├── scripts
│   │   └── setup.sh
│   └── software
│       ├── 11204
│       │   └── software.txt
│       ├── 12201
│       │   └── software.txt
│       ├── 18000
│       │   └── software.txt
│       ├── 19300
│       │   └── software.txt
│       ├── 21300
│       │   └── software.txt
│       ├── OracleShellInstall.sh
│       ├── compat-libstdc  -33-3.2.3-72.el7.x86_64.rpm
│       └── rlwrap-0.42.tar.gz
├── single_db
│   ├── README.md
│   ├── Vagrantfile
│   ├── config
│   │   └── vagrant.yml
│   ├── scripts
│   │   └── setup.sh
│   └── software
│       ├── 11204
│       │   └── software.txt
│       ├── 12201
│       │   └── software.txt
│       ├── 18000
│       │   └── software.txt
│       ├── 19300
│       │   └── software.txt
│       ├── 21300
│       │   └── software.txt
│       ├── OracleShellInstall.sh
│       ├── compat-libstdc  -33-3.2.3-72.el7.x86_64.rpm
│       └── rlwrap-0.42.tar.gz
└── singleasm_db
    ├── README.md
    ├── Vagrantfile
    ├── config
    │   └── vagrant.yml
    ├── scripts
    │   └── setup.sh
    └── software
        ├── 11204
        │   └── software.txt
        ├── 12201
        │   └── software.txt
        ├── 18000
        │   └── software.txt
        ├── 19300
        │   └── software.txt
        ├── 21300
        │   └── software.txt
        ├── OracleShellInstall.sh
        ├── compat-libstdc  -33-3.2.3-72.el7.x86_64.rpm
        └── rlwrap-0.42.tar.gz

32 directories, 61 files

背景

为什么要写这个脚本呢?

  • 首先,安装 Oracle 数据库是一件极为复杂且枯燥的任务;
  • 常规的操作方式往往是基于文档,博客,视频等教程方式,按部就班的执行安装步骤,耗时费力,且极为容易因为粗心导致各种各样的问题产生;
  • 于是,我想到可以编写一个基于标准流程的 Shell 脚本来进行安装,因为只要代码没有错误,机器执行是不会出错的;
  • 经过大量时间的代码编写和运行测试,目前已可以用于生产环境安装部署。

项目支持哪些平台安装?

  • 本项目仅支持 「 Linux64-6/7/8 」 平台:Centos、Redhat、OracleLinux
  • 支持大部分主流 「 ORACLE 」 版本: 11GR2、12CR2、18C、19C、21C
  • 支持数据库安装模式:单机、单机 ASM、RAC 集群。

使用说明

本脚本使用方式分为 新手纯享版本高手进阶版本 ,平时学习测试建议使用新手纯享版本即可!

新手纯享版本

新手纯享版本基本不需要基础,免安装操作系统,一键拥有 Oracle 数据库!但是必须使用 [vagrant][virtualbox],请确保你本地已经安装。

  • 第一步,上传 Oracle 安装包:

进入项目目录 InstallOracleshell/single_db/software 下,可以看到有不同 Oracle 版本目录,其中有一个 software.txt 文件,内容为你需要上传的 Oracle 安装包。

代码语言:javascript复制
├── 11204
│   ├── p13390677_112040_Linux-x86-64_1of7.zip
│   └── p13390677_112040_Linux-x86-64_2of7.zip
├── 12201
│   └── LINUX.X64_122010_db_home.zip
├── 18000
│   └── LINUX.X64_180000_db_home.zip
├── 19300
│   └── LINUX.X64_193000_db_home.zip
├── 21300
│   └── LINUX.X64_213000_db_home.zip

确认你需要安装的 Oracle 版本,拷贝 Oracle 安装包到对应目录下,确保安装包名称与以下名称相同,否则安装失败!

  • 第二步,编辑 vagrant.yml 配置文件:

进入项目目录 InstallOracleshell/single_db/config 下,打开 vagrant.yml 文件:

代码语言:javascript复制
box: luciferliu/centos7.9
vm_name: orcl
hostname: orcl
mem_size: 2048
cpus: 2
public_ip: 192.168.56.100
non_rotational: 'on'
db_version: 11
db_patch:
oracle_password: oracle
oracle_sid: orcl
install_base: /u01/app
characterset: AL32UTF8
cdb: true
pdb: pdb01

参数介绍:

代码语言:javascript复制
box             	: Linux 主机版本,19c 和 21c 版本不支持 linux 6 版本!

可选值:
- luciferliu/centos6.10
- luciferliu/centos7.9
- luciferliu/centos8.3
- luciferliu/oraclelinux6.10
- luciferliu/oraclelinux7.9
- luciferliu/oraclelinux8.3

vm_name         	: 虚拟机名称,随意修改,默认即可。
hostname        	: 主机名称,随意修改,默认即可。
mem_size        	: 内存大小,单位是 `MiB`,根据需要修改,正常默认即可。
cpus            	: cpu 个数,根据需要修改,正常默认即可。
public_ip       	: IP 地址,根据网卡定义修改,正常默认即可。
non_rotational    	: 不用修改值,默认即可。
db_version      	: oracle 数据库版本,根据实际情况填写!
db_patch        	: PSU/RU 补丁号,根据需要填写,不打补丁可以不填。
oracle_password   	: oracle 用户密码,默认即可。
oracle_sid      	: oracle 数据库实例名,默认即可。
install_base      	: oracle 安装根目录,默认即可。
characterset      	: 数据库字符集,根据实际需要填写,正常默认即可。
cdb             	: CDB 模式需要填写 true。
pdb             	: PDB 名称,开启 CDB 模式后才可生效。

根据实际情况修改脚本,默认不修改将安装 Oracle 11GR2 数据库。

  • 第三步,执行 vagrant up 安装:

回到 InstallOracleshell/single_db 目录下,执行 vagrant up 开始安装。

注意: InstallOracleshell/single_db/software 目录中的 OracleShellInstall.sh 脚本需要保持最新,最新版本脚本在上层目录 InstallOracleshell 下。

  • 第四步,等待自动安装成功后,连接主机:

这里有三种方式来连接主机:

1、使用 ssh root@192.168.56.100 来连接,root 用户密码是 oracle ,使用 Xshell 等连接工具也可连接;

2、使用 vagrant ssh 来连接,注意要在 InstallOracleshell/single_db 目录下执行,连接进去是 vagrant 用户,使用 su - oracle 来切换即可。

3、使用 Virtualbox 虚拟机直接打开访问。

  • 第五步,关闭主机:

1、在主机中,执行 init 0 等关机命令关闭主机。

2、使用 Virtualbox 虚拟机右键关闭。

3、进入 InstallOracleshell/single_db 目录下执行 vagrant halt 关闭。

  • 最后

用完了,不需要使用了怎么办?

1、直接打开 Virtualbox 虚拟机,右键删除。

2、进入 InstallOracleshell/single_db 目录下执行 vagrant destory 销毁它。

高手进阶版本

正常来说,平时学习测试使用 新手纯享版本 完全够了,但是如果你想使用在 生产环境 ,那你必须得学会 高手进阶版本 !真正提高生产力~

既然看到这的说明都是高手,那就长话短说,进阶版本只需要这一个脚本 OracleShellInstall.sh 就够了!

脚本有了,具体如何使用?

前提: 提前安装 Linux 系统,上传安装介质,挂载 ISO 镜像。

单机

  • 第一步, 手动安装 Linux 系统,配置网络,挂载 ISO 镜像;
  • 第二步, 创建 /soft 目录,上传安装介质;
  • 第三步, 编辑脚本安装命令,填写关键信息:

最简安装 脚本示例:

代码语言:javascript复制
./OracleShellInstall.sh -i 192.168.56.155

单机自定义 脚本命令示例:

代码语言:javascript复制
./OracleShellInstall.sh -i 192.168.56.155 `#Public ip`
-n topdbdev `# hostname`
-o topstd `# oraclesid`
-c TRUE `# ISCDB`
-pb pdb01 `# PDBNAME`
-rs oracle `# root password`
-op oracle `# oracle password`
-gp oracle `# grid password`
-b /u01/app `# install basedir`
-s AL32UTF8 `# characterset`
-ns UTF8 `# national characterset`
  • 第四步, root 用户下进入 /soft 目录下执行脚本安装命令;
  • 第五步, 等待安装过程中,可以进入 /soft 目录中查看安装部署日志,安装结束后重启主机;
  • 第六步, 检查数据库运行情况。

脚本中所有操作均为静默连续执行,敲下命令之后无需任何操作,等待安装成功即可。

单机ASM

单机ASM 脚本命令示例:

代码语言:javascript复制
./OracleShellInstall.sh -i 192.168.56.155 `#Public ip`
-n topdbdev `# hostname`
-o topstd `# oraclesid`
-rs oracle `# root password`
-op oracle `# oracle password`
-gp oracle `# grid password`
-b /u01/app `# install basedir`
-s AL32UTF8 `# characterset`
-ns UTF8 `# national characterset`
-dd /dev/sde `# asm data disk`
-dn DATA `# asm data diskgroupname`
-dr EXTERNAL `# asm data redundancy`
-gpa 31718723 `# Grid PSU NUMBER`

RAC

这里我简单说下在生产环境使用脚本部署 RAC 的大概步骤:

  • 第一步, 手动安装两台 Linux 主机;
  • 第二步, 分别配置网络,挂载 iso 镜像源,挂载共享存储;
  • 第三步, 节点一创建 /soft 目录并上传安装介质;
  • 第四步, 编辑脚本安装命令,填写两台主机的关键信息;

RAC 脚本命令示例:

代码语言:javascript复制
./OracleShellInstall.sh -i 192.168.56.151 `# node1 Public ip`
-n topdb `# rac hostname`
-o TOPDB `# oraclesid`
-rs oracle `# root password`
-op oracle `# oracle password`
-gp oracle `# grid password`
-b /u01/app `# install basedir`
-s AL32UTF8 `# characterset`
-ns UTF8 `# national characterset`
-pb1 192.168.56.151 -pb2 192.168.56.153 `# node public ip`
-vi1 192.168.56.152 -vi2 192.168.56.154 `# node virtual ip`
-pi1 10.10.10.11 -pi2 10.10.10.12 `# node private ip`
-pi3 10.10.11.11 -pi4 10.10.11.12 `# node private1 ip`
-si 192.168.56.150 `# scan ip`
-od /dev/sdb,/dev/sdc,/dev/sdd `# asm ocr disk`
-dd /dev/sde `# asm data disk`
-on OCR `# asm ocr diskgroupname`
-dn DATA `# asm data diskgroupname`
-or NORMAL `# asm ocr redundancy`
-dr EXTERNAL `# asm data redundancy`
-puf team0 -prf em3 -prf1 em4 `# network fcname`
-tsi 192.168.56.252 `# timeserver`
-gpa 31718723 `# Grid PSU NUMBER`
  • 第五步, 节点一 root 用户下进入 /soft 目录下执行脚本安装命令;
  • 第六步, 等待安装过程中,可以进入 /soft 目录中查看安装部署日志,安装结束后重启两台主机;
  • 第七步, 检查两台主机数据库运行情况。

脚本中所有操作均为静默连续执行,敲下命令之后无需任何操作,等待安装成功即可!

使用许可

MIT © Lucifer三思而后行

0 人点赞