Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3383558
  • 博文数量: 631
  • 博客积分: 10716
  • 博客等级: 上将
  • 技术积分: 8397
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-01 22:35
文章分类

全部博文(631)

文章存档

2020年(2)

2019年(22)

2018年(4)

2017年(37)

2016年(22)

2015年(1)

2013年(12)

2012年(20)

2011年(19)

2010年(20)

2009年(282)

2008年(190)

分类: Oracle

2017-01-09 08:54:39

一、 更换环境
操作系统: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
阅读(3346) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~