1. 首页
  2. 后端

Oracle10g rac AIX系统 存储更换

一、 更换环境
操作系统:AIX
数据库:10.2.0.4
数据文件存储方式:ASM
二、 前期准备
1、图形界面工具:Xmanager 4
2、确认新存储正常挂载映射,新存储lun划分规则需和当前使用存储一致(ocr、votingdisk所在盘,其他盘可以不一致),被his两台服务器识别。
3、提前格式化一块大盘,做成文件系统,挂载到一个服务器节点,用于存放全备。
注:ocr仲裁盘可在线进行替换,数据盘、归档盘由于使用的asmdg,需停机操作。
三、 规划
名称 原位置 新位置 属组属主权限 权限 大小
DATAVG_0001 /dev/rhdisk11 /dev/rhdiskpower1 oracle   dba 660 500G
DATAVG_0002 /dev/rhdisk12 /dev/rhdiskpower2 oracle   dba 660 500G
DATAVG_0003 /dev/rhdisk13 /dev/rhdiskpower3 oracle   dba 660 500G
fra /dev/rhdisk14 /dev/rhdiskpower4 oracle   dba 660 300G
ocr /dev/rhdisk8 /dev/rhdiskpower5 root     oinstall 640 1G
ocr /dev/rhdisk21 /dev/rhdiskpower6 root     oinstall 640 1G
vote /dev/rhdisk22 /dev/rhdiskpower7 oracle   oinstall 644 1G
vote /dev/rhdisk23 /dev/rhdiskpower8 oracle   oinstall 644 1G
vote /dev/rhdisk24 /dev/rhdiskpower0 oracle   oinstall 644 405G
四、 具体实施步骤
1. 修改新盘权限(root用户修改,每个节点)
chown oracle:dba /dev/rhdiskpower1
chown oracle:dba /dev/rhdiskpower2
chown oracle:dba /dev/rhdiskpower3
chown oracle:dba /dev/rhdiskpower4
chown root:oinstall /dev/rhdiskpower5
chown root:oinstall /dev/rhdiskpower6
chown oracle:oinstall /dev/rhdiskpower7
chown oracle:oinstall /dev/rhdiskpower8
chown oracle:oinstall /dev/rhdiskpower0

chmod 660 /dev/rhdiskpower1
chmod 660 /dev/rhdiskpower2
chmod 660 /dev/rhdiskpower3
chmod 660 /dev/rhdiskpower4
chmod 640 /dev/rhdiskpower5
chmod 640 /dev/rhdiskpower6
chmod 644 /dev/rhdiskpower7
chmod 644 /dev/rhdiskpower8
chmod 644 /dev/rhdiskpower0

确认 ls -l /dev/rhdiskpowe*
2. 全备数据库
nohup /orabak/backup1126/backup.sh &

/orabak/backup1126/backup.sh

#!/usr/bin/ksh
. ~/.profile
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / cmdfile /orabak/backup1126/backup.rcv log=/orabak/backup1126/rmanfull_log.txt

/orabak/backup1126/backup.rcv

run
{
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;
}

3.在线更换ocr(su – oracle    su root)
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
4. 做新的disk group
1) 使用oracle用户登陆Xmanager

2) 打开命令窗口输入oracle用户.profile中的内容后,绝对路径打开dbca

3) 添加新的Disk Group,要与之前对应的DG属性完全一致
创建完新DiskGroup后会自动mount到左右节点
如果没有,选中新DG后单击低下的mount键对新DG进行mount

添加完后:

5.查询并记录数据库失效对象
set linesize 300 pagesize 150;
column owner format a20;
column object_name format a60;
column status format a20;
column object_type format a60;
select owner,object_name,status,object_type from dba_objects where status=’INVALID’ and owner in (‘ZYHIS’,’ABW’,’HIS_ADT’);
6.更换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/rhdiskpower7 -force
crsctl add css votedisk /dev/rhdiskpower8 -force
crsctl add css votedisk /dev/rhdiskpower0 -force

