oracle存储换硬盘,Oracle 10g RAC 数据存储更换

说明

目前数据库为10gRAC

环境(10.2.0.4)

,操作系统为

,采用ASM

磁盘组,需要对存储进行迁移,计划迁移采用oracle rman

迁移方案,确保迁移安全可控。本次迁移涉及ocr,vote

盘及DATA

磁盘组的数据迁移

环境如下:

操作系统:

HP

数据库:

10.2.0.4

数据文件存储方式:

ASM

数据量:

131GB

Data

盘大小:

800000MB

Data

盘:

NAME

PATH

MODE_ST STATE

DGAM_0000

/dev/vgora/rlvasm1

ONLINE  NORMAL

DGAM_0001

/dev/vgora/rlvasm2

ONLINE  NORMAL

DGAM_0002

/dev/vgora/rlvasm3

ONLINE  NORMAL

DGAM_0003

/dev/vgora/rlvasm4

ONLINE  NORMAL

Ocr

盘:

[u@h /oracle/product/10.2.0/crs/bin]$ ./ocrcheck

Status of Oracle Cluster Registry is as follows :

Version                  :          2

Total space (kbytes)     :    1048300

Used space (kbytes)      :       6476

Available space (kbytes) :    1041824

ID                       : 1756826852

Device/File Name         : /dev/vgora/rlvocr1

Device/File integrity check succeeded

Device/File Name         : /dev/vgora/rlvocr2

Device/File integrity check succeeded

Cluster registry integrity check succeeded

Vote

盘:

[u@h /oracle/product/10.2.0/crs/bin]$ ./crsctl query css votedisk

0.     0    /dev/vgora/rlvvot1

1.     0    /dev/vgora/rlvvot2

2.     0    /dev/vgora/rlvvot3

整体迁移流程:

不停业务准备:

步骤

流程计划

时间估算

1

操作系统扫描新磁盘

已完成

2

创建新NDATA

磁盘组

(不停机做)

停业务做:

步骤

流程计划

时间估算

1

数据库全备

50

分钟(业务停止)

2

数据文件迁移

90

分钟

(业务不停止)

3

REDO

日志切换到新存储NDATA

30

分钟(业务停止)

4

迁移OCR ,VOTE

50

分钟

(业务停止)

5

重启三节点集群,确保OCR

及VOTE

切换正常

20

分钟

(业务停止)

6

迁移参数文件

20

分钟

(业务停止)

7

迁移控制文件

20

分钟

(业务停止)

8

rename

控制文件中数据文件路径

15

分钟

(业务停止)

9

重建TEMP

表空间

15

分钟

(业务停止)

10

打开数据库

30

分钟

(业务停止)

总结时间:

总计花费业务停机时间 340

分钟

前期准备

挂载新磁盘

创建新磁盘组考虑磁盘较多,创建采用asmca

图形交互界面完成,创建新磁盘过程中需要调整ASM

磁盘组的版本参数,创建包括由5

张1G

磁盘组成的OCR

及VOTE

磁盘及若干数据盘组成的NDATA

磁盘组。

现场步骤(停业务):

全库备份

{

allocate channel c1 type disk;

sql 'alter system archive log current';

backup as backupset database format '/orabak/backup1126/rmanfull_%d_%T_%s_%p.bak' include current controlfile;

sql 'alter system archive log current';

sql 'alter system archive log current';

sql 'alter system archive log current';

sql 'alter system archive log current';

sql 'alter system archive log current';

backup format '/orabak/backup1126/rmanarch_full%T%U' archivelog all;

backup spfile format '/orabak/backup1126/spfile_%d_%T_%s_%p.bak';

backup current controlfile format '/orabak/backup1126/control_%d_%T_%s_%p.bak';

release channel c1;

}

数据文件至新磁盘组

获取rman备份脚本:

产生脚本文件,考虑到在不影响生产的情况下,采用一个进程处理,不开启并行拷贝:

切换至新磁盘组

redo

通过增减替换添加至新的磁盘组中

SQL> select GROUP#,THREAD#,BYTES,STATUS from v$log;

GROUP#    THREAD#      BYTES STATUS

---------- ---------- ---------- ----------------

1          1   52428800 ACTIVE

2          1   52428800 CURRENT

3          2   52428800 ACTIVE

4          2   52428800 CURRENT

5          3   52428800 CURRENT

6          3   52428800 ACTIVE

7          1   52428800 ACTIVE

8          2   52428800 ACTIVE

9          3   52428800 ACTIVE

常用命令:

alter database add logfile thread 2 group 14 ('+ndata') size 50m;

alter database drop logfile group 1;

alter system archive log current;

alter system checkpoint;

备份控制文件

backup current controlfile format '/tmp/control.bak';

迁移OCR

磁盘组

1)

确保

OCR

有最近的备份

A

、查看

OCR

的健康状态

ocrcheck

ocrconfig -showbackup

B

、如果没有,手工备份一下

ocrconfig -export /home/oracle/ocrbak.ocr -s online

C

、使用

OCR

备份还原

ocrconfig -import /home/oracle/ocrbak.ocr

D

、查看

OCR

的健康状态

ocrcheck

2)

添加新的

OCR

该步骤会使用

rhdiskpower5

覆盖原有镜像

rhdisk8

ocrconfig -replace ocrmirror /dev/rhdiskpower5

ocrcheck

3)

移除原有

OCR

该步骤会移除

rhdisk4

,并且

rhdiskpower5

成为

OCR

ocrconfig -replace ocr

ocrcheck

4)

添加新的镜像

OCR

该步骤会使

rhdiskpower6

盘成为

ocrmirror

