Oracle在Linux环境下的自动化部署项目实战_shell 自动化管理oracle-程序员宅基地

oracle在Linux环境下的自动部署

思维导图如下:
在这里插入图片描述

一、安装说明

本文档将完成 Linux 下面的 Oracle 数据库的安装。通过本次安装将发现 Linux 系统发生如下变化:

  • 安装了可以使用的 Oracle 数据库;
  • 配置了可以使用的组和用户;
  • 配置了相关权限的环境变量;
二、安装前的准备

示例是基于虚拟机下的 Linux 系统的安装工作,使用的本地操作系统是[Windows 10],使用的虚拟机是[VMware-workstation-12.exe]使用的 Linux 企业版是红帽和Ubantu,使用的 Oracle 版本是[Oracle 10g]。安装前请确认如下事宜:

  • 当前 Linxu 安装了[开发工具]工具包;
  • 当前 Linux 系统已经配置好了网络设置;
  • 已经准备好了 Oracle 安装文件;
  • 有足够的硬盘空间用于安装; 有足够的物理
  • 和分配内存便于安装;

下面提供的是一组需要的资源参考:

  • 至少 1024 MB 物理内存
  • 1024-2048 需 1.5 倍的交互空间
  • 2048-8192 需 1 倍的交互空间
  • 8192- 需 0.75 倍的交互空间
  • 至少 400 MB /tmp 临时目录空间
  • oracle 软件需要 1.5 GB 到3.5 GB 磁盘空间
  • 默认数据库需要 1.2 GB
三、进行安装前的配置

1、确定当前登录的是超级管理员 root 用户,如下内容都是在 root 下面进行的操作。
依 次执行命令:
[groupadd dba]----------------------------------------新建管理组
[groupadd oinstall]------------------------------------新建安装组
[useradd -m tester -g oinstall -G dba]----------新建用户,用户录属于 dba 和 oinstall [passwd tester]------------------------------------------修改用户密码
具体操作如下图所示: 在这里插入图片描述
2、继续利用 root 用户建立安装目录并分配权限。分别执行如下命令
[mkdir -p /oracle/product/10.2.0/db_1]-----------------------------------新建 oracle 安装目录 [chown -R tester.oinstall /oracle]---------修改 oracle 安装目录属主和属组
[chmod 755 -R /oracle]--------------------修改 oracle 安装目录操作权限
如下图所示:
在这里插入图片描述
3、注销当前 root 用户(建议注销,不用 su 命令置换),再用刚才新建的 tester 用户登录系统。进入当前用户的根目录执行命令[vi ./.bash_profile],打开用户环境变量列表,插入如下内容:

ORACLE_BASE=/oracle 
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
ORACLE_SID=orcl 
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_BASE  
export ORACLE_HOME  
export ORACLE_SID  
export PATH  
export LD_LIBRARY_PATH   

在这里插入图片描述
4、进入文件后,单击[i],开始修改,修改完成后保存退出(ESC—冒号—wq),执行命 令[source ./.bash_profile],使修改生效,此时你可以利用命令[echo $ORACLE_BASE]或 [echo $PATH]命令查看刚才的设置内容,如下图所示:
在这里插入图片描述

5、shell自动化部署脚本代码:
#!/bin/bash
#创建环境变量配置函数
editenv(){
    
  #进入tester的根目录下
  cd /home/tester
  #向文件中插入内容
  sed -i "10aORACLE_BASE=/oracle" .profile
  sed -i `11aORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1` .profile
  sed -i "12aORACLE_SID=orcl" .profile
  sed -i `13aPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin` .profile
  sed -i `14aLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib` .profile
  sed -i "15aexport ORACLE_BASE" .profile
  sed -i "16aexport ORACLE_HOME" .profile
  sed -i "17aexport ORACLE_SID" .profile
  sed -i "18aexport PATH" .profile
  sed -i "19aexport LD_LIBRARY_PATH" .profile
  #更新文件内容
  source ./.profile
  #判断
  if [ "$ORACLE_BASE" == "/oracle" ]
  then
    echo "环境变量配置成功"
  else
  echo "环境变量配置失败"
  fi
}
#创建目录的函数
createdir(){
    
  #创建目录
  mydir="/oracle/product/10.2.0/db_1"
  mkdir -p $mydir
  #判断
  if [ -d "$mydir" ]
  then
    echo "目录创建成功"
    #修改属主和属组
    chown -R tester.oinstall /oracle
    #修改操作权限
    chmod 755 -R /oracle
    #调用环境变量配置函数editenv
    editenv
  else
    echo "目录创建失败"
  fi
}
#创建用户的函数
createuser(){
    
   #创建用户
   useradd -m tester -g oinstall -G dba
   #用户创建成功后添加到/etc/passwd文件中
   finduser=`grep "tester" /etc/passwd|cut -d ":" -f 1`
   if [ "$finduser" == "tester" ]
   then
      echo "用户创建成功"
      #修改密码
      passwd tester
      echo "密码修改成功"
      #调用创建目录函数
      createdir
   else
      echo "用户创建失败"
   fi
 }
