当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-04-03

    本文导语:    在实际的工作过程中,由于ASM磁盘管理的便利性,因此很多时候需要将文件系统的数据库迁移到ASM,本文演示了如何将文件系统数据库迁移到ASM实例。     有关如何创建ASM实例及ASM磁盘管理请参考   Linux Oracle10gR2 创建ASM实...

   在实际的工作过程中,由于ASM磁盘管理的便利性,因此很多时候需要将文件系统的数据库迁移到ASM,本文演示了如何将文件系统数据库迁移到ASM实例。

    有关如何创建ASM实例及ASM磁盘管理请参考

 

Linux Oracle10gR2 创建ASM实例安装数据库

       

一、主要步骤(假定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 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


    
 
 

您可能感兴趣的文章:

  • 关于LINUX系统迁移的问题
  • 将java从windows迁移到linux??
  • 将java从windows迁移到linux
  • 请教一个关于linux系统备份和迁移的问题
  • xp下的mysql数据库如何迁移到linux中的mysql
  • linux VPS之间网站数据的备份与恢复(网站迁移教程)
  • 请问这类Linux下的C语言结构如何迁移到windows下
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • 请问在红旗Linux多功能服务器版上(不是数据库服务器版)能否正常安装使用Oracle?红旗Linux数据库服务器版要比红旗Linux多功能服务器版贵
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • linux小白提问linux备份oracle数据库的问题
  • 装linux enterprise3 ,没有选择数据库,自行安装了mysql-max-5.0.22-linux-i686,请问
  • Linux不是免费的嘛,怎么在红旗的网站只有桌面版下载?没有server版下载?哪有红旗Linux数据库服务器3.0版下载?
  • 【急……】求助linux数据库相关问题
  • linux下不知有什么小型的数据库?要求速度比较快,开销最小。并且支持单文件数据库及多表的
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • 千分求Linux 下数据库编程的问题!急!
  • 刚接触linux,公司要一个web服务器和一个数据库服务器,请问现在用linux哪个版本好,给点建议吧
  • 关于Linux与Windows之间数据库互相访问的问题。
  • linux下用什么办法连接oracle数据库并且读取数据呢?(用c++代码实现时)
  • 求教,LINUX里用C语言读取微型数据库文件方法
  • linux开机自启动程序可以访问数据库吗?
  • linux下能调用*.sql备份的数据库数据么?
  • 嵌入式linux下数据库使用
  • Linux 下的C语言实现数据库连接池操作。
  • linux数据库,高手指点
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux_centos_redhat下tar命令解压tgz文件方法
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • Linux查找包含指定文字的文件(linux查找指定文件)
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 请问LINUX内核下,哪些文件夹下的文件是跟LINUX的硬件平台无关的?
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 请问各位linux开发大虾,linux下有类似VC中depends的工具可以查看文件调用了哪些so文件吗?
  • linux内存文件系统ramfs实现原理
  • 急::在Linux下怎么根据另一台windows或linux的文件名,去得到这个文件
  • linux/Centos/ubuntu下如何使用umask命令修改新建文件时的默认权限
  • 我的机器装了WINDOWS2000 和 LINUX 7.3 , 请问在LINUX 中如何访问`WIN2K中的文件?同样在WIN2K中如何访问LINUX 中的文件?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • 根据文件大小查找文件的find命令举例(Linux,centos,redhat)
  • linux下copy文件通常又些文件名的大小写会发生变化的,而linux又对大小写敏感,如何解决这一问题
  • Linux下glibc库文件锁:协同锁(advisory lock)和强制锁(mandatory lock)
  • Redhat Linux下用c怎么可以知道一个文件是文件夹还是真的文件?
  • Linux下u盘文件系统相关操作
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • linux下find查找文件命令详细介绍及find文件用法举例说明
  • linux中对文件排序的命令(文件夹中包含子文件)
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3