备份恢复3——用户管理的备份与恢复*

1、用户管理的备份:

数据库一致性备份:即冷备,需要正常关闭数据库进行,需要备份的文件有数据文件和控制文件,切记不要备份重做日志。archive 和 noarchive模式都可以用。

操作步骤:查找需要备份的数据文件和控制文件:select name from v$datafile   union  select name from v$controlfile ; (显示所有的需要备份的文件) —— 关闭数据库——复制所有的文件到指定的备份目录:可以在sqlplus下用:host cp u01/app/oracle/.../control01.ctl  /home/oracle/backup ;backup是一个备份目录。——启动实例。

数据库非一致性备份:数据库处于open阶段就可以备份数据文件和控制文件的方法,进行非一致性备份不需要中断业务操作,这个操作只适用于archivelog模式下。

具体步骤如下:列出要备份的数据文件:select name from v$datafile;——将数据库设为备份模式:alter database begin backup;——备份数据文件和控制文件,数据文件用cp命令就可,和上面的一样操作,但是备份控制文件要用alter
database backup controlfile命令。可以这样做,在用cp备完了所有数据文件之后执行:alter database backup controlfile to '/home/backup';——结束备份,需要操作:alter database end backup;为了确保数据文件备份的同步性还应该归档当前的日志组:alter
system archive log current;

表空间备份:

备份表空间只适用于archivelog 的模式,可以选择备份表空间的一个数据文件,或者多个数据文件。

脱机备份:指的是表空间处于offline状态的时候,备份表空间的某个或者 所有文件,优点是会产生较少的重做信息,缺点是会影响表空间的业务操作,因为system表空间和正在使用的undo表空间不能脱机,所以这种备份方式不适用于这两个表空间。

好了,直接上步骤 :确定表空间包含的数据文件,(表空间和数据文件的对应关系都在数据字典视图dba_data_files里,可以互相查找):select file_name from dba_data_files where tablespace_name='USERS';——设置表空间为脱机状态:alter
tablspace users offline。——复制数据文件,还是cp,不说了。——将表空间设为联机状态:alter tablesapce users online;

联机备份:这个就可以备份所有表空间了,但是还得注意是archivelog模式下,不然报ora-01123错误,刚才就遇到了。。不管你是system还是undo,也不影响正常的业务操作,但是缺点是生成更多的重做信息和归档信息。同样以users表空间为例,

说明操作步骤:确定表空间包含的数据文件:select file_name from dba_data_files where tablespace_name='USERS';——设置表空间为备份模式,设置后,表空间内的数据文件会在数据文件块头上加锁,使得数据文件头块不会发生改变,并且头块文件记录了将来进行恢复时的日志序列号和scn号。alter
tablespace users begin backup;
——复制数据文件,还是cp,不说了。——设置表空间为正常模式alter tablespace users end backup;

处理联机备份失败: 进行联机热备份时,服务器发生故障,如掉电,重新启动服务器,启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。

模拟现象及解决方法: 先将数据库设置为归档模式svrmgrl>connect internal    ;svrmgrl>alter tablespace 表空间名 begin backup;

-表空间热备模式没结束就强行关闭数据库,造成错误:svrmgrl>shutdown abort;继续执行:svrmgrl>startup,报错ora-01113,ora-01110数据文件需要介质恢复。必须用startup force mount。现在可以强制挂载数据库了。然后查询视图v$backup,确定处于联机备份状态的数据文件,查询:select file# from v$backup where status='ACTIVE';

FILE#

---------

 4

好了确定了文件之后就是把文件的状态给整好,可以执行alter database end backup,这个最好记;也可以用recover datafile 4 ;还有个一比较麻烦的,就是这两个地混合体:alter database datafile 4 end backup;——行了,最后一步打开数据库alter database open。

备份只读表空间:

只读表空间的scn不会变化,只需要备份一次就行了.

