<a href="http://vnimos.blog.51cto.com/2014866/1221361#T1">一、安裝前的準備</a>
<a href="http://vnimos.blog.51cto.com/2014866/1221361#T2">二、安裝網格基礎架構</a>
<a href="http://vnimos.blog.51cto.com/2014866/1221377#T3">三、安裝資料庫軟體</a>
<a href="http://vnimos.blog.51cto.com/2014866/1221377#T4">四、建立監聽</a>
<a href="http://vnimos.blog.51cto.com/2014866/1221377#T5">五、建立資料庫執行個體</a>
1.1 确定作業系統環境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<code># cat /etc/redhat-release</code>
<code>Red Hat Enterprise Linux Server release 6.2 (Santiago)</code>
<code># uname -a</code>
<code>Linux ora11g.vnimos.org 2.6.32-220.el6.x86_64 </code><code>#1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux</code>
<code># free -m</code>
<code> </code><code>total used </code><code>free</code> <code>shared buffers cached</code>
<code>Mem: 2008 1309 699 0 62 875</code>
<code>-/+ buffers</code><code>/cache</code><code>: 371 1637</code>
<code>Swap: 509 0 509</code>
<code># fdisk -l</code>
<code>Disk </code><code>/dev/sda</code><code>: 32.2 GB, 32212254720 bytes</code>
<code>255 heads, 63 sectors</code><code>/track</code><code>, 3916 cylinders</code>
<code>Units = cylinders of 16065 * 512 = 8225280 bytes</code>
<code> </code><code>Device Boot Start End Blocks Id System</code>
<code>/dev/sda1</code> <code>* 1 5 40131 83 Linux</code>
<code>/dev/sda2</code> <code>6 2172 17406427+ 8e Linux LVM</code>
<code>/dev/sda3</code> <code>2173 2237 522112+ 82 Linux swap / Solaris</code>
<code>/dev/sda4</code> <code>2238 3916 13486567+ 5 Extended</code>
<code>/dev/sda5</code> <code>2238 2542 2449881 83 Linux</code>
<code>/dev/sda6</code> <code>2543 2847 2449881 83 Linux</code>
<code>/dev/sda7</code> <code>2848 3152 2449881 83 Linux</code>
<code>/dev/sda8</code> <code>3153 3457 2449881 83 Linux</code>
<code>/dev/sda9</code> <code>3458 3765 3077120 83 Linux</code>
<code># df -h</code>
<code>Filesystem Size Used Avail Use% Mounted on</code>
<code>/dev/mapper/Vol0-root</code>
<code> </code><code>7.6G 3.2G 4.1G 41% /</code>
<code>/dev/mapper/Vol0-oracle</code>
<code> </code><code>8.6G 101M 747M 1% </code><code>/u01</code>
<code>/dev/sda1</code> <code>38M 16M 21M 42% </code><code>/boot</code>
<code>tmpfs 1005M 0 1005M 0% </code><code>/dev/shm</code>
如果沒有滿足1G記憶體的要求,雖然對安裝的影響也不是很大,但會在安裝正式開始前收到一個先決條件檢查不通過的“友情警告”資訊。
Swap交換區大小與實體記憶體大小的比例關系的一般規律如下:
如果實體記憶體在1G 到2G 之間,Swap 配置設定大小建議是實體記憶體的1.5倍;
如果實體記憶體在2G 到16G 之間,Swap 建議與實體記憶體大小保持一緻;
如果實體記憶體在16G 以上,Swap 大小建議保證有16G即可。
這邊僅用于測試,故隻配置設定了512M的swap空間,可以忽略警告資訊。
因為Oracle 11gR2中,ASM必須單獨安裝Grid Infrastructure,再加上資料庫軟體的安裝,所需要的磁盤大小一般不超過8G,是以應保證/u01目錄所在的檔案系統可用空間在8G以上即可。
資料庫檔案将采用ASM方式存儲,這裡用了4個2.5G的raw分區用于活動的資料庫檔案+DATA的ASM磁盤組,1個3G的raw分區用于閃回恢複區+FRA的ASM磁盤組
因為在安裝過程中,有一部分資料會寫入到“/tmp”目錄下,建議該目錄所在的檔案系統空間大小不要小于1G
1.2 網絡參數的配置
<a target="_blank" href="http://blog.51cto.com/attachment/201306/185441535.png"></a>
<code># cat /etc/sysconfig/network</code>
<code>NETWORKING=</code><code>yes</code>
<code>NETWORKING_IPV6=no</code>
<code>HOSTNAME=ora11g.vnimos.org</code>
<code># service NetworkManager stop</code>
<code># chkconfig NetworkManager off</code>
<code># cat /etc/sysconfig/network-scripts/ifcfg-eth0</code>
<code>DEVICE=eth0</code>
<code>BOOTPROTO=static</code>
<code>HWADDR=00:0C:29:32:C3:9C</code>
<code>IPADDR=192.168.0.90</code>
<code>NETMASK=255.255.255.0</code>
<code>ONBOOT=</code><code>yes</code>
<code># cat /etc/hosts</code>
<code>127.0.0.1 localhost.localdomain localhost</code>
<code>192.168.0.90 ora11g.vnimos.org ora11g</code>
<code>//</code><code>必須至少包含以上兩行、三列(IP 長名 短名),否則安裝的時候将會出現”Oracle Net Configuration Assistant failed”的錯誤</code>
1.3 oracle使用者環境變量、系統參數的配置
<code># groupadd oinstall</code>
<code># groupadd dba</code>
<code># useradd -g oinstall -G dba,root oracle</code>
<code># echo "oracle" | passwd --stdin oracle</code>
<code># mkdir -p /u01/app/{oracle,oraInventory}</code>
<code># chown oracle:oinstall /u01/app/oracle</code>
<code># chown oracle:oinstall /u01/app/oraInventory</code>
<code># vi /home/oracle/.bash_profile</code>
<code>export</code> <code>ORACLE_BASE=</code><code>/u01/app/oracle</code>
<code>export</code> <code>ORACLE_HOME=$ORACLE_BASE</code><code>/product/11</code><code>.2.0</code><code>/dbhome_1</code>
<code>export</code> <code>ORACLE_SID=orcl</code>
<code>export</code> <code>LD_LIBRARY_PATH=$ORACLE_HOME</code><code>/lib</code>
<code>export</code> <code>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:</code><code>/usr/lib</code><code>:</code><code>/usr/X11R6/lib</code>
<code>export</code> <code>LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME</code><code>/rdbms/lib</code>
<code>export</code> <code>CLASS_PATH=$ORACLE_HOME</code><code>/JRE</code><code>:$ORACLE_HOME</code><code>/jlib</code>
<code>export</code> <code>CLASS_PATH=$CLASS_PATH:$ORACLE_HOME</code><code>/rdbms/jlib</code>
<code>export</code> <code>CLASS_PATH=$CLASS_PATH:$ORACLE_HOME</code><code>/network/jlib</code>
<code>export</code> <code>TNS_ADMIN=$ORACLE_HOME</code><code>/network/admin</code>
<code>export</code> <code>NLS_LANG=american_america.AL32UTF8</code>
<code>export</code> <code>ORACLE_TERM=xterm</code>
<code>export</code> <code>EDITOR=</code><code>vi</code>
<code>export</code> <code>PATH=$ORACLE_HOME</code><code>/bin</code><code>:$PATH</code>
<code>export</code> <code>LANG=en_US</code>
<code># vi /etc/sysctl.conf</code>
<code>kernel.shmmax = 1073741824 </code><code>//</code><code>實體記憶體的一半(位元組)</code>
<code># sysctl -p</code>
32
33
34
35
36
37
38
39
40
41
42
<code>/dev/sda9</code> <code>3458 3916 3686886 83 Linux</code>
<code># vi /etc/sysconfig/rawdevices</code>
<code>/dev/raw/raw5</code> <code>/dev/sda5</code>
<code>/dev/raw/raw6</code> <code>/dev/sda6</code>
<code>/dev/raw/raw7</code> <code>/dev/sda7</code>
<code>/dev/raw/raw8</code> <code>/dev/sda8</code>
<code>/dev/raw/raw9</code> <code>/dev/sda9</code>
<code># chmod +x /etc/rc.d/init.d/rawdevices</code>
<code># chkconfig --add rawdevices</code>
<code># chkconfig rawdevices on</code>
<code># service rawdevices start</code>
<code>Assigning devices:</code>
<code> </code><code>/dev/raw/raw5</code> <code>--> </code><code>/dev/sda5</code>
<code>/dev/raw/raw5</code><code>: bound to major 8, minor 5</code>
<code> </code><code>/dev/raw/raw6</code> <code>--> </code><code>/dev/sda6</code>
<code>/dev/raw/raw6</code><code>: bound to major 8, minor 6</code>
<code> </code><code>/dev/raw/raw7</code> <code>--> </code><code>/dev/sda7</code>
<code>/dev/raw/raw7</code><code>: bound to major 8, minor 7</code>
<code> </code><code>/dev/raw/raw8</code> <code>--> </code><code>/dev/sda8</code>
<code>/dev/raw/raw8</code><code>: bound to major 8, minor 8</code>
<code> </code><code>/dev/raw/raw9</code> <code>--> </code><code>/dev/sda9</code>
<code>/dev/raw/raw9</code><code>: bound to major 8, minor 9</code>
<code>done</code>
<code># raw -qa</code>
2.1 安裝grid
Oracle 11gR2的安裝界面跟之前版本比較起來有很大的不同,整體界面更加清新,更加簡潔了,新增了fixup腳本,在安裝過程中,安裝程式将會檢查推薦的作業系統核心參數設定以及必須的軟體包,對于不符合要求的部分将會自動生成runfixup.sh,隻需要手動以root使用者執行該腳本即可,不需要手動調整相關的系統參數配置了。
<code># rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm //RHEL6CD光牒預設沒有該軟體包,可直接安裝RHEL5的rpm軟體包</code>
<code># yum -y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel "compat*"</code>
<code>//</code><code>以上的軟體必須包含32位的軟體包,否則如果缺少,可能在安裝大約到65%,開始編譯的時候出現</code><code>"Error in invoking target 'all_no_orcl' of makefile"</code><code>的錯誤</code>
<code># unzip -d /stage/ linux.x64_11gR2_grid.zip</code>
<code># chown -R oracle.oinstall /stage/grid</code>
<code># xhost +</code>
<code>access control disabled, clients can connect from any host</code>
<code># su - oracle</code>
<code>$ </code><code>cd</code> <code>/stage/grid/</code>
<code>$ .</code><code>/runInstaller</code>
1. 為一台獨立的伺服器安裝并配置網格基礎架構:
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654639.png"></a>
2.選擇支援的語言:
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654163.png"></a>
3. 建立ASM磁盤組(備援類型High:雙鏡像Normal:單鏡像[預設], External:不做備援)
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654782.png"></a>
4. 為賬戶建立統一的ASM密碼:oracle_4U
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654719.png"></a>
5. 選擇特權作業系統組:dba (忽略告警:Yes)
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654469.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194654475.png"></a>
6. 定義安裝位置(修改SoftwareLocation:/u01/app/oracle/product/11.2.0/grid )
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655936.png"></a>
7. 定義Inventory位置
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655390.png"></a>
8. 執行先決條件檢查
根據提示安裝好缺少的軟體包(圖中所提示的軟體包由于已安裝了更高版本了,是以可以忽視警告)
# yum -y install "libaio*" "libaio-devel*" "libgcc*" "libstdc++*" "unixODBC*" "unixODBC-devel*"
選擇Fix & Check Again (根據提示框以root身份登入shell,執行完/tmp/CVU_11.2.0.1.0_oracle/runfixup.sh腳本,傳回視窗點選OK)
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655822.png"></a>
$ su - root
# /tmp/CVU_11.2.0.1.0_oracle/runfixup.sh
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655279.png"></a>
勾選忽略所有,直接進入下一步
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655621.png"></a>
9. 确認安裝概要
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194655250.png"></a>
10. 開始安裝
<a target="_blank" href="http://blog.51cto.com/attachment/201306/195917105.png"></a>
10.1 以root身份執行以下兩條腳本
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194657420.png"></a>
如果執行腳本的時候停在Adding daemon to inittab,這是 11.2.0.1和11.2.0.2 在RHEL6上的bug,可以以root身份執行以下指令:
# dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194658328.png"></a>
10.2 繼續安裝
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194658375.png"></a>
11. 安裝完成
<a target="_blank" href="http://blog.51cto.com/attachment/201306/194658498.png"></a>
2.2 建立FRA磁盤組(Fast Recovery Area)
<code>$ . oraenv</code>
<code>ORACLE_SID = [orcl] ? +ASM</code>
<code>The Oracle base </code><code>for</code> <code>ORACLE_HOME=</code><code>/u01/app/oracle/product/11</code><code>.2.0</code><code>/grid</code> <code>is </code><code>/u01/app/oracle</code>
<code>$ </code><code>env</code> <code>| </code><code>grep</code> <code>SID</code>
<code>ORACLE_SID=+ASM</code>
<code>$ asmca</code>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/200614735.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/200614698.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/200614898.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/200615525.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201306/200615221.png"></a>
2.3 安裝後的檢查、配置
<code>檢查是否正确安裝:</code>
<code>$ </code><code>echo</code> <code>$ORACLE_SID</code>
<code>+ASM</code>
<code>$ .</code><code>/crsctl</code> <code>check has</code>
<code>CRS-4638: Oracle High Availability Services is online</code>
<code>$ .</code><code>/crs_stat</code> <code>-t</code>
<code>Name Type Target State Host</code>
<code>------------------------------------------------------------</code>
<code>ora.DATA.dg ora....up.</code><code>type</code> <code>ONLINE ONLINE ora11g</code>
<code>ora.FRA.dg ora....up.</code><code>type</code> <code>ONLINE ONLINE ora11g</code>
<code>ora.asm ora.asm.</code><code>type</code> <code>ONLINE ONLINE ora11g</code>
<code>ora.cssd ora.cssd.</code><code>type</code> <code>ONLINE ONLINE ora11g</code>
<code>ora.diskmon ora....on.</code><code>type</code> <code>ONLINE ONLINE ora11g</code>
<code>設定開機自動啟動crs:</code>
<code># tail -n 1 /etc/inittab //安裝完成預設會向inittab檔案添加該記錄</code>
<code>h1:35:respawn:</code><code>/etc/init</code><code>.d</code><code>/init</code><code>.ohasd run ></code><code>/dev/null</code> <code>2>&1 <</code><code>/dev/null</code>
<code># cat >> /etc/rc.local <<EOF //RHEL6必須手動添加該記錄</code>
<code>/etc/init</code><code>.d</code><code>/init</code><code>.ohasd run ></code><code>/dev/null</code> <code>2>&1 <</code><code>/dev/null</code> <code>&</code>
<code>EOF</code>
2.4 解除安裝、重裝
如果grid安裝失敗,需要解除安裝幹淨才能重新安裝,否則仍然安裝不成功。
<code>#rm -rf /etc/ora*</code>
<code>#vi /etc/inittab</code>
<code>h1:35:respawn:</code><code>/etc/init</code><code>.d</code><code>/init</code><code>.ohasdrun ></code><code>/dev/null</code> <code>2>&1 <</code><code>/dev/null</code> <code>//</code><code>删除此行</code>
<code>#rm -rf /u01/app/oracle/product/11.2.0/grid/ //删除grid的安裝檔案</code>
<code># for i in {5..9} ;do dd if=/dev/zero of=/dev/raw/raw$i bs=1024 count=10 ;done //低格裸裝置(清除ASM磁盤組資訊)</code>
本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1221361,如需轉載請自行聯系原作者