# crsctl add css votedisk /dev/rhdiskpower7 -force
Now formatting voting disk: /dev/rhdiskpower7
successful addition of votedisk /dev/rhdiskpower7.
# crsctl add css votedisk /dev/rhdiskpower8 -force
Now formatting voting disk: /dev/rhdiskpower8
successful addition of votedisk /dev/rhdiskpower8.
# 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
crsctl delete css votedisk /dev/rhdisk23 -force
crsctl delete css votedisk /dev/rhdisk24 -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)手工启动集群未自启动的服务
srvctl start -d orcl -s orclmz
srvctl start -d orcl -s orclzy

8)检查集群资源状态
crs_stat –t
7.停机,切换redo,备份归档
1) 停机
关闭监听:lsnrctl stop
杀进程LOCAL = NO:
查出并杀掉进程

$ ps -ef | grep LOCAL=NO | more
oracle  208986       1   0 17:15:06      –  0:18 oracleorcl1 (LOCAL=NO)
oracle  467168       1   0 16:43:30      –  0:09 oracleorcl1 (LOCAL=NO)
oracle  552974       1   0 17:16:43      –  0:12 oracleorcl1 (LOCAL=NO)
oracle  606432       1   0 15:43:02      –  0:08 oracleorcl1 (LOCAL=NO)
oracle  618502       1   0   Nov 26      –  0:13 oracleorcl1 (LOCAL=NO)
oracle  622680       1   0 15:59:12      –  0:17 oracleorcl1 (LOCAL=NO)
oracle  639134       1   0   Nov 26      –  0:47 oracleorcl1 (LOCAL=NO)
oracle  688356       1   0 13:58:59      –  0:19 oracleorcl1 (LOCAL=NO)
oracle  708658       1   0 15:08:36      –  0:10 oracleorcl1 (LOCAL=NO)
oracle  716928       1   0 08:56:38      –  0:22 oracleorcl1 (LOCAL=NO)
oracle  725062       1   0 16:53:51      –  0:01 oracleorcl1 (LOCAL=NO)
oracle  790686       1   0 17:17:24      –  0:04 oracleorcl1 (LOCAL=NO)
oracle  806974       1   0 17:03:18      –  0:11 oracleorcl1 (LOCAL=NO)
oracle  839906       1   0   Nov 25      –  0:18 oracleorcl1 (LOCAL=NO)
$ kill -9 208986

1) 所有节点切换redo,确保所有的redo都已经归档
查询redolog日志状态
set pagesize 200;
column TBS_NAME format a20;
c column DBF_NAME format a60;
sselect l.group#,l.THREAD#,l.SEQUENCE#,l.status,l.FIRST_CHANGE#,l.NEXT_CHANGE#,l.NEXT_TIME from v$log l;

Rodo归档命令
alter system archive log current
alter system checkpoint;
3)备份归档日志
nohup /orabak/backup1126/arch_last.sh &

/orabak/backup1126/arch_last.sh

#!/usr/bin/ksh
. ~/.profile
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / cmdfile /orabak/backup1126/arch_last.rcv log=/orabak/backup1126/arch_last.txt

/orabak/backup1126/arch_last.rcv

run
{
allocate channel c1 type disk;
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/Last_rmanarch_full%T%U’ archivelog all;
release channel c1;
}

4)查询并记录最后的一个在线日志的时间点
select l.GROUP#,l.THREAD#,l.SEQUENCE#,l.STATUS,to_number(l.FIRST_CHANGE#) “FIRST_CHANGE#”,to_char(l.FIRST_TIME,’yyyy/mm/dd hh24:mi:ss’) “First_Time” from v$log l order by l.FIRST_CHANGE# desc;

5)查询并记录最后一个归档日志的时间点
column name format a70;
set linesize 300 pagesize 100;
select l.name,l.THREAD#,l.SEQUENCE#,l.FIRST_CHANGE#,to_char(l.FIRST_TIME,’yyyy/mm/dd hh24:mi:ss’) “First_Time”,l.NEXT_CHANGE#,to_char(l.NEXT_TIME,’yyyy/mm/dd hh24:mi:ss’) “Next_Time”  from v$archived_log l order by l.FIRST_CHANGE# desc;

8.关闭数据库,dismount原DG
1)使用集群命令关闭数据库
srvctl stop database -d orcl
如果关不了所有节点执行shutdown immediate关闭

