Linux安裝oracle12c的詳解
1.1.1 作業系統軟硬體檢查
1. 記憶體要求
1) 最小值為1 GB 記憶體,建議值為2 GB of RAM 或者更多
2) 查詢命令:# grep MemTotal /proc/meminfo
計算出來有1.7968G記憶體,滿足Oracle 12c的記憶體安裝要求。
2. 系統核心版本
1) 查詢系統位數命令:# uname -m;
2) 查詢系統版本命令:# cat /proc/version或# cat /etc/redhat-release或# lsb_release -id;
3) 查詢系統核心版本:# uname -r。
經查詢可知,本機系統版本和核心版本都在Oracle 12c支援的範圍內。
3. 磁碟空間要求
用來安裝的Oracle 12c對應版本的目錄硬碟保留量至少滿足上面的要求,一般情況下,這個都不是問題,如果有疑問,可以用df -h命令查詢一下目錄所在的硬碟空間使用情況。
4. /tmp空間至少1GB
1) 查詢命令:# df -h /tmp,Oracle安裝目錄中的/oradata目錄用來存放資料檔案,/tmp目錄是根檔案系統的一部分,而圖中查詢結果顯示根目錄還剩餘48G,滿足條件。
2) 通過命令:# df -h檢視各個磁碟的使用情況。
1.1.2 安裝前系統配置
1. RPM要求
安裝前可先檢視需要的RPM包已安裝,查詢命令:# rpm -q package_name,另外,對於本系統版本Oracle 12c,要使用用於連線資料庫的Oracle ODBC Drivers,需要安裝unixODBC-2.3.1 or later,下載地址http://www.unixodbc.org。
1) 檢查Oracle需要的rpm安裝情況
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat
2) 安裝缺失的rpm
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp
3)再次檢查rpm的安裝情況
4)建立wap分割槽
關於swap交換分割槽的設定:
以前裝Linux伺服器系統的時候,系統有1G記憶體,swap交換分割槽分了2G,現在系統記憶體加到了8G,同事建議增加交換分割槽。我就增加16G swap分割槽介紹一下(新增一個交換檔案方式):
1. 檢視swap 空間大小(總計):我的已經加完了,引用另外一臺機子的檢視內容。
free -m
total used free shared buffers cached
Mem: 7985 756 7228 0 98 263
-/+ buffers/cache: 394 7590
Swap: 8189 0 8189
2.增加16G的交換空間
dd if=/dev/zero of=/usr/swap bs=1024 count=4096000 #/usr/swap 檔案在的位置
如果是增加2G,則count=2048000
3.設定交換分割槽
mkswap /usr/swap
4.啟動交換分割槽
swapon /usr/swap
#此時Top命令看到交換分割槽增加了,此時重啟後發現 swap空間又變回2G了,怎麼辦呢?又查了下內容
發現還有一步。
5.修改/etc/fstab檔案,使得新加的16G交換空間在系統重新啟動後自動生效在檔案最後加入:
vi /etc/fstab 增加下列內容 i進入修改模式
/usr/swap swap swap defaults 0 0
6.free -m 檢視swap分割槽大小
2. 建立使用者、使用者組以及安裝目錄
安裝和執行Oracle資料庫軟體都需要使用指定使用者組內的指定使用者,使用者為Oracle,出於安全考慮,使用者組建為oinstall、dba,oinstall組中的成員用於管理Oracle資料庫物理軟體,dba組中的成員用於管理、操作資料庫,具有sysdba許可權。
[root@CentOS /]# groupadd oinstall ----建立oracle使用者組
[root@CentOS /]# groupadd dba----建立oracle使用者組
[root@CentOS /]# useradd -g oinstall -G dba oracle----oracle加入新建的2個使用者組
[root@CentOS /]# passwd oracle ----設定oracle使用者的密碼
[root@CentOS /]# mkdir -p /usr/oracle ----建立oracle安裝目錄
[root@CentOS /]# mkdir -p /opt/oracle/oracinstall ---建立racle安裝檔案所在目錄
[root@CentOS /]# chown -R oracle:oinstall /usr/oracle ----更改oracle目錄使用者組
[root@CentOS /]# chmod -R 775 /usr/oracle ----更改oracle目錄許可權
[root@CentOS /]# chown -R oracle:oinstall /opt/oracle/oracinstall----更改oracle安裝檔案所在目錄的使用者組
[root@CentOS /]# chmod -R 755 /opt/oracle/oracinstall----更改oracleracle安裝檔案所在目錄的操作許可權
3. 配置系統核心引數
1)共享記憶體核心引數
kernel.shmmax:每個記憶體段的最大值,等於或大於sga_max_size,不小於實體記憶體1/2或2G
kernel.shmall:指定任意時刻,系統可以分配的所有共享記憶體段總和的最大值,不小於shmmax/page_size,如果伺服器執行的SGA<8G,可用預設值
kernel.shmmni:系統可分配的共享記憶體段的最大數量,預設是4096
2)訊號量
一種控制資源訪問的方法,Oracle例項主要使用訊號量來控制共享記憶體的訪問
使用processes初始化引數分配訊號量,其值至少等於processes
訊號量核心引數
kernel.sem:如:kernel.sem = 250 32000 100 128,其中等號右邊4部分分別為semmsl、semmns、semopm、semmni值。
semmsl指每個訊號量集合中的最大訊號量個數,其值或取其最小值100,或者為所有資料庫中最大的processes+10,選擇其中較大值者
semmns值是指整個系統範圍內訊號量總數的最大值,預設是32000
semopm用於指定每個semop()系統呼叫可以設定的訊號量操作的最大數量,預設為100
semmni用於指定訊號量集合的最大數量,最小為100,Oracle建議取值128.
net.core.rmem_default、net.core.rmem_max、net.core.wmem_default、net.core.wmem_max,4個引數用於設定socket資料傳送緩衝區及接收緩衝區的預設大小與最大大小。
表示應用程式可使用的IPv4埠範圍。
net.core.rmem_default:
表示套接字接收緩衝區大小的預設值。
net.core.rmem_max:
表示套接字接收緩衝區大小的最大值。
net.core.wmem_default:
表示套接字傳送緩衝區大小的預設值。
net.core.wmem_max:
表示套接字傳送緩衝區大小的最大值。
對應Oracle 12c的系統核心引數要求參考如下:
3) 編輯系統的核心引數:[[email protected] /]# vi /etc/sysctl.conf,在檔案的末尾加入核心要求內容,編輯完成通過“ESC”和“:wq”儲存並退出編輯視窗
編輯核心
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
fs.file-max = 6815744
4) 生效新配置的系統核心引數
sysctl -p
4. 配置Oracle使用者shell limit
1)為了提高在linux系統上執行軟體的效能,必須對oracle使用者設定下列限定。
修改
vi /etc/security/limits.conf
noproc - 程序的最大數目
stack - 最大棧大小
nofile - 開啟檔案的最大數目
soft 指的是當前系統生效的設定值
hard 表明系統中所能設定的最大值
soft 的限制不能比har 限制高。用 - 就表明同時設定了 soft 和 hard 的值。
oracle:被限制的使用者名稱,組名前面加@和使用者名稱區別
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
5. 編輯登入配置檔案
vi /etc/pam.d/login
進行登入配置檔案的編輯,在文字最後新增:session required pam_limits.so或者session required /lib/security/pam_limits.so使shell limit生效。
6. Oracle使用者環境變數配置
要成功安裝並使用Oracle資料庫軟體,必須在Oracle使用者的.bash_profile檔案中設定ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH環境變數,其他的根據需要來設定。ORACLE_HOME可以在安裝前手動配置,另外,Oracle安裝過程中會根據ORACLE_BASE的值自動指定的ORACLE_HOME,所以也可以在安裝後將這個ORACLE_HOME寫入.bash_profile。
[[email protected] etc]# su - oracle
[[email protected] ~]$ vi .bash_profile
新增如下內容,並儲存退出
# use for oracle
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#防止Oracle安裝介面亂碼,先把語言環境改為英文
export LANG=en_US
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
7 生效配置檔案
[[email protected] ~]$ source .bash_profile
8. 配置修改/etc/hosts檔案(切回用戶)root
安裝RHEL的時候最好採用靜態IP地址,
vi /etc/hosts
新增IP地址和域名的對映關係,進入hosts檔案,在檔案末尾加上本機實際IP和主機使用者名稱
196.160.1.211 Centos dbserver
- 1
9 xhost +
這個問題比較噁心:
xhost: unable to open display “”
解決
yum install tigervnc-server
vncserver
export DISPLAY=localhost:1
xhost +
來進行操作。比如:
//切換到oracle使用者下
su - oracle
//檢視當前DISPLAY環境變數的值
echo $DISPLAY
//允許檢視介面投影到設定的ip下
export DISPLAY=192.168.112.31:0.0
//再次檢視DISPLAY環境變數的值
echo $DISPLAY
//啟動命令
xhost +
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
1 出現問題
使用Xmanager的Xshell連線linux,進行上述操作時會出現如下問題:
xhost: unable to open display “192.168.112.31:0.0”
如圖所示:
2 解決辦法
Xmanager下出現這個問題,首先要保證linux伺服器上安裝了xterm,如果還未安裝xterm,可以執行yum來安裝:
yum install xterm
- 1
其次解決辦法就是,先使用Xstart連線linux伺服器,如圖所示:
注意在command命令列裡輸入:
/usr/bin/xterm -ls -display $DISPLAY
- 1
如圖所示:
連線成功後直接在Xstart命令列下,或者再次使用Xshell命令列嘗試命令:
xhost +
就會出現成功的響應:
access control disabled, clients can connect from any host
如圖所示:
後面就可以正常使用遠端圖形介面的操作了。
10 安裝Oracle 12c資料庫
1)使用xftp將oracle12c檔案放到linux中2)解壓縮
[[email protected] oracinstall]# unzip linuxx64_12201_database.zip
-bash: unzip: 未找到命令
[[email protected] oracinstall]#
解決方法
[[email protected] oracinstall]# yum install -y unzip zip
重新解壓,成功
3)安裝
[[email protected] database]# ./runInstaller
4)後面就視覺化安裝了。
11.
如果你彈出了以下介面,那麼恭喜你離成功只有一半的距離了。
1、第一步用來配置更新以及技術支援的,把勾去掉直接下一步就行
2、 配置安裝選項,這三個選項分別表示:①建立並配置一個新資料庫,適用於新安裝資料庫的使用者;②只安裝資料庫軟體,適用於已有Oracle資料庫資料用於資料遷移的;③升級已有資料庫,適用於將老資料庫升級成新資料庫的使用者。毫無疑問這裡選擇第一個選項。
3、第三步配置桌面版還是伺服器版,在linux伺服器選第二個。
4、第四步分散式網格配置,這裡選擇單例項伺服器配置,如果要配置分散式服務的話可以參考前面說的安裝文件,裡面有詳細的分散式服務安裝過程
5.
6.我的linux伺服器選不中第二個,就只能選第一個了
7,
8.執行這部會有問題,在這一步時,無法繼續,因為oracle賬戶無法建立oraInventory目錄,所以必須先建立該使用者並授權,執行如下操作即可
[[email protected] ~]# mkdir -p /usr/oraInventory
[[email protected] ~]# chown -R oracle:oinstall /usr/oraInventory
[[email protected] ~]# chmod -R 775 /usr/oraInventory
8.
9
10.
這裡注意編碼問題,要和自己伺服器編碼一致,要不然資料庫中文會亂碼,可以參考我的一個部落格看下
驗證引數時,aio-max-nr設定為1048576,配置檔案沒有的話要加上,編輯系統的核心引數:[[email protected] /]# vi /etc/sysctl.conf,執行sysctl -p使之生效。然後重新驗證通過
執行過程會提示讓你用root賬戶執行2個指令碼,你將指令碼的檔案拿下來,在root賬戶下執行即可。
到此就安裝完成 了