备份恢复的种类以及完全恢复实验
1.完全脱机备份(归档非归档都可以)
a.优点:比较安全,因为数据库关闭了
b.缺点:用操作系统命令拷贝文件;shutdown了
2.部分脱机备份(tablespace offline)
a.缺点:用os命令copy(system,undo不能offline)
SYS@orcl>select name from v$datafile;NAME
--------------------------------------------------------------------------------/u01/app/oradata/prod/system01.dbf/u01/app/oradata/prod/sysaux01.dbf/u01/app/oradata/prod/undotbs01.dbf/u01/app/oradata/prod/users01.dbf/u01/app/oradata/prod/example01.dbf
cd /u01/app/oradata/prod
mkdir offline
SYS@orcl>alter tablespace sysaux offline; ##sysaux表空间是系统辅助表空间Tablespace altered.
cp sysaux01.dbf offline/
SYS@orcl>alter tablespace sysaux online;Tablespace altered.
SYS@orcl>alter tablespace users offline;Tablespace altered.
cp users01.dbf offline/
SYS@orcl>alter tablespace users online;Tablespace altered.
SYS@orcl>select * from t;ID SCN
---------- ----------1 9980212 9984783 9986014 9986835 9987026 9987097 9987148 9987289 9987409 rows selected.
SYS@orcl>select * from v$log;GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------1 1 13 52428800 512 1 YES INACTIVE 998720 25-DEC-19 998733 25-DEC-192 1 14 52428800 512 1 NO CURRENT 998733 25-DEC-19 2.8147E+14 (null)3 1 12 52428800 512 1 YES INACTIVE 998714 25-DEC-19 998720 25-DEC-19
SYS@orcl>insert into t values(10,dbms_flashback.get_system_change_number);1 row created.
SYS@orcl>commit;Commit complete.
SYS@orcl>alter system switch logfile;System altered.
SYS@orcl>insert into t values(11,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(12,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(13,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
模拟文件损坏
SYS@orcl>alter tablespace users offline;Tablespace altered.
rm -f /u01/app/oradata/prod/users01.dbf
SYS@orcl>alter tablespace users online;
alter tablespace users online
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oradata/prod/users01.dbf'
使用备份文件恢复
cp /u01/app/oradata/prod/offline/users01.dbf /u01/app/oradata/prod
select * from v$datafile; ##这个sql可以查看表空间的状态
SYS@orcl>alter tablespace users online;alter tablespace users online*ERROR at line 1:ORA-01113: file 4 needs media recoveryORA-01110: data file 4: '/u01/app/oradata/prod/users01.dbf'
SYS@orcl>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10043325 1004293
SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 05 1004293
SYS@orcl>recover datafile 4;
ORA-00279: change 1000941 generated at 12/26/2019 11:16:10 needed for thread 1
ORA-00289: suggestion : /u01/app/fast_recovery_area/PROD/archivelog/2019_12_26/o1_mf_1_14_h08cwm57_.arc
ORA-00280: change 1000941 for thread 1 is in sequence #14Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
Media recovery complete.
SYS@orcl>alter tablespace users online;Tablespace altered.
SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10047125 1004293SYS@orcl>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10047125 1004293
SYS@orcl>select * from t;ID SCN
---------- ----------10 100243311 100261212 100428813 10043071 9980212 9984783 9986014 9986835 9987026 9987097 998714ID SCN
---------- ----------8 9987289 99874013 rows selected.
如果单个数据文件坏了可以offline
单个数据文件,修复单个数据文件
alter database datafile 4 offline;
rm -f /u01/app/oradata/prod/users01.dbf
cp /u01/app/oradata/prod/offline/users01.dbf /u01/app/oradata/prod
SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10009085 1004293
SYS@orcl>alter database datafile 4 online;
alter database datafile 4 online
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/u01/app/oradata/prod/users01.dbf'
SYS@orcl>recover datafile 4;
ORA-00279: change 1000941 generated at 12/26/2019 11:16:10 needed for thread 1
ORA-00289: suggestion : /u01/app/fast_recovery_area/PROD/archivelog/2019_12_26/o1_mf_1_14_h08cwm57_.arc
ORA-00280: change 1000941 for thread 1 is in sequence #14Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
Log applied.
Media recovery complete.
SYS@orcl>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10050145 1004293SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#---------- ------------------1 10042932 10042933 10042934 10050145 1004293
SYS@orcl>alter database datafile 4 online;Database altered.
3.部分联机备份
这一步命令就是相当于记下了v$datafile_header
中的checkpoint_change#
SYS@orcl>alter tablespace system begin backup;Tablespace altered.
SYS@orcl>select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- -------------------1 ACTIVE 1009252 2019-12-26 15:18:222 NOT ACTIVE 0 (null)3 NOT ACTIVE 0 (null)4 NOT ACTIVE 0 (null)5 NOT ACTIVE 0 (null)
SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#
---------- ------------------1 10092522 10042933 10042934 10051215 1004293
备份的时候还是要用os
的copy
命令
SYS@orcl>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u01/app/oradata/prod/system01.dbf
/u01/app/oradata/prod/sysaux01.dbf
/u01/app/oradata/prod/undotbs01.dbf
/u01/app/oradata/prod/users01.dbf
/u01/app/oradata/prod/example01.dbfmkdir /u01/app/oradata/prod/online
cp /u01/app/oradata/prod/system01.dbf /u01/app/oradata/prod/online/SYS@orcl>alter tablespace system end backup;Tablespace altered.
SYS@orcl>select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- -------------------1 NOT ACTIVE 1009252 2019-12-26 15:18:222 NOT ACTIVE 0 (null)3 NOT ACTIVE 0 (null)4 NOT ACTIVE 0 (null)5 NOT ACTIVE 0 (null)SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#
---------- ------------------1 10092522 10042933 10042934 10051215 1004293
SYS@orcl>alter database begin backup;Database altered.
SYS@orcl>select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- -------------------1 ACTIVE 1009986 2019-12-26 15:47:052 ACTIVE 1009986 2019-12-26 15:47:053 ACTIVE 1009986 2019-12-26 15:47:054 ACTIVE 1009986 2019-12-26 15:47:055 ACTIVE 1009986 2019-12-26 15:47:05
把5
个数据文件一起拷贝走
cd /u01/app/oradata/prod
cp example01.dbf sysaux01.dbf users01.dbf system01.dbf undotbs01.dbf online/SYS@orcl>alter database end backup;Database altered.
SYS@orcl>select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- -------------------1 NOT ACTIVE 1009986 2019-12-26 15:47:052 NOT ACTIVE 1009986 2019-12-26 15:47:053 NOT ACTIVE 1009986 2019-12-26 15:47:054 NOT ACTIVE 1009986 2019-12-26 15:47:055 NOT ACTIVE 1009986 2019-12-26 15:47:05
SYS@orcl>delete from t;13 rows deleted.
SYS@orcl>commit;Commit complete.
SYS@orcl>select * from v$log;GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------------- ------------ -------------------1 1 16 52428800 512 1 YES INACTIVE 1002619 2019-12-26 11:58:07 1004293 2019-12-26 12:30:132 1 17 52428800 512 1 NO CURRENT 1004293 2019-12-26 12:30:13 2.8147E+14 (null)3 1 15 52428800 512 1 YES INACTIVE 1002593 2019-12-26 11:57:07 1002619 2019-12-26 11:58:07
SYS@orcl>insert into t values(10,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(11,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(12,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(13,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter system switch logfile;
SYS@orcl>insert into t values(14,dbms_flashback.get_system_change_number);
SYS@orcl>commit;
SYS@orcl>alter database end backup;
SYS@orcl>shutdown immediate;
rm -f /u01/app/oradata/prod/example01.dbf sysaux01.dbf users01.dbf system01.dbf undotbs01.dbf
SYS@orcl>startup mount;
cd /u01/app/oradata/prod/
cp online/* .
SYS@orcl>alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/app/oradata/prod/system01.dbf'
SYS@orcl>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#
---------- ------------------1 10103572 10103573 10103574 10103575 1010357SYS@orcl>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#
---------- ------------------1 10099862 10099863 10099864 10099865 1009986
SYS@orcl>recover database;
ORA-00279: change 1009986 generated at 12/26/2019 15:47:05 needed for thread 1
ORA-00289: suggestion : /u01/app/fast_recovery_area/PROD/archivelog/2019_12_26/o1_mf_1_17_h08sx92h_.arc
ORA-00280: change 1009986 for thread 1 is in sequence #17Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
SYS@orcl>alter database open;Database altered.
SYS@orcl>select * from t;ID SCN
---------- ----------10 101020011 101022612 101023313 101025614 1010267
部分联机备份有个问题再次强调这种备份方式就是将数据文件头部的SCN
号记录下来了,数据文件头部有SCN
但是数据文件中的数据块上也有SCN
,数据块的SCN
是可以变化的,也就是有可能在使用操作系统命令将数据文件的过程中,有可能将一个数据块拷走一半另一半被修改了,这个数据块就不一致了,物理上这个数据文件没有问题但是逻辑上数据块已经不一致了,
这个备份的数据文件Oracle
不能用了,Oracle
是这样决解这个问题的,在一个数据文件处于热备份的状态时,当Oracle
发现有其他进程修改这个数据文件中的数据块时那么Oracle
就会以日志的方式备份这个要修改的数据块,而且这个数据块修改的时候还要产生日志,那么就会产生大量的日志
下面就验证一下
select distinct sid from v$mystat;
select * from v$statname; 通过这个命令找到redo size的STATSTIC#为194
SYS@orcl>select * from v$mystat where sid =1 and STATISTIC#=194;SID STATISTIC# VALUE
---------- ---------- ----------1 194 0
SYS@orcl>select * from v$mystat where sid =1 and STATISTIC#=194;SID STATISTIC# VALUE
---------- ---------- ----------1 194 0SYS@orcl>commit;Commit complete.
SYS@orcl>select * from v$mystat where sid =1 and STATISTIC#=194;SID STATISTIC# VALUE
---------- ---------- ----------1 194 504
SYS@orcl>alter tablespace users begin backup;Tablespace altered.SYS@orcl>select * from v$backup;FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------1 NOT ACTIVE 1009986 26-DEC-192 NOT ACTIVE 1009986 26-DEC-193 NOT ACTIVE 1009986 26-DEC-194 ACTIVE 1012314 26-DEC-195 NOT ACTIVE 1009986 26-DEC-19
SYS@orcl>select * from v$mystat where sid =1 and STATISTIC#=194;SID STATISTIC# VALUE
---------- ---------- ----------1 194 1304
SYS@orcl>insert into t values(2,2);1 row created.SYS@orcl>commit;Commit complete.SYS@orcl>select * from v$mystat where sid =1 and STATISTIC#=194;SID STATISTIC# VALUE
---------- ---------- ----------1 194 10104
SYS@orcl>alter tablespace users end backup;Tablespace altered.
备份恢复的种类以及完全恢复实验相关推荐
- oracle的故障包括用户或应用程序故障_数据库实例错误,oracle 备份恢复基础
一,与基础 1.,备份简介 备份是数据的一个副本,一般包括控制文件和数据文件等 物理备份与逻辑备份 物理备份指物理文件的副本,逻辑备份是指使用工具抽取逻辑数据(例如,表或存储过程)并保存在二进制文件中 ...
- Oracle 备份恢复 31个实验 7-12
备份恢复实验之七 基于时间的不完全恢复(举个例子,你10:00删除了一张表,可事后你发现误删了,那你就要将数据库的时间回退到9:59,也就是回退到这张表还在的时刻,这里当然不是说表被误删就一定要采用传 ...
- 实验10 SQL Server 数据备份/恢复
实验10 SQL Server 数据备份/恢复 一.实验目的 1.了解数据库备份的过程和属性设置: 2.掌握应用企业管理器备份和恢复数据库: 3.掌握应用T-SQL备份和恢复数据库: 4.掌握数据导入 ...
- mysql备份恢复专题二(Xtrabackup全库完全恢复原理)
mysql完全恢复原理 创建测试库 # mysql -uroot -pR00t_123 mysql>create database test; mysql> show databases ...
- mysql备份恢复实验
内容大纲: 一 mysqldump备份 二 sql语句备份 三 mysqlbinlog备份恢复 一 mysqldump数据文件备份恢复 mysql> use cw_d; Database cha ...
- 实验——MySQL数据库增量备份恢复
目录 一.MySQL数据库增量备份恢复 1.1 物理冷备份,开启服务 1.2 开启二进制日志文件 1.3 创建库和表,进行完全备份和增量备份 1.4 进行正常操作和误操作,进行增量备份 1.5 查看增 ...
- 【备份恢复】Oracle 数据备份与恢复微实践
<Oracle 数据备份与恢复微实践> 新年新群招募: 中国Oracle精英联盟170513055 群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Ora ...
- 用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART2...
8.11 9d_当前控制文件损坏_只读user表空间完全恢复_用控制文件脚本_不需备份 在PXE推送端主机上运行: [root@server1 ~]# bcl --RACGRID11g13 9d 场景 ...
- Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复
4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根 c:\ d:\ e ...
最新文章
- 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14...
- shell脚本批量追踪ip路由走向
- 软件工程概论 课堂练习【图书馆系统的用例图】
- ubuntu下sublime如何一次只打開一個文件
- echart实例数据 本地加载_JVM 类加载概述
- 利用Group Conv在单个CNN中实现集成学习
- 两个特征是独立好还是正相关好_【概率论与数理统计】第5期:随机变量的数字特征...
- 关于修改CentOS7(64位)环境变量
- ASP中如何在退出一个页面时自动清空session变量
- 为什么 30 岁的工程师容易跳槽?
- 迈达斯导出html计算书,动态计算书模块功能-midas Civil 2011
- 工具说明书 - 单词发音及根据发音查单词
- 大话西游,唐僧与悟空合伙创业,股权几何?
- 启动服务器应用程序失败,打开系统管理时提示:autoupdateserviceset.exe 应用程序错误 应用程序无法正常启动,请单击确定 关闭应用程序。...
- linux系统u盘安装教程图解教程,使用U盘安装Ubuntu的详细图文教程
- 我的世界java版tp_神奇的tp指令 我的世界tp指令的用法
- 联合证券|内外利好共振 今年A股可更乐观一点
- IT 民工避免猝死攻略 v1.0
- 【Joshua B. Tenenbaum】非线性降维的全局几何框架
- python可以应用于哪些方面?
热门文章
- 以下是一些提供技术专利申请模板的中文网站,供您参考
- 原码、反码、补码二进制表示
- Landsat8卫星介绍
- Liang Zhen
- [SCOI2009]粉刷匠 牛客DP入门
- PERCENT_RANK
- python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件
- 直播播放器+html5,10款html5网页播放器推荐(总有一款适合你)
- 【已解决】HHC6003: 错误: 文件 Itircl.dll 没有被正确注册。怎么办?
- 链表【左程云:Java】