Oracle Linux 6+udev+Oracle11gR2+Oracle ASM

來源:互聯網
上載者:User
Oracle Linux 4.7 配置Oracle ASM的文檔在
http://blog.csdn.net/liumengcheng/article/details/37358567

Oracle Linux 6安裝Oracle11g R2和Oracle Linux 4.7安裝Oracle10g R2不一樣的地方是:
需要的rpm包:
binutils-2.20.51.0.2-5.11.el6.i686
compat-libcap1-1.10-1.i686
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6.i686
gcc-c++-4.4.4-13.el6.i686
glibc-2.12-1.7.el6.i686
glibc-devel-2.12-1.7.el6.i686
ksh( 這個不要安裝)
libgcc-4.4.4-13.el6.i686
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6.i686
sysstat-9.0.4-11.el6.i686
另外還要
unixODBC-2.2.14-11.el6.i686 
unixODBC-devel-2.2.14-11.el6.i686 
pdksh-5.2.14( 要裝這個)
核心參數:
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 = 1048576
提升shell限制
在檔案/etc/security/limits.conf中添加如下內容:
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536

其他都一樣

root使用者掛載oracle安裝介質iso,
mount /dev/cdrom /mnt/cdrom
然後oracle使用者在家目錄執行/mnt/cdrom/runInstaller
選擇僅安裝資料庫軟體,按提示一步步做,這樣oracle資料庫軟體就裝好了


ASM disk的建立:
ASM的磁碟我在這裡使用udev,而不是ASMLib(紅帽企業版6以後的系統貌似不能用ASMLib了)。
使用udev的好處是不管磁碟和sda,sdb,sdc這些怎麼變都沒問題,因為udev只看磁碟的uuid;
當你頻繁的給系統添加,刪除磁碟,或者兩個節點公用一組磁碟的時候,udev的好處就體現出來了。
說得再簡單點,通過udev,可以把指定的磁碟(通過uuid唯一確定磁碟)映射到/dev/asm-diskb,/dev/asm-diskc,/dev/asm-diskd這樣的裝置檔案
其實你看/etc/fstab檔案裡的內容,掛載的目錄對應的裝置並不是/dev/sda1,/dev/sdb1這些,而是uuid


Oracle Linux 6如下:
1,查看磁碟的uuid
scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
注意:由於我做實驗用的是VirtualBox虛擬機器,添加磁碟的時候要注意,要把磁碟載入現有的磁碟機下,不能建立磁碟機再添加磁碟,否
則uuid會查看不到。現有的磁碟機就是在安裝虛擬機器的時候系統磁碟所對應的那個SATA磁碟機


2,建置規則檔案
我這裡新增了3個磁碟,所以指令碼如下所示,用root使用者執行這個指令碼(指令碼中的owner和group可以改成其他的,這裡只是為了簡單,所以直接用了oracle使用者和dba組),會建置規則檔案/etc/udev/rules.d/99-oracle-asmdevices.rules

for i in b c d ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", 


RESULT==\"`/sbin/scsi_id  --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"oracle\", 


GROUP=\"dba\", MODE=\"0660\""      >>  /etc/udev/rules.d/99-oracle-asmdevices.rules
done


3,重啟udev裝置
/sbin/udevadm control --reload-rules
/sbin/start_udev

4,檢查udev裝置
ls -lsa /dev/asm*

5,測試udev裝置
udevadm info --query=all --path=/sys/block/sdb
udevadm info --query=all --name=asm-diskb

機器重啟後,使用fdisk -l查看不到原來的硬碟了
此時執行start_udev,然後fdisk -l又能看到原來的磁碟了

在安裝好oracle資料庫軟體後,用oracle使用者執行dbca,發現無法配置ASM(這時候才知道要裝 Oracle Grid Infrastructure
)。為了圖省力。我用oracle使用者裝了Oracle Grid Infrastructure,且僅安裝軟體,
在安裝軟體完後按照提示用root使用者執行
[root@ole ~]# /u01/app/11.2.0/grid/crs/install/roothas.pl
2014-07-08 12:57:33: Checking for super user privileges
2014-07-08 12:57:33: User has super user privileges
2014-07-08 12:57:33: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node ole successfully pinned.
Adding daemon to inittab
CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: 對裝置不適當的 ioctl 操作
ohasd failed to start: 對裝置不適當的 ioctl 操作 at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.


