RMAN迁移(文件系统到裸设备)

前几天做一个RMAN的迁移,从文件系统存储迁移到裸设备存储,事实证明非常成功,这里要特别感谢我的同事lc。

现记录过程如下:

1、基本信息

  源库  10.180.67.187       数据库版本 10.2.0.5    DB_NAME name   数据文件存储

  目标库 10.180.67.199      数据库版本 10.2.0.5    DB_NAME name   裸设备存储

2、拟采用技术

    用RMAN异机恢复  NFS 共享目标库备份卷

3、源数据库文件信息

    数据文件

    

      FILE_ID TABLESPACE_NAME                FILE_NAME                                                   G

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

         1 SYSTEM                         /u01/app/oradata/yxpwgis/system01.dbf                       1

         2 UNDOTBS1                       /u01/app/oradata/yxpwgis/undotbs01.dbf             31.9999847

         3 SYSAUX                         /u01/app/oradata/yxpwgis/sysaux01.dbf                       4

         4 USERS                          /u01/app/oradata/yxpwgis/users01.dbf                       10

         5 WEBGIS                         /gis_data/WEBGIS.dbf                                       20

         6 SZPROD                         /gis_data/szprod01.dbf                             31.9999847

         7 WEBGIS_IDX                     /gis_data/webgis_idx01.dbf                                  8

         8 SZPROD_IDX                     /gis_data/szprod_idx01.dbf                                 10

         9 SZPROD                         /gis_data/szprod02.dbf                                     30

        10 SZPROD                         /gis_data/szprod03.dbf                                     30

        11 SZPROD                         /gis_data/szprod04.dbf                                     30

        12 SZPROD                         /gis_data/szprod05.dbf                              29.296875

        13 SZPROD                         /gis_data/szprod06.dbf                              29.296875

        14 SZPROD                         /gis_data/szprod07.dbf                                     30

        15 SZPROD                         /gis_data/szprod08.dbf                                     30

        16 SZPROD                         /gis_data/szprod09.dbf                                     30

        17 SZPROD                         /gis_data/szprod10.dbf                                     30

        18 SZPROD                         /gis_data2/szprod11.dbf                                    30

        19 SZPROD                         /gis_data2/szprod12.dbf                                    30

        20 UNDOTBS1                       /gis_data2/undotbs02.dbf                                   30

        21 SZPROD_IDX                     /gis_data/szprod_idx02.dbf                                  2

 

21 rows selected.

     临时文件

     

        FILE# NAME                                                        M

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

         1 /u01/app/oradata/yxpwgis/temp01.dbf                     10114

         2 /u01/app/oradata/yxpwgis/temp02.dbf                      5120

     在线日志文件

 

  SQL> select group#,members,bytes/1024/1024 m from v$log;

 

    GROUP#    MEMBERS          M

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

         1          1        512

         2          1        512

         3          1        512

         4          1        500

         5          1        500

 

    控制文件

 SQL> show parameter control;

 

NAME                                 TYPE                             VALUE

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

control_file_record_keep_time        integer                          40

control_files                        string                           /u01/app/oradata/yxpwgis/contr

                                                                      ol01.ctl, /u01/app/oradata/yxp

                                                                      wgis/control02.ctl, /u01/app/o

                                                                      radata/yxpwgis/control03.ctl

 

  select file# , checkpoint_change# from v$datafile;

  select file#,checkpoint_change# from v$datafile_header;

  

