Welcome 微信登录

首页 / 数据库 / MySQL / Linux下使用RMAN迁移文件系统数据库到ASM

   在实际的工作过程中,由于ASM磁盘管理的便利性,因此很多时候需要将文件系统的数据库迁移到ASM,本文演示了如何将文件系统数据库迁移到ASM实例。     有关如何创建ASM实例及ASM磁盘管理请参考 Linux Oracle10gR2 创建ASM实例安装数据库 http://www.linuxidc.com/Linux/2011-03/33291.htm        一、主要步骤(假定ASM实例已创建)    1.计算目标数据库(文件系统)的大小    2.根据目标数据库的大小,为新ASM数据库(辅助数据库)准备可用磁盘空间    3.为辅助数据库配置初始化参数文件,密码文件,创建目录    4.备份目标数据库    5.迁移目标数据库到辅助数据库        二、实施迁移    本次迁移在同一台主机实现,因此采用不同的ORACLE_SID    环境:Oracle Linux 5.4 + Oracle 10g R2    目标数据库:orcl    辅助数据库:orclasm        1.计算目标数据库(文件系统)的大小        SQL> show parameter db_name                NAME                                 TYPE        VALUE        ------------------------------------ ----------- ------------------------------        db_name                              string      orcl                SQL> select * from v$version where rownum<2;                BANNER        ----------------------------------------------------------------        Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod            SQL> select sum(bytes)/1024/1024 ||"MB" from dba_segments;                SUM(BYTES)/1024/1024||"MB"        ------------------------------------------        1195.5MB                2.为辅助数据库准备可用空间,下面显示DG1中有3016MB可用空间,可以满足迁移的需要        ASMCMD> ls -s        Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Name           512   4096  1048576      6134     6032                0            3016              0  DG1/           512   4096  1048576      2047     1997                0            1997              0  REV/            3.配置辅助数据库        a.启动目标数据库,并为目标数据库创建pfile            [oracle@oradb ~]$ echo $ORACLE_SID            orcl            [oracle@oradb ~]$ sqlplus / as sysdba                        idle> startup            sys@ORCL> create pfile from spfile;                b.复制目标数据库的pfile来生成辅助数据库的pfile并对其进行修改            [oracle@oradb dbs]$ cd $ORACLE_HOME/dbs            [oracle@oradb dbs]$ cp initorcl.ora initorclasm.ora                        修改initorclasm.ora                对文件中所有的orcl使用替换命令替换为orclasm(使用vi工具 :%s/orcl/orclasm/g来替换)                 修改控制文件为1个(磁盘DG1使用了normal redundancy),路径为"+DG1/orclasm/controlfile/"--使用ASM注意目录结构                修改db_recovery_file_dest路径为"+REV"                修改log_archive_dest_1路径为"LOCATION=+REV/orclasm"                 修改db_create_file_dest路径为"+DG1"                增加下列参数(恢复完毕后清除)                    *.db_file_name_convert=("orcl","orclasm")                    *.log_file_name_convert=("orcl","orclasm")             下面列出发生变化的几个重要参数                *.audit_file_dest="/u01/app/oracle/admin/orclasm/adump"                *.background_dump_dest="/u01/app/oracle/admin/orclasm/bdump"                *.control_files="+DG1/orclasm/controlfile/control01.ctl"                *.core_dump_dest="/u01/app/oracle/admin/orclasm/cdump"                *.db_name="orclasm"                *.db_recovery_file_dest="+REV/orclasm"                *.log_archive_dest_1="LOCATION=+REV/orclasm"                            *.user_dump_dest="/u01/app/oracle/admin/orclasm/udump"                *.db_create_file_dest="+DG1"                *.db_file_name_convert=("orcl","orclasm")                *.log_file_name_convert=("orcl","orclasm")         c.根据刚刚修改过的参数创建目录            [oracle@oradb ~]$ mkdir -p $ORACLE_BASE/admin/orclasm/{a,b,c,u}dump            [oracle@oradb ~]$ ls $ORACLE_BASE/admin/orclasm            adump  bdump  cdump  udump            d.创建密码文件            [oracle@oradb dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworclasm password=oracle entries=8            4.备份目标数据库               a.目标数据库应处于归档模式下            SQL> select name,log_mode from v$database;             NAME      LOG_MODE            --------- ------------            ORCL      ARCHIVELOG                    b.连接到RMAN并进行备份,此处使用了非catalog方式            [oracle@oradb ~]$ uniread rman target sys/oracle@orcl nocatalog             RMAN> crosscheck archivelog all;       --验归档日志             RMAN> delete expired archivelog all;   --无效的归档日志             RMAN> report obsolete;             RMAN> delete noprompt obsolete;        --弃的备份             RMAN> show channel;                    --看缺省的备份             RMAN configuration parameters are:            CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   "/u01/bk/orcl/data_%d_%U";             RMAN> show controlfile autobackup;    --看控制文件的自动备份启用情             using target database control file instead of recovery catalog            RMAN configuration parameters are:            CONFIGURE CONTROLFILE AUTOBACKUP ON;             RMAN> show controlfile autobackup format;   --看控制文件的备份、格式             RMAN configuration parameters are:            CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/u01/bk/orcl/auto_ctl_%d_%F";             RMAN> run{     --标数库进备份,此备份为0增量包含了归档日志,控制文件spfile动备份            2> allocate channel ch1 device type disk;            3> backup as compressed backupset            4> incremental level 0 database format "/u01/bk/orcl/data_%d_%U"            5> plus archivelog format "/u01/bk/orcl/bk_lg_%U"            6> tag="Inc0_log";            7> release channel ch1;}            5.迁移目标数据到ASM        a.查看目标数据库的SEQUENCE,当前为10,便于恢复时指定SEQUENCE            SQL> select * from v$log;                               GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM            ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------                     1          1          9   52428800          1 YES ACTIVE                  520445 30-OCT-10                     2          1         10   52428800          1 NO  CURRENT                 520585 30-OCT-10                 b.查看目标数据库的数据文件的相关信息,后续需要为datafile指定文件名            RMAN> report schema;             Report of database schema                        List of Permanent Datafiles            ===========================            File Size(MB) Tablespace           RB segs Datafile Name            ---- -------- -------------------- ------- ------------------------            1    480      SYSTEM               ***     /u01/app/oracle/oradata/orcl/system01.dbf            2    25       UNDOTBS1             ***     /u01/app/oracle/oradata/orcl/undotbs01.dbf            3    240      SYSAUX               ***     /u01/app/oracle/oradata/orcl/sysaux01.dbf            4    5        USERS                ***     /u01/app/oracle/oradata/orcl/users01.dbf            5    100      EXAMPLE              ***     /u01/app/oracle/oradata/orcl/example01.dbf                        List of Temporary Files            =======================            File Size(MB) Tablespace           Maxsize(MB) Tempfile Name            ---- -------- -------------------- ----------- --------------------            1    20       TEMP                 32767       /u01/app/oracle/oradata/orcl/temp01.dbf         c.查看asm实例是否已正常提供服务,以及磁盘的状态并启动新的orclasm实例            SQL> show parameter instance_name                        NAME                                 TYPE        VALUE            ------------------------------------ ----------- ------------------------------            instance_name                        string      +ASM                        SQL> select group_number,name,state,type,total_mb,free_mb,usable_file_mb from v$asm_diskgroup;                        GROUP_NUMBER NAME                           STATE       TYPE     TOTAL_MB    FREE_MB USABLE_FILE_MB            ------------ ------------------------------ ----------- ------ ---------- ---------- --------------                       1 DG1                            MOUNTED     NORMAL       6134       6032           3016                       2 REV                            MOUNTED     EXTERN       2047       1997           1997                d.启动辅助数据库到nomount状态               [oracle@oradb ~]$ export ORACLE_SID=orclasm            [oracle@oradb ~]$ sqlplus / as sysdba             idle> startup nomount            ORACLE instance started.         e.使用RMAN连接到目标数据库和辅助数据库来完成迁移            [oracle@oradb dbs]$ rman auxiliary / target sys/RedHat@orcl            connected to target database: ORCL (DBID=1263182651)            connected to auxiliary database: ORCLASM (not mounted)             RMAN> run {            2> allocate auxiliary channel ach1 device type disk;            3> set until sequence 10 thread 1;            4> set newname for datafile 1 to "+DG1";            5> set newname for datafile 2 to "+DG1";            6> set newname for datafile 3 to "+DG1";            7> set newname for datafile 4 to "+DG1";            8> set newname for datafile 5 to "+DG1";            9> set newname for tempfile 1 to "+DG1";            10>  duplicate target database to orclasm logfile            11>  group 1("+DG1") size 5m reuse,            12>  group 2("+DG1") size 5m reuse;            13>  }                contents of Memory Script:            {               Alter clone database open resetlogs;            }            executing Memory Script                        database opened            Finished Duplicate Db at 30-OCT-10
  • 1
  • 2
  • 下一页
Oracle中的包变量基于Linux下 Oracle 备份策略(RMAN)相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数