Oracle学习系列之RMAN异地恢复数据

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 一:通过RMAN备份恢复数据库到其他服务器     设定环境:              源库:10.0.17.220   SID:zsddb          获取SID的方式:        (1)通过查看/data/ora11g/product/11.2.0/db_1/dbs/spfilezsddb.ora,因为spfile[sid].ora是按照此形式保存     (2)SQL> select instance from v$thread;          目标库 10.0.18.250     准备工作:记录下源数据库的DBID。
一:通过RMAN备份恢复数据库到其他服务器

    设定环境:
        
    源库:10.0.17.220   SID:zsddb
    
    获取SID的方式:   
    (1)通过查看/data/ora11g/product/11.2.0/db_1/dbs/spfilezsddb.ora,因为spfile[sid].ora是按照此形式保存
    (2)SQL> select instance from v$thread;


    
    目标库 10.0.18.250

    准备工作:记录下源数据库的DBID。(ZSDDB (DBID=1536079480))

    获取DBID的两种方式:
     (1) rman target / 直接看到DBID
     (2) select dbid from v$database;
    
    操作步骤:
   
    1.在源库端创建数据库的完整备份
    注意:备份集创建成功后,将其复制到目录端的相同路径下。必须是相同路径(linux可以使用SSH Secure file Transfer Client)

    2.在目标服务器上创建OracleService
    Linux/UNIX环境,只要在连接数据库时指定ORACLE_SID环境变量即可

    3.配置目标端数据库的初始文件
    第一步:将源库端的SPFILE初始化参数文件复制到目标端的适当路径下。Linux/UNIX环境是在$ORACLE_HOME\dbs目录下。
    
    查看ORACLE_HOME的环境变量:
    [root@oracle-n1 dbs]# sudo su - oracle
    [oracle@oracle-n1 ~]$ echo $ORACLE_HOME
    /data/ora11g/product/11.2.0/db_1

    第二步:修改部分参数值,这一步不是必须得。如果目标端的路径与源端保持一致,不做任何修改。如果不一致,要保证如下几个参数所指定的值是正确有效的。
    * control_files: 控制文件路径
    * audit_file_dest: Oracle审计输出的debug日志路径
    * background_dump_dest: LGWR,DBWn之类后台进程输出的debug日志路径
    * core_dump_dest: Oracle内核输出的dump日志路径
    * user_dump_dest: 用户进程输出的debug日志路径
    * log_archive_dest_1:归档文件路径,如果启用了归档模式的话。

    (1)将源数据库端的plife取出

    set oracle_sid =zsddb
    sqlplus "/as sysdba"
    create pfile='/data/backup/pfile_zsddb.ora' from spfile;
    
     (2)用文本工具修改相关参数保存,在目标端创建spfile

    create spfile from pfile ='/data/backup/pfile_userdb.ora'

     (3)spfile创建成功后,数据库自动启动到NOMOUNT状态。

    startup nomount

    4.恢复控制文件并进入到加载状态
    
      从备份集中恢复控制文件
    set oracle_sid=zsddb
    rman target /
    
    RMAN>set dbid=1536079480
    RMAN>RESTORE CONTROLFILE FROM '/data/backup/c-14152845758-20090505-00';

      数据库置为Mount状态:
    RMAN>alter database mount;

    5.修复数据库

    RMAN>RESTORE DATABASE;

    6.恢复数据库

    RMAN>RECOVER DATABASE;

    7.用open resetlogs方式打开数据库

    RMAN>ALTER DATABASE OPEN RESETLOGS;
    
注意的细节错误:

   一:startup nomount的时候,出现如下错误:         
 ERROR:
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925
ORA-01075: you are currently logged on

    解决方法:创建目录
cd /data/ora11g/admin/userdb/
mkdir -p adump bdump cdump udump


   二:RESTORE CONTROLFILE FROM '/data/backup/rman/con_c-3913726272-20121103-00';的时候,出现如下错误:

channel ORA_DISK_1: no AUTOBACKUP in 7 days found
 RMAN-00571: ===========================================================
 RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
 RMAN-00571: ===========================================================
 RMAN-03002: failure of restore command at 11/08/2012 17:46:48
 RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece

    解决方法:看看对应的/data/backup/rman/目录下文件的权限问题。
chown oracle:oracle ./*

   三:RESTORE DATABASE;的时候,出现如下错误:

channel ORA_DISK_1: ORA-19870: error while restoring backup piece /data/backup/rman/18nop29i_1_1-USERDB-20121027.full
ORA-19504: failed to create file "/data/ora11g/oradata/userdb/hdmember01.dbf"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory

    建立对应的数据目录:
    mkdir -p /data/ora11g/oradata/userdb/

   四:$ORACLE_HOME/network/admin

   后期配置listener的时候,出现了如下错误:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0

     解决方法:
SQL> alter system set local_listener='(ADDRESS =(PROTOCOL = TCP)(HOST = oracle-n2)(PORT = 1588)(SID=userdb))';

SQL> alter system register;
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2天前
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
某客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有版本。问题源于操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常原因为系统调用 fork() 失败。经验总结:优化日志记录,提供更多异常信息。
|
6月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
111 0
|
6月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
4月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
217 2
|
3月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
3月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
4月前
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
74 0
|
7月前
|
Oracle 安全 关系型数据库
|
7月前
|
存储 Oracle 关系型数据库

推荐镜像

更多