zoukankan      html  css  js  c++  java
  • 【赵强老师】第一个Oracle的手工备份和恢复

    一、什么是手工管理的备份与恢复?

    尽管在Oracle中,已经有了RMAN的备份与恢复。但是作为Oracle备份恢复的一种方式,我们将在本文中通过一个例子来为大家介绍如何使用手工的方式来完成Oracle的备份与恢复。**手工方式的本质是通过操作系统的cp命令完成,**但是在备份与恢复的时候,需要把数据块置为正确的状态。

    手工方式下也存在一些缺点,例如:需要手工管理备份内容,容易丢失,不利于管理

    二、第一个手工管理的备份与恢复

    这里我们以一个表空间的备份与恢复为例。

    • 准备测试数据
    create tablespace mytbs datafile '/home/oracle/mytbs01.dbf' size 50M;
    alter user scott quota unlimited on mytbs;
    create table scott.test1 tablespace mytbs as select ename,sal from scott.emp;
    create table scott.test2 tablespace mytbs as select * from scott.dept;
    
    • 执行手工备份
    alter tablespace mytbs begin backup;
    host cp /home/oracle/mytbs01.dbf /home/oracle/backup/demo1/mytbs01.dbf
    alter tablespace mytbs end backup;
    
    • 执行破坏性操作
    删除数据文件,模拟数据丢失
    rm -rf /home/oracle/mytbs01.dbf
    
    打开数据库:startup
    
    出现以下错误:
    ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
    ORA-01110: data file 5: '/home/oracle/mytbs01.dbf'
    
    查询错误信息:
    SQL> select FILE#,ERROR from V$RECOVER_FILE;
         FILE# ERROR
    ---------- ---------------------------------------------------
    	 5 FILE NOT FOUND
    
    查看当前数据库的状态:
    SQL> select OPEN_MODE from v$database;
    OPEN_MODE
    --------------------
    MOUNTED
    
    • 执行手工恢复
    转储数据文件:将备份拷贝回原来的位置
    cp /home/oracle/backup/demo1/mytbs01.dbf /home/oracle/mytbs01.dbf
    
    恢复:
    recover datafile 8; 
    
    打开数据库:
    alter database open;
    
    • 检查数据库是否恢复

  • 相关阅读:
    [2021.8集训Day10/JZOJ.3410]【GDOI2014模拟】Tree
    [2021.8集训Day10/JZOJ.3441]【NOIP2013模拟】小喵喵的新家
    [模板]模拟退火 / 洛谷 P1337 [JSOI2004]平衡点
    P1600 [NOIP2016 提高组] 天天爱跑步
    P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并
    selenium的三种等待
    python中socket、socketio、flask-socketio、WebSocket的区别与联系
    (十二)python3 迭代器
    (十一)python3 encode()和decode()
    (十)python3 生成器
  • 原文地址:https://www.cnblogs.com/collen7788/p/13258896.html
Copyright © 2011-2022 走看看