• 使用rman迁移数据库到异机


         迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移。使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整地镜像。因此,基于此种方式还原恢复的数据库用于测试会使得与真实的生产环境差异相对较小。

    一、主要步骤
         1、备份数据库
         2、拷贝备份到目的服务器
         3、为目标数据库创建项目目录
         4、为目标数据库创建pfile或spfile(使用RMAN还原或复制原pfile到目的服务器)
         5、还原控制文件
         6、还原数据文件
         7、OPEN 数据库

    二、迁移演示

    目的:将在一台机器的orcl数据库迁移到另一台机器上

    1. 备份数据库:

        备份脚本参考:RMAN的实战篇--备份脚本

    2. 将用RAMN备份的文件拷贝到目标服务器上。

      这里使用scp的方式拷贝到异机

    scp -r 20161231/  oracle@192.168.0.92:/u02/database/orcl/backup/rman/

    3. 创建目录

    mkidr -p /u01/app/oracle/oradata/orcl
    mkdir -p /u01/app/oracle/flash_recovery_area

    mkdir -p /u01/app/oracle/flash_recovery_area/orcl

    mkdir -p /u01/app/oracle/oradata/orcl
    mkdir -p /u01/ARCHLOG
    mkdir -p /u02/ARCHLOG
    mkdir -p /u03/ARCHLOG
    mkdir -p /u01/app/oracle/admin/orcl/dpdump
    mkdir -p /u01/app/oracle/admin/orcl/adump

    mkdir -p /u01/orcl/onlinelog/

    mkdir -p /u02/orcl/onlinelog/

    mkdir -p /u03/orcl/onlinelog/

    4.创建密码文件

    [oracle@oracledb ~]$ orapwd file=orapworcl password=oracle force=y entries=10

    5、使用pfile启动实例到nomount状态 

    [oracle@oracledb dbs]$ cp /u02/database/orcl/backup/rman/20161231/initorcl.ora $ORACLE_HOME/dbs
    [oracle@oracledb dbs]$ export ORACLE_SID=orcl
    SQL> startup nomount;

    注意检查参数文件中的目录是否都建立了。

    6. 恢复控制文件并切换到mount状态

    RMAN> restore controlfile from '/u02/database/orcl/backup/rman/20161231/cntl_lev0.bak';
    
    启动 restore30-12月-16
    使用通道 ORA_DISK_1
    
    通道 ORA_DISK_1: 已复制控制文件副本
    输出文件名=/u01/app/oracle/oradata/orcl/control01.ctl
    输出文件名=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl
    完成 restore30-12月-16
    
    RMAN> alter database mount;
    
    数据库已装载
    释放的通道: ORA_DISK_1

    7. 指定备份文件所在目录 

    RMAN> catalog start with '/u02/database/orcl/backup/rman/20161231';

    8. 还原数据库 

    RMAN> restore database;

    9.恢复数据库 

    SQL> conn / as sysdba 
    
    SQL> recover database until cancel;
    ORA-00283: recovery session canceled due to errors
    ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
    
    
    SQL> recover database using backup controlfile until cancel;
    ********
    ....
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
      cancel      #输入cancel,完成介质恢复  
      Media recovery cancelled.  

    10. open数据库

    SQL> alter database open resetlogs;  

    11.一致性关闭数据库并重启数据库

    SQL> shutdown immediate;  
        
    SQL> startup 

     #如果open 不成功,请尝试shutdown 之后再次open,如果仍然不成功使用隐藏参数_allow_resetlogs_corruption打开数据库

    SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
    
    System altered.
    
    SQL> startup force
    ORACLE instance started.
    
    Total System Global Area  285212672 bytes
    Fixed Size                    1218992 bytes
    Variable Size                   88082000 bytes
    Database Buffers          192937984 bytes
    Redo Buffers                    2973696 bytes
    Database mounted.
    ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
    
    
    SQL> alter database open resetlogs;
    
    Database altered.
    
    
    SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;
    
    System altered.
    
    SQL> shut immediate
  • 相关阅读:
    python写入excel数据xlwt模块
    windows系统共享目录的设置
    mysql索引的建立和查询语句优化
    mysql事务的使用
    mysql读写分离-mysql-proxy的配置
    mysql主从复制配置
    linux下mysql5.7的安装配置
    Python 的介绍与发展史、解释器类型、环境安装、执行代码。
    Python 的课程介绍
    python_django_在views模块中操作状态保持(session)
  • 原文地址:https://www.cnblogs.com/zydev/p/6237903.html
Copyright © 2020-2023  润新知