IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → oracle 10g数据库备份与还原总结

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

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  一.总述

  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,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:\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

  *基于时间的恢复

关键词标签:oracle,数据库备份与还

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限