19c升级-新加磁盘-multipath-scsi添加rules属性


1、Linux 配置多路径,重新规范磁盘 

1.1 第一步:发现磁盘

1.1.1 ##方法一

使用root用户执行

yum install sg3-util*

rescan-scsi-bus.sh 


1.1.2 ##方法二

##发现磁盘未成功的话

--查看物理HBA卡信息

[root@rpsdb1 ~]# lspci | grep -i hba


--查看物理接口信息

[root@rpsdb1 ~]# lspci -s "c4:00.0" -v


--查看HBA卡端口状态

[root@rpsdb1 ~]# cd /sys/class/fc_host/

[root@rpsdb1 fc_host]# cat ./host*/port_state

Online

Linkdown

Online

Linkdown

--查看HBA卡WWID号

[root@rpsdb1 fc_host]# cat ./host*/port_name

0x51402ec001bf9084

0x51402ec001bf9086

0x51402ec0017bc6c0

0x51402ec0017bc6c2


[root@rpsdb1 fc_host]# cat ./host*/port_id

0x1fae80

0x000000

0x20ae80

0x000000

--查看HBA卡上联端口WWID

[root@rpsdb1 fc_host]# cat ./host*/fabric_name

0x1000c4f57c26a074

0xffffffffffffffff

0x1000c4f57c297258

0xffffffffffffffff


##--执行如下echo执行,重新扫描scsi端口设备

echo "- - -" > /sys/class/scsi_host/host$/scan


1.1.3 ##方法三:

 如果以上脚本未发现

 用如下脚本扫描

 ## RHEL6扫描脚本

> disk.tmp


for diskname in $(cd /dev/ && ls sd*);

do

diskinfo=`fdisk -l /dev/$diskname | grep "Disk /dev/$diskname"`

scsiinfo=`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$diskname`

echo $scsiinfo " "$diskinfo | awk -F',' '{print $1}' >> disk.tmp

done


sort disk.tmp > disk.result


rm -f disk.tmp


last_scsiid=''

current_scsiid=''


while read disk

do

current_scsiid=`echo $disk | awk '{print $1}'`


if [ "${current_scsiid}" = "${last_scsiid}" ];

then

echo $disk

else

echo "-----------------------------------------------------------------------------------------------------------"

echo "multipath -> " `multipath -l | grep "${current_scsiid}"`

echo "udev      -> "`ls -la /dev/disk/by-id/* | grep dm-uuid-mpath-"${current_scsiid}" | awk '{print $9,$10,$11}'`

echo $disk

last_scsiid=$current_scsiid

fi


done < disk.result

echo "-----------------------------------------------------------------------------------------------------------"


运行结果中找到新添加的磁盘。

multipath -> 

udev      -> 

3600000e00d100000001032e9008b0000 Disk /dev/sdby: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdbz: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdca: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdcb: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdcc: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdcd: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdce: 751.6 GB

3600000e00d100000001032e9008b0000 Disk /dev/sdcf: 751.6 GB


[root@dzqddb1 ~]# multipath -ll | grep 3PARdata | grep -v asm

360002ac000000000240005670001b3a1 dm-25 3PARdata,VV              

360002ac000000000240005680001b3a1 dm-26 3PARdata,VV              

360002ac000000000240005690001b3a1 dm-29 3PARdata,VV              

360002ac0000000002400056a0001b3a1 dm-27 3PARdata,VV              

360002ac0000000002400056b0001b3a1 dm-28 3PARdata,VV

360002ac0000000002400056c0001b3a1 dm-31 3PARdata,VV              

360002ac0000000002400056d0001b3a1 dm-30 3PARdata,VV              

360002ac0000000002400056e0001b3a1 dm-32 3PARdata,VV              


[root@dzqddb2 ~]# multipath -ll | grep 3PARdata | grep -v asm

360002ac000000000240005670001b3a1 dm-26 3PARdata,VV              

360002ac000000000240005680001b3a1 dm-27 3PARdata,VV              

360002ac000000000240005690001b3a1 dm-29 3PARdata,VV              

