linux運維學習之Oracle數據庫的安裝和擴展小優化

  是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。能夠說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安裝依賴包大體有哪些包呢?mysql

   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
   sysstatlinux

  固然這也只是其中的一部分,當咱們安裝到校驗時,有些包,或者文件會不符合咱們要求,因此到時候咱們依據提示去修改。c++

  以後,就是準備相關的組和用戶:sql

   groupadd oinstall #新建組
   groupadd dba
   useradd -g oinstall -G dba oracle #新建用戶
   echo oracle |passwd --stdin oracle #設置密碼數據庫

  而後在設置一下sysctl限制的內核參數在/etc/sysctl.conf內配置:vim

   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 = 1048586centos

  設置完了以後別完了sysctl -p生效!bash

  更改完了系統內核參數以後,咱們的limit參數仍是有問題的,這個問題是家常便飯了,因此本次咱們直接寫入/etc/security/limits.conf配置文件生效。session

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

  再日後就是關於咱們的安裝目錄的設置了,默認安裝在/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 ~oraclecd ~oracle;su - oracle -c 'database/runInstaller'

相關文章
相關標籤/搜索