大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
操作系统 创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、南安网络推广、微信小程序、南安网络营销、南安企业策划、南安品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供南安建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com | 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