#创建管理组的函数
creategrp(){
    
   #创建管理组
   groupadd dba
   #在group文件中查找含义dba字符串,并截取其中的dba字符
   finddba=`grep "dba" /etc/group|cut -d ":" -f 1`
   #判断
   if [ "$finddba" == "dba" ]
   then
      echo "管理组创建成功"
      #创建安装组
      groupadd oinstall
      #查找组并定义变量
      findoin=`grep "oinstall" /etc/group|cut -d ":" -f 1`
      #判断
      if [ "$findoin" == "oinstall" ]
      then
         echo "安装组创建成功"
         #调用createuser函数
         createuser
      else
          echo "创建失败"
      fi
   else
       echo "创建失败"
      fi
}
#判断当前用户是否为root --->$USER
if [ "$USER" == "root" ]
then
   echo "当前用户是root"
   #调用创建组函数
   creategrp
else
   echo "当前用户不是root"
fi
四、安装 Oracle

1、 注销系统,用 tester 用户登录系统(注意如果上一步没有注销,这一步一定要注销, 要是你当前桌面显示[tester 的主目录]),找到 Oracle 安装文件,比如我的是放在/tmp 下的 rar文件,所以首先解压缩。
2、 解压缩完成,会生成一个 database 的文件夹,进入 database 目录下会看到一个可执 行文件 setup.exe,执行命令[./setup.exe],安装开始。
3、 shell自动化部署脚本如下:

#!/bin/bash
#定义函数
install(){
    
  #进入tmp目录下
  cd /tmp
  my_file="oracle10g.rar"
  if [ -f "$my_file" ]
  then
     echo "文件存在"
  else
     echo "文件不存在"
     echo "文件正在拷贝中...."
     cp /mnt/hgfs/唧唧下载视频/$my_file /tmp
     echo "文件拷贝成功"
  fi
  #解压
  echo "文件正在解压中"
  #unrar x $my_file
  echo "文件解压成功"
  #判断解压文件是否存在
  if [ -d "database" ]
  then
     echo "文件夹已经存在"
     #进入文件夹
     cd database
     #执行安装文件
     ./setup.exe
  else
     echo "文件夹不存在"
  fi
}
if [ "$USER" == "tester" ]
then
  echo "当前用户是tester"
  #调用install函数
  install
else
  echo "当前用户不是tester"
fi

4、 安装正式开始以后会弹出如下提示界面,有[基本安装]和[高级安装]两项,[高级安 装]中可以选择[企业版]、[标准版]和[自定义]。默认的是[基本安装],也就是[企业版],设置 都是上面用 root 账户创建的内容,可以默认不动,但是下面的数据库口令一定要设定好并 且记牢,它是关键所在,这里我们不是用[高级安装],[下一步]继续
在这里插入图片描述
5、 设定完密码,单击[下一步]继续,这个地方的内容也是默认的,不用修改,[下一步] 继续
在这里插入图片描述
6、 当[检查]栏出现蓝色突出显示的提示时,选中当前的复选框即可,[下一步]继续
在这里插入图片描述
7、 检查通过以后进入正式安装界面,单击[安装]
在这里插入图片描述
在这里插入图片描述
8、 安装过程中如果出现如下图提示,单击[忽略]继续:
在这里插入图片描述
9、 然后会出现如下图继续安装界面:
在这里插入图片描述
10、 数据库文件安装好以后,进行配置组件时会出现下图提示界面,作用是进行口令的 修改和管理
在这里插入图片描述
11、 单击 [口令管理],出现下图界面,可以根据需要作适当修改,这里我们默认安装
在这里插入图片描述
12、 单击[确定]后继续安装,然后会弹出下图所示界面,按提示进行操作
在这里插入图片描述
13、 下面是我切换到 root 后执行脚本的界面,其中出现一个选择路径的地方默认即可
在这里插入图片描述
14、 执行完脚本后,单击[确定]出现如下提示,安装完成,[退出]
在这里插入图片描述
15、 首先查看一下欢迎界面,输入如下图地址,如果正确显示则表示安装成功
在这里插入图片描述
16、 这个是进入数据库操作界面
在这里插入图片描述
17、 这个是数据库管理界面
在这里插入图片描述
18、 下面这几个是 10g 企业管理界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
19、 如果你的机器都能正常显示如上几个界面的话。恭喜你 Oracle 安装成功,但是使用前注意要启动服务

