Oracle数据库恢复
oracle11g还原数据库步骤__概述说明以及解释
oracle11g还原数据库步骤概述说明以及解释引言部分的内容可以按照如下方式撰写:1. 引言1.1 概述引言部分将介绍本篇文章的主题,即Oracle 11g数据库还原步骤。
数据库还原是一项至关重要的任务,它可以帮助恢复丢失或损坏的数据,并确保系统的连续性和可靠性。
在本文中,我们将深入探讨Oracle 11g数据库还原的步骤和过程,以及执行还原操作前需要注意的准备工作。
1.2 文章结构在本文中,我们将按照以下顺序来讨论Oracle 11g数据库还原:- 首先,我们将介绍Oracle 11g数据库还原的重要性,阐述为什么必须进行数据库还原操作。
- 其次,我们将概述Oracle 11g数据库还原的步骤,并列出每个步骤的简要说明。
- 第三部分我们将详细描述执行数据库还原操作前所需进行的准备工作。
- 接下来,我们将提供执行数据库还原操作的详细步骤,包括必要时涉及到的命令和工具。
- 最后,我们将讨论完成数据库还原后进行验证和测试的方法与技巧。
1.3 目的本文旨在为读者提供有关Oracle 11g数据库还原的全面指南。
通过学习本文,读者将能够了解数据库还原的重要性、掌握进行数据库还原操作的步骤和技巧,并且能够有效地验证和测试还原后的数据库。
我们希望这篇文章能够帮助读者在数据库还原过程中避免常见错误,并提供相关提示和建议。
2. 正文:2.1 Oracle 11g数据库还原的重要性在数据库管理中,数据的安全性和完整性是至关重要的。
由于各种原因,比如硬件故障、用户误操作或者系统遭受攻击,数据库可能会丢失或损坏。
因此,在这些情况下,数据库还原变得非常重要。
Oracle 11g数据库还原是指恢复已经丢失或被损坏的数据到其先前可用状态的过程。
2.2 Oracle 11g数据库还原的步骤概述数据库还原通常包括以下主要步骤:- 备份介质准备:确定可用的备份介质,并确保其处于良好状态。
- 目标库环境准备:在目标库上创建必需的目录结构,并配置参数以适应还原操作。
oracle数据库rman备份计划及恢复
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
DBF文件恢复ORACLE数据库的方法
DBF文件恢复ORACLE数据库的方法1. 确认DBF文件是否已损坏:首先,你需要确定DBF文件是否已损坏或丢失。
可以通过使用操作系统的文件浏览器或使用Oracle数据字典查看相关信息。
-文件浏览器:打开操作系统的文件浏览器,浏览数据库文件目录,确认DBF文件是否存在、是否损坏。
- Oracle数据字典:连接到Oracle数据库,执行以下SQL语句查询表空间和数据文件信息:```sqlSELECT tablespace_name, file_name, status FROMdba_data_files;```如果查询的结果中一些DBF文件的状态为`INVALID`,则表示该文件可能损坏。
2. 尝试修复损坏的DBF文件:如果确认DBF文件损坏,可以尝试使用Oracle提供的工具来修复。
- DBVERIFY:DBVERIFY是Oracle自带的一个用于验证数据文件完整性的工具。
如果DBF文件没有物理损坏,只是逻辑上出现错误,可以使用DBVERIFY来修复。
```sql$ dbv file=dbf_file_name```运行DBVERIFY命令后,将会在命令行中看到DBF文件的验证结果。
- RMAN:RMAN是Oracle数据库管理工具,可以用于备份和恢复数据库。
可以使用RMAN来恢复备份的DBF文件并替换掉损坏的文件。
```sqlRMAN>RUNSET DBID <database_id>;RESTOREDATABASE;RECOVERDATABASE;}```运行以上RMAN命令将会从备份中恢复数据库和对应的DBF文件。
3.从备份还原DBF文件:如果没有备份或无法修复DBF文件,可以尝试从最近可用的备份中还原DBF文件。
以下是使用RMAN还原DBF文件的步骤:-创建一个临时控制文件:```sqlRMAN> CREATE CONTROLFILE SET DATABASE '<database_name>' RESETLOGS NOARCHIVELOGMAXLOGFILES <file_count> MAXLOGMEMBERS <file_count> MAXDATAFILES <file_count>MAXINSTANCES <instance_count> MAXLOGHISTORY <history_count>;```-还原DBF文件```sqlRMAN>RESTOREDATABASE;```-打开数据库```sqlRMAN>RECOVERDATABASE;RMAN>ALTERDATABASEOPEN;```4.数据恢复服务:如果以上方法都无法恢复DBF文件,或者备份不可用,那么可以考虑使用专业的数据恢复服务。
Oracle数据库数据发生丢失后的恢复方法
将 会丢 失 。因此 , 讨论不 完全恢 复 。 不
2 1 恢 复 过 程 .
al 数据 库数据 发 生 丢失 后 的恢 复方 法 , 供 同 仁 c e 谨
参考。
O al 数据库的恢复过程分两 步进行 , rc e 首先将 把 存放在重做 日志 文件中的所 有重 做运行 到数 据文件 , 之后对重做 中所有提 交的事 务进行 回滚 , 这样所有 数 据就恢复到发 生 灾难那 一 时刻 了。数 据 库 的恢复 只 能在 发 生 故 障 之 前 的 某 一 个 时 刻 。例 如 : 一 个 有 20// 0 1 1 1的数据 库备 份 , 2 0 / / 数 据库 中数 据 当 015 1 发生混 乱 , 望 将 数 据 库恢 复 到 2 0 / / 0时 的 状 希 0143 态, 只能先恢 复 2 O / / O l 1 1的数据库备 份 , 然后在 其运
环境 。随着 Wid ws系统 的广 泛应 用 , rce . 7 no O al 1 5 已 经 成 为 过 去 时 , 于 Wid ws的 Orc 8、 基 no al i e
2 恢 复
数 据库 的恢复 可分为两 大类 : 一是完 全恢复 ; 二
是 不完全 恢复 。
完 全恢 复 指 将数 据恢 复 到发 生 故 障 的时 间点 , 不丢失 任何数 据 。不完全 恢复指 将数据 恢 复到发生
维普资讯
第2 期
铁
法
科
技
20 年1月 06 2
O al数据库数据发生丢失后的恢复方法 rc e
晓南矿 关明杰
摘 要 本文详 细介绍 了 Orc 数 据库发 生 灾难 性数 据丢 失后 的恢 复 方法 , al e 重点讲 述 了用 户操 作 失败 与存储 设备 失败 时数据库 管理员完全 恢复 的办 法。 关键 词 oa l 数据 库 备 份 恢 复 日志 文件 rce O al 数 据库环境 己成 为世界上 最流行 的数据 rc e 库平 台之一 , 占有 7 以上 的 数 据库 市 场 份 额 , O 并 法, 数据 库必须 处于 打开状态 , 而且 如果 数据库不 是
Oracle数据库备份与恢复的三种方法
Oracle数据库备份与恢复的三种⽅法备份与恢复的三种⽅法Oracle数据库有三种标准的备份⽅法,它们分别是导出/导⼊(EXP/IMP)、热备份和冷备份。
导出备件是⼀种逻辑备份,冷备份和热备份是物理备份。
⼀、导出/导⼊(Export/Import) 利⽤Export可将数据从数据库中提取出来,利⽤Import则可将提取出来的数据送回到Oracle数据库中去。
1、简单导出数据(Export)和导⼊数据(Import) Oracle⽀持三种⽅式类型的输出: (1)、表⽅式(T⽅式),将指定表的数据导出。
(2)、⽤户⽅式(U⽅式),将指定⽤户的所有对象及数据导出。
(3)、全库⽅式(Full⽅式),瘵数据库中的所有对象导出。
数据导⼊(Import)的过程是数据导出(Export)的逆过程,分别将数据⽂件导⼊数据库和将数据库数据导出到数据⽂件。
2、增量导出/导⼊ 增量导出是⼀种常⽤的数据备份⽅法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。
在进⾏此种导出时,不要求回答任何问题。
导出⽂件名缺省为export.dmp,如果不希望⾃⼰的输出⽂件定名为export.dmp,必须在命令⾏中指出要⽤的⽂件名。
增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,⽐如:exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上⼀次备份后改变的数据,⽐如:exp system/manager inctype=incremental file=040731.dmp (3)、“累积型”增量导出 累计型导出⽅式是导出⾃上次“完全”导出之后数据库中变化了的信息。
⽐如:exp system/manager inctype=cumulative file=040731.dmp 数据库管理员可以排定⼀个备份⽇程表,⽤数据导出的三个不同⽅式合理⾼效的完成。
windows-下的oracle数据库rman自动备份和恢复文档精选全文完整版
可编辑修改精选全文完整版数据库rman备份恢复文档一.Rman简介RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘(C盘)、oracle数据文件存放盘(D 盘)存放在一起,本文单独存放于E盘。
注:在进行以下操作前要根据自己的环境建立如下目录“E:\orabackup\”,“’E:\archivelog_backup”,“E:/orabackup_script/”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle数据库是否为归档模式。
1.选择“开始”→“系统”→“运行”,输入cmd,按回车。
2.输入“sqlplus”,按回车。
3.输入“system / as sysdba ”,按回车。
4.输入数据库system账号的密码,按回车。
5.查看数据库归档模式,输入“archive log list;”,按回车。
如下图所示。
如果“数据库日志模式”为“非存档模式”,则需按照如下步骤开启归档模式:1.设置数据库日志归档路径。
输入“alter system set log_archive_dest=’E:\archivelog_backup’ scope=spfile; ”,按回车。
2.关闭数据库。
输入“shutdown immediate;”,按回车。
3. 启动数据库到mount状态。
Avamar备份和恢复oracle数据库操作手册
Avamar备份和恢复Oracle数据库操作手册1.1 Oracle数据库备份首先要进入Sqlplus用archive log list—查看是否开启了归档模式;Oracle做热备份必须是归档模式,同时需要进入mount或open状态。
因此当发现不是归档模式时,需要采用以下步骤先把Oracle修改为归档模式才能正常备份。
1.首先关闭数据库:2.然后重新连接进sqlplus,再把Oracle启动到mount状态,然后修改成归档日志模式,修改完成后打开数据库到open状态(用alter database open 命令):1.2 Oracle数据库恢复注意:在Oracle恢复之前有几项准备工作要做:首先,在执行恢复之前,先关闭Oracle(SQL>shutdown immediate;);然后,删除联机日志和归档日志(或者转移到另外的目录)。
在测试时为了验证Oracle可恢复,在备份完成后删除了一些表,那么恢复前需要删除现有的联机日志和归档日志。
如果不删除日志,由于在恢复时,只会恢复控制文件和数据库,不会恢复日志文件,因此为了避免恢复后控制文件再去读取现有的日志文件(导致再次做删除操作),所以需要删除联机日志和归档日志(防止删除时正好联机日志做了日志切换)。
具体操作:把D盘oracle\product\10.2.0\oradata\test目录下的REDO01.LOG、REDO02.LOG的、REDO03.LOG 三个联机日志删除,然后再把D盘oracle\product\10.2.0下的相关归档日志删除。
再把Oracle启动到nomount状态,可运行如下命令:C:\Document and Setting\Administrator>sqlplus / as sysdba或C:\Document and Setting\Administrator>sqlplus /nologSQL>conn as sysdba;SQL>Startup nomount;完成以上步骤之后,就可以在Avamar上执行恢复:1.登陆Avamar Administrator管理界面,选择“backup and restore”;2.进入“Backup and Restore”界面;1)选择客户机;2)选择Windows Oracle Rman。
Avamar备份和恢复oracle数据库操作手册
Avamar备份和恢复Oracle数据库操作手册1.1 Oracle数据库备份首先要进入Sqlplus用archive log list—查看是否开启了归档模式;Oracle做热备份必须是归档模式,同时需要进入mount或open状态。
因此当发现不是归档模式时,需要采用以下步骤先把Oracle修改为归档模式才能正常备份。
1.首先关闭数据库:2.然后重新连接进sqlplus,再把Oracle启动到mount状态,然后修改成归档日志模式,修改完成后打开数据库到open状态(用alter database open 命令):1.2 Oracle数据库恢复注意:在Oracle恢复之前有几项准备工作要做:首先,在执行恢复之前,先关闭Oracle(SQL>shutdown immediate;);然后,删除联机日志和归档日志(或者转移到另外的目录)。
在测试时为了验证Oracle可恢复,在备份完成后删除了一些表,那么恢复前需要删除现有的联机日志和归档日志。
如果不删除日志,由于在恢复时,只会恢复控制文件和数据库,不会恢复日志文件,因此为了避免恢复后控制文件再去读取现有的日志文件(导致再次做删除操作),所以需要删除联机日志和归档日志(防止删除时正好联机日志做了日志切换)。
具体操作:把D盘oracle\product\10.2.0\oradata\test目录下的REDO01.LOG、REDO02.LOG的、REDO03.LOG 三个联机日志删除,然后再把D盘oracle\product\10.2.0下的相关归档日志删除。
再把Oracle启动到nomount状态,可运行如下命令:C:\Document and Setting\Administrator>sqlplus / as sysdba或C:\Document and Setting\Administrator>sqlplus /nologSQL>conn as sysdba;SQL>Startup nomount;完成以上步骤之后,就可以在Avamar上执行恢复:1.登陆Avamar Administrator管理界面,选择“backup and restore”;2.进入“Backup and Restore”界面;1)选择客户机;2)选择Windows Oracle Rman。
ORACLE数据库如何恢复
ORACLE数据库如何恢复(邝俊标)ORACLE数据库备份与恢复与ORACLE的结构密切相关,大家先弄清ORACLE 物理结构有哪些?逻辑结构是有哪些?它们的作用是什么?弄明白这些以后,具体怎么备份、怎么恢复就需要了解下ORACLE本身是怎么管理数据库的有那些相关的ORACLE系统表?ORACLE的后台进程是怎么管理的?最后就要知道相关的ORACLE命令、语法,根据系统提示错误灵活处理了。
ORACLE 恢复主要有下面的几种问题:一、数据文件丢失恢复:二、OS备份下的基于时间的恢复三、损坏联机日志的恢复四、损坏当前联机日志恢复五损坏控制文件的恢复六、损坏回滚数据文件的恢复七、损坏临时数据文件的恢复一、数据文件丢失恢复:1、查看报警文件或动态视图v$recover_fileSQL>select * from v$recover_file;2、脱机数据文件SQL> alter database datafile 'file#' offline drop;3、打开数据库,拷贝备份回来(restore),恢复(recover)该数据文件,并联机SQL> alter database open;4、拷贝备份从备份处copy d:\databak\ users01.dbf d:\oracle\oradata\orcl;5、恢复该数据文件SQL> recover datafile 'file#';SQL> recover database; (多个数据文件丢失,恢复整个数据库)6、恢复成功,联机该数据文件SQL> alter database datafile 'file#' online;说明:1) 采用热备份,需要运行在归档模式下,可以实现数据库的完全恢复,也就是说,从备份后到数据库崩溃时的数据都不会丢失。
2) 可以采用全备份数据库的方式备份,对于特殊情况,也可以只备份特定的数据文件,如只备份用户表空间(一般情况下对于某些写特别频繁的数据文件,可以单独加大备份频率)3) 如果在恢复过程中,发现损坏的是多个数据文件,即可以采用一个一个数据文件的恢复方法(第5步中需要对数据文件一一脱机,第6步中需要对数据文件分别恢复),也可以采用整个数据库的恢复方法。
用Oracle归档日志进行数据库恢复的方法
select first_change# from v$log_history where sequence#=387;
其中387为最后一个有效的日志文件号加1,该例是查找386.
知道了SCN后,使用下述步骤完成恢复
1.使用命令“svrmgrl”调用行方式服务器管理;
联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复。
一、完全恢复:
1.使用命令“svrmgrl”调用行方式服务器管理;
2.输入命令“connect internal”,然后输入命令“startup mount’;
3.输入命令“recover database;”
现在开始实施恢复。
1.使用命令“svrmgrl”调用行方式服务器管理;
2.输入命令“connect internal”,然后输入命令“startup mount’;
3.输入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一个归档重演日志文件名,输入“auto”,Oracle恢复归档重演日志直到序号为387的日志,停止恢复操作。
3).基于时间的恢复(time-based recovery)
为使用基于时间的恢复,必须知道记录在V$log_history归档重演日志序号387(丢失重演日志)的时间,通过执行查询语句“select time from v$log_history where sequence#=387;”得到。本例得到的时间是:2002-06-23 14:42:04
1.参照以下内容编辑init.ora文件:
log_archive_start = true
oracle数据丢失恢复数据方法
oracle数据丢失恢复数据方法在使用Oracle数据库过程中,数据丢失是一种常见的问题。
当数据库中的数据丢失时,我们需要及时采取措施来进行数据恢复,以避免数据的长期丢失。
本文将介绍一些常用的Oracle数据丢失恢复方法,帮助我们有效地处理这个问题。
1. 数据库备份与恢复数据库备份是一种常见的防范措施,它可以帮助我们在数据丢失后快速恢复数据库。
在Oracle中,我们可以使用RMAN(Recovery Manager)工具来实现数据库备份和恢复。
RMAN可以备份整个数据库或者特定的表空间、数据文件等,同时也支持增量备份,大大减少了备份所需的时间和空间。
当数据库发生数据丢失时,我们可以使用RMAN来恢复备份的数据库文件,确保数据的完整性。
2. 闪回技术Oracle提供了闪回技术,可以帮助我们恢复数据库到某个历史时间点的状态。
通过闪回技术,我们可以将数据库中的数据、表结构等回滚到特定的时间点,从而实现数据的恢复。
闪回技术相比于传统的数据恢复方法,具有更高的效率和更少的风险。
我们可以使用闪回查询(FLASHBACK QUERY)来查看历史数据,使用闪回表(FLASHBACK TABLE)来恢复特定表的状态,使用闪回数据库(FLASHBACK DATABASE)来恢复整个数据库。
3. 日志文件恢复Oracle数据库在运行过程中会生成大量的日志文件,这些日志文件记录了数据库的操作、变更等信息。
当数据库发生数据丢失时,我们可以通过日志文件的恢复来还原数据。
在Oracle数据库中,我们可以使用归档日志文件(Archive Log)或在线重做日志文件(Online Redo Log)来进行数据恢复。
归档日志文件可以将数据库中的所有变更操作记录下来,当数据丢失时,我们可以将归档日志文件应用到数据库中,恢复数据的完整性。
同时,我们也可以使用在线重做日志文件来进行数据恢复,将重做日志文件中的操作应用到数据库中。
4. 数据库导入导出数据库导入导出是一种常见的数据恢复方法。
Oracle数据库备份和恢复培训
培训内容
逻辑备份 冷备份 热备份
Rman工具
Rman
RMAN是ORACLE提供的一个备份与恢复的工具, 可以用来备份和还原数据库文件、 归档日志和控 制文件。它也可以用来执行完全或不完全的数据 SM 、HP DP、NBU、LGTO等企业级备份软件的for oracle备份模块均采用该工具。 使用方法: 在命令行下输入 Rman target / 配臵参数: Rman>show all;
Rman
2、常用参数
数据备份: Rman>backup tablespace users; 查看备份集 Rman>List backup; 修改备份路径 configure channel device type disk format 'c:\rmanbk\%d_%s_%p_%T_%t.bkp'; d 数据库名 s 为备份集的号 P为该备份集中的备份片号,从1 开始到创建的文件数 T为年月日格式(YYYYMMDD) , t时间戳 磁带为sbt,磁盘为disk,
Rman 参数 配置.txt
Rman
RMAN 文件格式 备份文件可以自定义各种各样的格式,如下: %c 备份片的拷贝数 %d 数据库名称 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ, 其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序 列 %n 数据库名称,向右填补到最大八个字符 %u 一个八个字符的名称代表备份集与创建时间 %p 该备份集中的备份片号,从1 开始到创建的文件数 %U 一个唯一的文件名,代表%u_%p_%c %s 备份集的号 %t 备份集时间戳 %T 年月日格式(YYYYMMDD)
oracle数据库备份与恢复方法
oracle数据库备份与恢复方法
Oracle数据库备份与恢复是确保数据安全和可靠性的重要方面。
备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。
恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。
一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。
可以使用RMAN命令行或图形界
面工具来执行物理备份。
2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。
可以使用expdp和impdp命令来执
行逻辑备份和恢复。
二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。
这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。
2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。
这可以通过RMAN进行部分恢复来实现。
除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。
测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。
数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。
综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。
oracle回收站恢复表的原理
一、介绍Oracle回收站Oracle数据库在删除表或数据时,并不是立即将数据从数据库中删除,而是将其放入一个特殊的地方,这个地方就是Oracle回收站(Recycle Bin)。
回收站可以在一定程度上防止误删数据,同时也为恢复操作提供了便利。
二、恢复表的原理当我们在Oracle数据库中删除表时,实际上是将表移动到了回收站中,而不是直接删除。
这样,我们就可以通过简单的步骤将表恢复到原来的状态。
三、使用FLASHBACK TABLE语句恢复表1. 使用FLASHBACK TABLE语句可以很方便的将回收站中的表恢复到原来的状态。
这条语句的具体用法如下:```FLASHBACK TABLE 表名 TO BEFORE DROP;```2. 使用该语句之前,我们需要确认一下回收站中是否存在需要恢复的表,可以通过以下语句查询回收站中的表信息:```SELECT * FROM recyclebin;```4. 通过FLASHBACK TABLE语句,我们可以将回收站中的表还原到删除之前的状态,这样就可以避免了数据的永久丢失。
四、使用FLASHBACK DROP语句恢复表1. 另一种恢复表的方法是使用FLASHBACK DROP语句,该语句可以用来还原回收站中的对象,其具体用法如下:```FLASHBACK DROP TABLE 表名 TO BEFORE DROP;```2. 通过以上语句,我们可以将回收站中的表直接还原到删除之前的状态,同样可以避免数据的永久丢失。
五、恢复表的注意事项1. 在进行表恢复之前,我们需要充分确认需要恢复的表是否存在于回收站中,可以通过查询回收站的表信息来进行确认。
2. 在进行表恢复之前,我们需要对数据库进行备份,以避免意外情况导致数据的进一步损失。
3. 在进行表恢复操作时,需要谨慎操作,避免对其他数据产生影响。
4. 在恢复表后,需要对数据库进行一些必要的检查,以确保数据的完整性和一致性。
ORACLE数据库数据泵备份与恢复
ORACLE数据库数据泵备份与恢复EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。
IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。
⼀、expdp和impdp的使⽤1.创建⽬录create directory DBBAK as '/bak'; #DBBAK名称可以随便命名需要⼿⼯创建/bak,并且此⽬录oracle⽤户有读取写⼊权限2.查看所有⽬录select * from dba_directories;3.给test⽤户赋予在指定⽬录的操作权限,最好⽤root⽤户赋予。
grant read,write on directory DBBAK to test;4.导出数据1)按⽤户导expdp test/test@orcl schemas=test dumpfile=expdp.dmp DIRECTORY=DBBAK logfile=expdp.log2)并⾏进程parallelexpdp test/test@orcl directory=DBBAK dumpfile=expdp1.dmp parallel=10 job_name=test13)按表名导expdp test/test@orcl TABLES=table01,table02 dumpfile=expdp2.dmp DIRECTORY=DBBAK;4)按查询条件导expdp test/test@orcl directory=DBBAK dumpfile=expdp4.dmp Tables=table01 query='WHERE id=001';5)按表空间导expdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test,USERS;6)导整个数据库expdp system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5、创建表空间及⽤户create tablespace test datafile '+data/test/datafile/data01.dbf' size 32000M;alter tablespace test add datafile '+data2/test/datafile/users02.dbf' size 32000M;create user test identified by test default tablespace TEST temporary tablespace TEMP;grant connect,resource,dba to test;grant read,write on directory DBBAK to test;6、还原数据1)导到指定⽤户下impdp test1/test1@orcl DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=test logfile=impdp.log2)改变表的ownerimpdp system/system DIRECTORY=DBBAK DUMPFILE=expdp2.dmp TABLES=test.table01REMAP_SCHEMA=test1:table11;3)导⼊表空间impdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test;4)导⼊数据库impdb system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION7、查看数据是否⼀致select OBJECT_TYPE,COUNT(*) from all_objects where OWNER='TEST' group by OBJECT_TYPE;⼆、expdp详细参数可以通过 expdp help=y查看1.CONTENT 指定要导出的数据其中有效关键字为:(ALL), (默认)导出结构和数据DATA_ONLY:只导出数据METADATA_ONLY:只导出结构2.DIRECTORY 供转储⽂件和⽇志⽂件使⽤的⽬录对象3.DUMPFILE ⽬标转储⽂件 (expdat.dmp) 的列表例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d4.INCLUDE 包括特定的对象类型例如 INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"5.EXCLUDE 排除特定的对象类型与INCLUDE相反6.TABLES 标识要导出的表的列表7.SCHEMAS 要导出的⽅案的列表可⽀持多个schemas=(user01,user02,user03)8.TABLESPACES 标识要导出的表空间的列表9.ATTACH 连接到现有作业, 例如 ATTACH [=作业名]PRESSIONALL :对导出的元数据和表数据都进⾏压缩,得到的导出⽂件是最⼩的,耗时也是最长的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 数据库恢复一、停止ORACLE数据库用oracle用户登录,用sqlplus的sysdba用户登录,执行shutdown immediateoracle@JSBC-SIHUA-DB01:~> sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 6 14:02:45 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn /as sysdbaConnected.SQL> shutdown immediateSQL>quit停止监听oracle@JSBC-SIHUA-DB01:~> lsnrctl stoporacle@JSBC-SIHUA-DB01:~> ps -ef |grep oraroot 4655 4524 0 Nov11 ? 00:00:48 hald-addon-storage: polling /dev/sr0 (every 16 sec) root 42514 42162 0 11:40 pts/0 00:00:00 su - oracleoracle 42515 42514 0 11:40 pts/0 00:00:00 -bashroot 42853 42815 0 12:02 pts/2 00:00:00 su - oracleoracle 42854 42853 0 12:02 pts/2 00:00:00 -bashroot 42924 42889 0 12:03 pts/1 00:00:00 su - oracleoracle 42925 42924 0 12:03 pts/1 00:00:00 -bashoracle 42975 42854 0 12:09 pts/2 00:00:00 ps -eforacle 42976 42854 0 12:09 pts/2 00:00:00 grep ora二、数据库备份#root用户,创建sihua.bak目录JSBC-SIHUA-DB01:/oradata # mkdir sihua.bakJSBC-SIHUA-DB01:/oradata # chown oracle:dba /oradata/sihua.bakJSBC-SIHUA-DB01:/oradata # lltotal 24drwx------ 2 root root 16384 Sep 16 11:53 lost+founddrwxr-x--- 4 oracle dba 4096 Nov 8 14:16 sihuadrwxr-xr-x 2 oracle dba 4096 Nov 28 12:15 sihua.bak#oracle用户JSBC-SIHUA-DB01:/oradata # su - oracleoracle@JSBC-SIHUA-DB01:~> cd /oradataoracle@JSBC-SIHUA-DB01:/oradata> cp -r sihua sihua.bakoracle@JSBC-SIHUA-DB01:/oradata> cd sihua.bak/oracle@JSBC-SIHUA-DB01:/oradata/sihua.bak> cd sihua/oracle@JSBC-SIHUA-DB01:/oradata/sihua.bak/sihua> lltotal 2358432drwxr-x--- 2 oracle dba 4096 2011-11-28 12:17 controlfile-rw-r----- 1 oracle dba 925900800 2011-11-28 12:17 icms01.dbfdrwxr-x--- 2 oracle dba 4096 2011-11-28 12:17 redo-rw-r----- 1 oracle dba 440410112 2011-11-28 12:17 sysaux01.dbf-rw-r----- 1 oracle dba 524296192 2011-11-28 12:17 system01.dbf-rw-r----- 1 oracle dba 20979712 2011-11-28 12:17 temp01.dbf-rw-r----- 1 oracle dba 477110272 2011-11-28 12:17 undotbs01.dbf-rw-r----- 1 oracle dba 22028288 2011-11-28 12:17 urs01.dbf-rw-r----- 1 oracle dba 5251072 2011-11-28 12:17 users01.dbf#确认备份文件的大小oracle@JSBC-SIHUA-DB01:/oradata> du -sh ./*du: cannot read directory `./lost+found': Permission denied16K ./lost+found2.5G ./sihua2.5G ./sihua.bak三、数据库恢复oracle@JSBC-SIHUA-DB01:/oradata> sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on Mon Nov 28 12:22:52 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn / as sysdbaConnected to an idle instance.SQL> startup mount;ORACLE instance started.Total System Global Area 2147483648 bytesFixed Size 2022144 bytesVariable Size 603981056 bytesDatabase Buffers 1526726656 bytesRedo Buffers 14753792 bytesDatabase mounted.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining optionsoracle@JSBC-SIHUA-DB01:/oradata> rmanRecovery Manager: Release 10.2.0.1.0 - Production on Mon Nov 28 12:25:30 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.RMAN> connect catalog rman/rman@sihua2connected to recovery catalog databaseRMAN> connect target /connected to target database: SIHUA (DBID=2229474680, not open)RMAN> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';sql statement: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"RMAN> set until time = '2011-11-28 10:30:00';RMAN-00571: ========================================================== RMAN-00569: ============= ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ========================================================== RMAN-03031: this option of set command needs to be used inside a run blockRMAN> run {sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';set until time = '2011-11-28 10:30:00';restore database;recover database;}2> 3> 4> 5> 6> ;sql statement: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"executing command: SET until clauseStarting restore at 28-NOV-11allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=428 devtype=DISKchannel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00001 to /oradata/sihua/system01.dbfrestoring datafile 00005 to /oradata/sihua/urs01.dbfchannel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111127/level0_SIHUA_20111127_444_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111127/level0_SIHUA_20111127_444_1.bak tag=LEVEL0 channel ORA_DISK_1: restore complete, elapsed time: 00:00:04channel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00002 to /oradata/sihua/undotbs01.dbfrestoring datafile 00003 to /oradata/sihua/sysaux01.dbfchannel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111127/level0_SIHUA_20111127_445_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111127/level0_SIHUA_20111127_445_1.bak tag=LEVEL0 channel ORA_DISK_1: restore complete, elapsed time: 00:00:04channel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00004 to /oradata/sihua/users01.dbfrestoring datafile 00006 to /oradata/sihua/icms01.dbfchannel ORA_DISK_1:channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111127/level0_SIHUA_20111127_443_1.bak tag=LEVEL0 channel ORA_DISK_1: restore complete, elapsed time: 00:00:08Finished restore at 28-NOV-11Starting recover at 28-NOV-11using channel ORA_DISK_1channel ORA_DISK_1: starting incremental datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setdestination for restore of datafile 00001: /oradata/sihua/system01.dbfdestination for restore of datafile 00005: /oradata/sihua/urs01.dbfchannel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111128/level1_SIHUA_20111128_450_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111128/level1_SIHUA_20111128_450_1.bak tag=LEVEL1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:02channel ORA_DISK_1: starting incremental datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setdestination for restore of datafile 00002: /oradata/sihua/undotbs01.dbfdestination for restore of datafile 00003: /oradata/sihua/sysaux01.dbfchannel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111128/level1_SIHUA_20111128_451_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111128/level1_SIHUA_20111128_451_1.bak tag=LEVEL1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:02channel ORA_DISK_1: starting incremental datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setdestination for restore of datafile 00004: /oradata/sihua/users01.dbfdestination for restore of datafile 00006: /oradata/sihua/icms01.dbfchannel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111128/level1_SIHUA_20111128_449_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111128/level1_SIHUA_20111128_449_1.bak tag=LEVEL1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03starting media recoverychannel ORA_DISK_1: starting archive log restore to default destinationchannel ORA_DISK_1: restoring archive logarchive log thread=1 sequence=566channel ORA_DISK_1: restoring archive logarchive log thread=1 sequence=567channel ORA_DISK_1:channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111128/arc_SIHUA_20111128_454_1.bak tag=TAG20111128T021512 channel ORA_DISK_1: restore complete, elapsed time: 00:00:02archive log filename=/orabak/sihua/arclogs/1_566_762001210.log thread=1 sequence=566 archive log filename=/orabak/sihua/arclogs/1_567_762001210.log thread=1 sequence=567 channel ORA_DISK_1: starting archive log restore to default destinationchannel ORA_DISK_1: restoring archive logarchive log thread=1 sequence=568channel ORA_DISK_1:reading from backup piece /orabak/DB_Backup/111128/arc_SIHUA_20111128_460_1.bak channel ORA_DISK_1: restored backup piece 1piece handle=/orabak/DB_Backup/111128/arc_SIHUA_20111128_460_1.bak tag=TAG20111128T115248 channel ORA_DISK_1: restore complete, elapsed time: 00:00:02archive log filename=/orabak/sihua/arclogs/1_568_762001210.log thread=1 sequence=568 media recovery complete, elapsed time: 00:00:04Finished recover at 28-NOV-11RMAN-00571: ========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ============= RMAN-00571: ========================================================== RMAN-00558: error encountered while parsing input commandsRMAN-01009: syntax error: found ";": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, change, connect, copy, convert, create, crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, flashback, host, {, library, list, mount, open, print, quit, recover, register, release, replace, report, renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, switch, spool, startup, shutdown, send, show, test, transport, upgrade, unregister, validate"RMAN-01007: at line 0 column 2 file: standard inputRMAN> alter database open resetlogs;database openednew incarnation of database registered in recovery catalogstarting full resync of recovery catalogfull resync completeRMAN>exitoracle@JSBC-SIHUA-DB01:~> lsnrctl start。