直接上操作吧::确定处于只读状态的表空间:select tablespace_name from dba_tablespaces where status='READ ONLY';  好了,下一步就是确定只读表空间内的数据文件了,假设上面的查询结果USERS表空间为只读表空间,执行:select
file_name from dab_data_files where tablespace_name=‘USERS’;这一步就把要备份的文件找到了,下一步,直接cp,不说了。

备份控制文件:备份控制文件有两种方法:可以建立控制文件副本,也可以将控制文件备份到跟踪文件中去。

首先看第一种,建立控制文件副本:在数据库处于open阶段时,控制文件的副本只能用alter database 命令生成而不能用操作系统的cp命令。操作:alter  database backup controlfile to ‘/home/back’ 如果控制文件已经存在,再用这个操作时会报错,怎么办呢?加一个reuse选项:alter
database backup contrilfile to ‘/home/backup’ reuse;

再看第二种备份控制文件的方法:一般来说,如果数据库的数据文件,日志文件都是正常的,只是误删除了控制文件,那么我们可以通过手工 建立控制文件就能恢复数据库。这样的话你必须知道数据内的数据文件,日志文件的详细信息,可是数据库现在没有打开,不可能通过查询数据数据字典视图,或者数据库参数来知道(可以在操作系统下手工查找)。说了这么多,我们可以把控制文件备份到跟踪文件中去,

命令:alter database backup controlfile to trace;跟踪文件再初始化参数user_dump_dest所对应的目录中,一般格式SID_ora_SPID.trc,

sid为实例名。也就是ORACLE_SID的值,spid是服务器进程所对应的操作形同进程号,通过查询v$process和v$sessiong可以确定服务器进程所对应的操作系统号,操作:select a.spid  from v$prosess a , v$session b where a.addr=b.paddr and b.username = 'SYS'; 查得spid = 1236,现在可以根据这个找到跟踪文件mynewdb_ora_1236.trc
看到该文件内记录了建立控制文件的相关操作,这样如果出现控制文件损坏,我们可以通过这些语句恢复控制文件。

备份其他文件:

备份归档日志:首先确定需要归档的日志:select name from v$archived_log where dest_id=1 and first_time>=sysdate-1;显示所有的归档日志,然后用cp拷贝到指定目录。

备份参数文件:数据库启动时按照参数文件分配SGA,如果启动过程中不能定位到参数文件报错ora-01078:处理系统参数失败。备份这个参数比较简单,如果是文本的PFILE文件,直接cp一个副本到指定目录即可,如果是SPFILE,可以使用:create pfile='/home/back/bap.par' from spfile ='/u01/app/oracle.../spfilemynewdb.ora';

备份口令文件:直接cp备份到指定目录即可。

2、用户管理的完全恢复:

只能在archivelog模式下进行;

数据库处于关闭状态下:如果数据文件被误删除,或者数据文件所在的磁盘损坏,那么在打开数据库时后台进程DBWR会将错误信息写入到其跟踪文件中,并且在屏幕上显示: ora-01157:无法标识锁定数据文件4,请参阅DBWR跟踪文件。

数据库处于open阶段时:如果数据文件出现介质失败,那么,当oracle发生检查点时,会将损坏的数据文件自动脱机,当访问到涉及该数据文件的对象时,报错ora-00376:此时无法读取数据文件4.

数据库处于open阶段,如果数据文件的某个块发生损坏,此时若sql操作不涉及此块,则不产生任何问题,如果涉及此块,那么服务器进程会终止这个sql,并将损坏块的信息记入alert文件,还有用户进程跟踪文件,并在屏幕上显示如下错误ora-01578:oracle数据块损坏(文件号4,块号34)

3、转储文件

当数据文件出现介质失败的时候,在执行sql恢复命令之前,必须使用操作系统命令将损坏的数据文件cp一份到到指定目录,以免恢复失败,损坏更多的数据文件,当数据文件所在的磁盘出现问题时,必须将数据文件备份复制到其他磁盘,当执行恢复操作时,oracle会根据控制文件所记载的信息来定位数据文件,所以当你拷到其他磁盘后,要去修改控制文件中数据文件的位置信息。

