博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux运维学习之Oracle数据库的安装和扩展小优化
阅读量:6834 次
发布时间:2019-06-26

本文共 6160 字,大约阅读时间需要 20 分钟。

  是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

  首先我们要准备两个包,p13390677_112040_Linux-x86-64_1of7.zip和p13390677_112040_Linux-x86-64_2of7.zip,我们安装数据库只用到这两个包就行了,我们本次安装数据库实验在centos6,x86_64上做得实验,数据库版本为11g。
  安装之前,有一些准备需要我们去完成:
   1 yum源配置完成
   2 网卡配置静态ip地址
   3 主机名和ip地址可以解析(/etc/hosts)
   4 swap是物理内存的两倍,否则最后的校验失败
  yum安装依赖包大致有哪些包呢?

   unixODBC

   unixODBC-devel
   binutils
   compat-libstdc++-33
   elfutils-libelf
   elfutils-libelf-devel
   elfutils-libelf-devel-static
   gcc
   gcc-c++
   glibc
   glibc-common
   glibc-devel
   glibc-headers
   kernel-headers
   ksh
   libaio
   libaio-devel
   libgcc
   libgomp
   libstdc++
   libstdc++-devel
   make
   numactl-devel
   sysstat

  当然这也只是其中的一部分,当我们安装到校验时,有些包,或者文件会不符合我们要求,所以到时候我们依据提示去修改。

  之后,就是准备相关的组和用户:

   groupadd oinstall #新建组

   groupadd dba
   useradd -g oinstall -G dba oracle #新建用户
   echo oracle |passwd --stdin oracle #设置密码

  然后在设置一下sysctl限制的内核参数在/etc/sysctl.conf内配置:

   fs.aio-max-nr = 1048576

   fs.file-max = 6815744
   kernel.shmall = 2097152
   kernel.shmmax = 536870912
   kernel.shmmni = 4096
   kernel.sem = 250 32000 100 128
   net.ipv4.ip_local_port_range = 9000 65500
   net.core.rmem_default = 262144
   net.core.rmem_max = 4194304
   net.core.wmem_default = 262144
   net.core.wmem_max = 1048586

  设置完了之后别完了sysctl -p生效!

  更改完了系统内核参数之后,我们的limit参数还是有问题的,这个问题是屡见不鲜了,所以本次我们直接写入/etc/security/limits.conf配置文件生效。

   oracle soft nproc 2047

   oracle hard nproc 16384
   oracle soft nofile 1024
   oracle hard nofile 65536
   oracle soft stack 1024

  再往后就是关于我们的安装目录的设置了,默认安装在/u01/app/,所以我们新建用户,更改权限,设置用户及用户组。

   mkdir -p /u01/app/

   chown -R oracle:oinstall /u01/app/
   chmod -R 775 /u01/app

  接着,我们设置一些关于oracle的变量,安装的时候,系统会自动读取,我们安装时会使用oracle用户,所以我们设置在oracle的家目录中。

   cat >> ~oracle/.bash_profile <<EOF

   export ORACLE_BASE=/u01/app/oracle
   export ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1
   export ORACLE_SID=orcl
   export PATH=$PATH:$ORACLE_HOME/bin
   EOF

  ok,前期的工作算是做得差不多了,我们就要开始我们的安装了,我们把我们之前的两个压缩包,解压到~oracle的家目录中,会生成一个database的文件夹,里面有一启动脚本为runInstaller,但是我们如果图形化登陆的时候使用的root,之后su - oracle下,使用此脚本,软件图形化会弹不出来,两种解决方法,1,退出当前的root图形化,使用oracle进行重新登录图形化;2,使用xhost +,然后su - oracle下,进行运行脚本。

  接下来的操作就是进行图形化的安装,前方多图预警:
  第一项,全部都不用勾选
linux运维学习之Oracle数据库的安装和扩展小优化
  第二项,skip
linux运维学习之Oracle数据库的安装和扩展小优化
  第三项,选择只安装上软件就行,数据库配置下面手动配
linux运维学习之Oracle数据库的安装和扩展小优化
  第四项,单个数据库安装