4、在目标库上创建裸设备

    a.删除旧的lv(因为给的系统里面以前装过ORACLE,有lv存在,为了规范先删掉旧的)

     rmlv -f 'lv_system01';

     rmlv -f 'lv_szprod_dat01';

     rmlv -f 'lv_szprod_dat02';

     rmlv -f 'lv_szprod_dat03';

     rmlv -f 'lv_szprod_dat04';

     rmlv -f 'lv_szprod_dat05';

     rmlv -f 'lv_szprod_dat06';

     rmlv -f 'lv_szprod_dat07';

     rmlv -f 'lv_szprod_dat08';

     rmlv -f 'lv_szprod_dat09';

     rmlv -f 'lv_szprod_dat10'; 

     rmlv -f 'lv_szprod_idx01';

     rmlv -f 'lv_szprod_idx02';

     rmlv -f 'lv_szprod_idx03';     

     rmlv -f 'lv_undotbs1_01';

     rmlv -f 'lv_undotbs1_02';     

     rmlv -f 'lv_user_01';    

     rmlv -f 'lv_webgis_dat01';

     rmlv -f 'lv_webgis_dat02';

     rmlv -f 'lv_webgis_dat03';

     rmlv -f 'lv_webgis_dat04';

     rmlv -f 'lv_webgis_dat05';

     rmlv -f 'lv_webgis_dat06';     

     rmlv -f 'lv_webgis_idx01';

     rmlv -f 'lv_webgis_idx02';     

     rmlv -f 'lv_spfile';

     rmlv -f 'lv_temp02';     

     rmlv -f 'lv_pwdfile'

 b. 创建lv

    这里要特别强调,裸设备的大小应该大于数据文件的大小,至少在两个块以上

   mklv -y lv_system01 -T O -t raw -w n -r n vg_ssd 128 hdisk14

   mklv -y lv_undotbs01 -T O -t raw -w n -r n vg_ssd 128 hdisk15

   mklv -y lv_sysaux01 -T O -t raw -w n -r n vg_ssd 128 hdisk16

   mklv -y lv_users01 -T O -t raw -w n -r n vg_ssd 128 hdisk17

   mklv -y lv_webgis -T O -t raw -w n -r n vg_ssd 128 hdisk18

   mklv -y lv_szprod01 -T O -t raw -w n -r n vg_ssd 128 hdisk19

   mklv -y lv_webgis_idx01 -T O -t raw -w n -r n vg_ssd 128 hdisk20

   mklv -y lv_szprod_idx01 -T O -t raw -w n -r n vg_ssd 128 hdisk21

   mklv -y lv_szprod02 -T O -t raw -w n -r n vg_ssd 128 hdisk22

   mklv -y lv_szprod03 -T O -t raw -w n -r n vg_ssd 128 hdisk23

   mklv -y lv_szprod04 -T O -t raw -w n -r n vg_ssd 128 hdisk24

   mklv -y lv_szprod05 -T O -t raw -w n -r n vg_ssd 128 hdisk14

   mklv -y lv_szprod06 -T O -t raw -w n -r n vg_ssd 128 hdisk15

   mklv -y lv_szprod07 -T O -t raw -w n -r n vg_ssd 128 hdisk16

   mklv -y lv_szprod08 -T O -t raw -w n -r n vg_ssd 128 hdisk17

   mklv -y lv_szprod09 -T O -t raw -w n -r n vg_ssd 128 hdisk18

   mklv -y lv_szprod10 -T O -t raw -w n -r n vg_ssd 128 hdisk19

   mklv -y lv_szprod11 -T O -t raw -w n -r n vg_ssd 128 hdisk20

   mklv -y lv_szprod12 -T O -t raw -w n -r n vg_ssd 128 hdisk21

   mklv -y lv_undotbs02 -T O -t raw -w n -r n vg_ssd 128 hdisk22

   mklv -y lv_szprod_idx02 -T O -t raw -w n -r n vg_ssd 128 hdisk23

   mklv -y lv_control01 -T O -t raw -w n -r n vg_ssd 1 hdisk24

   mklv -y lv_control02 -T O -t raw -w n -r n vg_ssd 1 hdisk14

   mklv -y lv_control03 -T O -t raw -w n -r n vg_ssd 1 hdisk15

   mklv -y lv_temp01 -T O -t raw -w n -r n vg_ssd 40 hdisk16

   mklv -y lv_temp02 -T O -t raw -w n -r n vg_ssd 40 hdisk17

   mklv -y lv_redo01 -T O -t raw -w n -r n vg_ssd 2 hdisk18

   mklv -y lv_redo02 -T O -t raw -w n -r n vg_ssd 2 hdisk19

   mklv -y lv_redo03 -T O -t raw -w n -r n vg_ssd 2 hdisk20

   mklv -y lv_redo04 -T O -t raw -w n -r n vg_ssd 2 hdisk21

   mklv -y lv_redo05 -T O -t raw -w n -r n vg_ssd 2 hdisk22


   

   c. 修改裸设备的用户和组

   chown gisora:oinstall /dev/lv*

 (这里只是为了好写,具体操作中要仔细查看,不能用*,会误伤其它用户或组的rlv的)

   