2)dismount原DG(一定要确保原DG在所有节点都已经DISMOUNT再进行后续操作)
注:11g通过srvctl命令dismount
此操作所有节点都要做,以下以节点1为例
Export ORACLE_SID=+ASM1
Sqlplus / as sysdba
ALTER DISKGROUP DATAVG DISMOUNT;
ALTER DISKGROUP FRA DISMOUNT;

3)检查确保原DG已经mount
ASMCA图像界面确认

登陆到每个节点通过asmcmd =>lsdg再次确认
9.修改参数文件
1)创建pfile并进行修改
create pfile = ‘/orabak/initorcl.ora’ from spfile;
修改pfile,将其中带原DG的路径换为新DG的路径
修改前后参数文件对比
$ diff initorcl.ora initorcl_change.ora
17c17
< *.control_files=’+DATAVG/orcl/control01.ctl’,’+DATAVG/orcl/control02.ctl’,’+DATAVG/orcl/control03.ctl’

> *.control_files=’+NEWDATA/orcl/control01.ctl’,’+NEWDATA/orcl/control02.ctl’,’+NEWDATA/orcl/control03.ctl’
22c22
< *.db_file_name_convert=’/oradata/standby/’,’+DATAVG/ORCL/’

> *.db_file_name_convert=’/oradata/standby/’,’+NEWDATA/ORCL/’
34c34
< *.log_archive_dest_1=’LOCATION=+FRA VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl’

> *.log_archive_dest_1=’LOCATION=+NEWFAR VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl’
40c40
< *.log_file_name_convert=’/oradata/standby/’,’+DATAVG/ORCL/ONLINELOG/’

> *.log_file_name_convert=’/oradata/standby/’,’+NEWDATA/ORCL/ONLINELOG/’

2)创建spfile到新DG
create spfile=’+NEWDATA’ from pfile=’/orabak/initorcl_change.ora’;
3) 修改pfile,让pfile指向spfile(所有节点都要做,以节点一为例)
vi /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl1.ora
spfile=’+NEWDATA/ORCL/PARAMETERFILE/spfile.313.896992587′
4)打开数据库到nomount状态,查看spfile是否指向新DG(所有节点都要做,以节点一为例)
startup nomount
show parameter spfile
10.恢复控制文件
1)恢复控制文件
rman target /
restore controlfile from ‘/orabak/ctlbackup_c-1282382613-20151128-04’;
alter database mount;
2)查询数据文件及redolog位置
rman target /
report schema;
Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
—- ——– ——————– ——- ————————
1    570      SYSTEM               ***     +DATAVG/standby/datafile/system.272.802055609
2    2605     UNDOTBS1             ***     +DATAVG/standby/datafile/undotbs1.257.802055607
3    1990     SYSAUX               ***     +DATAVG/standby/datafile/sysaux.258.802055607
4    4705     USERS                ***     +DATAVG/standby/datafile/users.273.802055609
5    1150     UNDOTBS2             ***     +DATAVG/standby/datafile/undotbs2.256.802055609
6    32717    HIS_DATA             ***     +DATAVG/orcl/datafile/his01.dbf
7    32767    HIS_DATA             ***     +DATAVG/orcl/datafile/his02.dbf
8    32767    HIS_DATA             ***     +DATAVG/orcl/datafile/his03.dbf
9    32767    HIS_DATA             ***     +DATAVG/orcl/datafile/his04.dbf
10   32767    HIS_DATA             ***     +DATAVG/orcl/datafile/his05.dbf
11   32767    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs01.dbf
12   32767    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs02.dbf
13   4096     HIS_ADT_SP           ***     +DATAVG/orcl/datafile/his_adt_sp.dbf
14   4096     LIS_DATA             ***     +DATAVG/orcl/datafile/lis_data.dbf
15   32767    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs03.dbf
16   29564    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs04.dbf
17   32761    HIS_DATA             ***     +DATAVG/orcl/datafile/his06.dbf
18   32767    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs05.dbf
19   30720    HIS_DATA             ***     +DATAVG/orcl/datafile/his07.dbf
20   30720    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs06.dbf
21   30720    HIS_DATA             ***     +DATAVG/orcl/datafile/his08.dbf
22   30720    IDXTBS               ***     +DATAVG/orcl/datafile/idxtbs07.dbf
23   4096     HIS_ADT_SP           ***     +DATAVG/orcl/datafile/his_adt_sp02.dbf
24   1024     HIS_ADT_SP           ***     +DATAVG/orcl/datafile/his_adt_sp.281.894963895
25   4096     HIS_DATA             ***     +DATAVG/orcl/datafile/his_data.300.894964351
26   512      SYSAUX               ***     +DATAVG/orcl/datafile/sysaux.301.894964475
27   512      SYSTEM               ***     +DATAVG/orcl/datafile/system.302.894964533
28   2048     USERS                ***     +DATAVG/orcl/datafile/users.303.894964571

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
—- ——– ——————– ———– ——————–
1    32767    TEMP                 32767       +DATAVG/standby/tempfile/temp.287.802083423