五、设置服务启动

虽然你现在可以启用所有服务,但是当你重起系统以后,你会发现,所有的服务都不能 正常使用了,原因是你没有设定系统启动项,甚至没有开启服务,下面我们就来完成这些工 作。
1、 用 root 用户修改文件[/etc/oratab],如下图所示修改其中的 N 为 Y,保存退出
在这里插入图片描述
2、 用 tester 用户修改[$ORACLE_HOME/bin]下面的 dbstart 文件,如下图所示
在这里插入图片描述
3、 修改好上面两个文件后,我们利用命令[dbstart]启动 oracle 服务,下图是在不同位置 下的三种启动方式,注意如果直接执行命令[dbstart]启动一定要进入 oracle 家目录的 bin 下
在这里插入图片描述
4 、 利用命令[emctl start dbconsole] 启动oracle 的 em 服务,对应于 http://localhost:1158/em,利用命令[isqlplusctl start dbconsole]启动isqlplus服务,对应于 http://localhost:5560/isqlplus和http://localhost:5560/isqlplus/dba
在这里插入图片描述
5、 如果你能再次看见下图这个熟悉的管理登录界面,恭喜你服务启动成功:
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dpl12/article/details/105543989

智能推荐

MobaXterm详细使用教程_mobaxterm_personal-程序员宅基地

文章浏览阅读10w+次,点赞292次,收藏2.3k次。这一篇MobaXterm详细使用教程,我们来介绍一下如何设置并用MobaXterm来连接Linux服务器。MobaXterm 又名 MobaXVT,是一款增强型终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱。MobaXterm 可以开启多个终端视窗,以最新的 X 服务器为基础的X.Org,可以轻松地来试用 Unix/Linux 上的 GNU Unix 命令。这样一来,我们可以不用安装虚拟机来试用虚拟环境,然后只要通过 MobaXterm 就可以使用大多数的 linux 命令。._mobaxterm_personal

PTA甲级 1013 Battle Over Cities (25分) BFS,DFS,查并集_pta甲级1013第二个检查点-程序员宅基地

文章浏览阅读151次。强烈推荐,刷PTA的朋友都认识一下柳神–PTA解法大佬本文由参考于柳神博客写成柳神的程序员宅基地,这个可以搜索文章柳神的个人博客,这个没有广告,但是不能搜索还有就是非常非常有用的 算法笔记 全名是算法笔记 上级训练实战指南 //这本都是PTA的题解算法笔记PS 今天也要加油鸭题目原文It is vitally important to have all the cities connected by highways in a war. If a city is occupied _pta甲级1013第二个检查点

一个WP8样式的Android ProgressBar_android wp样式-程序员宅基地

文章浏览阅读1.1k次。一个WP8样式的进度对话框_android wp样式

NOI2018T1 归程_noi2018-t1-程序员宅基地

文章浏览阅读563次。  原题传送门 luoguP4768 NOI2018T1 归程题目大意  本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定。 魔力之都可以抽象成一个 nnn 个节点、mmm 条边的无向连通图(节点的编号从 111 至 nnn)。我们依次用 l,al,al,a 描述一条边的长度、海拔。  作为季风气候的代表城市,魔力之都时常有雨水相伴,因此道路积水总是不可避免的。由于整个城市的排水系统连通,因此有积水的边一定是海拔相对最低的一些边。我们用水位线来描述降雨的程度,它的意义是:所有海拔不超过水位_noi2018-t1

