是甲骨文公司的一款關係數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。能夠說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下,進行運行腳本。
接下來的操做就是進行圖形化的安裝,前方多圖預警:
第一項,所有都不用勾選
第二項,skip
第三項,選擇只安裝上軟件就行,數據庫配置下面手動配
第四項,單個數據庫安裝
第五項,能夠選擇相關語言
第六項,選擇安裝的版本
第七項,安裝路徑,上面的路徑都是自動識別
第八項,默認就能夠
第九項,設置一下數據的組
第十項,是校驗項,以前的安裝和修改都是爲此作鋪墊的,因此這的警告很重要,能夠針對性的修改,好比看一下個人報錯項,能夠根據提示修改,第二個報錯的就根據提示安裝一個就ok:
咱們在/etc/sysctl.conf下修改shmmax的參數,別忘了sysctl -p保存
第十一項,安裝。而後就是坐等安裝好了。
等安裝完成到最後一項會發現,讓咱們本身運行一下腳本才能夠完成最後一步:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/11.2.0/db_1/root.sh
出現一下界面就ok了。
固然這樣還不算成功,由於咱們只是安裝了軟件,並無對數據庫進行一些配置,因此,咱們要在oracle用戶下啓動dbca(數據庫配置工具),直接命令行,輸入dbca。
前幾項都是默認,或者自定義一個實例名,不過有一項監聽工具選項的勾選Configure Enterprise Manager,須要命令行啓動lsnrctl start(oracle用戶才能夠運行):
以後是一個定義帳戶密碼的,咱們爲了方便直接選擇第二項,密碼同樣都是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'