asm存儲遷移
⑴ 如何遷移Oracle 10g RAC ASM存儲
ORACLE RAC系統是指ORACLE公司針對ORACLE Database推出的一個群集系統,RAC為real application cluster的簡寫,意味真正的應用程序群集系統。RAC能夠獨立進行群集方式工作,同時也支持嵌入第三方群集系統中,比如SUN CLUSTER 3.2等所謂的vender群集系統中。
結合ORACLE的ASM(自動存儲管理)、Oracle Clusterware等,建議資料庫在系統獨立運行,無需運行第三方的群集系統,卷管理系統等。
1.2 安裝前的准備工作
俗話說,磨刀不誤砍柴工,在安裝RAC之前,仔細閱讀官方的安裝手冊是最佳途徑,因為網上的很多文章寫的時候,都是按照作者所擁有的環境進行安裝的,實際中會有很多的變數導致安裝出現很多情況,因此,網上文章作為每個安裝工程師來說,只有參考價值。
1.2.1 硬體方面的准備工作
在硬體方面,首先確認伺服器的類型,操作系統的類型,存儲器是否正確連接到兩台或者多台伺服器上,主機系統能否正確訪問存儲,是否所有主機系統共享了改存儲器。
主機系統方面,是否有足夠的網卡,RAC需要至少一個public和一個private的網卡,分別用於資料庫instance的訪問和心跳網卡(此心跳也用來傳輸一些資料庫的數據)。
1.2.2 軟體方面的准工作
在軟體方便,一是根據主機類型,選擇相應的資料庫軟體,包括database和clusterware軟體,需要注意的是,最好能選擇比較新的版本的軟體,因為ORACLE RAC方面,針對很多平台,最初版本軟體或多或少都會存在一些bug,選擇正確的版本後,安裝能夠盡量減少麻煩。
操作系統方面,也應該根據資料庫軟體做最優的安裝,比如solaris 10,最好能夠使用update 10的版本,EIS光碟最好能夠使用最近的光碟來安裝最新的10的推薦補丁包。補丁一定要打最新的,這個可以大大減小bug的產生。
2. 安裝准備工作
本示例安裝主要基於ORACLE SPARC伺服器的兩個節點安裝RAC,由於使用的是T5120用LDM創建的兩個虛擬主機,所以相關網卡名字等都是按虛擬機裡面的命名方式進行的。
安裝完操作系統後,必須打上操作系統的推薦補丁包,用最近的EIS光碟來,如果沒有EIS光碟,可以到oracle網站下載最近的推薦補丁包,比如solaris10的最新補丁下載地址如下:這個可能需要OPN的賬號
https://updates.oracle.com/download/12714436.html
2.1 網路配置文件的修改
/etc/hosts該文件記錄了將來使用的IP地址,包括public和private的地址:
192.168.0.12 orac1 (主機1的本地地址)
192.168.0.13 orac2 (主機2的本地地址)
192.168.0.14 orac1-vip (主機1的public地址)
192.168.0.16 orac2-vip (主機2的public地址)
192.168.0.15 orac1-priv(主機1的private地址)
192.168.0.17 orac2-priv(主機2的private地址)
私有地址可以設置成另外一個網段的地址,本示例都為一個網段地址。
另外一台主機的/etc/hosts文件裡面需要這些地址,都寫上。
/etc/下主機網卡配置文件,public地址將來可以用在本地地址的那張網卡上,系統能夠plumb一個虛擬網卡,比如vnet0:1,私有地址必須單獨指定,比如/etc/hostname.vnet1,裡面寫入orac1-priv即可在系統reboot時候自動將私有地址網卡plumb起來。
建立好所有配置文件,需要確認以下地址是能夠ping通的:
ping orac1 ping orac2 ping orac1-priv ping orac2-priv
2.2 創建相應的ORACLE用戶和用戶組
根據oracle資料庫安裝的需要創建相應的unix組和用戶oracle:
groupadd dba 創建dba組
groupadd oinstall 創建oinstall組
useradd -g oinstall -G dba -d /opt/oracle -m -s /bin/sh oracle 創建oracle用戶
passwd oracle 修改oracle用戶的密碼
創建這些用戶和用戶組,對來說非常重要,千萬不要小看這些,首先必須保證以上的gid和uid在所有節點上保持一致,在安裝Clusterware,如果沒有正確設置一些目錄和設備的許可權,可能會導致這些軟體不能正確安裝或者安裝後無法正常使用。
oracle用戶的.profile文件,需要做如下的定義,具體可以根據文檔對照主機系統配置來進行修改和優化:
ORACLE_BASE=/opt/oracle/app/oracle
export ORACLE_BASE
ORACLE_HOME=/opt/oracle/app/oracle/10g
export ORACLE_HOME
ORACLE_SID=inst-ora1
export ORACLE_SID
PATH=${PATH}:$ORACLE_HOME/bin
export PATH
其他諸如 LD_LIBRARY等參數都可以在.profile文件裡面定義,SID每個節點都需要定義成1,2,3,4等,前綴為整個群集database定義的實例名,比如inst-ora,各個節點的SID就是inst-ora1,insta_ora2等等。
建立信任關系:
如果是10g,只需要建立rsh的信任關系,如果是11G的話,必選建立ssh的主機信任關系:
1. rsh信任關系
在所有節點執行以下命令:
su - oracle
touch .rhosts
echo + > .rhosts
2. ssh信任關系
用命令來創建這些信任關系非常方便,如果使用11g的runInstaller程序的話,可以使用該程序提供的設置程序來建立信任關系,以下為命令方式建立:
su – oracle
mkdir .ssh(如果沒有.ssh就創建之); chmod 755 .ssh
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
以上根據提示輸入恰當的內容即可,以上兩個命令分別在.ssh目錄下生成id_rds.pub和id_dsa.pub兩個文件,將這兩個文件的內容全部拷貝到authorized_keys文件裡面去,chmod 644 .ssh/authorized_keys文件。該文件裡面應該包含所有節點的id_rds.pub和id_dsa.pub文件的內容。
2.3 修改系統參數
操作系統kernel參數需要根據具體機器配置進行適當修改,以下為典型的系統參數,可以將這些寫入/etc/system文件中,修改這個文件後,需要reboot系統才能生效:
set noexec_user_stack=1
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
在Solaris 10下,如果使用project來管理,可以動態修改這些kernel參數,這對以後生產系統在線提供了非常好的便利。
2.4 創建CRS的home目錄
CRS的home最好不要和ORACLE的home放在一起,因為CRS目錄最終將成為root用戶的許可權。
mkdir -p /opt/crs/oracle/proct/10/app
chown -R root:oinstall /opt/crs
chmod -R 775 /opt/crs/oracle
注意此處crs目錄的宿主被設置成root:oinstall,如果設置成其他的話,安裝以後運行root.sh腳本將會有大量的警告,同時,crs無法正常運行的可能性將非常大。
2.5 存儲設備的設置
存儲設備主要提供給Clusterware軟體存放OCR和voting disk之用,並為資料庫提供存放數據等文件的,決定存儲如何使用非常重要,這主要影響以後資料庫的架構,存儲可以支持ASM方式、cluster file system方式以及raw設備方式。以下的matrix為各個存儲方式對CRS等的支持:
File Types Supported
Storage Option CRS Database Recovery
Automatic Storage Management No Yes Yes
Cluster file system Yes Yes Yes
NFS file system
PRIMECLUSTER and a certified Yes Yes Yes
NAS device (SPARConly)
Shared raw logical volumes (SPARC only) Yes Yes No
Shared raw partitions Yes Yes No
建議使用ASM自動存儲管理方式來進行存儲的管理,對於Cluster file system來說,大多數需要成本來購買相應的軟體,但也可以採用SUN公司的QFS軟體(該軟體應該是免費的)。採用raw裸設備的話,對用戶來說,要求相對要高些,因為raw安裝資料庫的時候,需要為每個dbf等文件分配一個raw設備,以後需要添加新的dbf等文件話,其操作步驟還是比較繁瑣的。
使用ASM一定要注意每個LUN的劃分,千萬不要使用EFI格式做磁碟的label,在多次實踐中發現,在使用EFI的label格式的存儲時候,將出現一個比較奇怪的現象,建好cluster後能夠順利創建資料庫,但是instance只能在一個節點啟動,另外一個節點無法啟動,查看alertlog文件,報告出現一個ora-600的錯,以及queue file IO error等錯誤。在solaris下,將LUN劃分為2T以下,採用VTOC方式的label即可,官方文檔建議創建大空間的LUN來減少系統對存儲的管理,但實踐證明,如果存儲空間大,可以建立多個小於2T的LUN,然後創建一個或多個ASM組來管理這些LUN是比較理想的。
根據RAC對存儲空間的要求來劃分對應的LUN或者slice,存放OCR的LUN 和voting disk都可以小些,建議使用1G的空間,存放資料庫的數據文件等存儲的LUN劃分得大些。
如果這些LUN曾經被用過,特別是曾經在RAC中被使用過的話,那麼就需要將磁碟裡面的內容清除,方法就是使用dd命令將磁碟內容清除,例如:
dd if=/dev/zero of=/dev/rdsk/c2t0d0s0 bs=1024k count=1000
本示例中,c0d1s0 作為OCR存放設備,c0d1s0作為voting disk,安裝中安裝程序會提示使用哪種冗餘方式,一般採用Normal方式,也就是OCR設備需要兩個設備來做mirror,voting disk需要三塊設備做冗餘。如果這些設備在存儲器上已經做了raid 5等冗餘保護,那麼這些冗餘方式可以採用External方式,即只要單個設備即可。
設備許可權必須設置正確,否則安裝程序會報錯,具體許可權設置如下:
chown -R root:oinstall /dev/rdsk/c0d1s0 OCR盤宿主為root,用戶為oinstall
chmod 640 /dev/rdsk/c0d1s0
chown -R root:oinstall /dev/rdsk/c0d1s3 voting disk設置如同CRS盤
chmod -R 660 /dev/rdsk/c0d1s3 voting disk文件為660的讀寫屬性
存放ORACLE資料庫dbf等文件的raw設備許可權設置為oracle:dba即可,寫許可權設置為775。