360002ac0000000002400056a0001b3a1 dm-28 3PARdata,VV              

360002ac0000000002400056b0001b3a1 dm-31 3PARdata,VV

360002ac0000000002400056c0001b3a1 dm-30 3PARdata,VV              

360002ac0000000002400056d0001b3a1 dm-32 3PARdata,VV              

360002ac0000000002400056e0001b3a1 dm-33 3PARdata,VV              



##grid、oracle磁盘发现

#RHEL7

#kfod asm_diskstring='/dev/mapper/*' disks=all ds=true op=all


1.2 第二步:更新multipath配置

#添加multipath多路径磁盘后,可线修改多路径属性,重新命名:

#RHEL 7.5

cd /etc/

cp /etc/multipath.conf /etc/multipath.conf.`date +%Y%m%d`

vi /etc/multipath.conf

##标准配置文件,将系统盘加入blacklist,新盘加入multipath列表中##

defaults {

polling_interval 10

user_friendly_names no

find_multipaths yes

}

devices {

device {

vendor "3PARdata"

product "VV"

path_grouping_policy group_by_prio

path_selector "round-robin 0"

path_checker tur

features "0"

hardware_handler "1 alua"

prio alua

failback immediate

rr_weight uniform

no_path_retry 18

rr_min_io_rq 1

detect_prio yes

fast_io_fail_tmo 10

dev_loss_tmo 14

}

}

blacklist {

 wwid 3600508b1001c2641b06b6b442c5abed1

 wwid 3600508b1001cb64c2be8cdbe3ba617f8

 devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

 devnode "^hd[a-z]"

}

multipaths {     

    multipath {

        wwid 360002ac00000000034011b920001b3a1

        alias updatedisk09

    }

    multipath {

        wwid 360002ac00000000034011b930001b3a1

        alias updatedisk10

    }

    multipath {

        wwid 360002ac00000000034011b940001b3a1

        alias updatedisk11

    }

    multipath {

        wwid 360002ac00000000034011b950001b3a1

        alias updatedisk12

    }

}






[root@rpsdb1 ~]# multipath -F

[root@rpsdb1 ~]# multipath -v2

[root@rpsdb1 ~]# multipath -ll

[root@dzqddb2 etc]# multipath -ll | grep 3PARdata | grep -v asm


[root@rpsdb2 ~]# multipath -F

[root@rpsdb2 ~]# multipath -v2

[root@rpsdb2 ~]# multipath -ll


##mulipath -F不生效后使用reload或者restart

##rhel6:service multipathd reload

##rhel7:systemctl restart multipathd


###################################################################################

2、Oracle 数据库添加rules文件,然后添加磁盘

##scsi执行路径不同,具体系统执行前请参照如下标准智指令

##rhel6 scsi_id path /sbin/scsi_id

##rhel6 /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sda

##rhel7 scsi_id path /usr/lib/udev/scsi_id

##rhel7 /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sda


cd /etc/udev/rules.d/

cp 99-oracle-asmdevices.rules 99-vmware-scsi-timeout.rules.`date +%Y%m%d`

--scsi 新加磁盘修改属性,添加至oracle rule

[root@a43log1 ~]# vi find_scsi.sh 

##rhel6 scsi_id path /sbin/scsi_id

##rhel7 scsi_id path /usr/lib/udev/scsi_id

#command for RHEL6

#for i in $(cd /dev/ && ls sd*);

#do

#        echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$paranet\", RESULT

#==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"

#0660\""      

#done


#command for RHEL7

#for i in $(cd /dev/ && ls sd*);

#do

#        echo "KERNEL==\"dm*\", BUS==\"scsi\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$paranet\", RESULT

#==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"

#0660\""      

#done


#rhel7 udev/rules.d/99-oracle*.rule添加

#郭瑞斌#

#for i in `ls /dev/mapper/asm*|grep -v p1|cut -f4 -d"/"` ; do printf "%s %s\n" "$i" "$(udevadm \

 info --query=all --name=/dev/mapper/$i | grep -i dm_uuid)"; done

#KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac0000000001d016f850001b3a1",OWNER="grid",GROUP="asmadmin",MODE="0660"



cd /etc/udev/rules.d/

cp 99-oracle-asmdevices.rules 99-vmware-scsi-timeout.rules.`date +%Y%m%d`

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac00000000034011b920001b3a1",OWNER="grid",GROUP="asmadmin",MODE="0660"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac00000000034011b930001b3a1",OWNER="grid",GROUP="asmadmin",MODE="0660"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac00000000034011b940001b3a1",OWNER="grid",GROUP="asmadmin",MODE="0660"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-360002ac00000000034011b950001b3a1",OWNER="grid",GROUP="asmadmin",MODE="0660"


su - grid

--rhel 7 磁盘识别

kfod asm_diskstring='/dev/mapper/*' disks=all ds=true op=all


##--添加事例:如下

#rhel6 udev/rules.d/99-oracle*.rule添加

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$parent", RESULT=="36000c2961203970b0001eefa5393fa03", NAME="asm-data6", OWNER="grid", GROUP="asmadmin", MODE="0660"  # Disk /dev/sdl: 859.0 GB




#root 识别磁盘后重新启动udev

#RHEL6:

/sbin/start_udev

#RHEL7:

udevadm control --reload-rules

udevadm trigger


#########################################################

#### 添加磁盘后su - grid:dbca新建ASM DG 添加数据文件 ####

#########################################################

-19c创建新磁盘组SQL指令

 CREATE DISKGROUP UPDATE_DG EXTERNAL REDUNDANCY  

 DISK '/dev/mapper/updatedisk01' SIZE 512000M

 DISK '/dev/mapper/updatedisk02' SIZE 512000M

 DISK '/dev/mapper/updatedisk03' SIZE 512000M

 DISK '/dev/mapper/updatedisk04' SIZE 512000M

 DISK '/dev/mapper/updatedisk05' SIZE 512000M

 DISK '/dev/mapper/updatedisk06' SIZE 512000M

 DISK '/dev/mapper/updatedisk07' SIZE 512000M

 DISK '/dev/mapper/updatedisk08' SIZE 512000M

 ATTRIBUTE 'compatible.asm'='19.0.0.0','compatible.advm'='19.0.0.0','au_size'='4M' 


ALTER DISKGROUP UPDATE_DG ADD DISK 

'/dev/mapper/updatedisk09',

'/dev/mapper/updatedisk10',

'/dev/mapper/updatedisk11',

'/dev/mapper/updatedisk12'

REBALANCE POWER 10;



##添加redo


SET TIME ON;

SET TIMING ON;

select group#,status from v$log;

select THREAD#,group#,status,bytes/1024/1024/1024 GB from v$log;

select * from v$logfile where group#=12;


##添加logfile

ALTER DATABASE ADD LOGFILE THREAD 1

GROUP 9  SIZE 2G,

GROUP 10 SIZE 2G;

ALTER DATABASE ADD LOGFILE THREAD 2

GROUP 11 SIZE 2G,

GROUP 12 SIZE 2G;


##drop logfile

ALTER DATABASE DROP LOGFILE GROUP 11, GROUP 12;


1.3 使用ASM扩容表空间

select file_name from dba_temp_files where tablespace_name = 'TEMP';

ALTER TABLESPACE TEMP ADD TEMPFILE '+KDDB_DATADG1' SIZE 30G AUTOEXTEND OFF;

UNDOTBS表空间扩容

select file_name from dba_data_files where tablespace_name = 'UNDOTBS1';

ALTER TABLESPACE UNDOTBS1 ADD DATAFILE '+KDDB_DATADG1' SIZE 30G AUTOEXTEND OFF;


#测试

create tablespace db1_123 datafile '+KDDB_DATADG1' SIZE 30G AUTOEXTEND OFF;

create user db1123 identified by Nmyd_2018 default tablespace db1_123 account unlock;


drop user db1123 cascade;

Drop tablespace db1_123 including contents and datafiles; 


请使用浏览器的分享功能分享到微信等