C++Primer_课后习题第十二章_#include < iostream.h> #include < string.h> class -程序员宅基地

文章浏览阅读296次。本文答案,部分参考于C++ Primer 习题集前面章节的习题答案第一章第二章第三章第四章第五章第六章第七章第八章第九章第十章第十一章配套的学习资料https://www.jianguoyun.com/p/DTK5uJgQldv8CBjKv80D12.1都是4个StrBlob中的那个vector是共享的.12.2#pragma once#ifndef MY_STRBLOB_H#define MY_STRBLOB_H#include<vector>#i_#include < iostream.h> #include < string.h> class strtype { public: strtype(

创建user01-user20 随机六位数密码 a-z A-Z 0-9_sg85,cc-程序员宅基地

文章浏览阅读752次。一:创建的要求1)创建user01-user022)生成20组随机密码3)设置密码4)输出清单二:代码及测试结果adduser () {pw_txt=`mktemp pw.XXXXX`#1)创建用户for i in `seq -s ' ' -w 1 20` #-s表示横着输出,-w表示保持宽度,即把1 2 3 变成01 02 03这样do useradd user$idone#2)生成随机密码cat /dev/urandom | strings -6 |e_sg85,cc

随便推点

scala中的特质_scala success特质-程序员宅基地

文章浏览阅读2k次。scala中的特质1.特质中定义的方法可以实现,【有了大括号的就是已经实现过的方法,例如下面Animal中的listen和run】;也可以不实现【例如Animal类中的speak方法】示例代码如下:package cookBook.chapter8trait Animal{ //没有实现 def speak def listen: Unit ={ } ..._scala success特质

SQL语句练习题目-程序员宅基地

文章浏览阅读875次。sql语句练习题目员工信息表 staff: user_id , name, store_id, salary商店表store:store_id, name,city题目1:找出平均工资小于5000的商店所在的城市SELECT a.ctity,AVG(b.salary) FROM store a,staff bWHERE a.store_id=b.store_idG...

HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计-程序员宅基地

文章浏览阅读198次。 关于作者: 历任研发工程师,技术组长,教学总监;曾于2016年、2020年两度荣获CSDN年度十大博客之星。 十载寒冰,难凉热血;多年过去,历经变迁,物是人非。 然而,对于技术的探索和追求从未停歇。 坚持原创,热衷分享,初心未改,继往开来!茶文化网站、️‍中华传统文化题材、京剧文化水墨风书画、中国民间年画文化艺术网站 、等网站的设计与制作。️ 这个首页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒

图像直方图均衡化和局部增强处理_基于直方图的局部增强-程序员宅基地

文章浏览阅读1.9w次,点赞15次,收藏123次。一、基本原理1.1直方图均衡化(一提高图像的对比度,二使像素值几乎成均匀分布的图像0表示黑,1表示白,中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,增加许多图像的局部对比度,亮度可以更好的在直方图上分布。) 灰度级的直方图就是反映一幅图像中的灰度级与出现这种灰度的概率之间的关系的图形。设变量代表图像中的像素灰度级。在图像中,像素的灰度级可作归一化处理..._基于直方图的局部增强

echarts饼状图圆环位置修改样式调整_echarts环形图位置-程序员宅基地

文章浏览阅读5k次。作为笔记(echarts篇)pie图例组件:legend: { type: 'scroll',//图例数量过多时,可以使用滚动 left: 'center', bottom: this.ringData.legendBottom || 0,//设置位置 data: this.ringData.name, textStyle: { color: '#fff'//..._echarts环形图位置

机器学习-AdaBoost算法_adaboostclassifier()-程序员宅基地

文章浏览阅读600次。简介Adaboost算法是一种提升方法,将多个弱分类器,组合成强分类器。AdaBoost,是英文”Adaptive Boosting“(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年提出。它的自适应在于:前一个弱分类器分错的样本的权值(样本对应的权值)会得到加强,权值更新后的样本再次被用来训练下一个新的弱分类器。在每轮训练中,用总体(样本总体)训练新的弱分类器,产生新的样本权值、该弱分类器的话语权,一直迭代直到达到预定的错误率或达到指定的最大迭代次数。总体—_adaboostclassifier()

推荐文章

热门文章

相关标签