mount状态下改变数据文件位置:当数据库处于mount状态,使用alter database rename file 命令改变数据文件的位置,在执行此命令之前,必须确保已经将副本文件复制到目标位置。先cp,然后再

alter database rename file ‘/home/oracle/../system01.dbf’  to   '/u01/app/oracle/../system01_cp.dbf

在open状态下改变数据文件位置:既可以用alter tablespace tablespace_name  rename datafile命令,也可以用alter database rename file命令。此时不能改变system表空间的数据文件位置,在修改数据文件之前,必须首先使表空间或则会数据文件脱机。

操作:首先alter database datafile ‘/home/oracle/.../user01.dbf’ offline;
然后 host cp 。 最后 alter tablespace users  rename datafile ‘/home/.../user01.dbf’  to  '/u01/oracle../user01.dbf';  

4、恢复数据库、恢复表空间、恢复数据文件

在使用 用户管理的完全恢复时,在将数据文件备份复制到目标位置之后,还需使用 recover database 、 recover tablespace 、recover datafile 。三种命令应用归档日志和重做日志,下面详细说明这三个命令的用法。

1、recover database :该命令用于恢复数据库的多个数据文件,注意,只能在mount状态下运行,可以直接执行startup force mount 然后recover dataabase。注意此命令式sqlplus 命令,对应的sql恢复命令为alter database recover database。

2、recover tablespace:该命令用于恢复一个或者多规格表空间的所有数据文件,该命令只能在open状态下运行,如果是在open状态下恢复特定表空间的所有数据文件,那么可以使用命令recover tablespace uses。注意此命令式sqlplus 命令,对应的sql恢复命令为alter database recover tablespace。

3、recover datafile:该命令用于恢复一个或者多个数据文件,在mount或者open状态下都可以执行。运行时可以指定 数据文件,也可以指定文件编号:recover datafile ‘/home/../user03.dbf’ ; 或者 recover datafile 1,2; 注意此命令式sqlplus 命令,对应的sql恢复命令为alter database recover datafile。

应用归档日志:当使用归档日志时,dba既可以按照oracle建议的归档日志位置,也可以指定归档日志位置,还可以自动应用归档日志。这里介绍一下自动应用归档日志吧。

有三种方法:1、在提示语法下指定为AUTO。执行revover datafile 5 提示一堆归档日志方位,然后你再输入AUTO就行了。2、在开始恢复之前设置自动回复选项。set autorecovery on ,然后再执行 recover datafile 5就行了。3、在恢复命令中指定自动回复选项,recover automatic datafile 5.

视图v$recover_file:可以查看需要恢复的文件,错误原因,数据文件备份的scn值等信息。

视图v$loglist:当需要介质恢复时,需要根据日志序列号确定要应用的归档日志和重做日志,假设我们备份的数据文件的scn号通过select file# , change# from v$recover_file;查得为1481225,现在我们可以通过v$loghist确定从哪个日志序列号开始应用事务变化,select
sequence# from v$loghist where 1481225 between first_change# and switch_change#; 查得sequence# 为5.那就表示从日志序列号为5的归档日志开始进行恢复。

视图v$archived_log:可以查询所有归档日志。

视图v$recovery_log:可以显示恢复所需的归档日志。执行:select sequence# , archive_name from v$recovery_log; 即可显示需要归档的日志序列号和具体日志位置。

时间: 2025-01-24 00:05:02

备份恢复3——用户管理的备份与恢复*的相关文章

详解Oracle基于用户管理恢复的处理

Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢复的处理过程. 一.恢复的相关概念 介质恢复 首先使用备份还原数据,然后再应用归档日志.重做日志的恢复方式称为介质恢复. 介质恢复能将一个经过还原的数据更新到当前的时间点或之前的某个时间点. 通常介质恢复这个术语专指对数据文件进行恢复的过程.

Oracle 基于用户管理恢复的处理