5、备份源库

   生成pfile

   create pfile from spfile;

   拷贝pfile到目标库

   可以用RMAN做冷备也可以做热备,这里由于要切换系统,要关库,所以用冷备,即一致性备份,可以不用备份归档日志

   在源库备份是用NFS共享目标库,直接备份到目标库,就少了拷贝备份文件的步骤,减少时间

   

   但是需要在源库上执行下面语句:

   alter system set event='10298 trace name context forever,level 32' SCOPE=SPFILE;(有人说这是ORACLEbug,要通过这个语句修改参数绕过去)

 

   run { 

   shutdown immediate;

   startup mount;

   allocate channel c1 type disk;

   allocate channel c2 type disk;

   allocate channel c3 type disk;

   allocate channel c4 type disk;

   backup as compressed backupset database format '/backup/new_backup/level0_%d_%s_%p_%u.bak';

   backup current controlfile format '/backup/new_backup/control_%d_%s_%p_%u.bak' ;

   release channel c1;

   release channel c2;

   release channel c3;

   release channel c4;

   alter database open;

   }

   

5、转储pfile 

    scp 

6、修改pfile中各个参数的路径

   修改成目标库用的路径

7、用pfile启动数据库到nomount状态

   startup nomount pfile=/$ORACLE_HOME/dbs/initname.ora

8、转储控制文件 开库到mount状态

 

  run {

  restore controlfile from '/backup/....';

  

  sql 'alter database mount';

  }

  

9、重新命名数据文件,转储数据库

 

   run{

   set newname for datafile 1 to '/dev/rlv_system01';

   set newname for datafile 2 to '/dev/rlv_undotbs01';

   set newname for datafile 3 to '/dev/rlv_sysaux01';

   set newname for datafile 4 to '/dev/rlv_users01';

   set newname for datafile 5 to '/dev/rlv_webgis';

   set newname for datafile 6 to '/dev/rlv_szprod01';

   set newname for datafile 7 to '/dev/rlv_webgis_idx01';

   set newname for datafile 8 to '/dev/rlv_szprod_idx01';

   set newname for datafile 9 to '/dev/rlv_szprod02';

   set newname for datafile 10 to '/dev/rlv_szprod03';

   set newname for datafile 11 to '/dev/rlv_szprod04';

   set newname for datafile 12 to '/dev/rlv_szprod05';

   set newname for datafile 13 to '/dev/rlv_szprod06';

   set newname for datafile 14 to '/dev/rlv_szprod07';

   set newname for datafile 15 to '/dev/rlv_szprod08';

   set newname for datafile 16 to '/dev/rlv_szprod09';

   set newname for datafile 17 to '/dev/rlv_szprod10';

   set newname for datafile 18 to '/dev/rlv_szprod11';

   set newname for datafile 19 to '/dev/rlv_szprod12';

   set newname for datafile 20 to '/dev/rlv_undotbs02';

   set newname for datafile 21 to '/dev/rlv_szprod_idx02';

   

   allocate channel c1 type disk;

   allocate channel c2 type disk;

   allocate channel c3 type disk;

   allocate channel c4 type disk;

   restore database;

   

   switch datafile all;

   

   release channel c1;

   release channel c2;

   release channel c3;

   release channel c4;

    

   }

 这里不能先恢复,因为在线日志不一样

10rename在线日志

    sqlplus '/as sysdba'

    

    alter database rename file '/gis_data2/redo01.log' to '/dev/lv_redo01';

    alter database rename file '/gis_data2/redo02.log' to '/dev/lv_redo02';

    alter database rename file '/gis_data2/redo03.log' to '/dev/lv_redo03';

    alter database rename file '/gis_data2/redo04.log' to '/dev/lv_redo04';

    alter database rename file '/gis_data2/redo05.log' to '/dev/lv_redo05';

    

   

11、打开数据库

 

    由于是一致性备份,不需要恢复,直接开库,但是确实在线日志文件,要resetlogs

    alter database open resetlogs;

    

   

12、调整tempundo表空间

 

show parameter undo;

selecttablespace_name from dba_tablespaces where contents='UNDO';

undo不用调整

 

 

select tablespace_name from dba_tablespaces where contents='TEMPORARY';

由于临时表空间中临时文件还有以前文件系统的文件,这里识别不到,可以通过rename临时文件,

也可以重建临时表空间,这里选择重建临时表空间

 

create temporary tablespace TEMP2  tempfile '/dev/rlv_temp01'  size 10000M autoextend off;

alter database default temporary tablespace TEMP2;

drop tablespace TEMP including contents and datafiles;

drop tablespace TEMP1 including contents and datafiles;

 

但是由于一些用户指定了临时表空间为temp1,这里还要再次指定这些用户默认的临时表空间

 

alter user user01 temporary tablespace  temp2;


 

13 、最后就是重新配置监听 netca

 

至此,此次数据库迁移工作全部完成。

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29598413/viewspace-1299363/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29598413/viewspace-1299363/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值