手工热备(开库状态)

备份控制文件:

alter database backup controlfile to '/u01/oradata/prod/con.bak1';

备份数据文件(这里用到pl/sql进行批处理,将查询结果粘贴运行即可)

begin
for i in (select tablespace_name from dba_tablespaces) loop
dbms_output.put_line('alter tablespace '||i.tablespace_name||' begin backup;');
for j in (select file_name from dba_data_files where tablespace_name=i.tablespace_name) loop
dbms_output.put_line('host cp '||j.file_name||' /home/oracle/hot_backup');
end loop;
dbms_output.put_line('alter tablespace '||i.tablespace_name||' end backup;');
end loop;
end;

模拟现场,举例

1.删除emp1表 drop table emp1 purge;(不完全恢复)

模拟:

drop table emp1 purge;

select * from v$log;

alter system switch logfile;

/

解决:

select name from v$archived_log;(可以看到删除的日志条目切换到此归档日志里了)

/u01/flash_recovery_area/PROD/archivelog/2017_08_13/o1_mf_1_6_drzyyodl_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_08_27/o1_mf_1_7_dt4yy16z_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_08_27/o1_mf_1_8_dt4zlzff_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_08_27/o1_mf_1_9_dt4zow6g_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_08_27/o1_mf_1_1_dt5fpkxt_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_11_12/o1_mf_1_2_f0jh6xf2_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_11_12/o1_mf_1_3_f0jk4n4p_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_11_13/o1_mf_1_1_f0lkgyt6_.arc
/u01/flash_recovery_area/PROD/archivelog/2017_11_13/o1_mf_1_2_f0lo0fom_.arc

因为今天13号所以选这两条日志,也可以多切换几次日志多生成几个日志条目

接下来进行时间的挖掘(基于时间点来恢复)

mkdir -p /home/oracle/logmnr

show parameter utl_file_dir

alter system set utl_file_dir='/home/oracle/logmnr' scope=spfile;

startup force;

show parameter utl_file_dir;

alter database add supplemental log data;

execute dbms_logmnr_d.build('dict.ora','/home/oracle/logmnr',dbms_logmnr_d.store_in_flat_file);

execute dbms_logmnr.add_logfile(logfilename=>'/u01/flash_recovery_area/PROD/archivelog/2017_11_13/o1_mf_1_1_f0lkgyt6_.arc',options=>dbms_logmnr.new);

execute dbms_logmnr.add_logfile(logfilename=>'/u01/flash_recovery_area/PROD/archivelog/2017_11_13/o1_mf_1_2_f0lo0fom_.arc',options=>dbms_logmnr.addfile);

execute dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dict.ora',options=>dbms_logmnr.ddl_dict_tracking);

select username,scn,to_char(timestamp,'yyyy-mm-dd hh24:mi:ss') time,sql_redo from v$logmnr_contents WHERE lower(sql_redo) like 'drop table%';
execute dbms_logmnr.end_logmnr;

USERNAME SCN TIME
------------------------------ ---------- -------------------
SQL_REDO
------------------------------------------------------------
UNKNOWN 954522 2017-11-13 16:03:53
drop table emp1 purge;

(记录此时间2017-11-13 16:03:53)

shutdown abort;

时间挖掘完成。

cd /home/oradata/prod

rm *.dbf

