您好,登錄后才能下訂單哦!
操作系統 | RHEL 5.5 X86_64 |
主機 | HP刀片 |
存儲 | HP ESV400 |
?
集群軟件版本 | Oracle ?Clusterware 10.2.0.1 x86_64 |
數據庫版本 | Oracle Database ?10.2.0.1 企業版 x86_64 |
數據庫補丁 | 10.2.0.5 x86_64 |
?
多路徑設備 | 容量(GB) | 用途 | 裸設備信息 |
ocr1 | 1 | OCR 磁盤 | raw1 |
ocr2 | 1 | OCR 鏡像磁盤 | raw2 |
votingdisk1 | 1 | 表決磁盤 | raw3 |
votingdisk2 | 1 | 表決磁盤鏡像1 | raw4 |
votingdisk3 | 1 | 表決磁盤鏡像2 | raw5 |
asmdisk1 | 150 | ASM數據磁盤 | raw6 |
asmdisk2 | 150 | ASM數據磁盤 | raw7 |
asmdisk3 | 150 | ASM數據磁盤 | raw8 |
?
MOUNT_S | HEADER_STATU | MODE_ST | STATE | TOTAL | FREE | NAME | FAILGROUP | PATH |
CLOSED | MEMBER | ONLINE | NORMAL | 153597 | 0 | /dev/raw/raw7 | ||
CLOSED | FOREIGN | ONLINE | NORMAL | 1019 | 0 | /dev/raw/raw5 | ||
CLOSED | FOREIGN | ONLINE | NORMAL | 1019 | 0 | /dev/raw/raw4 | ||
CLOSED | FOREIGN | ONLINE | NORMAL | 1019 | 0 | /dev/raw/raw3 | ||
CLOSED | FOREIGN | ONLINE | NORMAL | 1019 | 0 | /dev/raw/raw2 | ||
CLOSED | FOREIGN | ONLINE | NORMAL | 1019 | 0 | /dev/raw/raw1 | ||
CACHED | MEMBER | ONLINE | NORMAL | 153597 | 3229 | BHPSDB_ASM_0000 | BHPSDB_ASM_0000 | /dev/raw/raw6 |
MISSING | UNKNOWN | OFFLINE | HUNG | 153597 | 13761 | BHPSDB_ASM_0001 | BHPSDB_ASM_0001 | |
CACHED | MEMBER | ONLINE | NORMAL | 153597 | 3230 | BHPSDB_ASM_0002 | BHPSDB_ASM_0002 | /dev/raw/raw8 |
??? /dev/raw/raw7為故障磁盤,該盤的狀態已經為MISSING。
?
由于原有磁盤組使用的是NORMAL冗余方式。剩余的空間只有3G。數據庫空間為200G。ASM磁盤組空間不足以存放數據庫。而且新增的磁盤只有一塊300G的盤。為避免磁盤REBALANCE出現異常。因此將300G的磁盤做成EXTERNAL冗余方式,并采用RMAN COPY的方式,將數據庫遷移到新的磁盤組。遷移成功后,在將原有的3塊150G的磁盤刪除。并創建一個新的EXTERNAL磁盤組備用。
該操作由備份廠家完成。
原有環境中使用了多路徑,裸設備映射,ASMLIB配置。ASM添加磁盤時需要進行多路徑和裸設備信息配置,為安全起見,停數據庫和集群環境后進行操作。
[oracle@bhpsdb1~]$ crs_stat –t
[oracle@bhpsdb1~]$ srvctl stop database -d bhspdb
[root@bhpsdb1 ~]#crsctl stop crs
?
由于該系統的磁盤路徑較多,因此識別出的磁盤設備也比較多。但是原有的磁盤都做了分區操作。因此不包含分區信息的磁盤。就是新添加的磁盤。
[root@bhpsdb1 ~]#ls -la /dev/sd* | grep -v '[0-9]$'
?
新增磁盤的WWID信息,可以通過/scsi_id –gus /block/sdnew 或 ls -la /dev/disk/by-id 中獲取。
?
[root@bhpsdb1 ~]#scsi_id -gus /block/sdf
[root@bhpsdb1 ~]#ls -la /dev/disk/by-id
?
??? 新增紅色部分內容。
[root@bhpsdb1 ~]# vi /etc/multipath.conf
multipaths {
……
multipath{
wwid??? 36001438005deda610000600001040000
alias?? asmdisk4
}
?
}
?
[root@bhpsdb1 ~]#service multipathd restart
?
確保新增的磁盤asmdisk4配置可以查詢到。
[root@bhpsdb1 ~]#multipath -ll
asmdisk4(36001438005deda610000600000f80000) dm-0 HP,HSV400
[size=300G][features=1queue_if_no_path][hwhandler=0][rw]
\_round-robin 0 [prio=200][active]
?\_ 0:0:3:3 sdaa 65:160 [active][ready]
?\_ 1:0:1:3 sdaq 66:160 [active][ready]
?\_ 1:0:3:3 sdbg 67:160 [active][ready]
?\_ 0:0:1:3 sdk?8:160? [active][ready]
\_round-robin 0 [prio=40][enabled]
?\_ 1:0:0:3 sdai 66:32? [active][ready]
?\_ 1:0:2:3 sday 67:32? [active][ready]
?\_ 0:0:0:3 sdc?8:32?? [active][ready]
?\_ 0:0:2:3 sds?65:32? [active][ready]
?
格式化設備的目的是和原有的磁盤設備保持一致。SD設備格式化以后,會有一個分區信息,用于區分新掛載的普通sd磁盤。
?
??? 單個節點執行格式化操作:
[root@bhpsdb1 ~]#ls -la /dev/mapper/*
[root@bhpsdb1 ~]#kpartx /dev/mapper/asmdisk4
?
??? 其他節點進行分區設備發現操作:
[root@bhpsdb2 ~]#partprobe
?
編輯裸設備配置文件,添加新磁盤配置。
[root@bhpsdb1 ~]#vi /etc/sysconfig/rawdevices
/dev/raw/raw9??? /dev/mapper/asmdisk4p1
?
[root@bhpsdb1 ~]#service rawdevices restart
?
[root@bhpsdb1 ~]#chown oracle:oinstall /dev/raw/raw9
[root@bhpsdb1 ~]#chmod 644 /dev/raw/raw9
?
添加新增設備的權限和屬組修改腳本。
[root@bhpsdb1 ~]#vi /etc/rc.local
/bin/chownoracle:oinstall /dev/raw/raw9
/bin/chmod644 /dev/raw/raw9
?
保障裸設備的屬組為oracle:oinstall,權限為644。
[root@bhpsdb1 ~]#ls -la /dev/raw/raw*
?
[oracle@bhpsdb1 ~]$kfod a='/dev/asm*' d=all o=all s=true
?
[oracle@bhpsdb1 ~]$ export ORACLE_SID=+ASM1
[oracle@bhpsdb1 ~]$ sqlplus / as sysdba
SQL> CREATE DISKGROUP CRMDGNEWEXTERNAL REDUNDANCY DISK '/dev/asm-data3';
?
[oracle@bhpsdb2~]$ sqlplus / as sysdba
SQL> alter diskgroup CRMDGNEW mount;
?
[oracle@bhpsdb1~]$ asmcmd lsdg
[oracle@bhpsdb2~]$ asmcmd lsdg
?
SQL> startup nomount;
SQL> create pfile='/home/oracle/crmdb.pfile' from spfile;
?
SQL> set linesize 120;
SQL> show parameter control;
SQL> alter system setcontrol_files='+CRMDGNEW/crmdb/controlfile/control01.ctl' scope=spfile;
?
SQL> startup force nomount;
?
[oracle@bhpsdb1~]$ rman target /
RMAN> RESTORE CONTROLFILE FROM '+CRMDG/crmdb/controlfile//Current.256.901636495';
?
MOUNT數據庫實例,進行數據庫拷貝操作。
RMAN> ALTER DATABASE MOUNT;
RMAN>
RUN
{
?? ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
?? ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
?? ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
?? ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
?? BACKUP AS COPY DATABASE FORMAT '+CRMDGNEW';
}
?
RMAN> SWITCH DATABASE TO COPY;
?
SQL> alter database open;
?
該操作在數據庫的其他實例進行。
SQL> STARTUP
SQL> SELECT INST_ID, STATUS FROM GV$INSTANCE;
?
RMAN> REPORT SCHEMA;
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '+CRMDGNEW' SIZE 1G;
SQL> ALTER TABLESPACE TEMP DROP TEMPFILE'+CRMDG/crmdb/tempfile/temp.262.901636511';
?
SQL> SET LINESIZE 120;
SQL> COL MEMBER FOR A80;
SELECT DISTINCT 'ALTERDATABASE DROP LOGFILE GROUP '||GROUP#||';' FROM V$LOGFILE;
?
ALTER DATABASE ADDLOGFILE THREAD 1 GROUP 5 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 1 GROUP 6 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 2 GROUP 7 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 2 GROUP 8 ('+CRMDGNEW') SIZE 100M;
?
在刪除舊日志組之前,進行多次日志切換,保證舊日志組狀態均為INACTIVE。
SQL> SET LINESIZE 120;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> ALTER SYSTEM CHECKPOINT GLOBAL;
SQL> SELECT * FROM V$LOG ORDER BY 1;
?
??? 下列腳本由查詢日志腳本生成:
ALTER DATABASE DROPLOGFILE GROUP 1;
ALTER DATABASE DROPLOGFILE GROUP 2;
ALTER DATABASE DROPLOGFILE GROUP 3;
ALTER DATABASE DROPLOGFILE GROUP 4;
?
ALTER DATABASE ADDLOGFILE THREAD 1 GROUP 1 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 1 GROUP 2 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 2 GROUP 3 ('+CRMDGNEW') SIZE 100M;
ALTER DATABASE ADDLOGFILE THREAD 2 GROUP 4 ('+CRMDGNEW') SIZE 100M;
?
SQL> show parameter spfile;
SQL> create pfile='/home/oracle/crmdb.pfile' from spfile;
?
createspfile='+CRMDGNEW/spfilecrmdb.ora' from pfile='/home/oracle/crmdb.pfile';
?
[oracle@bhpsdb1~]$ cd $ORACLE_HOME/dbs
[oracle@bhpsdb1dbs]$ vi initcrmdb1.ora
SPFILE='+CRMDGNEW/spfilecrmdb.ora'
?
SQL> shutdown immediate;
SQL> startup;
以下操作需要在ASM實例環境下進行。
將其他實例的CRMDG磁盤組DISMOUNT。
SQL> alter diskgroup CRMDG dismount;
?
ASMCMD> cd CRMDG
ASMCMD> rm -r ./crmdb
?
SQL> DROP DISKGROUP CRMDG;
?
[oracle@bhpsdb1 ~]$kfod a='/dev/asm*' d=all o=all s=true
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。