这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战
🌲 前言
写在最前面,如果是新手不会安装Oracle数据库,可以直接下载我打包好的 box 直接安装,打开即可使用Oracle数据库!!!
⭐️ Box 下载方式:luciferliu/oracle11g ⭐️
哈哈 😄,我又来偷懒了,之前写了一版 ❤️ Oracle一键安装脚本 ❤️,大大减少了平时用于安装数据库花费的时间。但是,安装Linux系统还是需要耗费时间,而且是重复的点击动作,太不自动化了。
于是,我就开始在网上冲浪 🏄🏻,发现了ansible,cobbler,vagrant等等可用于脚本自动安装Linux主机的方法。毅然决然,我选择了入门最快,最简单的 Vagrant。
就这样,我开始折腾了。先是成功使用Vagrant在电脑上安装了Linux系统,然后融合之前的Oracle一键安装脚本,最终成功 🎉 实现了 Vagrantg 一键安装Oracle数据库,彻底释放双手 🙌🏻!
🪐 Vagrant使用方式可参考:
🌏 Oracle一键安装脚本使用可参考:
好勒,哔哔半天了,正文开始~ ヾ(◍°∇°◍)ノ゙ 💻 本文需要用到的软件:
- Vagrant
- VirtualBox
注意:📢 请提前安装好~
一、⭐️ Vagrant安装Linux系统 ⭐️
第一步,当然是安装Linux系统啊,没有安装Vagrant的朋友,去 下载页面 下载安装一下吧,很简单的。不会玩的,往上翻一点看教程,我就默认大家已经安装完啦👍🏻~
1、安装目录
首先需要创建一个目录,用来放置 Vagrantfile 和安装介质:
mkdir /Volumes/DBA/vagrant/centos79 -p
Windows系统的朋友👬🏻,我就不说怎么创建目录啦~
2、下载 Vagrant box
建议直接去 Vagrant box官方下载页面 搜索下载,本文使用 Centos7.9版本。 当然是选下载量最高,更新比较靠近的哇 🤩~
点击进去,我们选择 virtualbox
版本进行下载: 注意:这里有很多版本支持,如果使用VMware或者Parallels也可以的哈~
3、Vagrant添加Box
下载完之后,我这边为了便于分辨,将文件改名为 centos7.9
: 使用 vagrant box add
命令添加下载好的box:
vagrant box add /Users/lpc/Downloads/centos7.9 --name centos79
vagrant box list
注意:/Users/lpc/Downloads/centos7.9 为 box 存放位置,–name centos79 是指创建一个逻辑名称。 已成功添加 box,接下来需要配置 Vagrantfile 文件和上传安装介质。
4、配置Vagrantfile文件
这里我就不讲解Vagrantfile如何配置,具体可以看官方文档,配置如下:
cd /Volumes/DBA/vagrant/centos79
cat <<EOF>Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "centos79" config.vm.provision :shell, path: "/Volumes/DBA/vagrant/centos79/scripts/ora_preinstall.sh" config.vm.synced_folder "/Volumes/DBA/vagrant/centos79", "/vagrant" config.vm.network :forwarded_port, guest: 1521, host: 1521 config.vm.network :forwarded_port, guest: 22, host: 22 config.vm.network "public_network", ip: "192.168.1.120" config.vm.provider "virtualbox" do |vb| vb.name = "orcl1" vb.memory = 4196 vb.cpus = 2 end end EOF
这里简单解释一下配置文件中的几个参数:
- config.vm.box = “centos79” 指定上文添加的box逻辑名称,用于安装Linux系统
- config.vm.provision :shell, path: “/Volumes/DBA/vagrant/centos79/scripts/ora_preinstall.sh” 配置用于安装完Linux系统后自动执行shell脚本
- config.vm.synced_folder “/Volumes/DBA/vagrant/centos79”, “/vagrant” 映射本地目录到Linux主机目录
- config.vm.network :forwarded_port, guest: 1521, host: 1521 映射Linux主机1521端口到本机端口1521
- config.vm.network :forwarded_port, guest: 22, host: 22 映射Linux主机22端口到本机端口22
- config.vm.network “public_network”, ip: “192.168.1.120” 配置主机网络为192.168.1.120,建议与本机做桥接,可用于上网
- config.vm.provider “virtualbox” do |vb| 配置虚拟机程序为virtualbox,如果是paralles则修改为parallels即可
- vb.name = “orcl” 配置主机名
- vb.memory = 4196 配置主机内存
- vb.cpus = 2 配置主机CPU
5、准备安装介质
在开始创建的目录下,创建 soft 文件夹,并上传需要的安装介质: 这里说一下以下文件的作用:
- CentOS-7.9-x86_64-Everything-2009.iso Centos iso镜像文件,用于安装本地YUM源,如果能联网可以不需要
- OracleShellInstall.sh Oracle一键安装脚本,可在Github下载,持续更新🔥,欢迎👏🏻 Star
- p13390677_112040_Linux-x86-64_1of7.zip
- p13390677_112040_Linux-x86-64_2of7.zip Oracle 11GR2 Database 安装包
- p31537677_112040_Linux-x86-64.zip Oracle 11GR2 Database PSU补丁包
- p6880880_112000_Linux-x86-64.zip Oracle OPatch补丁包
- rlwrap-0.42.tar.gz 上下文切换软件,可选安装,非必须
这里安装介质就准备好啦,放在这里就行了 😄 ~
6、编写Vagrantfile中定义的Shell脚本
为了实现Linux安装成功后继续自动安装Oracle数据库,因此需要提前准备shell脚本用于Linux系统安装后调用执行。
mkdir -p /Volumes/DBA/vagrant/centos79/scripts
cd /Volumes/DBA/vagrant/centos79/scripts
cat <<EOF>ora_preinstall.sh #change root password echo oracle | passwd --stdin root #change sshd_config sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config systemctl reload sshd.service #mkdir software dir mkdir /soft #cp software to softdir cp /vagrant/soft/* /soft #mount iso to mnt dir mount -o loop /soft/*iso /mnt #chmod shell script chmod +x /soft/OracleShellInstall.sh #install oracle database cd /soft ./OracleShellInstall.sh -i 192.168.1.120 -opa 31537677 -installmode single -dbv 11g EOF
这里稍微解释一下哈,脚本中的步骤:
- a.修改root用户密码
- b.配置ssh服务允许输入密码连接
- c.Linux主机中创建soft目录用于存放安装介质
- d.复制映射目录/vagrant/soft下的安装介质到/soft目录下
- e.挂载centos7.9的iso镜像文件
- f.授权Oracle一键安装脚本可执行权限
- e.进入/soft目录,根据提前配置好的一键安装参数,执行安装Oracle数据库
至此,所有的前置配置都已完成,下面就是见证奇迹的时刻啦 ᕕ( ᐛ )ᕗ ~
二、❤️ Vagrant启动一键安装Oracle ❤️
1、😏 很简单,一行短短的命令
vagrant up
为了直观一点,来个动图看一下吧: 开始拷贝文件有些慢,不是Gif结束了,等一会儿就继续了;
由于Gif大小限制,只展示到安装PSU补丁就停止,后续没有什么好看的了,就是 顺利建库成功 啦! 这里就已经安装成功了。现在我们连进去查看数据库试试: 可以看到数据库创建成功 🎉,PSU补丁也已经安装成功 ✌🏻: 就这,你以为本文就结束了❓ 当然不是,还有干货分享 🔥 !!!
三、❄️ Vagrant box打包分享 ❄️
Vagrant支持将box打包并且上传到官方站点进行分享,也可以用于备份,方便以后直接打开使用。
接下来,就看看如何打包Vagrant box吧 😄!
1、打包前准备
删除多余的安装介质以减少box大小,取消/mnt镜像挂载
rm -rf /soft
umount /mnt
关闭Oracle数据库和监听
lsnrctl stop
sas
shudown immediate
关闭Linux主机
vagrant halt
vagrant status
2、打包box
通过vagrant package
命令打包box:
sudo vagrant package
注意:如果直接打包box,打包完后的box高达 18G,明显太大了。
使用脚本清理,缩小box大下:
##创建脚本文件
vi /mnt/purge.sh
chmod +x /mnt/purge.sh
##将以下内容写入脚本文件
#!/bin/sh
# Zero free space to aid VM compression
printf "STEP: Zero free space to aid VM compression\n"
dd if=/dev/zero of=/EMPTY bs=1M
rm -f /EMPTY
# Remove Linux headers
printf "STEP: Remove Linux headers\n"
rm -rf /usr/src/linux-headers*
# Remove Unused locales (edit for your needs, this keeps only en* and pt_BR)
printf "STEP: Remove Unused locales (edit for your needs, this keeps only en* and pt_BR) find\n"
find /usr/share/locale/{af,am,ar,as,ast,az,bal,be,bg,bn,bn_IN,br,bs,byn,ca,cr,cs,csb,cy,da,de,de_AT,dz,el,en_AU,en_CA,eo,es,et,et_EE,eu,fa,fi,fo,fr,fur,ga,gez,gl,gu,haw,he,hi,hr,hu,hy,id,is,it,ja,ka,kk,km,kn,ko,kok,ku,ky,lg,lt,lv,mg,mi,mk,ml,mn,mr,ms,mt,nb,ne,nl,nn,no,nso,oc,or,pa,pl,ps,qu,ro,ru,rw,si,sk,sl,so,sq,sr,sr*latin,sv,sw,ta,te,th,ti,tig,tk,tl,tr,tt,ur,urd,ve,vi,wa,wal,wo,xh,zh,zh_HK,zh_CN,zh_TW,zu} -type d -delete
# Remove bash history
printf "STEP: Remove bash history\n"
unset HISTFILE
rm -f /root/.bash_history
# Cleanup log files
printf "STEP: Cleanup log files\n"
find /var/log -type f | while read f; do echo -ne '' > $f; done;
# Whiteout root
printf "STEP: Whiteout root\n"
count=`df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count;
rm /tmp/whitespace;
# Whiteout /boot
printf "STEP: Whiteout /boot\n"
count=`df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}'`;
count=$((count -= 1))
dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count;
rm /boot/whitespace;
# Whiteout swap
printf "STEP: Whiteout swap\n"
swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'`
swapoff $swappart;
dd if=/dev/zero of=$swappart;
mkswap $swappart;
swapon $swappart;
清理完成后,重新打包 box。查看大小:
sudo vagrant package --output=centos79-oracle11g
刺不刺激,从 18G 变成 3.9G 了,爽呀,美滋滋 😄~
为了确保可以使用,我们重新添加测试一下:
mkdir -p /Volumes/DBA/vagrant/oracle11g
vagrant box add /Volumes/DBA/vagrant/centos79/centos79-oracle11g --name oracle11g
cd /Volumes/DBA/vagrant/oracle11g
vagrant init oracle11g
vagrant up --provider=virtualbox
vagrant ssh
su - oracle
经过测试,数据库可以使用,没毛病!!!
3、上传分享box
需要注册Vagrant账号,我这里已经注册好勒,开始上传!具体上传流程很简单,就不演示了哈 O(∩_∩)O~~ 害,上传也太慢了,先去玩一会儿,等传完我再来 👋🏻 ~
。。。。。。好长时间过去了。。。。。。。 终于上传成功了!!!大家可以去下载使用了~☀️
下载方式:luciferliu/oracle11g
之后应该会出更多版本的数据库 box,包括rac数据库,dataguard,dns服务器,openfiler服务器以及MySQL等等。
⭐️ 慢慢玩,不着急~ ⭐️
写在最后
虽然这种方式不适用于生产环境的安装使用 😒,但是,对于个人测试练习使用,可以说是极其方便了 😄。如果不会使用的朋友,可以直接下载我分享的box,直接 vagrant up
就可以使用啦 🎉~
❤️ 最后,祝大家玩得开心,有问题或者技术交流可以关注我,私聊我~ ❤️
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
今天的文章❤️ Vagrant 一键安装任意系统 ,甚至 Oracle 数据库 !!!☀️ 建议收藏 ᕕ( ᐛ )ᕗ分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15293.html