sqlplus / as sysdba
SQL> set pagesize 200;
SQL> column TBS_NAME format a20;
SQL> column DBF_NAME format a60;
SQL> select dbf.FILE#,tbs.NAME TBS_NAME,dbf.NAME DBF_NAME from v$tablespace tbs,v$datafile dbf where tbs.TS#=dbf.TS#;

FILE# TBS_NAME
———- ——————–
DBF_NAME
————————————————————
1 SYSTEM
+DATAVG/standby/datafile/system.272.802055609

27 SYSTEM
+DATAVG/orcl/datafile/system.302.894964533

2 UNDOTBS1
+DATAVG/standby/datafile/undotbs1.257.802055607

3 SYSAUX
+DATAVG/standby/datafile/sysaux.258.802055607

26 SYSAUX
+DATAVG/orcl/datafile/sysaux.301.894964475

4 USERS
+DATAVG/standby/datafile/users.273.802055609

28 USERS
+DATAVG/orcl/datafile/users.303.894964571

5 UNDOTBS2
+DATAVG/standby/datafile/undotbs2.256.802055609

9 HIS_DATA
+DATAVG/orcl/datafile/his04.dbf

8 HIS_DATA
+DATAVG/orcl/datafile/his03.dbf

10 HIS_DATA
+DATAVG/orcl/datafile/his05.dbf

6 HIS_DATA
+DATAVG/orcl/datafile/his01.dbf

7 HIS_DATA
+DATAVG/orcl/datafile/his02.dbf

25 HIS_DATA
+DATAVG/orcl/datafile/his_data.300.894964351

21 HIS_DATA
+DATAVG/orcl/datafile/his08.dbf

19 HIS_DATA
+DATAVG/orcl/datafile/his07.dbf

17 HIS_DATA
+DATAVG/orcl/datafile/his06.dbf

18 IDXTBS
+DATAVG/orcl/datafile/idxtbs05.dbf

16 IDXTBS
+DATAVG/orcl/datafile/idxtbs04.dbf

12 IDXTBS
+DATAVG/orcl/datafile/idxtbs02.dbf

15 IDXTBS
+DATAVG/orcl/datafile/idxtbs03.dbf

11 IDXTBS
+DATAVG/orcl/datafile/idxtbs01.dbf

20 IDXTBS
+DATAVG/orcl/datafile/idxtbs06.dbf

22 IDXTBS
+DATAVG/orcl/datafile/idxtbs07.dbf

13 HIS_ADT_SP
+DATAVG/orcl/datafile/his_adt_sp.dbf

24 HIS_ADT_SP
+DATAVG/orcl/datafile/his_adt_sp.281.894963895

23 HIS_ADT_SP
+DATAVG/orcl/datafile/his_adt_sp02.dbf

14 LIS_DATA
+DATAVG/orcl/datafile/lis_data.dbf

28 rows selected.

SQL> select dbf.FILE#,BYTES/1024/1024 “M”,tbs.NAME TBS_NAME,dbf.NAME DBF_NAME from v$tablespace tbs,v$tempfile dbf where tbs.TS#=dbf.TS#;

FILE#          M TBS_NAME
———- ———- ——————–
DBF_NAME
————————————————————
1      32767 TEMP
+DATAVG/standby/tempfile/temp.287.802083423

SQL> set linesize 150;
SQL> set pagesize 50;
SQL> column TYPE format a8;
SQL> column MEMBER format a60;
SQL> select lf.GROUP#,l.THREAD#,lf.TYPE,l.BYTES/1024/1024 MB,lf.MEMBER from v$logfile lf,v$log l where lf.GROUP#=l.GROUP#;