遇到這種情況不用急,執行 /u01/app/11.2.0/grid/crs/install/roothas.pl -delete -force -verbose來清除之前的資訊,
然後啟動另一個終端,我們稱作終端2,用root執行輸入 /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1,別按斷行符號鍵
這時我們再執行roothas.pl這個指令碼,
當出現 Adding daemon to inittab這條資訊的時候,終端2執行命令:
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
則能成功:
[root@ole grid]# /u01/app/11.2.0/grid/perl/bin/perl -I/u01/app/11.2.0/grid/perl/lib -I/u01/app/11.2.0/grid/crs/install 


/u01/app/11.2.0/grid/crs/install/roothas.pl
2014-07-08 14:44:45: Checking for super user privileges
2014-07-08 14:44:45: User has super user privileges
2014-07-08 14:44:45: Parsing the host name
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
LOCAL ADD MODE
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
CRS-4664: Node ole successfully pinned.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
ADVM/ACFS is not supported on oraclelinux-release-6Server-0.0.5.i686








ole     2014/07/08 14:45:04     /u01/app/11.2.0/grid/cdata/ole/backup_20140708_144504.olr
Successfully configured Oracle Grid Infrastructure for a Standalone Server


用oracle使用者執行crs_stat -t,如果出來資訊則說明has啟動成功。  
用oracle使用者修改.bash_profile(本來這個檔案的內容是針對oracle資料庫的,現在要建ASM執行個體,所以我在這裡改了其中的兩個環境變數):
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM
在Xmanager的Xshell終端中輸入asmca,這時候就能建立ASM執行個體,配置磁碟組了
記得asm_diskstring和發現路徑都是/dev/asm*




ASM執行個體建立好後再輸入crs_stat -t
[oracle@ole ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.DGROUP1.dg ora....up.type ONLINE    ONLINE    ole
ora.asm        ora.asm.type   ONLINE    ONLINE    ole
ora.cssd       ora.cssd.type  ONLINE    ONLINE    ole
ora.diskmon    ora....on.type ONLINE    ONLINE    ole

進入sqlplus執行select name||header_status||path from v$asm_disk;也能查詢出在asmca中建立的磁碟


sqlplus / as sysasm登入(如果是sysdba會出現錯誤ORA-15260: permission denied on ASM disk group)
然後建立磁碟組
create diskgroup dgtest normal redundancy
failgroup fg1 disk '/dev/asm-diskc' name DISKC
failgroup fg2 disk '/dev/asm-diskd' name DISKD;

查看磁碟和磁碟組資訊:
col state format a10
col name format a15
col failgroup format a20  
set line 200
select  STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;
select  GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup;

效果如下:


刪除diskgroup:
drop diskgroup dgtest including contents;


mount:
ALTER DISKGROUP dgtest DISMOUNT;
ALTER DISKGROUP dgtest MOUNT;
ALTER DISKGROUP ALL DISMOUNT;
ALTER DISKGROUP ALL MOUNT;


為diskgroup增加disk:
alter diskgroup dgtest add disk '/dev/asm-diske' name
DISKE,'/dev/asm-diskf' name DISKF;


從diskgroup刪除disk:
alter diskgroup dgtest drop disk DISKF;

用grid軟體下的netca建立監聽程式

用dbca建立基於ASM的資料庫:

前5步和普通的dbca建庫都一樣,從第六步開始,





下面的和普通的dbca建庫一樣,在此就省略了。


注意:

重啟作業系統後ohasd服務無法自動重啟了。
由於Oracle Linux 6 已經廢棄了inittab這種機制,所以無法自動啟動ohasd了,
11.2.0.1不支援Oracle Linux 6,11.2.0.3才支援Oracle Linux 6
用root使用者手動執行/etc/init.d/init.ohasd run &
這樣oracle asm和rdbms就能順利啟動了

記得將oracle使用者的環境變數切換回資料庫的環境變數,比如ORACLE_SID改為orcl,ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.