Oracle数据库的热备份与完整恢复测试

简介:

数据库热备份与完整恢复测试: 

1.首先,必需保证数据库在归档模式下。 

2.热备份数据文件,通过alter tablespace xxx begin backup把表空间设为备份状态,可以手工或在sql下运行host copy把数据文件复制到指定地方,最后把表空间改为正常状态(alter tablepace xxx end backup)。 

3.数据库恢复:使用语句rcover datafile,alter database open即可以实现数据库的完整恢复。 

具体的步骤如下: 

SQL> conn / as sysdba 

已连接。 

//确定数据库在归档模式下。 

SQL> select log_mode from v$database; 

LOG_MODE 

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

ARCHIVELOG 

//查询表空间对应的数据文件,一般表空间名跟对应数据文件名是相同的,可以跳过这一步。 

SQL> select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile 

2 where v$tablespace.ts#=v$datafile.ts#; 

NAME 

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

NAME 

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


SYSTEM 

F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF 


UNDOTBS1 

F:\ORACLE\ORADATA\EBOOK\UNDOTBS01.DBF 


CWMLITE 

F:\ORACLE\ORADATA\EBOOK\CWMLITE01.DBF 


DRSYS 

F:\ORACLE\ORADATA\EBOOK\DRSYS01.DBF 


EXAMPLE 

F:\ORACLE\ORADATA\EBOOK\EXAMPLE01.DBF 


INDX 

F:\ORACLE\ORADATA\EBOOK\INDX01.DBF 


ODM 

F:\ORACLE\ORADATA\EBOOK\ODM01.DBF 


TOOLS 

F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF 


USERS 

F:\ORACLE\ORADATA\EBOOK\USERS01.DBF 


XDB 

F:\ORACLE\ORADATA\EBOOK\XDB01.DBF 

 

已选择10行。 

 

//将表空间设为备份状态. 

SQL> alter tablespace system begin backup; 

表空间已更改。 

//将数据文件备份到目录f:\oracle\backuparea下. 

SQL> host copy f:\oracle\oradata\ebook\system01.dbf f:\oracle\backuparea\ 

已复制 1 个文件。 

SQL> alter tablespace system end backup; 

表空间已更改。 

//建表test的目的为测试此恢复是否是完整恢复。 

SQL> create table scott.test(t int); 

表已创建。 

SQL> insert into scott.test values(1); 

已创建 1 行。 

SQL> insert into scott.test values(2); 

已创建 1 行。 


SQL> commit; 


提交完成。 

 

SQL> shutdown immediate 

数据库已经关闭。 
  已经卸载数据库。 
ORACLE 例程已经关闭。 
 
//删除system01.dbf或移动到其他目录造成数据库崩溃。 

SQL> startup 
ORACLE 例程已经启动。 
Total System Global Area 135338868 bytes 
Fixed Size 453492 bytes 
Variable Size 109051904 bytes 
Database Buffers 25165824 bytes 
Redo Buffers 667648 bytes 
数据库装载完毕。 
ORA-01157: 无法标识/锁定数据文件 1 - 请大家参阅 DBWR 跟踪文件 
ORA-01110: 数据文件 1: ’F:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF’ 
//将备份的数据文件复制回目录f:\oracle\oradata\ebook\下. 

SQL> $ copy f:\oracle\backuparea\system01.dbf f:\oracle\oradata\ebook\ 
已复制 1 个文件。 

//恢复数据文件system01.dbf。 
SQL> recover datafile ’f:\oracle\oradata\ebook\system01.dbf’; 
完成介质恢复。 
SQL> alter database open; 

数据库已更改。 

//此说明数据库是完整恢复了。 

SQL> select * from scott.test; 

---------- 

总结: 
1.热备份必须在数据库归档模式下进行 
2.在备份的同时,数据库的用户可以进行操作。因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日至文件中 
后再进行。(这句引自别人叙述,我对后半句正确与否存在疑问,希望大家讨论)。 
3.归档日志必须是备份后的所有日至才可以实现数据库的完全恢复。 
4.可以备份除临时文件以外的所有数据文件,如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法 
5。 特别当损坏的不是系统表空间,可以先将损坏的表空间文件脱机,这时可以在恢复损坏文件前打开 
数据库,再完成恢复。例如: 

SQL> alter tablespace tools begin backup; 

表空间已更改。 

SQL> $ copy f:\oracle\oradata\ebook\tools01.dbf f:\oracle\backuparea 
已复制 1 个文件。 

SQL> alter tablespace tools end backup; 

表空间已更改。 

SQL> shutdown immediate 
数据库已经关闭。 
已经卸载数据库。 
ORACLE 例程已经关闭。 

//删除tools01.dbf造成数据库无法正常启动. 

SQL> startup 
ORACLE 例程已经启动。 

Total System Global Area 135338868 bytes 
Fixed Size 453492 bytes 
Variable Size 109051904 bytes 
Database Buffers 25165824 bytes 
Redo Buffers 667648 bytes 
数据库装载完毕。 
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件 
ORA-01110: 数据文件 8: ’F:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF’ 
 
SQL> alter database datafile ’f:\oracle\oradata\ebook\tools01.dbf’ offline; 

数据库已更改。 

SQL> alter database open; 

数据库已更改。 

SQL> $ copy f:\oracle\backuparea\tools01.dbf f:\oracle\oradata\ebook\ 
已复制 1 个文件。 

SQL>recover datafile ’f:\oracle\oradata\ebook\tools01.dbf’; 
介质恢复完成。


本文转自tiasys博客园博客,原文链接:http://www.cnblogs.com/tiasys/archive/2008/04/15/1154472.html,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 关系型数据库 分布式数据库
PolarDB开源数据库进阶课5 在线备份
本文介绍了如何在PolarDB RAC一写多读集群中进行在线备份,特别针对共享存储模式。通过使用`polar_basebackup`工具,可以将实例的本地数据和共享数据备份到本地盘中。实验环境依赖于Docker容器中用loop设备模拟的共享存储。
38 1
|
13天前
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
13天前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
13天前
|
Oracle 关系型数据库 MySQL
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
|
2月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
3月前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
196 11
|
4月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
4月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
78 1
|
4月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
3月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。

热门文章

最新文章

推荐镜像

更多