linux运维学习之Oracle数据库的安装和扩展小优化
  第五项,可以选择相关语言
linux运维学习之Oracle数据库的安装和扩展小优化
  第六项,选择安装的版本
linux运维学习之Oracle数据库的安装和扩展小优化
  第七项,安装路径,上面的路径都是自动识别
linux运维学习之Oracle数据库的安装和扩展小优化
  第八项,默认就可以
linux运维学习之Oracle数据库的安装和扩展小优化
  第九项,设置一下数据的组
linux运维学习之Oracle数据库的安装和扩展小优化
  第十项,是校验项,之前的安装和修改都是为此做铺垫的,所以这的警告很重要,可以针对性的修改,比如看一下我的报错项,可以根据提示修改,第二个报错的就根据提示安装一个就ok:
linux运维学习之Oracle数据库的安装和扩展小优化
  我们在/etc/sysctl.conf下修改shmmax的参数,别忘了sysctl -p保存
linux运维学习之Oracle数据库的安装和扩展小优化
  第十一项,安装。然后就是坐等安装好了。
  等安装完成到最后一项会发现,让我们自己运行一下脚本才可以完成最后一步:

   /u01/app/oraInventory/orainstRoot.sh

   /u01/app/oracle/11.2.0/db_1/root.sh

  出现一下界面就ok了。

linux运维学习之Oracle数据库的安装和扩展小优化

  当然这样还不算成功,因为我们只是安装了软件,并没有对数据库进行一些配置,所以,我们要在oracle用户下启动dbca(数据库配置工具),直接命令行,输入dbca。

  前几项都是默认,或者自定义一个实例名,不过有一项监听工具选项的勾选Configure Enterprise Manager,需要命令行启动lsnrctl start(oracle用户才可以运行):
linux运维学习之Oracle数据库的安装和扩展小优化
  之后是一个定义账户密码的,我们为了方便直接选择第二项,密码一样都是oracle

linux运维学习之Oracle数据库的安装和扩展小优化

linux运维学习之Oracle数据库的安装和扩展小优化

linux运维学习之Oracle数据库的安装和扩展小优化

  此项是我们的字符集的选择

linux运维学习之Oracle数据库的安装和扩展小优化

  再往下没有什么配置的了,一路ok,往下走,等我们开始安装的界面开始,完成之后,就是我们的配置完成了,下面我们来看一下我们的一些小优化,有利于我们在进行数据库操作时进行的。

  1 无法上下滚动历史命令,退格删除要ctrl配合使用,完全反人类,解决方法如下:

   yum install rlwarp 

   rlwarp sqlplus / as sysdba #可以上下滚动历史命令,退格删除,每次使用都要加入此条

   alisa sqlplus='rlwarp sqlplus' #加入别名

  2 默认oracle提示符为 mysql>,不方便,根本分不清当前目录是什么,解决方法如下:

   vim /u01/app/oracle/11.2.0/db_1/sqlplus/admin/glogin.sql

   set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> " #添加此行
   SYS@orcl> #这就是最终效果,我们知道哪个用户在哪个实例里

  好了,oracle的相关安装到此就告一段落,具体如何使用oracle需要我们自己去学习的了,后面我们编写了一个安装脚本,我们可以省去前面的安装,直接在本机运行就ok,点点鼠标,根据自己的需求改一下也可以,不过注意本脚本只适合oracle 11g x86_64。


#!/bin/bash

 PKG="
 unixODBC
 unixODBC-devel
 binutils
 compat-libstdc++-33
 elfutils-libelf
 elfutils-libelf-devel
 elfutils-libelf-devel-static
 gcc
 gcc-c++
 glibc
 glibc-common
 glibc-devel
 glibc-headers
 kernel-headers
 ksh
 libaio
 libaio-devel
 libgcc
 libgomp
 libstdc++
 libstdc++-devel
 make
 numactl-devel
 sysstat
"
PACKINSTALL=

for PACKAGE in $PKG ;do

 rpm -q $PACKAGE || PACKINSTALL="$PACKINSTALL $PACKAGE"
