`

oracle 10g数据库备份与还原总结

阅读更多

一.总述

1.数据库归档模式:

        * 非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式,                     这样提高性能

        * 归档模式:对于数据库数据经常变动,数据库最好用归档模式,这样可以尽量避免数据库                   数据丢失,使出现问题时灾害降到最低

2.非归档模式与归档模式间的切换(在命令窗口下):

        @检查当前日志操作模式
              f:\>sqlplus sys/dba as sysdba
              连接数据库
              sql>select log_mode from v$database;

        @关闭数据库,后装载数据库,只能在mount状态下改变日志操作模式
              sql>startup mount

        @改变日志模式
              sql>alter database achivelog;(变为归档方式,否则为nochivelog)
              sql>alter database open;
 
3.查看归档模式相关信息:

        @若采用默认设置,归档日志位置在快速恢复区

        @配置归档日志位置 log_archive_dest_n  (n=[1:10])
              sql>alter system set
                  log_archive_dest_1 = 'location =c:\demo\archive [optional]';
              sql>alter system set
                  log_archive_dest_2 = 'service =standby [mandatory] [reopen]';
         其中:location 是本地
              service  是远程
              optional 无论归档是否成功,都会覆盖重做日志
              mandatory只有成功归档才会覆盖重做日志
              reopen 重新归档时间间隔 默认是300s

        @显示归档信息,即显示显示日志操作模式
              sql>select name,log_mode from v$database;

        @显示归档日志信息
              sql>select name,sequence#,first_change# from v$archive_log;
         sequence#: 归档序列号
         first_change# : 起始SCN值

        @显示归档日志位置
              sql>select dest_name,destination,status from v$archive_dest;
         dest_name 归档位置参数名
         destination 位置

        @显示日志历史信息
              sql>select * from v$loghist;
         threade# : 重做线程号
         sequence# : 日志序列号
         first_change# : 起始SCN值
         first_time : 起始SCN发生时间
         switch_change : 切换SCN值
       
二.非归档模式下的备份与还原

   . 日志采用覆盖原有日志的方式存储

   . 出现介质失败时,只能恢复到过去的完全备份点
   . 数据库OPEN状态是,不能备份数据库

   . 必须先关闭数据库,再备份,且必须备份所有数据,控制文件

  1.备份==冷备份

       @ 先关闭数据库
             sql>shutdown immediate

       @ 拷贝所有数据文件,和控制文件

  2.恢复

       * 数据文件出现丢失,但备份以来的重做日志内容尚未被覆盖,此时可以完全恢复

           @装载数据库
               sql>startup force mount

           @复制数据文件备份

           @恢复数据文件
               sql>recover datafile 1

           @打开数据库
               sql>alter database open;

       * 备份文件的重做日志内容已经被覆盖,则只能还原到备份点

           @关闭数据库

           @复制所有数据和控制备份文件至原位置

           @装载数据库,执行恢复命令
               sql>startup mount
               sql>recover database until cancel
               提示控制文件不再使用原有重做日志

           @用resetlogs选项打开数据库
                sql>alter database open resetlogs;


三.归档模式

   . 可以防止数据丢失

   . 数据处于OPEN状态时可以进行备份

   . 当出现介质失败时,除了SYSTEM表空间中的数据文件外其他的都可以在open状态下恢复

   . 可执行完全恢复,也可以恢复到备份点与失败点之间的某时刻
 
  1.备份

      1)冷备份
            shutdown后拷贝所需数据文件和控制文件

      2)热备份
            @将数据库设置为归档模式
            @在数据库上发出全局检查点,在所有的数据文件头块上加锁
                sql>alter database begin backup ;
            @备份数据文件及控制文件
                数据文件直接拷贝至其他目录
                控制文件需使用alter database backup controlfile
                    sql>alter database backup controlfile to 'd:\backup\demo.ctl';
            @结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组
                    sql>alter database end backup;
                    sql>alter system archive log cuurent;

      3)备份表空间
            *脱机备份(表空间处于OFFLINE状态,SYSTEM表空间和正在使用的UNDO空间不能脱机)
                 @确定表空间包涵的数据文件,如空间USERS
                      sql>select file_name from dba_data_files
                          where tablespace_name = 'users';
                 @设置表空间为脱机状态
                      sql>alter tablespace users offline;
                 @复制数据文件
                 @设置表空间联机
                      sql>alter tablespace users online;
            *联机备份
                 @确定对应关系
                 @设置表空间为备份模式
                      sql>alter tablespace users begin backup ;
                 @复制数据文件
                 @设置表空间为正常模式
                      sql>alter tablespace users end backup ;
            *处理联机备份失败
                当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍处于备                份状态,则会出错,此时需要结束备份
                 @装载数据库
                    sql>startup force mount
                 @查看处于联机备份状态的所有数据文件
                    sql>select file# from v$backup where status = 'active';
                 @结束联机备份状态
                    sql>alter tablespace end backup
                      或alter tablespace datafile backup;
                      或recover datafile 序号
                 @打开数据库
                    sql>alter database open;
     2.还原
         1)完全恢复
             相关命令:
                recover database :恢复数据库的多个数据文件(在MOUNT状态下运行)
                recover tadaspace :恢复多个表空间的所有数据文件(在open状态下运行)
                recover datafile :恢复一个或多个数据文件(在mount,open状态下都可)
             *在mount状态下恢复数据文件(用于SYSTEM表空间恢复)
                 @装载数据库 mount状态
                 @确定需要恢复的数据文件
                     sql>select file#,error from v$recover_file
                 @拷贝备份至原位置
                 @恢复数据库 recover..上述命令
                 @打开数据库 alter database open;
             *在open状态下恢复关闭后意外对视的数据文件,此时数据库将无法打开
                 @装载数据库 mount
                 @确定需要恢复的数据文件
                 @使相应的数据文件脱机
                     sql>alter database datafile 4 offline;
                 @打开数据库
                     sql>alter database open
                 @复制数据备份文件
                 @恢复数据文件
                 @是数据文件联机 alter database datafile 4 online;
             *在open状态下恢复打开时意外丢失的数据文件
                 @确定要恢复的数据文件
                 @使数据文件脱机
                 @复制数据文件
                 @恢复相应的表空间或数据文件
                 @使相应的表空间或数据文件联机
             *在open状态下恢复未备份的数据文件(要求在归档模式下,新建数据文件,其从简历              开始的所有归档日志必须全部存在)
                 @装载数据库
                 @确定要恢复的数据文件
                 @是数据文件脱机
                 @打开数据库
                 @重新建立数据文件
                     sql>alter database create datafile 'd:\demo\users01.dbf';
                 @恢复数据文件
                 @使数据文件联机
       2)不完全恢复
           使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点之间           某个时刻的状态
              *恢复分类
                  基于时间的恢复:误删除表,误截断表,提交了错误的数据
                  基于取笑恢复:恢复到某个日志序列号之前的状态
                  基于SCN的恢复:恢复到特定SCN值的状态
                  基于备份控制文件恢复:表空间被意外删除,或所有控制文件全部损坏
              *不完全恢复指令
                  recover database until time
                  recover database until change
                  recover database until cancel
                  recover database .. using backup controlfile
              *基于时间的恢复
                  @关闭数据库(为防止备份失败,应备份当前数据库所有文件
                  @装载数据库 startup mount
                  @复制所有备份数据文件,并确定备份文件的时间点
                      sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)
                          from v$recover_file;
                  @执行recover database until time
                      sql>recover database until time "2006-09-26 16:40:33'
                  @以resetlogs方式打开数据库,并检查恢复结果
                      sql>alter database open resetlogs;
                  @备份数据库所有数据文件和控制文件,因为当以resetlogs方式打开数据库后                  会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1
                      sql>select name from v$datafile;
                      sql>alter database begin backup;
                      拷贝数据文件
                      sql>alter database end backup;
                      sql>alter database backup controlfile
                          to 'd:\backup\demo.ctl' reuse;
                      sql>alter system archive log cuurent;
               *基于SCN恢复
                   @关闭数据库
                   @装载数据库 mount
                   @复制所有备份数据文件,确定备份文件SCN值
                       sql>select file#,change#, from v$recover_file;
                   @执行recover database until change
                       sql>recover database until change 675978;
                   @以resetlogs方式打开数据库
                   @备份数据库所有数据文件和控制文件
               *基于取消恢复
                   @关闭数据库
                   @装载数据库
                   @复制所有备份的数据文件,确定备份文件的SCN值
                       sql>select file#,change# from v$recover_file;
                   @执行recover database until cancle
                       sql>recover database until cancel
                   @以resetlogs方式打开数据库
                   @备份所有数据文件和控制文件
               *基于备份控制文件的恢复
                   @通过查看alert文件,确定误操作时间
                   @关闭数据库
                   @复制所有备份的数据文件,控制文件
                   @装载数据库
                   @执行recover database ..using backup controlfile
                       sql>recover database until time '2004-09-26 19:51:06'
                           using backup controlfile
                   @以resetlogs 方式打开数据库
                   @备份所有数据文件和控制文件

分享到:
评论

相关推荐

    oracle10g数据库备份与还原总结

    本篇将详细介绍Oracle 10g数据库的备份与还原策略,包括热备份、冷备份以及导出与导入操作。 首先,我们来理解一下数据库备份的必要性。数据库备份是为了防止数据丢失,这可能由于硬件故障、软件错误、人为操作失误...

    oracle10g数据库备份与还原总结[文].pdf

    首先,归档模式是Oracle数据库备份的基础,它可以防止数据丢失,因为在数据处于OPEN状态时也能进行备份。当发生介质故障时,除了SYSTEM表空间的数据文件,其他所有表空间都可以在数据库开放的状态下进行恢复。归档...

    linux下oracle11g 数据库备份异机还原

    Linux 下 Oracle 11g 数据库冷备份异机还原是指在 Linux 操作系统下,对 Oracle 11g 数据库进行冷备份,并将备份的数据文件还原到另外一台主机上,以便在源主机上进行数据库升级或维护时,能够快速恢复数据库服务。...

    Oracle_10g数据库备份与恢复.

    Oracle 10g数据库备份与恢复是数据库管理中的一个重要组成部分,它确保了在发生硬件故障、软件错误、人为操作失误或数据损坏等情况下,数据能够被恢复到一个已知的正常状态,保障了企业数据的安全性和可靠性。...

    linux下oracle11g 数据库冷备份异机还原

    ### Linux 下 Oracle 11g 数据库冷备份与异机还原详解 #### 实验背景及目的 在进行系统维护或升级之前,为了保障数据的安全性和业务连续性,通常需要对现有生产环境中的数据库进行备份。当涉及到Oracle 11g数据库的...

    oracle实现数据库的备份与还原

    本主题将深入探讨如何使用C#编程语言来实现Oracle数据库的备份与还原过程。 首先,理解Oracle数据库的备份原理是必要的。Oracle提供多种备份方式,包括物理备份(如数据文件、控制文件的拷贝)和逻辑备份(如导出/...

    Oracle 11g数据库备份与还原

    ### Oracle 11g数据库备份与还原:数据泵技术详解 #### 一、概述 在Oracle 11g中,数据泵(Data Pump)是一种高效的数据迁移工具,它提供了快速导出和导入整个数据库或其部分的能力。通过使用数据泵,可以轻松地将...

    oracle备份与还原数据库

    #### 一、Oracle数据库备份方法概述 Oracle数据库提供了三种标准的备份方式:导出/导入(EXP/IMP)、热备份(Hot Backup)和冷备份(Cold Backup)。这些方法根据不同的场景和需求,各有优势。 - **导出/导入(EXP...

    windows oracle11g 备份与还原

    Oracle11g 数据库备份与还原是数据库管理中非常重要的一部分,掌握备份与还原技术可以帮助数据库管理员快速恢复数据库,减少数据丢失的风险。本文将详细介绍 Oracle11g 数据库备份与还原的方法和技术。 一、RMAN ...

    关于oracle11g数据库备份存在空间不足解决办法.docx

    Oracle 11g 数据库备份空间不足解决办法 Oracle 11g 数据库备份是数据库管理员的重要任务之一,而备份空间不足则是数据库管理员常遇到的问题之一。以下是关于解决 Oracle 11g 数据库备份空间不足方法的详细介绍。 ...

    oracle数据库备份与还原实例

    Oracle 数据库备份与还原实例 Oracle 数据库备份与还原是数据库管理的重要步骤,涉及到数据的安全性和可靠性。本文将介绍 Oracle 数据库备份与还原实例,使用 exp 与 imp 方式导出和导入数据,同时也包含 Linux ...

    如何备份还原oracle数据库

    在IT领域中,Oracle数据库因其高性能、可靠性及可扩展性被广泛应用于企业级应用之中。对于Oracle数据库管理员而言,掌握如何高效地进行...希望本文能够帮助您更好地理解和掌握Oracle数据库备份与恢复的关键技术点。

    oracle10g常用命令数据库的备份和恢复

    ### Oracle 10g 常用命令:数据库的备份与恢复 #### 一、基础知识与环境准备 在深入探讨 Oracle 10g 数据库的备份与恢复之前,我们需要了解一些基本概念和环境配置。 ##### 1. 连接到 Oracle 10g 数据库 - **连接...

    Oracle11g冷备份并迁移整个数据库去另一台服务器.doc

    Oracle 11g冷备份并迁移整个数据库到另一台服务器 Oracle 11g冷备份是指在不停止数据库的前提下,对数据库进行备份的操作。cold backup是相对于hot backup的,hot backup是在数据库运行时进行备份,而cold backup是...

    oracle数据库备份与还原

    ### Oracle数据库备份与还原知识点详解 #### 一、Oracle数据库备份概述 Oracle数据库备份是确保数据安全的关键步骤之一。在日常运维中,合理的备份策略能够有效地保护数据免受硬件故障、软件错误或灾难性事件的...

    oracle9i数据库备份和还原.doc

    ### Oracle9i数据库备份与还原知识点详解 #### 一、Oracle9i数据库备份方法 ##### 1. 导出本机数据库 在进行数据库备份时,通常会采用Oracle的`exp`工具来进行数据导出。具体步骤如下: - **启动命令行**:首先...

    使用plsqldev对oracle数据库做备份还原操作

    在Oracle数据库管理中,PL/SQL Developer是一款非常实用的工具,它专为Oracle数据库的存储程序单元开发设计,包括过程、函数、包、触发器等的编写和调试。这款工具以其用户友好、代码质量优化以及高生产力而受到青睐...

    Oracle数据库备份与恢复总结

    ### Oracle数据库备份与恢复知识点总结 #### 一、EXP/IMP (导出与导入) **1.1 基本命令** - **EXP**: 用于从数据库导出数据。 - `exp username/password [参数]` - **IMP**: 用于向数据库导入数据。 - `imp ...

    Oracle10g 11g备份与恢复

    Oracle是全球领先的企业级关系型数据库管理系统之一,其10g和11g版本提供了强大的备份与...对于希望深入掌握Oracle数据库备份与恢复的数据库管理员,强烈建议他们通过官方文档、社区交流和实际操作来提升自己的能力。

Global site tag (gtag.js) - Google Analytics