ocrconfig -replace ocrmirror /dev/rhdiskpower6

ocrcheck

注:移除

OCR

镜像盘,用不到该命令

ocrconfig -replace ocrmirror

迁移vote

磁盘组

当添加新的

vote

盘、或者替换时,

vote

盘的内容自动从备份恢复

添加

vote

盘时,必须以

root

用户停止整个集群

1)

备份

vote

(

备份一份即可,无需全部备份

)

dd if=/dev/rhdisk22 of=/home/oracle/votebak6.vote

dd if=/dev/rhdisk23 of=/home/oracle/votebak7.vote

dd if=/dev/rhdisk24 of=/home/oracle/votebak8.vote

2)

停止集群

crsctl stop crs

注:所有节点都执行

3)

添加

vote

crsctl add css votedisk /dev/rhdiskpower0 -force

# crsctl add css votedisk /dev/rhdiskpower0 -force

Now formatting voting disk: /dev/rhdiskpower0

successful addition of votedisk /dev/rhdiskpower0.

4)

移除原

vote

crsctl delete css votedisk /dev/rhdisk22 -force

5)

启动集群

crsctl start crs

所有节点都执行

6)

验证当前

vote

盘路径

crsctl query css votedisk

select name, path, mode_status, state from v$asm_disk order by name;

7)

检查集群资源状态

crs_stat –t

迁移参数文件

创建数据库pfile文件

create pfile='/tmp/initorcl.ora' from spfile;

通过创建的pfile

启动数据库至nomount

状态

create spfile='+NDATA/orcl/spfileorcl.ora' from pfile='/tmp/initorcl.ora';

修改三节点

$ORACLE_HOME/dbs

initorcl.ora

文件,指向磁盘组中的参数文件位置

重新启动至nomount

状态

(startup nomount)

(首先查看数据库的配置信息

srvctl config database -d orcl -a

通过srvctl

修改spfile

的位置

srvctl modify database -d orcl -p ‘+ndata/orcl/spfileorcl.ora’

迁移控制文件

重启实例是nomount状态:

修改参数文件中控制文件的路径:

alter system set control_files='+NDATA/orcl/control01.ctl' scope=spfile sid='*';

Restore

控制文件:

rman:

restore controlfile to '+NDATA/orcl/control01.ctl' from '+DATA/ASM/CONTROLFILE/control01.ctl.286.968939085';

启动数据库至mount状态

数据文件

select 'alter database rename file '||''''||name||''''||' to '||''''||'+NDATA/ORCL/DATAFILE/'||substr(name,instr(name,'/',-1)+1)||''';' from v$datafile;

获取以上脚本运行结果,rename

数据文件

alter database rename file '+DATA/orcl/datafile/system.259.967068683' to '+NDATA/orcl/datafile/SYSTEM.bdf';

alter database rename file '+DATA/orcl/datafile/sysaux.260.967068697' to '+NDATA/orcl/datafile/sysaux.bdf';

alter database rename file '+DATA/orcl/datafile/undotbs1.261.967068711' to '+NDATA/orcl/datafile/undotbs1.bdf';

alter database rename file '+DATA/orcl/datafile/undotbs2.263.967068729' to '+NDATA/orcl/datafile/undotbs2.bdf';

alter database rename file '+DATA/orcl/datafile/users.264.967068735' to '+NDATA/orcl/datafile/users.bdf';

重建TEMP

文件

s

elect 'alter database rename file '||''''||name||''''||' to '||''''||'+data/orcl/datafile/'||substr(name,instr(name,'/',-1)+1)||''''||';' from v$tempfile;

打开数据库

查询数据文件及控制文件的scn

select name ,CHECKPOINT_CHANGE#   from v$datafile

select name ,CHECKPOINT_CHANGE#   from v$datafile_header;

三个节点正常打开数据库

归档路径检查。

检查

a.

参数文件、控制文件、数据库文件、临时文件等是否位于正确位置。

b.

sqlplus / as sysasm

dismount

旧的磁盘组

alter diskgroup ocrvt dismount;  (

三个节点)

alter diskgroup data dismount;

(三个节点)

show parameter diskgroup;

修改此参数

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

asm_diskgroups                       string      NDATA

c.

[oracle@rac2 ~]$ srvctl modify database -d orcl -a "ndata"

[oracle@rac2 ~]$ srvctl config database -d orcl -a

Database unique name: orcl

Database name: orcl

Oracle home: /oracle/app/product/11.2.0/db_1

Oracle user: oracle

Spfile: +NDATA/orcl/spfileorcl.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: orcl

Database instances: orcl1,orcl2

Disk Groups: DATA

Mount point paths:

Services:

Type: RAC

Database is enabled

Database is administrator managed

修改权限 root:root

防止机器重启,自动拉起

d.

重启数据库和集群验证。

常用命令:

select name,state,type from v$asm_diskgroup;

select group_number,disk_number,state,name,path from v$asm_disk;

回退措施

1.

修改三节点$ORACLE_HOME/dbs

下initorcl.ora

文件,指向原磁盘组中的参数文件位置

2.

启动数据库到nomount

状态

通过srvctl

修改spfile

的位置

srvctl modify database -d orcl -p ‘+data/orcl/spfileorcl.ora’

3.

还原参数文件中控制文件的路径:

alter system set control_files='+DATA/orcl/control01.ctl' scope=spfile sid='*';

4.

将数据库mount

起来,重建temp

表空间,检查数据文件位置,确认无误后,开启数据库。

5.

还原redo

文件

6. dismount

新建磁盘组,并更改其权限,避免它重新挂上来

7.

在线还原ocr

8.

停库,停集群还原vote

9.

重启集群,集群方法开启数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值