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,如需转载请自行联系原作者
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
393 93
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
225 0
|
5月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
338 8
|
5月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
291 11
|
5月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
5月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
154 0
|
8月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1655 28
|
6月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
8月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
273 9

推荐镜像

更多