GROUP#    THREAD# TYPE             MB MEMBER
———- ———- ——– ———- ————————————————————
1          1 ONLINE          512 +DATAVG/orcl/onlinelog/group_1.279.879447445
2          2 ONLINE          512 +DATAVG/orcl/onlinelog/group_2.277.879447463
3          1 ONLINE          512 +DATAVG/orcl/onlinelog/group_3.278.879447453
4          2 ONLINE          512 +DATAVG/orcl/onlinelog/group_4.276.879447469
5          1 ONLINE          512 +DATAVG/orcl/onlinelog/group_5.296.879447083
6          2 ONLINE          512 +DATAVG/orcl/onlinelog/group_6.297.879447109
7          1 ONLINE          512 +DATAVG/orcl/onlinelog/group_7.298.879447309
8          2 ONLINE          512 +DATAVG/orcl/onlinelog/group_8.299.879447321
11.恢复数据文件
1)恢复数据文件
nohup /orabak/backup1126/restore_db.sh &

/orabak/backup1126/restore_db.sh

#!/usr/bin/ksh
. ~/.profile
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / cmdfile /orabak/backup1126/restore_db.rcv log=/orabak/backup1126/restore_db.txt

/orabak/backup1126/backup.rcv

run
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
set newname for datafile 1 to ‘+NEWDATA’;
set newname for datafile 2 to ‘+NEWDATA’;
set newname for datafile 3 to ‘+NEWDATA’;
set newname for datafile 4 to ‘+NEWDATA’;
set newname for datafile 5 to ‘+NEWDATA’;
set newname for datafile 6 to ‘+NEWDATA’;
set newname for datafile 7 to ‘+NEWDATA’;
set newname for datafile 8 to ‘+NEWDATA’;
set newname for datafile 9 to ‘+NEWDATA’;
set newname for datafile 10 to ‘+NEWDATA’;
set newname for datafile 11 to ‘+NEWDATA’;
set newname for datafile 12 to ‘+NEWDATA’;
set newname for datafile 13 to ‘+NEWDATA’;
set newname for datafile 14 to ‘+NEWDATA’;
set newname for datafile 15 to ‘+NEWDATA’;
set newname for datafile 16 to ‘+NEWDATA’;
set newname for datafile 17 to ‘+NEWDATA’;
set newname for datafile 18 to ‘+NEWDATA’;
set newname for datafile 19 to ‘+NEWDATA’;
set newname for datafile 20 to ‘+NEWDATA’;
set newname for datafile 21 to ‘+NEWDATA’;
set newname for datafile 22 to ‘+NEWDATA’;
set newname for datafile 23 to ‘+NEWDATA’;
set newname for datafile 24 to ‘+NEWDATA’;
set newname for datafile 25 to ‘+NEWDATA’;
set newname for datafile 26 to ‘+NEWDATA’;
set newname for datafile 27 to ‘+NEWDATA’;
set newname for datafile 28 to ‘+NEWDATA’;
restore database;
switch datafile all;
release channel c1;
release channel c2;
release channel c3;
}

2)修改控制文件中redolog路径(注意一定要指定到新盘的确切路径下)
alter database rename file ‘+DATAVG/orcl/onlinelog/group_1.299.896932437’ to ‘+NEWDATA/orcl/onlinelog/group_1’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_3.297.896932441’ to ‘+NEWDATA/orcl/onlinelog/group_3’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_2.298.896932439’ to ‘+NEWDATA/orcl/onlinelog/group_2’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_4.296.896932443’ to ‘+NEWDATA/orcl/onlinelog/group_4’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_5.276.896932445’ to ‘+NEWDATA/orcl/onlinelog/group_5’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_6.277.896932445’ to ‘+NEWDATA/orcl/onlinelog/group_6’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_7.278.896932447’ to ‘+NEWDATA/orcl/onlinelog/group_7’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_8.279.896932449’ to ‘+NEWDATA/orcl/onlinelog/group_8’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_21.286.879451249’ to ‘+NEWDATA/orcl/onlinelog/group_21’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_22.285.879451285’ to ‘+NEWDATA/orcl/onlinelog/group_22’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_23.284.879451325’ to ‘+NEWDATA/orcl/onlinelog/group_23’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_24.283.879451333’ to ‘+NEWDATA/orcl/onlinelog/group_24’;
alter database rename file ‘+DATAVG/orcl/onlinelog/group_25.282.879451339’ to ‘+NEWDATA/orcl/onlinelog/group_25′;