--================================ -- Oracle 基于用户管理恢复的处理 --================================       Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于 用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢 复的处理过程.    一.恢复的相关概念  

备份恢复1——综述

1.oracle失败:  1.1语句失败: 比如超出空间的配额,用户在特定的表空间上所需要的空间超过了该用户在该表空间实际可用的最大表空间,比如执行如下语句: create table temp(cola int,colb int) storage(minextents 4); 报错 ora-01536:超出表空间user01的空间限额. 为了解决这种错误,应该以dba的身份登录数据库,用alter user语句为用户分配更多的空间配额.然后 重新执行相应的语句: alter user scot

Oracle 备份恢复概念

--====================== -- Oracle 备份恢复概念 --======================       数据库维护中,备份或恢复是重中之重的问题.尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是 不言而喻的.因此DBA至少在保证数据不丢失的情况下来提高系统的性能是最起码的要求.关于什么是备份与恢复,在此不做赘言.   一.物理备份与逻辑备份     物理备份         是所有物理文件的一个副本,比如数据文件,控制文件,

备份恢复4.2——rman恢复基础概念

rman恢复与用户管理的备份恢复一样,都分为完全恢复和不完全恢复,都需要工作在archivelog模式下. rman10g之后只保留了0级和1级备份,1级备份分为:cumulative(累积增量)和differential(差异增量)两种模式,如果不加关键词默认是差异增量备份: backup incremental level 1 cumulative database(累积增量) backup incremental level 1 database(差异增量) 连接: rman connec

SYSTEM 表空间管理及备份恢复

--============================= -- SYSTEM 表空间管理及备份恢复 --=============================       SYSTEM表空间是Oracle数据库最重要的一个表空间,存放了一些DDL语言产生的信息以及PL/SQL包.视图.函数.过程等,称之为数据字典, 因此该表空间也具有其特殊性,下面描述SYSTEM表空间的相关特性及备份与恢复.        一.SYSTEM表空间的管理     1.建议不存放用户数据,避免用户错误导致

备份恢复16——rman介质管理问题

原文转自:http://blog.csdn.net/tianlesoftware/article/details/5678698 Oracle 10g中的RMAN 使用程序主要关注的是将磁盘备份作为介质恢复解决方案的最佳方法. 随着磁盘价格的下跌,大量的存储区网络(Storage Area Network:SAN)已经在很多数据中心找到了永久的存储空间. 随着业务向着价格越来越便宜而容量越来越大的磁盘发展,对RMAN的功能(如Flashback)进行了升级,从而可以最有效的利用可用存储空间. R

备份恢复8——管理恢复目录

1.概念: 1.恢复目录数据库:恢复目录数据库是指专门用于存放护肤目录方案的oracle数据库,注意,如果使用恢复目录存放rman元数据,那么一定要将恢复目录存放到堵路的恢复目录数据库中,而不应该存放到目标数据库. 2.恢复目录所有者:是指在恢复目录数据库中用于管理恢复目录数据库对象的数据库用户,注意:恢复目录所有者必须具有recovery_catalog_owenr 角色,并且恢复目录所有者不能是sys用户. 3.恢复目录方案:是指恢复目录数据库对象的集合,其名称世界就是恢复目录所有者的名称,

Linux下备份恢复技术的应用

  本文讲述Linux环境下,如何使用备份的脚本和命令以及商业化的软件来合理高效地保护磁盘数据安全. 备份与恢复系统承担着事前备份与事后恢复的职能.在当前高速发展的网络环境下,任何一个网络上的信息 系统都不可能保证绝对的安全.只要有网络存在,就会有来自网络的形形色色的威胁.为了抵御网络的攻击和入侵,虽然我们引入了日趋成熟的入侵检测系统.防火墙系统等,黑客们的入侵手段也日益高明,他们总能找到这些系统的安全漏洞及不足进行入侵,因而网络入侵所引起的安全事件呈逐年增加之势. 在这种情况下,我们难以保证网