done
echo
if [ -z "$PACKINSTALL" ];then
 true
 else
 echo "The followling packages will be install: $PACKINSTALL "
 read -p "Continue? (y/N): " answer
 case $answer in
  ([yY]|[Yy][Ee][Ss])
   echo 1
  yum -y install $PACKINSTALL ;;
  (*);;
 esac
fi

cat /etc/group |grep oinstall &> /dev/null || /usr/sbin/groupadd oinstall

cat /etc/group |grep dba &> /dev/null || /usr/sbin/groupadd dba

id oracle &> /dev/null

  if [ $? = 0 ];then
  groups oracle | grep dba &> /dev/null || /usr/sbin/usermod -g oinstall -G dba oracle
  else
  /usr/sbin/useradd -g oinstall -G dba oracle
  echo oracle |passwd --stdin oracle
 fi

KELNUM=$(cat /etc/sysctl.conf |grep -v ^# |grep -v ^$ |grep -E "fs.aio-max-nr|fs.file-max|kernel.shmall|kernel.shmmax|kernel.shmmni|kernel.sem|net.ipv4.ip_local_port_range|net.core.rmem_default|net.core.rmem_max|net.core.wmem_default|net.core.wmem_max" |awk '{print $1}' |sort -u |wc -l )

if [ $KELNUM -lt 11 ];then

cat >> /etc/sysctl.conf <<EOF
 fs.aio-max-nr = 1048576
 fs.file-max = 6815744
 kernel.shmall = 2097152
 kernel.shmmax = 536870912
 kernel.shmmni = 4096
 kernel.sem = 250 32000 100 128
 net.ipv4.ip_local_port_range = 9000 65500
 net.core.rmem_default = 262144
 net.core.rmem_max = 4194304
 net.core.wmem_default = 262144
 net.core.wmem_max = 1048586
EOF
/sbin/sysctl -p
fi

grep oracle /etc/security/limits.conf &> /dev/null

if [ $? != 0 ];then
cat >> /etc/security/limits.conf << EOF
 oracle soft nproc 2047
 oracle hard nproc 16384
 oracle soft nofile 1024
 oracle hard nofile 65536
 oracle soft stack 1024
EOF
fi

grep pam_limits.so /etc/pam.d/login &> /dev/null

 if [ $? != 0 ];then
cat >> /etc/pam.d/login <<EOF
 session required pam_limits.so
EOF
fi

[ -d /u01/app ] || ( mkdir -p /u01/app/ ; chown -R oracle:oinstall /u01/app/ ; chmod -R 775 /u01/app )

grep -i oracle ~oracle/.bash_profile &> /dev/null

  if [ $? != 0 ];then
cat >> ~oracle/.bash_profile <<EOF
 export ORACLE_BASE=/u01/app/oracle
 export ORACLE_HOME=\$ORACLE_BASE/11.2.0/db_1
 export ORACLE_SID=orcl
 export PATH=\$PATH:\$ORACLE_HOME/bin
EOF
fi

xhost +

[ -d ~oracle/database ] || mv /root/database ~oracle
cd ~oracle;su - oracle -c 'database/runInstaller'

转载于:https://blog.51cto.com/13296640/2048186

你可能感兴趣的文章
pgbackrest 简要使用说明
查看>>
Silverlight C# 游戏开发:L6 3D摄像机
查看>>
XML和XMLSocket(一) -- XML的基础知识
查看>>
[强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
查看>>
Struts知识问答
查看>>
C# 中符号的作用[备忘]
查看>>
关于preempt_enable 和 preempt_disable 【转】
查看>>
[SDK2.2]Windows Azure Virtual Network (1) 概念
查看>>
SQLAlchemy 与 fask-SQLAlchemy 中的多表查询例子
查看>>
JS 获取图片原始尺寸-防止图片溢出
查看>>
Java反射
查看>>
Codeforce 712A Memory and Crow
查看>>
Keil代码中for循环延时问题
查看>>
JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构
查看>>
ArcGIS制图之Subset工具点抽稀
查看>>
很好看的后台管理界面
查看>>
Maven 使用Eclipse构建Web项目
查看>>
用户密码加密存储十问十答,一文说透密码安全存储
查看>>
IL指令详细
查看>>
parted空闲空间添加分区
查看>>