3)将关库时备份出的归档注册到控制文件中
catalog start with ‘/orabak/backup1126/’;
4)查看所有数据文件scn号,是否一致
set numwidth 20
select checkpoint_change#,file# from v$datafile_header;
5)跑归档恢复数据库
nohup /orabak/backup1126/restor_arch.sh &

/orabak/backup1126/restor_arch.sh

#!/usr/bin/ksh
. ~/.profile
/u01/app/oracle/product/10.2.0/db_1/bin/rman target / cmdfile /orabak/backup1126/restor_arch.rcv log=/orabak/backup1126/restor_arch.txt

/orabak/backup1126/restor_arch.rcv

run
{
ALLOCATE CHANNEL disk1 DEVICE TYPE disk;
recover database;
release channel disk1;
}

6)查看所有数据文件scn号,是否一致
set numwidth 20
select checkpoint_change#,file# from v$datafile_header;
7)对应数据文件SCN号查看日志文件,确认恢复的时间点(与关库时间点对应)
归档备份查看
list backup of archivelog all;
归档日志SCN号及对应时间
column name format a70;
set linesize 300 pagesize 100;
select l.name,l.THREAD#,l.SEQUENCE#,l.FIRST_CHANGE#,to_char(l.FIRST_TIME,’yyyy/mm/dd hh24:mi:ss’) “First_Time”,l.NEXT_CHANGE#,to_char(l.NEXT_TIME,’yyyy/mm/dd hh24:mi:ss’) “Next_Time”  from v$archived_log l order by l.FIRST_CHANGE# desc;
8)再次查询数据文件和redolog位置
set pagesize 200;
column TBS_NAME format a20;
column DBF_NAME format a60;
select dbf.FILE#,tbs.NAME TBS_NAME,dbf.NAME DBF_NAME from v$tablespace tbs,v$datafile dbf where tbs.TS#=dbf.TS#;
select dbf.FILE#,BYTES/1024/1024 “M”,tbs.NAME TBS_NAME,dbf.NAME DBF_NAME from v$tablespace tbs,v$tempfile dbf where tbs.TS#=dbf.TS#;
set linesize 150;
set pagesize 50;
column TYPE format a8;
column MEMBER format a60;
select lf.GROUP#,l.THREAD#,lf.TYPE,l.BYTES/1024/1024 MB,lf.MEMBER from v$logfile lf,v$log l where lf.GROUP#=l.GROUP#;

9)确认数据恢复时间点没问题后,打开数据库(两个节点都要做)
alter database open;
alter database open resetlogs;
12.后续操作
1)替换tempfile
alter tablespace temp add tempfile ‘+NEWDATA’ size 32767M autoextend off;
alter tablespace temp drop tempfile ‘+DATAVG/standby/tempfile/temp.287.802083423′;
select dbf.FILE#,BYTES/1024/1024 “M”,tbs.NAME TBS_NAME,dbf.NAME DBF_NAME from v$tablespace tbs,v$tempfile dbf where tbs.TS#=dbf.TS#;
2)修改归档路径到新盘
archive log list;
alter system set LOG_ARCHIVE_DEST_1=’LOCATION=+NEWFAR’;
archive log list;
3)检查数据库失效对象
查询数据库失效对象,并比对与关库前是否一致
set linesize 300 pagesize 150;
column owner format a20;
column object_name format a60;
column status format a20;
column object_type format a60;
select owner,object_name,status,object_type from dba_objects where status=’INVALID’ and owner in (‘ZYHIS’,’ABW’,’HIS_ADT’);
4)验证日志是否可用
select * from v$log;
create table t as select * from dbs_objects;
alter system archive log current;
alter system checkpoint;
5)集群层面验证集群所有服务是否正常开启
crs_stat –t –v
crs_stat
crsctl stat res –t
可能会用到的操作
srvctl start service -d orcl -s orclmz
srvctl start service -d orcl -s orclzy

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/187352.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code