1. 程式人生 > >Oracle下建立ASM磁碟總結

Oracle下建立ASM磁碟總結

1.3 總結

1  前言
無論是安裝單機版的asm還是rac都離不開ASM磁碟組的建立,建立ASM磁碟組的關鍵是建立好需要的asm磁碟,發現很多網友安裝grid軟體和grid例項,都在磁碟的建立這裡有很大的問題,本人又是喜歡總結的人,那麼今天我就總結了下各種建立asm磁碟的方法,以備大家查閱。
之前的2篇文章中用到了asm磁碟的建立,連線如下:
Oracle 單例項ASM+11gR2安裝 :http://blog.itpub.net/26736162/viewspace-1205206/
在vmware  workstations + rhel6.5 下 一步一步搭建oracle 11gR2 rac+dg :http://blog.itpub.net/26736162/viewspace-1328156/


2  建立asm磁碟的各種方法
2.1 方法一:Faking 方式
該方法不需要新增額外的磁碟,直接在已有的磁碟上來建立,本人推薦的方法之一。
------------------------ 直接貼指令碼,root使用者下執行
mkdir -p /oracle/asmdisk
dd if=/dev/zero of=/oracle/asmdisk/disk1 bs=1024k count=1000
dd if=/dev/zero of=/oracle/asmdisk/disk2 bs=1024k count=1000
dd if=/dev/zero of=/oracle/asmdisk/disk3 bs=1024k count=1000
dd if=/dev/zero of=/oracle/asmdisk/disk4 bs=1024k count=1000
dd if=/dev/zero of=/oracle/asmdisk/disk5 bs=1024k count=1000
/sbin/losetup /dev/loop1 /oracle/asmdisk/disk1
/sbin/losetup /dev/loop2 /oracle/asmdisk/disk2
/sbin/losetup /dev/loop3 /oracle/asmdisk/disk3
/sbin/losetup /dev/loop4 /oracle/asmdisk/disk4
/sbin/losetup /dev/loop5 /oracle/asmdisk/disk5
raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3
raw /dev/raw/raw4 /dev/loop4
raw /dev/raw/raw5 /dev/loop5
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
chmod 660 /dev/raw/raw5
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chown oracle:dba /dev/raw/raw5
------ 將以下內容新增到檔案/etc/rc.local檔案中
/sbin/losetup /dev/loop1 /oracle/asmdisk/disk1
/sbin/losetup /dev/loop2 /oracle/asmdisk/disk2
/sbin/losetup /dev/loop3 /oracle/asmdisk/disk3
/sbin/losetup /dev/loop4 /oracle/asmdisk/disk4
/sbin/losetup /dev/loop5 /oracle/asmdisk/disk5
raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
raw /dev/raw/raw3 /dev/loop3
raw /dev/raw/raw4 /dev/loop4
raw /dev/raw/raw5 /dev/loop5
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
chmod 660 /dev/raw/raw5
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chown oracle:dba /dev/raw/raw5
檢視結果:
  


2.2 方法二:直接修改/etc/sysconfig/rawdevices配置raw(rhel6之後不支援)
採用下面的方式來增加磁碟,即直接修改/etc/sysconfig/rawdevices(root帳戶)
Redhat平臺對raw裝置的配置在redhat 5之後有了變化。在redhat 5之前,直接配置/etc/sysconfig/rawdevices,通過/etc/init.d/rawdevices來管理raw裝置的啟動和關 閉。在Redhat 5之後,原來的raw裝置介面已經取消了,redhat 5中通過udev規則進行配置。 要配置,需要編輯/etc/udev/rules.d/60-raw.rules這個檔案。
[
[email protected]
~]# vim /etc/sysconfig/rawdevices
[[email protected] ~]# cat /etc/sysconfig/rawdevices --檢視增加的內容為raw6,raw7
/dev/raw/raw2 /dev/sdb6
/dev/raw/raw3 /dev/sdb7
chown oracle:dba /dev/raw/raw[6-7]  --修改屬主,否則建立磁碟組時提示許可權不夠
[[email protected] ~]# chown oracle:dba /dev/raw/raw6
[[email protected] ~]# chown oracle:dba /dev/raw/raw7
[
[email protected]
~]# ll /dev/raw/
total 0
crw-rw---- 1 oracle dba 162, 1 Dec 30 14:47 raw1
crw-rw---- 1 oracle dba 162, 2 Dec 30 14:47 raw2
crw-rw---- 1 oracle dba 162, 3 Dec 30 14:36 raw3
crw-rw---- 1 oracle dba 162, 4 Dec 30 14:36 raw4
crw-rw---- 1 oracle dba 162, 5 Dec 30 14:36 raw5
crw------- 1 oracle dba 162, 6 Dec 30 14:36 raw6
crw------- 1 oracle dba 162, 7 Dec 30 14:36 raw7


重啟裸裝置服務
[[email protected] ~]# /sbin/service rawdevices restart
Assigning devices:
/dev/raw/raw6  -->   /dev/sdb6
/dev/raw/raw6: bound to major 8, minor 22
/dev/raw/raw7  -->   /dev/sdb7
/dev/raw/raw7: bound to major 8, minor 23
done
將下面的內容增加到/etc/rc.local檔案(root帳戶),重新啟動主機,使得屬主變為oracle
chown oracle:dba /dev/raw/raw6
chown oracle:dba /dev/raw/raw7
chmod 660 /dev/raw/raw6
chmod 660 /dev/raw/raw7
 
