天天看點

Linux 安裝Oracle 11g

此博文主要介紹在CentOS環境中安裝Oracle 11g. 系統環境為CentOS7.2。

安裝前環境準備

安裝所需要的軟體包:

1

2

3

<code>yum </code><code>install</code> <code>binutils compat-libcap1 compat-libstdc++ gcc  gcc-c++  glibc glibc-devel \</code>

<code> </code><code>ksh libaio  libaio-devel libgcc libstdc++  libstdc++-devel  libXi  libXtst  </code><code>make</code> <code>\</code>

<code> </code><code>sysstat unixODBC-devel -y</code>

<code>yum </code><code>install</code> <code>binutils* compat-libcap1* compat-libstdc++* gcc  gcc-c++  glibc glibc-devel*  ksh libaio*  libaio-devel libgcc libstdc++*  libstdc++-devel  libXi*  libXtst  </code><code>make</code>  <code>sysstat* unixODBC-devel -y</code>

建立使用者組和使用者:

4

5

<code>groupadd -g 502 dba</code>

<code>groupadd oinstall</code>

<code>groupadd -g 504 asmadmin</code>

<code>groupadd -g 506 asmdba</code>

<code>useradd</code> <code>-u 502 -g oinstall -G dba,asmdba oracle</code>

設定使用者密碼:

<code>passwd</code> <code>oracle</code>

修改核心資源限制,在/etc/security/limits.conf添加如下内容:

6

<code>* soft nofile 4096</code>

<code>* hard nofile 65536</code>

<code>oracle soft nproc 2047</code>

<code>oracle hard nproc 16384</code>

<code>oracle soft nofile 1024</code>

<code>oracle hard nofile 65536</code>

在檔案/etc/pam.d/login檔案中增加一行,配置驗證登入限制:

<code>session    required     pam_limits.so</code>

修改核心參數,在/etc/sysctl.conf檔案中增加如下内容:

7

8

9

10

11

12

13

<code>fs.aio-max-nr = 1048576</code>

<code>fs.</code><code>file</code><code>-max = 6815744</code>

<code>kernel.shmall = 2097152</code>

<code>kernel.shmmax = 536870912</code>

<code>kernel.shmmni = 4096</code>

<code>kernel.sem = 250 32000 100 128</code>

<code>net.ipv4.ip_local_port_range = 9000 65500</code>

<code>net.core.rmem_default = 262144</code>

<code>net.core.rmem_max = 4194304</code>

<code>net.core.wmem_default = 262144</code>

<code>net.core.wmem_max = 1048576</code>

<code>net.ipv4.tcp_wmem = 262144 262144 262144</code>

<code>net.ipv4.tcp_wmem = 4194304 4194304 4194304</code>

設定使生效: 

<code>sysctl -p</code>

建立Oracle base目錄:

<code>mkdir</code> <code>-p </code><code>/data/app/oracle</code>

<code>chown</code> <code>-R oracle:oinstall </code><code>/data/app/oracle</code>

<code>chmod</code> <code>-R 775 </code><code>/data/app/oracle</code>

建立資料庫檔案目錄和快速恢複區目錄:

資料檔案目錄

<code>mkdir</code> <code>/data/app/oracle/oradata</code>

<code>chown</code> <code>oracle:oinstall </code><code>/data/app/oracle/oradata</code>

<code>chmod</code> <code>775 </code><code>/data/app/oracle/oradata/</code>

快速恢複區檔案目錄

<code>mkdir</code> <code>/data/app/oracle/recovery_area</code>

<code>chown</code> <code>oracle:oinstall </code><code>/data/app/oracle/recovery_area/</code>

<code>chmod</code> <code>775 </code><code>/data/app/oracle/recovery_area</code>

安裝庫軟體

切換到oracle使用者,添加環境變量:

export ORACLE_BASE=/data/app/oracle

配置X:

 export DISPLAY=192.168.20.171:0.0

xhost +

access control disabled, clients can connect from any host

執行如下指令進行安裝:

<code># cd database/</code>

<code># ./runInstaller</code>

<a href="https://s5.51cto.com/oss/201711/02/1b108ba35033391a95888c9c8ea8a980.jpg" target="_blank"></a>

這裡可以選擇先安裝應用再建立資料庫,也可以一次性建立資料庫,這裡先進行安裝:

<a href="https://s2.51cto.com/oss/201711/02/86efa04ab5b0a843ded1240dc07cbe73.jpg" target="_blank"></a>

選擇單執行個體,和企業版本後,會根據我們添加的環境變量,找到對應的安裝目錄:

<a href="https://s2.51cto.com/oss/201711/02/8b252ce8d8f3d5fb5da81b5b93c07957.jpg" target="_blank"></a>

如果安裝中出現此錯誤,需要修改目錄權限:

<a href="https://s5.51cto.com/oss/201711/02/77a9ef5da59fd8214383e8dd7127fbee.jpg" target="_blank"></a>

chown  -R oracle:oinstall /data/app

修改權限即可。

如果安裝的軟體包不符合要求會出現如下提示,可以通過下載下傳這些軟體包,強制安裝。