cp /home/oracle/hot_backup/*.dbf ./

startup;

recover database until time '2017-11-13 16:03:53';auto

alter database open resetlogs;

验证查看

select * from emp1;

成功找回此表,同样可以通过scn号寻找恢复,但是不能用闪回表因为我是purge彻底删除,只能不完全恢复。

2.模拟user01.dbf 介质损坏

rm -rf /u01/oradata/prod/users01.dbf

例如shutdown immediate

SYS@prod>shutdown immediate
ORA-01116: 打开数据库文件 4 时出错
ORA-01110: 数据文件 4: '/u01/oradata/prod/users01.dbf'
ORA-27041: 无法打开文件

解决:

alter system flush buffer_cache;

alter tablespace users offline immediate;

cp /home/oracle/hot_backup/users01.dbf /u01/oradata/prod/

recover tablespace users;auto

alter tablespace users online;

3.模拟undotbs1 介质损坏(恢复的方法多种我只演示根据文件号恢复)

select name  from v$datafile;

rm -rf /u01/oradata/prod/undotbs01.dbf

shutdown abort

解决:

SYS@prod>select FILE#,ERROR from v$recover_file;

FILE# ERROR
---------- -----------------------------------------------------------------
1 UNKNOWN ERROR
2 UNKNOWN ERROR
3 FILE NOT FOUND

SYS@prod>select FILE#,NAME from v$datafile;

FILE#                                     NAME

--------------------------------------------------

1                                         /u01/oradata/prod/system01.dbf

2                                         /u01/oradata/prod/sysaux01.dbf

3                                         /u01/oradata/prod/undotbs01.dbf

4                                         /u01/oradata/prod/users01.dbf

5                                         /u01/oradata/prod/example01.dbf

SYS@prod>select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#
---------- ------------------
1            975649
2            975649
3            0
4            975649
5            975649

确定3号文件损坏

cp /home/oracle/hot_backup/undotbs01.dbf /u01/oradata/prod/

recovere datafile 3;auto

alter database open;

4.当前日志,介质损坏

create table t2(id int);

insert into t2 values(100);

commit;

alter system archive log current;

insert into t2 values(200);

commit;

select * from scott.t2;

select group#,sequence#,status from v$log;

select GROUP#,MEMBER from v$logfile;

查出当前的日志是组号是1对应的redo01.log

模拟 rm -rf /u01/oradata/prod/redo01.log

shutdown abort

startup

数据库装载完毕。
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员 ORA-00312:
联机日志 1 线程 1: '/u01/oradata/prod/redo01.log'
ORA-27037: 无法获得文件状态 Linux
Error: 2: No such file or directory
Additional information: 3

解决:

cd /u01/oradata/prod/

rm *.dbf

cp /home/oracle/hot_backup/*.dbf ./

startup

recover database until cancel;auto

recover database until cancel;cancel

alter database open resetlogs;

select * from scott.t1;

ID
----------
100

5.控制文件损坏

rm -rf /u01/oradata/prod/control01.ctl

rm -rf /u01/flash_recovery_area/prod/control02.ctl

shutdown abort

startup

ORA-00205: ?????????, ??????, ???????

select status from v$instance;

解决:

cp /home/oracle/control01.ctl /u01/oradata/prod/

cp /home/oracle/control02.ctl /u01/flash_recovery_area/prod/

recover database using backup controlfile;auto

recover database using backup controlfile;当前的日志

alter database open resetlogs;

oracle数据库热备中的备份和恢复及例子的更多相关文章

  1. oracle数据库冷备中的手工备份和恢复

    我的操作系统是red hat5.5 32位系统oracle11g 以我的系统为例: 冷备状态下,数据库必须是关闭的,但是我们现在要做一个实验,在开库的状态下分别查询出: 1.show paramete ...

  2. mysql5.6数据库双机热备、主从备份

    主题:mysql5.6数据库双机热备.主从备份 缘由: 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询 ...

  3. MySQL数据库双机热备------主-主备份配置

    MySQL数据库双机热备------主-主备份配置 实验环境: 主1数据库 192.168.1.1 centos6.5 x86_64 +MySQL5.5.35 主2数据库192.168.1.2  Wi ...

  4. oracle双机热备概念

    1. 双机热备概述      双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式.      基于存储共享的双机热备是双机热备的最标准方案. ...

  5. Oracle:热备测试

    我们知道Oracle数据库热备有3步: 1. alter tablespace  tbname  begin backup: 2. cp  /×××      to   /×× 3. alter ta ...

  6. 部署web01,web02,nfs,db01,backup,搭建wordpress,WeCenter,实现共享,热备,实时备份

    小结 部署web01,web02,nfs,db01,backup,搭建wordpress,WeCenter,实现共享,热备,实时备份 1)在web01和web02上安装nginx和php 2)创建ww ...

  7. Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法

    Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法 可能是误删文件导致在使用rman备份时候出现以下提示 RMAN-06169: could not read file hea ...

  8. oracle 双机热备,oracle dataguard 和oracle rac的区别和联系(转)

    Data Guard 是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目 ...

  9. Oracle数据库三种标准的备份方法

    Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导入(Export/Imp ...

随机推荐

  1. Musical Theme poj1743(后缀数组)

    Musical Theme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16757   Accepted: 5739 De ...

  2. 支持向量机SVM(二)

    [转载请注明出处]http://www.cnblogs.com/jerrylead 6 拉格朗日对偶(Lagrange duality) 先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法, ...

  3. PDO浅谈之php连接mysql

    一.首先我们先说一下什么是pdo?  百科上说 PDO扩展为PHP访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数 ...

  4. BZOJ 1041 [HAOI2008]圆上的整点:数学

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1041 题意: 给定n(n <= 2*10^9),问你在圆x^2 + y^2 = n^ ...

  5. c# Linq操作XML,查找节点数据

    /*查找XML*/ var filePath = Server.MapPath("~/xml/sample.xml"); XDocument doc = XDocument.Loa ...

  6. IP报文分片

    1. 最大传输单元(Maximum Transmission Unit,MTU). 以太网帧中的数据长度规定最小46 字节,最大1500 字节,MTU 指数据帧中有效载荷的最大长度,不包括帧首部的长度 ...

  7. win10 UWP Hmac

    HMAC是密钥相关的哈希运算消息认证码,输入密钥和信息. 在uwp,Hmac在很多网络使用,我最近写qiniu SDK,把原来C#改为UWP,需要使用HMAC. 上传文件 <form metho ...

  8. WPF 绑定密码

    我们发现我们无法绑定密码框的密码,PasswordBox 的 Password 不能绑定. 我们想做 MVVM ,我们需要绑定密码,不能使用前台 xaml.cs 监听 密码改变得到密码的值,传到 Vi ...

  9. 使用vsftpd+nginx搭建一个文件服务器

    一:安装vsftpd 1.安装 [root@localhost jack]# yum -y install vsftpd 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp ...

  10. 墨卡托投影坐标系(Mercator Projection)原理及实现C代码

    墨卡托投影是一种"等角正切圆柱投影",荷兰地图学家墨卡托(Mercator)在1569年拟定:假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,把球面 ...