SQL> select instance_name,status from v$instance;
INSTANCE_NAME    STATUS
---------------- ------------
+ASM        STARTED
 
SQL> set line 999
SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME STATE   FREE_MB   REQUIRED_MIRROR_FREE_MB  USABLE_FILE_MB
----- -------- --------- ------------------------ --------------
DATA MOUNTED  941    0                    941
DG1  MOUNTED 1862   0                    931
 
SQL> create diskgroup DG1 normal redundancy disk '/dev/raw/raw6','/dev/raw/raw7';  --建立磁碟組DG1
 
SQL> select * from v$fixed_table where name like '%ASM%'; --檢視和asm相關的檢視
 
SQL> select name,allocation_unit_size,state,type,free_mb,required_mirror_free_mb req_mi_fr_mb,usable_file_mb from v$asm_diskgroup;
NAME ALLOCATION_UNIT_SIZE STATE  TYPE  FREE_MB REQ_MI_FR_MB USABLE_FILE_MB
---- -------------------- ------- ------ ------- ------------ ---------------
DG1 1048576              MOUNTED NORMAL 296    0           148
 
SQL> create diskgroup DG2 normal redundancy disk '/dev/raw/raw3','/dev/raw/raw4';   --建立磁碟組DG2
 
SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;   --檢視磁碟組的狀態及資訊
NAME STATE  FREE_MB    REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---- ------- ---------- ----------------------- --------------
DG1 MOUNTED 296      0                       148
DG2 MOUNTED 296      0                       148
 
SQL> select disk_number,total_mb,free_mb from v$asm_disk;
DISK_NUMBER TOTAL_MB  FREE_MB
----------- ---------- ----------
  1    199    148
  0    199    148
  1    199    148
  0    199    148
重新啟動Linux 主機後
SQL> startup    --重新啟動ASM例項,收到了磁碟組insufficient 資訊
ASM instance started
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG2"
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG1"
SQL> ho ls -hlt /dev/raw    # Linux主機重新啟動之後屬主性質已發生變化
total 0
crw------- 1 root root 162, 4 Nov 10 20:28 raw4
crw------- 1 root root 162, 3 Nov 10 20:28 raw3
crw------- 1 root root 162, 2 Nov 10 20:28 raw2
crw------- 1 root root 162, 1 Nov 10 20:28 raw1
原因:原始裝置在引導時會重新對映。預設情況下,在引導時原始裝置的擁有者將更改為root使用者
    將下面的內容增加到/etc/rc.local檔案(root帳戶),重新啟動主機,使得屬主變為oracle,則不再出現類似的提示
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
SQL> drop diskgroup dg1;   --將剛才建立的兩個磁碟組刪除
SQL> drop diskgroup dg2;
使用root帳戶清除/etc/udev/rules.d/60-raw.rules /etc/sysconfig/rawdevices以及/etc/rc.local剛剛增加的記錄
便於下面使用asmlib來建立asm磁碟


2.3 方法三:udev方式
又可以分為2種方式,採用uuid來繫結或採用raw來繫結,採用uuid需要新增多塊磁碟,而採用raw方式不需要新增多個磁碟。
2.3.1 udev下的方法一:uuid方式 
1、RedHat 5 udev SCSI Rules配置
1 獲取需要繫結為ASM Disk的磁碟uuid
# /sbin/scsi_id -g -u -s /block/sdb
SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_
 
2 新建/etc/udev/rules.d/99-oracle-asmdevices.rules,增加以下內容
KERNEL=="sd*1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_",NAME="asm-disk1",OWNER="oracle",GROUP="dba",MODE="0660"

3 重啟服務:
[[email protected] ~]# start_udev
Starting udev:         [  OK  ]
 
2、RedHat 6 udev SCSI Rules
1 編輯/etc/scsi_id.config檔案,如果該檔案不存在,則建立該檔案,新增如下行:
options=--whitelisted --replace-whitespace
備註:在測試中,此步驟可以省略

2 獲取需要繫結為ASM Disk的磁碟uuid,比如我們要使用/dev/sdc作為ASM磁碟,那麼:
# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
1ATA_VBOX_HARDDISK_VB36a9e548-1838194a

# /sbin/scsi_id -g -u -d /dev/sdb
SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_
 
3 新建/etc/udev/rules.d/99-oracle-asmdevices.rules增加以下內容
KERNEL=="sd*1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="SATA_VBOX_HARDDISK_VBd306dbe0-df3367e3_",NAME="asm-disk1",OWNER="oracle",GROUP="dba",MODE="0660"

KERNEL=="dm-*",PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600c0ff00015c7b70253c05001000000",OWNER:="grid",GROUP:="oinstall"
KERNEL=="dm-*",PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600c0ff00015c7b72553c05001000000",OWNER:="grid",GROUP:="oinstall"
KERNEL=="dm-*",PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600c0ff00015c7b77165c05001000000",OWNER:="grid",GROUP:="oinstall"
KERNEL=="dm-*",PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600c0ff00015c7b73753c05001000000",OWNER:="grid",GROUP:="oinstall"
KERNEL=="dm-*",PROGRAM="scsi_id --page=0x83 --whitelisted --device=/dev/%k",RESULT=="3600c0ff00015c7b78065c05001000000",OWNER:="grid",GROUP:="oinstall"

KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="3600c0ff00015c7b70253c05001000000",NAME="asmocrvote01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="3600c0ff00015c7b77165c05001000000",NAME="asmdata01", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="3600c0ff00015c7b73753c05001000000",NAME="asmdata02", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="3600c0ff00015c7b72553c05001000000",NAME="asmfra01",OWNER="grid",GROUP="asmadmin",MODE="0660"

4 重啟服務:
[[email protected] ~]# start_udev
Starting udev:         [  OK  ]
 
 一、配置udev繫結的scsi_id
注意以下兩點:
首先切換到root使用者下:
①不同的作業系統scsi_id命令的位置不同。
[[email protected] ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m
 
[[email protected] ~]# which scsi_id
/sbin/scsi_id

②編輯/etc/scsi_id.config檔案,如果該檔案不存在,則建立該檔案並新增如下行:
[[email protected] ~]# vim /etc/scsi_id.config
options=--whitelisted --replace-whitespace

5.3如果是使用VMware虛擬機器,直接輸入scsi_id命令可能無法獲取id,需修改VMware檔案引數,這一步如果在新增磁碟的時候做過這一步的話就可以跳過了,直接獲取uuid即可
[[email protected] ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
[[email protected] ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
D:\VMs\Oracle Database 11gR2\Oracle Database 11gR2.vmx
使用文字編輯器編輯該檔案,在尾部新增一行引數:
disk.EnableUUID="TRUE"
儲存檔案,重新啟動虛擬機器。這裡注意修改檔案的時候一定要在關機的狀態下修改,或者scsi_id -g -u /dev/sdc來獲得uuid,-g -u引數在rhel6以後已經不用了
[[email protected] share]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
36000c29fbe57659626ee89b4fba07616
[[email protected] share]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
36000c29384cde894e087e5f0fcaa80f4
[[email protected] share]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdd
36000c29022aee23728231ed9b1f9743d
[[email protected] share]# scsi_id --whitelisted --replace-whitespace --device=/dev/sde
36000c2938f431664218d1d2632ff1352 
  
  二、建立並配置udev rules檔案
[[email protected] ~]# vim /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29fe0fc917d7e9982742a28ce7c",NAME="asm-diskb",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c293ffc0900fd932348de4b6baf8",NAME="asm-diskc",OWNER="grid",GROUP="asmadmin",MODE="0660"
根據步驟5獲取的ID修改RESULT值
這裡需要注意,一個KERNEL就是一行,不能換行的,我之前就是犯了這個錯誤的
  
新增4塊硬碟:
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29346c1344ffb26f0e5603d519e",NAME="asm-diskb",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29d08ee059a345571054517cd03",NAME="asm-diskc",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c295037a910bfb765af8f400aa07", NAME="asm-diskd",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2982bda048f642acd3c429ec983", NAME="asm-diske",OWNER="grid",GROUP="asmadmin",MODE="0660"
  
注意:這裡的GROUP="asmadmin",最好修改成GROUP="asmdba",不然最後可能用dbca建立資料庫例項的時候找不見磁碟組。
   

 三、udevadm進行測試
用udevadm進行測試,注意udevadm命令不接受/dev/sdc這樣的掛載裝置名,必須是使用/sys/block/sdc這樣的原始裝置名。
udevadm test /sys/block/sdcudevadm info --query=all --path=/sys/block/sdcudevadm info --query=all --name=asm-disk1
在顯示中,有類似如下輸出,表示測試正確,/dev/sdc裝置在udev啟動以後將會繫結為/dev/asm-disk1:
udevadm_test: UDEV_LOG=6
udevadm_test: DEVPATH=/devices/pci0000:00/0000:00:0d.0/host4/target4:0:0/4:0:0:0/block/sdcudevadm_test: MAJOR=8
udevadm_test: MINOR=32
udevadm_test: DEVNAME=/dev/asm-disk1
udevadm_test: DEVTYPE=disk
udevadm_test: ACTION=add
udevadm_test: SUBSYSTEM=block

 四、新增完成後,重啟udev,不同Linux發行版本重啟方式不一樣。
該步驟慢一點,大約可能需要30秒左右吧,等等等等。。。。。。
[[email protected] ~]# start_udev
Starting udev:                [  OK  ]
 
  五、檢視繫結的asm,如果此時還是看不到asm disk,請重啟作業系統後再檢視。
[[email protected] ~]# ll /dev/asm*
brw-rw---- 1 grid asmadmin 8, 17 Oct 17 14:26 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 33 Oct 17 14:26 /dev/asm-diskc
   
   
2.3.2 udev下的方法二:raw方式
a.配置裸裝置對映,修改/etc/udev/rules.d/60-raw.rules檔案
使用root帳戶修改/etc/udev/rules.d/60-raw.rules 按如下方式新增磁碟
[[email protected] ~]# cat /etc/udev/rules.d/60-raw.rules       --檢視新增的內容
ACTION=="add",KERNEL=="/dev/sdb8",RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="24",RUN+="/bin/raw /dev/raw/raw8 %M %m"
ACTION=="add",KERNEL=="/dev/sdb9",RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="25",RUN+="/bin/raw /dev/raw/raw9 %M %m"
ACTION=="add",KERNEL=="raw8",OWNER="grid",GROUP="asmadmin",MODE="0660"
ACTION=="add",KERNEL=="raw9",OWNER="grid",GROUP="asmadmin",MODE="0660"
 
[[email protected] ~]# start_udev    #重啟udev服務
Starting udev: [  OK  ]

[[email protected] ~]# raw -qa
/dev/raw/raw1: bound to major 7, minor 1
/dev/raw/raw2: bound to major 7, minor 2
/dev/raw/raw3: bound to major 7, minor 3
/dev/raw/raw4: bound to major 7, minor 4
/dev/raw/raw5: bound to major 7, minor 5
/dev/raw/raw6: bound to major 8, minor 22
/dev/raw/raw7: bound to major 8, minor 23
/dev/raw/raw8: bound to major 8, minor 24
/dev/raw/raw9: bound to major 8, minor 25

[[email protected] ~]# ll /dev/raw*
crw------- 1 root root 162, 0 Dec 30 14:36 /dev/rawctl
/dev/raw:
total 0
crw------- 1 oracle dba      162, 1 Dec 30 15:29 raw1
crw------- 1 oracle dba      162, 2 Dec 30 15:29 raw2
crw------- 1 oracle dba      162, 3 Dec 30 14:36 raw3
crw------- 1 oracle dba      162, 4 Dec 30 14:36 raw4
crw------- 1 oracle dba      162, 5 Dec 30 14:36 raw5
crw------- 1 oracle dba      162, 6 Dec 30 15:29 raw6
crw------- 1 oracle dba      162, 7 Dec 30 15:29 raw7
crw-rw---- 1 grid  asmadmin      162, 8 Dec 30 15:28 raw8
crw-rw---- 1 grid  asmadmin      162, 9 Dec 30 15:28 raw9


SQL> create diskgroup DG2 external redundancy disk '/dev/raw/raw8';
Diskgroup created.

  一、裸裝置概述 
裸裝置:也叫裸分割槽(原始分割槽)是一種沒有經過格式化,不被Unix/Linux通過檔案系統來讀取的特殊字元裝置。裸裝置可以繫結一個分割槽,也可以繫結一個磁碟。 
字元裝置:對字元裝置的讀寫不需要通過OS的buffer。它不可被檔案系統mount。 
塊裝置:對塊裝置的讀寫需要通過OS的buffer,它可以被mount到檔案系統中。
這個與linux的版本相關,在舊版本中,最多隻可以有256個裸裝置,Linux 4下做多可以繫結81Array2個裸裝置。但是在linux下,最多隻能有255個分割槽,所以如果用裸裝置繫結分割槽,最多隻能繫結255個裸裝置。如果是用lvm,則沒有這個限制。
Linux下單個磁碟最多可以有15個分割槽。3個主分割槽 + 1個擴充套件分割槽 + 11個邏輯分割槽。 
建議的分割槽方法是:先分3個主分割槽,第四個分割槽為擴充套件分割槽,然後在擴充套件分割槽中再分成11個邏輯分割槽。 
注意,裸裝置不要繫結在擴充套件分割槽上。  
linux下如果需要使用裸裝置,則需要手工進行繫結,unix下則不用。 
因為Unix中每一個塊裝置都會有一個對應的字元裝置用於非快取(unbuffered)I/O,這就是他對應的裸裝置了。而Linux中rawio的則實現了一套非繫結(unbound)的裸裝置/dev/rawN或者/dev/raw/rawN和一個控制裝置/dev/rawct用來把他們繫結到塊裝置上。所以當需要使用一個裸裝置的時候,就需要把他和一個真實存在的塊裝置對應起來,這一個步驟實際上就是完成了Unix裡的自動對應一個非快取字元裝置。
major和minor device number
在unix/linux系統中,一切都是檔案。所有硬碟、軟盤、鍵盤等裝置都用檔案來代表,對應著/dev下面的檔案。對於應用程式來說,可以像對待普通檔案一樣開啟、關閉、讀寫這些裝置檔案。但是這種檔名,比如/dev/sda、/dev/raw/raw1都是使用者空間名稱,OS Kernel根本不知道這個名稱指的是什麼。在核心空間是通過major、minor device number來區分裝置的。 
major device number可以看作是裝置驅動程式,被同一裝置驅動程式管理的裝置有相同的major device number.這個數字實際是Kernel中device driver table的索引,這個表儲存著不同裝置驅動程式。而minor device number用來代表被訪問的具體裝置。也就是說Kernel根據major device number 找到裝置驅動程式,然後再從minor device number獲得裝置位置等屬性。所有這些major device number 是已經預先分配好的。詳細資訊可以從http://www.lanana.org/docs/device-list/devices-2.6+.txt 檢視。比如裸裝置是162,scsi塊裝置是8 
/etc/udev/rules.d/60-raw.rules 
Redhat平臺對raw裝置的配置在redhat 5之後有了變化。在redhat 5之前,直接配置/etc/sysconfig/rawdevices件,通過/etc/init.d/rawdevices來管理raw裝置的啟動和關 閉。在Redhat 5之後,原來的raw裝置介面已經取消了,redhat 5中通過udev規則進行配置。 要配置,需要編輯/etc/udev/rules.d/60-raw.rules這個檔案。
cat /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.

# An example would be: 
# ACTION=="add",KERNEL=="sda",RUN+="/bin/raw /dev/raw/raw1 %N" 
# to bind /dev/raw/raw1 to /dev/sda, or 
# ACTION=="add",ENV{MAJOR}=="8",ENV{MINOR}=="1",RUN+="/bin/raw /dev/raw/raw2 %M %m" 
# to bind /dev/raw/raw2 to the device with major 8, minor 1. 
其中 
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N" 
配置裝置名稱,用你需要繫結的裝置名稱替換 <device name>(如:/dev/sda1),X為裸裝置號 
主/次號碼: 
ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"  
"A" 和 "B" 是裝置的主/次號碼,X是系統使用的raw裝置號碼。
個人對redhat管理raw的過程理解為: 在redhat 5中,是通過udev來管理raw裝置的,而udev是通過 MAJOR和MINOR來識別 raw裝置 。 故需要將裝置號和裸裝置號進行繫結,而主裝置號和次裝置號可以自行指定或者由系統自動分配。 根據red hat的官方文件中關於raw.rule的示例中說KERNEL==..或ENV{MAJOR}...只需要任意配置一個就可以,但有些網友經過試驗,驗證必須二者同時配置才可以。
配置/etc/udev/rules.d/60-raw.rules檔案
檢視磁碟分割槽情況
# fdisk -l /dev/sdb
Disk /dev/sdb: 4880 MB, 4880072704 bytes
255 heads, 63 sectors/track, 593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
DeviceBoot   Start     End     Blocks   Id  System
/dev/sdb1    1       25      200781   83  Linux
/dev/sdb2    26       50      200812+   83  Linux
配置/etc/udev/rules.d/60-raw.rules檔案
# grep -v ^# /etc/udev/rules.d/60-raw.rules
ACTION=="add",KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",ENV{MAJOR}=="3",ENV{MINOR}=="2",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add",ENV{MAJOR}=="7",ENV{MINOR}=="2",RUN+="/bin/raw /dev/raw/raw2 %M %m"

啟動raw裝置
# start_udev
Starting udev:                  [  OK  ] 

檢視配置情況
# raw -qa
/dev/raw/raw1:  bound to major 8, minor 17 
/dev/raw/raw2:  bound to major 8, minor 18 
這裡筆者不清楚為什麼主裝置號和復裝置號並不和我在/etc/udev/rules.d/60-raw.rules指定的一樣,望瞭解的讀者告知,系統核心資訊如下 
# uname  -a 
Linux rac1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux 
# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.4 (Tikanga) 
可以通過如下方式指定 主裝置號和復裝置號 
# raw /dev/raw/raw1 1 1 
/dev/raw/raw1:  bound to major 1, minor 1 
raw /dev/raw/raw[n] /dev/xxx 
其中n的範圍是0-8191。raw目錄不存在的話會被自動建立。執行這個命令,就會在/dev/raw下生成一個對應的raw[n]檔案用命令方式繫結裸裝置在系統重啟後會失效。
刪除裸裝置 
# raw /dev/raw/raw2 0 0 
/dev/raw/raw2:  bound to major 0, minor 0 
# raw -qa 
/dev/raw/raw1:  bound to major 1, minor 1 
以上設定必須同時修改/etc/udev/rules.d/60-raw.rules才能保證重啟後生效,否則重啟後系統會重新讀取/etc/udev/rules.d/60-raw.rules
如需設定raw裝置的使用者和許可權資訊,可在/etc/udev/rules.d/60-raw.rules檔案裡新增如下資訊:
ACTION=="add",KERNEL=="raw1",OWNER="dave",GROUP="tianlesoftware",MODE="660"
如果有多個raw裝置,可以寫成:
ACTION=="add",KERNEL=="raw[1-4]",OWNER="dave",GROUP="tianlesoftware",MODE="660"
# chown oracle:oinstall /dev/raw/raw[1-4] 
# chmod 775 /dev/raw/raw[1-4]  
注意:在核心2.6.9-89.5AXS2之前使用/etc/sysconfig/rawdevices和/etc/udev/permissions.d/50-udev.permissions進行raw裝置的配置和許可權管理。在核心 2.6.18-128.7AXS3以後則使用了本文介紹的 /etc/udev/rules.d/60-raw.rules進行raw裝置的管理
確定裸裝置的大小比較笨的辦法是,找出看裸裝置對應的是那個實際的塊裝置,然後用fdisk -l /dev/[h,s]dXN看那個塊裝置的大小就好了。比較簡單的辦法是用blockdev命令來計算,如: 
# blockdev --getsize /dev/raw/raw1 
11718750  
11718750表示有多少OS BLIOCK。 
一般一個OS BLOCK大小是512位元組,所以11718750*512/1024/1024= 5722(m) 就是裸裝置的大小。
使用裸裝置作為oracle的資料檔案的注意事項
1、一個裸裝置只能放置一個數據檔案 
2、資料檔案的大小不能超過裸裝置的大小 
如果是日誌檔案,則裸裝置最大可用大小=裸裝置對應分割槽大小 - 1 * 512 (保留一個redo lock) 
如果是資料檔案,則裸裝置最大可用大小=裸裝置對應分割槽大小 - 2 * db_block_size(保留兩個block)為了簡單起見,對所有的檔案設定稱比裸裝置小1M即可。 
3、資料檔案最好不要設定稱自動擴充套件,如果設定稱自動擴充套件,一定要把maxsize設定設定為比裸裝置小 
4、linux下oracle不能直接把邏輯卷作為裸裝置,也要進行繫結。unix下就不需要。


2.4 方法四:Asmlib方式
asmlib是oracle提供的軟體,不支援rhel6了,具體參考:
http://blog.itpub.net/26736162/viewspace-1205206/
2.4.1 系統版本號
[[email protected] ~]# uname -rm
2.6.18-194.el5 x86_64
2.4.2 Oracle asmlib下載
1. 在官網(www.oracle.com)的搜尋中輸入asmlib搜尋後可以直接找到
  
http://www.oracle.com/technetwork/server-storage/linux/asmlib/index-101839.html
  
 
  
選擇對應的版本 rhel5
去下載如下asm的三個rpm軟體包(本機器下載的是標紅的三個軟體包,安裝包一定要下載正確的版本否則導致後續配置無法進行),注意32位和64的差別:
  
  
Intel EM64T (x86_64) Architecture
Library and Tools
oracleasm-support-2.1.8-1.el5.x86_64.rpm
oracleasmlib-2.0.4-1.el5.x86_64.rpm
Drivers for kernel 2.6.18-194.el5
oracleasm-2.6.18-194.el5xen-2.0.5-1.el5.x86_64.rpm
oracleasm-2.6.18-194.el5debug-2.0.5-1.el5.x86_64.rpm
oracleasm-2.6.18-194.el5-debuginfo-2.0.5-1.el5.x86_64.rpm


2.4.3 上傳並安裝上述的三個rpm軟體包:
[[email protected] tmp]# ll oracleasm*
-rw-r--r-- 1 root root 137486 Dec 30 10:28 oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
-rw-r--r-- 1 root root  14176 Jun  2  2013 oracleasmlib-2.0.4-1.el5.x86_64.rpm
-rw-r--r-- 1 root root  90225 Jun  2  2013 oracleasm-support-2.1.8-1.el5.x86_64.rpm
[[email protected] tmp]# rpm -ivh oracleasm*.rpm
warning: oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...         ########################################### [100%]
   1:oracleasm-support ########################################### [ 33%]
   2:oracleasm-2.6.18-194.el########################################### [ 67%]
   3:oracleasmlib       ########################################### [100%]


驗證安裝的包
[[email protected] ~]# rpm -qa | grep asm
oracleasm-2.6.18-194.el5-2.0.5-1.el5
oracleasmlib-2.0.4-1.el5
oracleasm-support-2.1.8-1.el5


  2.4.4 配置ASM
[[email protected] tmp]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                   [  OK  ]
Scanning the system for Oracle ASMLib disks:             [  OK  ]


如果配置錯誤,可以重新配置:
[[email protected] tmp]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.
Default user to own the driver interface [oracle]: grid
Default group to own the driver interface [oinstall]: asmadmin
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                [  OK  ]
Scanning the system for Oracle ASMLib disks:          [  OK  ]


 2.4.5 系統新增磁碟
在Vmware分配幾個空閒的磁碟用於建立ASM磁碟,建議使用不同的磁碟控制器
下面使用個磁碟來組建ASM磁碟組,分別為sdd,sde,sdf,sdg
分別對個磁碟進行分割槽,列出sdd的分割槽樣例,其餘如法炮製
[[email protected] ~]# fdisk /dev/sdd
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):
Using default value 261
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
系統新增一塊硬碟sdb,然後進行分割槽 fdisk /dev/sdb ,分割槽之後:
[[email protected] ~]# ll /dev/sdb*
brw-r----- 1 root disk 8, 16 Dec 30 10:54 /dev/sdb
brw-r----- 1 root disk 8, 17 Dec 30 10:59 /dev/sdb1
brw-r----- 1 root disk 8, 18 Dec 30 11:00 /dev/sdb2
brw-r----- 1 root disk 8, 19 Dec 30 11:00 /dev/sdb3
brw-r----- 1 root disk 8, 20 Dec 30 11:00 /dev/sdb4


[[email protected] ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "VOL1" as an ASM disk:        [  OK  ]
[[email protected] ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdb2
Marking disk "VOL2" as an ASM disk:         [  OK  ]
[[email protected] ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdb3
Marking disk "VOL3" as an ASM disk:       [  OK  ]
[[email protected] ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sdb4
Marking disk "VOL4" as an ASM disk:        [  OK  ]


[[email protected] oracle]# ll /dev/oracleasm/disks/*
brw-rw---- 1 grid asmadmin 8, 17 Dec 30 10:59 /dev/oracleasm/disks/VOL1
brw-rw---- 1 grid asmadmin 8, 18 Dec 30 11:00 /dev/oracleasm/disks/VOL2
brw-rw---- 1 grid asmadmin 8, 19 Dec 30 11:00 /dev/oracleasm/disks/VOL3
brw-rw---- 1 grid asmadmin 8, 20 Dec 30 11:00 /dev/oracleasm/disks/VOL4


[[email protected] ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4


[[email protected] ~]# /etc/init.d/oracleasm deletedisk VOL4
Removing ASM disk "VOL4":                      [  OK  ]
 
2.4.6 grid軟體安裝完畢後配置asm_diskstring路徑
[[email protected] ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 30 12:09:19 2014
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option
SQL> alter system set asm_diskstring='/dev/raw/*','/dev/oracleasm/disks/VOL*';
System altered.
 
SQL> show parameter asm_diskstring
NAME      TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring      string /dev/raw/*, /dev/oracleasm/disks/VOL*


SQL> set line 9999
SQL> SELECT a.group_number,disk_number,mount_status,a.name,path FROM v$asm_disk a;
GROUP_NUMBER DISK_NUMBER MOUNT_S NAME PATH
------------ ----------- ------- ------------------------------
0      0         CLOSED /dev/raw/raw5
0       1 CLOSED /dev/raw/raw4
0       2 CLOSED /dev/raw/raw3
0       3 CLOSED /dev/raw/raw2
0       4 CLOSED /dev/oracleasm/disks/VOL4
0       5 CLOSED /dev/oracleasm/disks/VOL3
0       6 CLOSED /dev/oracleasm/disks/VOL2
0       7 CLOSED /dev/oracleasm/disks/VOL1
1       0 CACHED DATA_0000 /dev/raw/raw1
9 rows selected.


磁碟搜尋路徑問題
SQL> create diskgroup DG1 normal redundancy disk 'ORCL:VOL1','ORCL:VOL2';
create diskgroup DG1 normal redundancy disk 'ORCL:VOL1','ORCL:VOL2'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification 'ORCL:VOL2' matches no disks
ORA-15031: disk specification 'ORCL:VOL1' matches no disks
使用oraclasm建立磁碟後,預設會在/dev/oracleasm/disks目錄下新增剛剛建立的磁碟對映。修改asm_diskstring修改路徑之後再次建立即可
SQL> alter system set asm_diskstring='/dev/oracleasm/disks/VOL*'


2.4.7 測試
SQL> drop diskgroup dg1;
Diskgroup dropped.
 
SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME      STATE    FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
--------------- ----------- ------- ----------------------- --------------
DATA      MOUNTED   941   0                      941


SQL> create diskgroup DG1 normal redundancy failgroup FG1 disk '/dev/oracleasm/disks/VOL1' name VOL1 failgroup FG2 disk '/dev/raw/raw2' name VOL2;
 Diskgroup created.
 
SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;
NAME   STATE  FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
------- -------- ------- ----------------------- --------------
DATA  MOUNTED 941   0                      941
DG1   MOUNTED 1862  0                      931


2.4.8 日誌
tail -f /var/log/oracleasm
 
2.4.9 報錯:
一、ASM: Device is already labeled for ASM disk
當一塊磁碟或分割槽已經被一個DataGroup用過,此時想用這塊磁碟或分割槽重新生成Asmlib生成Oracle 磁碟裝置時即會報標題的錯。
類似如下:
[[email protected] vfs]$ /etc/init.d/oracleasm createdisk VOL1 /dev/sda1
Marking disk "/dev/sda1" as an ASM disk: asmtool:
Device "/dev/sda1" is already labeled for ASM disk ""         [FAILED]


[[email protected] vfs]$ /etc/init.d/oracleasm deletedisk VOL1
Removing ASM disk "VOL1"                                      [FAILED]


解決問題其實很簡單,把磁碟頭清一下就可以了:
[[email protected] vfs]$ dd if=/dev/zero of=<your_raw_device> bs=1024 count=100


現在操作就該正常了:
[email protected]$ dd if=/dev/zero of=/dev/sda1 bs=1024 count=100
100+0 records in
100+0 records out


[[email protected] vfs]$ /etc/init.d/oracleasm createdisk VOL /dev/sda1
Marking disk "/dev/sda1" as an ASM disk: [ OK ]


3 總結
    本文提到的4種方法各有優缺點,其中方法二和方法四是rhel6之前的版本支援,方法三需要新增多塊磁碟,方法一最直接,如若網友有興趣,可以列個表格來比對他們的區別。
注意:每一種方法建立asm磁碟後都需要修改asm_diskstring的路徑,否則不能找到新新增的磁碟:
SQL> alter system set asm_diskstring='/dev/raw/*','/dev/oracleasm/disks/VOL*';

相關推薦

Oracle建立ASM磁碟總結

1.3 總結 1  前言 無論是安裝單機版的asm還是rac都離不開ASM磁碟組的建立,建立ASM磁碟組的關鍵是建立好需要的asm磁碟,發現很多網友安裝grid軟體和grid例項,都在磁碟的建立這裡有很大的問題,本人又是喜歡總結的人,那麼今天我就總結了下各種建立asm磁碟的方法,以備大家查閱。 之前的2篇文章

Oracle ASM磁碟總結

Oracle 下ASM磁碟總結 文章轉載: Oracle下建立ASM磁碟總結https://blog.csdn.net/okhymok/article/details/78791841?utm_source=blogxgwz1   Oracle_rac在vmware上面安裝時,udev磁碟沒

Oracle VM建立共享磁碟並掛ASM

       在Oracle VM搭建Oracle RAC時,生成共享磁碟並掛到asm中步驟還是比較多的。記錄一下。 前提是已經在VM中已經安裝好了一個linux. 1. 我在這建立5個磁碟   cd C:\Program Files\Oracle\VirtualBox

Oracle建立database link兩種方法

資料庫之間的連結建立在DATABASE LINK上。要建立一個DATABASE LINK,必須首先在建立連結的資料庫上設定連結字串,即配置一個遠端資料庫的本地網路服務名。 資料庫全域性名稱可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 修改可以用

oracle 11g RAC ASM磁碟被強制下線搶修一例

又有一段時間沒寫有關oracle的文章了,恐怕這也是不能成為高手的原因之一,偶有典型性拖延症和懶癌。 今天要講的一個栗子又一個現場case,中午吃飯的時候看到來自同事的未接,處於職業敏感感覺是資料中心出問題了,撥過去第一通電話告訴我儲存壞掉一塊盤,然後NBU有

Oracle RAC環境ASM磁碟組擴容

生產環境注意調整以下引數: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1.節點間滾

AIXRAC搭建 Oracle10G(五)安裝oracle建立監聽

soft lsnrctl term 例如 strong href lan cor pad AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(五)安裝oracle、建立監聽 環境 節點 節點1 節點2 小機型號

windows建立映象虛擬磁碟

       關於虛擬磁碟這種技術的應用,在平時的開發過程當中並不會很常見,主要是因為現在的磁碟較大,分割槽較多,加上現在的IDE功能較為強大。所以運用虛擬磁碟的地方並不多。但是,在很多需要通過指令碼來進行程式編譯、連結的地方,由於指定固定路徑會導致無法在其他

centos部署oracle rac單例項11.2.0.3資料庫(使用asm磁碟)

部署oracle rac單例項資料庫,需要安裝grid和datavase兩部分,所以首先建立兩個使用者oracle和grid,因為不能使用root使用者進行安裝,在安裝之前首先需要修改一些系統引數和安裝一些庫。 1.建立使用者和使用者組   首先是官方推薦的使用者和使用者組清單:

oracle asm 磁碟映象配置

sqlplus / as sysasm SQL> CREATE DISKGROUP DATA NORMAL REDUNDANCY2 FAILGROUP a1 DISK 3 '/dev/data1_1' name a1data1,4 '/dev/data1_2' name a1data25 FAILGR

ORACLE 12C建立表空間和新使用者

首先是關於ORACLE 12C的新特性,這部分內容轉載自https://www.cnblogs.com/kerrycode/p/3386917.html,如有轉載限制,請聯絡我  Oracle 12C引入了CDB與PDB的新特性,在ORACLE 12C資料庫引入的多租使用者環境(Multitena

Liunx安裝並配置multipath多路徑,併為oracle asm磁碟組配置許可權和規則

        在生產環境中,Oracle RAC的搭建需要有共享儲存的支援,而共享儲存上的每個LUN掛載到伺服器上通常是多條路徑的,這樣就需要在伺服器上安裝多路徑軟體來整合一個LUN的多條鏈路。有的儲存廠商會有自己的多路徑軟體,但有的卻沒有,這就需要我們自己來安裝多路徑軟體

oracle RAC如何正確地刪除ASM磁碟

1.檢查確認要刪除的磁碟組是否在用 select * from dba_data_files; select * from dba_temp_files; select * from v$logfile;2.先在各節點上dismount磁碟組 alter diskgroup

linux建立ORACLE資料庫以及使用者

在linux下的root使用者切換到oracle使用者:(或者直接登入oracle使用者) su - oracle 用sqlplus命令登入到oracle資料庫 sqlplus / as sysdba   建立表空間以及設定其大小 CREATE TABLESPACE

Linux設定udev作為ASM磁碟

建立group與user: groupadd -g 1000 oinstall groupadd -g 1200 asmadmin groupadd -g 1201 asmdba groupadd -g 1202 asmoper useradd -m -u 1100 -g

39 Oracle深度學習筆記——自動建立ASM UDEV裝置指令碼

指令碼如下:   i=`lsscsi | grep updisk | awk '{print $6}' | awk -F '/' '{print $3}' | xargs` for j in $i do temp=`/sbin/scsi_id -g -u /dev/"$j"` e

分享一個Linux安裝ASM+ORACLE的自動化指令碼(一)

    近期在脫產參加Oracle技術培訓,專家級講師說Oracle資料庫60%的問題都是出在安裝過程不規範,讓我們多練習資料庫的安裝,孰能生巧,並且可以對以後安裝資料庫時可能遇到的問題進行及時準確地定位。     Linux下安裝Oracle資料庫不同於Windows,最

Vmware server Oracle RAC 新增共享磁碟

    在VMware下的Oracle RAC 環境中,對於共享儲存不夠或者需要增加新的共享磁碟來配置ocr或votingdisk的多路映象,我們可以通過vmware下的命令列來增加共享儲存,然後將這些新磁碟逐一追加到虛擬機器即可。下面給出具體描述。  1、新增虛擬磁碟 #

linux建立oracle表空間

1 、 登入伺服器 2 、 檢視磁碟空間是否夠大df -h     -h更具目前磁碟空間和使用情況 以更易讀的方式顯示   [[email protected] ~]# df -h   Filesystem Size Used Avail Use% Mounted on   /dev/sd

關於普通使用者不能在root目錄建立檔案及目錄的總結

初學linux,對root使用者及普通使用者的許可權不太理解。實際上,一般情況下普通使用者不能在root目錄下建立檔案及目錄,因為沒有許可權,會提示“不能在XXX建立新檔案”。普通使用者要想在root下擁有建立新檔案的許可權,必須在擁有root使用者的許可權下,修改普通使用