<a href="https://s4.51cto.com/oss/201711/02/e91b5db5ea5e857b32e2a4d34fca9250.jpg" target="_blank"></a>

如果要解決依賴關系可以使用如下指令強制安裝:

<code>rpm -ivh --nodeps --force  packagename.rpm</code>

如果出現此錯誤,可以先忽略:

PRVF-7543 : OS Kernel parameter “semmni” does not have proper value on node “hostname” [Expected = “128” ; Found = “0”].  – Cause:  Kernel parameter value does not meet the requirement.  – Action:  Modify the kernel parameter value to meet the requirement.

一般在Link binaries這一步出現錯誤是,大多數情況是由于部分系統包沒有安裝成功,需要重新安裝所需的包,可以使用如下腳本檢測軟體包是否裝好:

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

<code>#!/bin/sh </code>

<code>count=0 </code>

<code>arr=( binutils-2* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-0.* elfutils-libelf-devel-static-0.* gcc-4.* gcc-c++-4* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2* kernel-headers-* ksh-* libaio-0.* libaio-devel-0.* libgcc-4.* libgomp-4.* libstdc++-4.* libstdc++-devel-* </code><code>make</code><code>-* numactl-devel-* sysstat-* ) </code>

<code>len=${</code><code>#arr[@]} </code>

<code>for</code><code>((i=0;i&lt;len;i++)); </code>

<code>do</code> 

<code>        </code><code>char=${arr[$i]} </code>

<code>        </code><code>rpm -qa | </code><code>grep</code> <code>"^$char"</code> 

<code>        </code><code>if</code> <code>[ $? != 0 ] ; </code><code>then</code> 

<code>                </code><code>error[$count]=${arr[$i]} </code>

<code>                </code><code>count=$(($count+1)) </code>

<code>                </code><code>echo</code> <code>"+++++++++++++++the ${arr[$i]}^is not installed++++++++++++++++++"</code> 

<code>        </code><code>fi</code> 

<code>done</code> 

<code>if</code> <code>[ $count -lt </code><code>"0"</code> <code>];</code><code>then</code> 

<code>        </code><code>echo</code> <code>"You have $count patchs are not installed."</code> 

<code>        </code><code>echo</code> <code>"the not installed patch is:"</code> 

<code>len1=${</code><code>#error[@]} </code>

<code>        </code><code>for</code><code>((ii=0;ii&lt;len1;ii++)); </code>

<code>        </code><code>do</code> 

<code>                </code><code>echo</code> <code>"${error[$ii]}^"</code> 

<code>        </code><code>done</code> 

<code>        </code><code>echo</code> <code>-e  </code><code>"Are you sure to install the patch[yes or no]:\c"</code> 

<code>        </code><code>read</code> <code>select</code> 

<code>        </code><code>if</code> <code>[ $</code><code>select</code> <code>== </code><code>"yes"</code> <code>]; </code><code>then</code> 

<code>                </code><code>for</code><code>((is=0;is&lt;len1;is++)); </code>

<code>                </code><code>do</code> 

<code>                        </code><code>var=${error[$is]} </code>

<code>                        </code><code>rpm -ivh .</code><code>/patch/</code><code>$var.rpm </code>

<code>                </code><code>done</code> 

<code>else</code> 

<code>        </code><code>echo</code> <code>"++++++++++++++++++++++CHECK PASS!+++++++++++++++++++++++++++"</code> 

<code>fi</code> 

<code>count=0</code>

<code>rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel </code><code>make</code> <code>pdksh sysstat unixODBC unixODBC-devel | </code><code>grep</code> <code>"not installed"</code>

繼續點選下一步,直到安裝完成.

安裝完成後,按照提示使用root 執行系統給出的腳本:

<a href="https://s4.51cto.com/oss/201711/02/baf6399160d79ea56b22cea20c97c054.jpg" target="_blank"></a>

添加oracle的環境變量:

在oracle使用者下修改.bash_profile:

<code>export</code> <code>ORACLE_BASE=</code><code>/data/app/oracle</code>

<code>export</code> <code>ORACLE_HOME=</code><code>/data/app/oracle/product/11</code><code>.2.0</code><code>/dbhome_1</code>

<code>PATH=$PATH:$HOME/.</code><code>local</code><code>/bin</code><code>:$HOME</code><code>/bin</code><code>:$ORACLE_HOME</code><code>/bin</code>

到此為止,Orace 資料庫的軟體安裝工作就完成了。

啟動監聽

在oracle 使用者下使用netca指令啟動監聽配置界面:

<code>[oracle@temp-</code><code>test</code> <code>~]$ </code><code>export</code> <code>DISPLAY=192.168.20.171:0.0</code>

<code>[oracle@temp-</code><code>test</code> <code>~]$ xhost +</code>

<code>access control disabled, clients can connect from any host</code>

<code>[oracle@temp-</code><code>test</code> <code>~]$ netca </code>

<code>Oracle Net Services Configuration:</code>

然後都是用預設配置,監聽1521端口。

<code>$ </code><code>netstat</code> <code>-lntp|</code><code>grep</code> <code>1521</code>

<code>tcp6       0      0 :::1521      :::*       LISTEN      22939</code><code>/tnslsnr</code>

顯示監聽狀态:

<code>[oracle@temp-</code><code>test</code> <code>~]$ lsnrctl status</code>

<code>LSNRCTL </code><code>for</code> <code>Linux: Version 11.2.0.1.0 - Production on 02-NOV-2017 18:27:02</code>

<code>Copyright (c) 1991, 2009, Oracle.  All rights reserved.</code>

<code>Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=temp-</code><code>test</code><code>)(PORT=1521)))</code>

