• Oracle10g数据库归档与非归档模式下的备份与恢复


     一.总述

      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:demoarchive [optional]';

      sql>alter system set

      log_archive_dest_2 = 'service =standby [mandatory] [reopen]';

      其中:location 是当地

      service  是远程

      optional 无论归档是否成功,城市笼盖重做日志

      mandatory只有成功归档才会笼盖重做日志

      reopen 年夜头归灯瘫d距离 默认是300s

      @显示归档信息,即显示显示日志操作模式

      sql>select name,log_mode from v$database;

      @显示归档日志信息

      sql>select name,seqnce#,first_change# from v$archive_log;

      seqnce#: 归档序列号

      first_change# : 肇端SCN值

      @显示归档日志位置

      sql>select dest_name,destination,status from v$archive_dest;

      dest_name 归档位置参数名

      destination 位置

      @显示日志历史信息

      sql>select * from v$loghist;

      threade# : 重做线程号

      seqnce# : 日志序列号

      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:backupdemo.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:demousers01.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:backupdemo.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 体例打开数据库

      @备份所稀有据文件和节制文件

  • 相关阅读:
    Android Scroller简单用法
    android 使用Scroller实现缓慢移动
    Android中View绘制优化之三---- 优化View
    Android中View绘制优化二一---- 使用<include />标签复用布局文件
    世纪互联云和华为共同打造的数据中心是一个很好的一步标志!
    isset,empty,is_null小知识
    迭代法塔的问题,如果中国
    hdu4288 Coder(段树+分离)
    关于淘汰85%查看面试官百度开发者面对的问题
    生命游戏(两),有一种东西叫CCScrollView
  • 原文地址:https://www.cnblogs.com/fhuafeng/p/2222713.html
Copyright © 2020-2023  润新知