手工备份恢复oracle数据库

摘要:
oracle数据库的手动备份和恢复:尽管rman工具可用,但oracle数据库的手工恢复可以让您更深入地了解数据库的一致性。启动条件:数据文件scn、控制文件scn,redoscn一致控制文件记录:数据文件应达到的scn当前重做数据的物理结构信息。归档信息的先决条件:已启用归档日志。数据文件具有备份控制文件和备份备份数据。数据文件备份:

 手工备份恢复oracle数据库:

   虽然已经有了rman工具

  但是手工恢复oracle能够让你对oracle数据库有更加深入的了解

数据库一致性开机条件:
  数据文件 scn,控制文件 scn,redo scn一致


控制文件记录:
  数据文件应该到达的scn
  当前redo
  数据的物理结构信息
  归档信息

  

前提条件:

  归档日志开启

  数据文件有备份

  控制文件有备份

备份数据:

  数据文件备份:

    数据文件进入备份模式:

    select 'alter tablespace '|| tablespace_name||' begin backup;' from dba_tablespaces where tablespace_name not like '%TEMP%';

     手工备份恢复oracle数据库第1张

    确认进入备份状态:

    手工备份恢复oracle数据库第2张

    再操作系统执行物理拷贝命令:

     cp *.dbf /home/oracle/sg_backup_dbf/

    拷贝完成,退出备份模式:

    手工备份恢复oracle数据库第3张

    数据文件备份完成!!!

    备份完成切换几次归档(多切换几次)

    alter system switch logfile;

  控制文件备份:

    备份成二进制的形式:

      SQL>alter database backup controlfile to '/home/oracle/backup_ctl/PROD4_CTL_20170703'; 

    备份成逻辑文件:

      SQL> alter database backup controlfile to trace as '/home/oracle/backup_ctl/prod4.ctl';

     

一、表空间数据文件删除恢复:

重启数据报错:

  手工备份恢复oracle数据库第4张

根据提示查看数据文件已经不存在(被删除)

通过拷贝先前备份数据文件进行恢复:

  cp /home/oracle/sg_backup_dbf/* .

查看scn号:(不一致状态)  

  手工备份恢复oracle数据库第5张

通过执行recover database进行数据恢复()

  手工备份恢复oracle数据库第6张

 启动数据库:

  SQL> alter database open;

#恢复完成!

二、控制文件被删除:

重启数据库:

  手工备份恢复oracle数据库第7张

通过老版本数据文件恢复:

   cp /home/oracle/backup_ctl/PROD4_CTL_20170703 ./control01.ctl

  cp /home/oracle/backup_ctl/PROD4_CTL_20170703 ./control02.ctl

 再次重启:

  手工备份恢复oracle数据库第8张

执行恢复:

  SQL> recover database using backup controlfile until cancel;

     #auto 模式

    报错:

      (旧的控制文件并不知道redo的情况)  

      手工备份恢复oracle数据库第9张

再次执行恢复:

  SQL> recover database using backup controlfile until cancel;

    #Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    #/u01/app/oracle/oradata/PROD4/PROD4/redo01.log      #使用指定的redo文件恢复(手动输入这行)

开机:

  SQL> altr database open resetlogs;

恢复完成!

控制文件损坏进行恢复后需要进行一次全备

  使用altr database open resetlogs; 开机时,重新初始化了redolog,

  archive log,以前的数据文件的备份全部失效

删除无用archive log

三、当前redo损坏

重启数据库无法开机

恢复:

   删除数据文件

   使用旧备份恢复数据文件

    恢复和前面提到的类似:

    恢复命令:

      recover database using backup controlfile until cancel;

        #auto
     recover database using backup controlfile until cancel;
        #cancel

   删除控制文件

   关闭数据库

   使用备份的逻辑控制文件恢复控制文件(找出类似如下部分,直接执行)

  (恢复控制文件时需要数据文件,但是使用现在的数据文件是不行的,这就是前面先删除数据文件再恢复的原因)

      手工备份恢复oracle数据库第10张

 执行开机:

  alter database open resetlogs;

全备
删除无用archive log 

总结:

  一致性开机的原理

    scn号

  开机的步骤

  开机的所需文件

  

免责声明:文章转载自《手工备份恢复oracle数据库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇部署ceph存储集群及块设备测试jQuery kxbdMarquee 无缝滚动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【SequoiaDB】5 巨杉数据库SequoiaDB基本操作

Sequoia DB巨杉数据库作为分布式数据库,由数据库存储引擎与数据库实例两大模块组成。前面介绍了Sequoia DB巨杉数据库集群的部署以及MySQL实例的安装,下面将继续就以下主题进行介绍。 1 安装目录详解 1.1 SequoiaDB安装目录 SequoiaDB巨杉数据库的默认安装目录为/opt/sequoiadb/,安装完成后可以看到目录如下:...

clickHouse 导入/删除/更新数据

1、 --导入数据: CREATE TABLE FactSaleOrders ENGINE = MergeTree ORDER BY OrderID AS SELECT * FROM mysql('10.42.134.136:4000', 'dbname', 'tableName', 'root', 'password'); orderId mysql中的...

数据库实践

前言:此篇博客在参考Regan_White的文章下完成:https://www.cnblogs.com/ReganWhite/p/10944525.html 一、操作数据库(以SQLite3为例)   SQLite3 可使用 sqlite3 模块与 Python 进行集成。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL...

重磅!阿里云时空数据库正式免费公测

目前随着移动互联网和物联网的广泛应用,90%以上的数据是和时间+空间相关的,而越来越多的数据应用场景与时间和空间信息密不可分。时间+空间维度的数据(我们称之为时空数据)是一种高维数据,需要更为高效的数据处理方式来处理,而普通的关系型数据库更适合于存储数值和字符类型数据,也缺少相关的时空算子。在实际应用场景上例如传感器网络、移动互联网、射频识别、全球定位系统...

python pandas 对带时间序列的数据进行重采样处理

今天老板要处理一批带有时间序列的数据,源数据为1秒钟一行的csv数据,处理之后变成15分钟一行的数据。 源数据示例如下: time B00 B01 ... RollMean2.5RollMean10 2018-05-31 09:44:39 15.212 5.071 .....

MySQL高可用集群方案

一、Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案。 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+Heartbeat) 方案三:主从复制架构 主从复制(一主多从) MMM架构(双主多从) MHA架构(多主多从) 方案四:数据库高可用架构 这种方式比较经典的...