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;