<code>STATUS of the LISTENER</code>

<code>------------------------</code>

<code>Alias                     LISTENER</code>

<code>Version                   TNSLSNR </code><code>for</code> <code>Linux: Version 11.2.0.1.0 - Production</code>

<code>Start Date                02-NOV-2017 18:20:27</code>

<code>Uptime                    0 days 0 hr. 6 min. 38 sec</code>

<code>Trace Level               off</code>

<code>Security                  ON: Local OS Authentication</code>

<code>SNMP                      OFF</code>

<code>Listener Parameter File   </code><code>/data/app/oracle/product/11</code><code>.2.0</code><code>/dbhome_1/network/admin/listener</code><code>.ora</code>

<code>Listener Log File         </code><code>/data/app/oracle/diag/tnslsnr/temp-test/listener/alert/log</code><code>.xml</code>

<code>Listening Endpoints Summary...</code>

<code>  </code><code>(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=temp-</code><code>test</code><code>)(PORT=1521)))</code>

<code>The listener supports no services</code>

<code>The </code><code>command</code> <code>completed successfully</code>

使用DBCA工具建立資料庫

dbca是資料庫自帶的資料庫配置助手,可以幫助我們友善的建立資料庫,删除資料庫,配置資料庫。

執行dbca指令:

<code>[oracle@temp-</code><code>test</code> <code>~]$ dbca</code>

<a href="https://s4.51cto.com/oss/201711/02/7c098eabdb0384deabf4b3c0a97db642.jpg" target="_blank"></a>

選擇建立資料庫,選擇資料庫類型:

<a href="https://s1.51cto.com/oss/201711/02/1db73960b1a4f1172b470dd7be6f1ec3.jpg" target="_blank"></a>

設定資料庫的名稱和SID為 “orcl”, 設定所有資料庫使用相同的密碼,這裡設定的密碼要滿足密碼複雜度的要求:

<a href="https://s2.51cto.com/oss/201711/02/9dd25350bc89102423c60106bd0141c8.jpg" target="_blank"></a>

 選擇資料存放目錄:

<a href="https://s3.51cto.com/oss/201711/02/2759458a6dc2ddf22aa36b71e471a75f.jpg" target="_blank"></a>

選擇閃回恢複區目錄:

<a href="https://s1.51cto.com/oss/201711/02/4bc8e60f97ddddced72909a60bbc6e77.jpg" target="_blank"></a>

選擇sample Schemas, 系統會自動配置資源參數,也可以根據自己的需要動态調整,字元集設定為UTF-8:

<a href="https://s2.51cto.com/oss/201711/02/31f64b1ab9791f2e8668217a961d0dd4.jpg" target="_blank"></a>

然後一路預設配置,直到安裝完成:

<a href="https://s5.51cto.com/oss/201711/02/21c9744ee49f3045c93fb1aca94f56c5.jpg" target="_blank"></a>

在最後的安裝完成界面,資料庫會顯示詳細的資料庫資訊:

<a href="https://s3.51cto.com/oss/201711/02/261587e97e83c1a1c4314461fc0f63df.jpg" target="_blank"></a>

測試資料庫的連接配接

在配置檔案添加環境變量:

<code>vim ~/.bash_profile</code>

<code> </code> 

<code>export</code> <code>ORACLE_SID=orcl</code>

<code>source</code> <code>~/.bash_profile</code>

登入資料庫:

<code>[oracle@temp-</code><code>test</code> <code>~]$ sqlplus sys</code><code>/oracle</code> <code>as sysdba</code>

<code>SQL*Plus: Release 11.2.0.1.0 Production on Thu Nov 2 19:40:58 2017</code>

<code>Copyright (c) 1982, 2009, Oracle.  All rights reserved.</code>

<code>Connected to:</code>

<code>Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production</code>

<code>With the Partitioning, OLAP, Data Mining and Real Application Testing options</code>

<code>SQL&gt;</code>

檢視資料:

<code>SQL&gt; </code><code>select</code> <code>name</code><code>,created,log_mode,open_mode </code><code>from</code> <code>v$</code><code>database</code><code>;</code>

<code>NAME</code>  <code>CREATED   LOG_MODE OPEN_MODE</code>

<code>--------- --------- ------------ --------------------</code>

<code>ORCL  02-NOV-17 NOARCHIVELOG </code><code>READ</code> <code>WRITE</code>

 本文轉自 酥心糖 51CTO部落格,原文連結:http://blog.51cto.com/tryingstuff/1978526