oracle 10g数据库备份与还原总结
- 格式:doc
- 大小:34.00 KB
- 文档页数:4
Oracle数据库10g备份和恢复:RMAN和闪回技术Oracle 白皮书2004 年 6 月发展和革命 (3)恢复管理器 (3)快速恢复区 (4)自动存储管理 (6)更改跟踪文件 (6)增量更新备份 (7)Oracle 建议的策略 (7)备份管理 (9)跨平台的传输 (10)革命还未结束 (11)RMAN 比对用户管理的恢复 (11)网格集群 (13)人为错误的挑战 (13)人为错误纠正—闪回技术 (13)人为错误的传统恢复 (14)恢复时间目标 (14)何时使用闪回与传统恢复的对比 (14)闪回数据库 (15)闪回表 (17)闪回删除 (18)什么是回收站? (18)闪回查询 (18)闪回版本查询 (20)闪回事务查询 (20)实例 (21)结论 (22)发展和革命数据库备份可能是防止 Oracle 数据库发生介质故障的唯一方式。
使用提供给 DBA 的大量工具和方法来恢复关键数据的重要性是毋庸置疑的。
保护 Oracle 数据的成本和复杂性包括,从简单的每周备份到磁带,到记录更加繁复的文件快照或备用数据库。
Oracle Data Guard1.的体系结构有助于企业恢复对 Oracle 数据库造成不利影响的灾难、人为错误和损坏。
每个工具和选项都有其自己的持续可用性优势,并且可以快速备份和/或恢复 Oracle 数据库。
为了保护和恢复数据所采纳的方法或工具应该具有:可靠性。
所有需要恢复的文件都进行了备份,且通过恢复操作能够方便地恢复文件。
灵活性。
Oracle 数据库可以在数据库、表空间、数据文件和块级上备份或恢复。
可管理性组织和管理备份文件以便用于恢复操作。
可用性。
备份操作不应该干扰数据库事务处理过程同时恢复操作应该快速、有效。
Oracle 恢复管理器通过新的版本和 Oracle 数据库 10g 包含的革命性技术进步继续得以完善,并提供您一直期待的简单、可靠和自动的恢复工具。
此白皮书列出了 Oracle 数据库 10g 用于备份和恢复文件管理的新功能,增强的增量备份和异构平台上相同表空间数据的共享。
Oracle数据库-备份整个数据库与还原整个数据库数据这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的先说本地的导出与导入:备份(也叫导出):exp 用户名/密码@本地服务名 file=目标地址举例: exp sys/sys@orcl file=C:\Users\Administrator\Desktop注:1、@orcl一般本地库的没动的话都叫这个2、C:\Users\Administrator\Desktop是本地桌面地址3、导出的文件是在硬盘上生成后缀名为dmp的文件还原【导入】:imp 用户名/密码@本地服务名 file=文件的位置 ignore=y举例:imp sys/sys@orcl file=C:\Users\Administrator\Desktop\某.dmp full=y ignore=y注:1、ignore=y的作用是忽视一些不必要的错误如果不加的话有时候会报:ORACLE 这些对象由 XXXX 导出, 而不是当前用户2、有时候会提示IMP-00031:必须指定 FULL=Y 或提供 .....(记不清了)这时候需要 ignore=y 改为 full=y 就可以了(在这里向评论区的那位同志道歉我之前没遇见过这个问题,抱歉)3、(2020年10月26日12:08:26改)full=y是导入全部文件的含义有本地的当然有远程的导出与导入:备份【导出】:exp 用户名/密码@网络服务名 file=目标地址还原【导入】:imp 用户名/密码@网络服务名 file=文件位置 ignore=y注意:如果从A用户导出,然后导入B用户,则需要加上 fromuser=A touser=B举例:imp 用户名/密码@网络服务名 file=文件位置 ignore=y fromuser=A touser=B如果你发现导入数据报错,请往下看oracle 导入DMP文件时IMP-00013: 只有DBA 才能导入由其他 DBA 导出的文件 IMP-00000: 未成功终止导入报这个错误主要是一个DBA用户权限问题,导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限而已,我们需要给要导入的用户加上DBA权限按照网上的其他教程用同一个用户给同一个用户权限.... 对不起我在想,要是他没有权限是怎么给同一用户赋予权限的首先在DOS窗口,执行sqlplus然后会让你输入用户名,你可以输入用system或者sys用户赋予登录密码就是管理口令然后就会碰见如下就如上图一样,挨个执行grant dba to usernam注:2这里直接敲回车grant dba to 用户名;即可-全文完-。
Oracle10g数据库备份与恢复操作⼿册Oracle 10g数据库备份与恢复操作⼿册⽬录Oracle 10g数据库备份与恢复操作⼿册 (1)前⾔ (5)⽂档⽬的 (5)⽂档范围 (5)⽬标读者 (5)其他说明 (5)1冷备份 (6)1.1冷备份概述 (6)1.2备份步骤 (6)1.3恢复测试 (6)1.4结论 (7)2热备份 (7)2.1热备份特点 (7)2.2备份操作 (7)2.2.1数据⽂件备份 (8)2.2.2在线备份控制⽂件 (9)3热备份下的完全恢复 (9)3.1⾮ system表空间数据⽂件受损 (9)3.2 system表空间数据⽂件或⼤量数据⽂件受损 (10)3.3回滚数据⽂件损坏恢复 (11)3.4临时表空间⽂件损坏的恢复 (11)3.5控制⽂件损坏的恢复 (12)3.5.1单个控制⽂件被破坏 (12)3.5.2所有控制⽂件被破坏 (12)3.6⽇志⽂件损坏的恢复 (13)3.6.1正常关机情况下⾮当前联机⽇志⽂件被破坏 (13)3.6.2正常关机情况下当前联机⽇志损坏 (14)3.6.3数据库运⾏时或⾮正常关机情况下已归档⽇志 active⽇志⽂件被破坏 (15)3.6.4有备份的情况下数据库运⾏时或⾮正常关机情况下未归档active或 current⽇志⽂件被破坏173.6.5⽆备份的情况下数据库运⾏时或⾮正常关机情况下未归档active或 current⽇志⽂件被破坏194恢复不完全恢复 (20)4.1时间的恢复 (20)4.1.1概述 (20)4.1.2操作步骤 (21)4.2基于SCN的恢复 (22)4.2.1概述 (22)4.2.1操作步骤 (22)5 RMAN备份与恢复 (23)5.1 RMAN概述 (23)5.2 RMAN服务器和⽬标服务器的配置 (24)5.3 RMAN配置 (25)5.4备份集操作 (26)5.5 RMAN备份与恢复 (26)5.5.1全库备份与恢复 (26)5.5.2表空间备份与恢复 (27)5.5.3表空间备份与恢复 (28)5.5.4控制⽂件备份与恢复 (28)5.5.5归档⽂件备份与恢复 (29)5.5.6 RMAN脚本 (29)5.5.7 RMAN增量备份与恢复 (30)6逻辑备份(export/import) (31)6.1概述 (31)6.2简单导出、导⼊数据 (31)6.2.1简单导出 (31)6.2.2简单导⼊ (32)6.3增量导出导⼊ (32)6.3.1增量导出 (32)6.3.2导⼊ (33)7 Flashback. 337.1概述 (33)7.2 Flashback配置步骤 (33)7.3⾏级闪回操作步骤 (35)7.4表级闪回操作步骤 (36)7.5库级闪回操作步骤 (38)8 LogMiner.. 398.1概述 (39)8.2系统配置 (39)8.3操作步骤 (40)⽬录前⾔⽂档⽬的 备份与恢复是数据库管理中最重要的⽅⾯之⼀。
Oracle数据库备份与恢复之完全攻略一、导出/导入(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/managerinctype=complete file=040731.dmp。
(2)“增量型”增量导出备份上一次备份后改变的数据,比如:exp system/managerinctype=incremental file=040731.dmp。
(3)“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。
比如:exp system/manager inctype=cumulative file=040731.dmp。
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
比如数据库的被封任务可以做如下安排:星期一:完全备份(A) 星期二:增量导出(B) 星期三:增量导出(C)星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F)星期日:增量导出(G)。
oracle数据库备份与还原方法一、Oracle数据库备份方法。
1.1 冷备份。
冷备份是在数据库关闭状态下进行的备份。
这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。
你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。
这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。
不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。
1.2 热备份。
热备份可就不一样啦,它是在数据库运行的时候进行备份的。
这就像是给一个正在跑步的人换鞋子,难度不小。
热备份主要是利用归档模式,对表空间或者数据文件进行备份。
这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。
但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。
1.3 逻辑备份。
逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。
这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。
它可以备份特定的表、用户或者整个数据库。
这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。
但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。
二、Oracle数据库还原方法。
2.1 冷备份还原。
如果是冷备份还原,那就简单多啦。
首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。
不过要注意文件的权限和路径,可不能张冠李戴。
一切就绪后,再启动数据库,就大功告成了。
这就像把修好的东西重新启动,又能正常工作了。
2.2 热备份还原。
热备份还原就复杂得多了。
首先要根据备份的情况,确定需要还原的表空间或者数据文件。
然后利用归档日志和备份文件进行恢复。
这过程就像走钢丝,得小心翼翼的。
Oracle 10g系统备份恢复方案一、备份策略为了保证系统在出现故障时快速恢复,我们的备份策略包括两个部分,逻辑备份,物理备份。
1 .1物理备份数据库按归档方式运行归档方式和非归档方式运行方式优点和缺点比较:1.归档方式:●优点●可以执行联机备份,保证数据库7*24不间断运行●宕机时,能够实现数据的完全恢复●缺点●在检查点发生之后,重做日志归档完成之前,重做日志不能重新使用●需足够的空间资源来保存归档重做日志文件2.非归档方式:●优点●重做日志文件可在检查点发生之后立即重新使用●简化管理,节省空间●缺点●无法执行联机备份●宕机时,会丢失上一次完全备份之后的所有数据一般从系统考虑采用归档方式更为合适,可以在线备份,一旦系统出现问题时,可以恢复到故障以前的任何时间点。
保证系统出现故障时能够回滚恢复。
1.1.1物理备份实现归档方式的配置:●关闭数据库,对数据库进行备份。
●修改初试化参数,使能自动存档修改(添加)初始化文件init[SID].ora参数:log_archive_start=true #启动自动归档log_archive_format=ARC%T%S.arc #归档文件格式log_archive_dest=/arch12/arch #归档路径●启动数据库到MOUNT状态下,使用如下语句alter database archivelog; 然后打开数据库:alter database open;RMAN备份脚本说明run{allocate channel c1 type 'sbt_tape'parms = 'SBT_LIBRARY=/ca/BABoraagt/libobk.so.2.64_5';allocate channel c2 type 'sbt_tape'parms = 'SBT_LIBRARY=/ca/BABoraagt/libobk.so.2.64_5';sql 'alter system archive log current';backup archivelog all format 'log_%s_%t_%p' delete input;release channel c1;release channel c2;}该脚本是数据库的归档日志备份脚本。
Oracle10g RMAN之nocatalog备份与还原1.做RMAN备份的准备工作。
1Oracle10G的RMAN备份机制一共有三种方式,第一种:将Target Database(主数据库)备份到Auxiliary database(从数据库)。
第二种:将Target Database(主数据库)备份到catalog database(备份数据库)。
第三种:就是本文将要提到的nocatalog方式备份。
Nocatalog方式备份,就是将Targetdatabase控制信息保存在controlfile中,然后将物理备份文件存放到DISK (磁盘空间)或者SBT TAPE(磁带空间)中。
2.这里讲一下oracle 10g中关于数据备份,都需要备份些什么东西。
图上半部分可以不用看,下半部分除了口令文件以及重做日志文件以外,(口令文件可以在数据库中添加所以不用备份,重做日志文件不能被备份所以不用备份。
)其他包括数据库的参数文件,数据文件,控制文件,归档日志文件等这些内容都是需要备份的,以便将来可以恢复。
3我们打开Oracle 10G的web控制台,就可以在他的管理页面中看到他的控制文件,表空间文件,数据文件,以及归档日志文件。
45这个是控制文件。
67这个是表空间文件89这些是数据文件。
10这些是归档日志文件。
11进入SQLPLUS 。
在dos命令行中输入SQLPLUS /NOLOG。
12输入conn /as sysdba连接数据库。
13输入archive log list检查数据库状态。
如果数据库日志模式为非存档模式,这样的状态是不能够做rman备份的,因为归档日志不生效。
14输入show parameter db_recovery。
检查备份文件保存大小以及备份文件存放路径。
15输入Shutdown immediate,强制停止数据库以及oracle例程。
16输入connect /as sysdba,重新连接空闲例程。
Oracle10g RAC数据库备份与恢复王森波2009-9-24目录一、Oracle数据库的在线备份方式 (3)二、Oracle 10g RAC备份 (3)三、Oracle RAC数据库恢复 (4)3.1 Oracle controlefile恢复 (5)3.2 Oracle database 恢复 (5)一、Oracle数据库的在线备份方式NetBackup for Oracle Agent是对Oracle数据库进行在线备份的功能模块,Oracle数据库是通过Oracle Recovery Manager(RMAN)工具来进行在线备份的。
RMAN的在线备份有两种方式:Catalog和Nocatalog:1、Catalog方式备份,是要建立一个Oracle Recovery Catalog库来专门存放Oracle数据库的备份信息,如下图:2、Nocatalog方式备份,是不为数据库备份建立一个专门存放备份信息的Oracle Recovery Catalog库,而是通过Copy Oracle Controlfile的方式来保存备份信息。
广州市公安局八大库数据平台SUN F6900下的Oracle 10G RAC备份因条件所限,做Nocatalog方式进行在线备份,数据库备份完成后同时Capy 一份Oracle Controlfile到硬盘,然后再把Controlfile备份到磁带库中。
二、Oracle 10g RAC备份Oracle RAC是运行的是同一个Database,因此备份时任一部机器上进行就可,Archivelog分别保存在Oracle RAC的每一台机器上,备份时可按如下备份方式进行备份:ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' connect 'sys/oracle@boss1'; 注:备份or10g1产生的日志ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' connect 'sys/oracle@boss 2'; 注:备份or10g2产生的日志如下是Oracle RAC数据库通过NetBackup for Oracle Agent进行备份脚本:$RMAN target / nocatalog msglog $RMAN_LOG_FILE append << EOF 注:RUN {ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'; 注: 分配通道,连接NBUALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE'; 注: 分配通道,连接NBUBACKUP 注: 备份$BACKUP_TYPESKIP INACCESSIBLETAG hot_db_bk_level0FILESPERSET 30 database备份格式定义# recommended formatFORMAT 'bk_%s_%p_%t'DATABASE; 注: 备份databasesql 'alter system archive log current'; 注: 对数据库进行归档RELEASE CHANNEL ch00; 注: 释放通道RELEASE CHANNEL ch01;# backup all archive logsALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' connect 'sys/oracle@boss1'; 注:备份or10g1产生的日志ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' connect 'sys/oracle@boss2'; 注:备份or10g2产生的日志BACKUPskip inaccessiblefilesperset 50 archivelog备份格式定义FORMAT 'al_%s_%p_%t'ARCHIVELOG ALL DELETE INPUT; 注: archivelog备份完成后删除RELEASE CHANNEL ch00;RELEASE CHANNEL ch01;allocate channel d1 type disk; 注: 分配通道给本地硬盘copy current controlfile to '/usr/openv/controlfile/ora_ctl.ctl'; 注:把控制文件copy到release channel d1; /usr/openv/controlfile目录下ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';BACKUP# recommended formatFORMAT 'cntrl_%s_%p_%t'CURRENT CONTROLFILE;RELEASE CHANNEL ch00;}/usr/openv/netbackup/bin/bpbackup –p boss_ora_ctl_backup /usr/openv/controlfile/ora_ctl.ctl 注:把控制文件备份到磁带上三、Oracle RAC数据库恢复Oracle10g RAC数据库恢复和备份一样,可在任一节点上恢复.我们在此于在sx-db-1节点上做数据库的恢复为例.Oracle10g RAC数据库恢复分为二部分:controlfile恢复、database 恢复功能。
造成数据损失的主要因素备份和恢复的定义物理备份逻辑备份备份手段如下:恢复分类恢复方法分类举例:备份的分类导入和导出实现方式:使用数据泵技术使用数据泵如果不是直接导出到远程数据库中,则需要首先创建目录对象在目录对象创建完成之后授权完之后就可以针对该目录的导入导出操作了。
要查看目录对象要启动一个数据泵的导出过程,可以通过运行expdp程序。
expdp能够按照几种方式进行:注意:由数据泵导出程序所创建的文件称为转储文件,而且在单个数据泵导出作业期间可能会创建一个或多个转储文件。
基于命令行的数据泵导出数据库导出方式主要参数:用户模式导出方式表导出方式主要参数:表空间导出方式使用PLSQL的DBMS_DATAPUMP进行数据泵导出视频演示使用数据泵导入数据基于命令行的数据泵导入注意:(划红线部分)该导出文件集不一定是以全数据库方式进行导出的。
对于所有的导入模式导入源既可以是一个数据泵导出文件集,也可以是一个替代导出文件集的有效数据库。
使用impdp主要的参数:使用PLSQL的DBMS_DATAPUMP进行数据泵导入视频演示使用EXP/IMP操作系统工具如何使用EXP主要参数:如何使用imp数据泵expdp/impdp与传统工具exp/imp比较使用PLSQL工具进行数据的导入/导出视频演示物理备份冷备份冷备份中必须拷贝的文件包括:冷备份的基本步骤热备份热备份要备份的文件热备份的优点热备份的缺点总结:。
Oracle 10g数据备份还原取数一、Oracle 10g 的安装1、Oracle 10g服务端的安装Oracle 10g需要安装两块内容:服务端(database)、客户端(client)我们首先安装一下服务端(database)如下图:>>首先我们打开database这个文件夹,选择setup.exe,双击打开,进入安装程序界面,选择基础安装。
>>oracle主目录位置、全局数据库名、数据库口令、确认口令输入一下。
>>为了您以后更加方便咨询鼎信诺售后问题,数据库口令请您设置成“orcl”。
>>填写完以后点击“下一步”,如下图:>>之后确认各项检查的状态为“成功”,如果没有显示成功,请在状态前面的复选框中打钩,点击“下一步”,如下图:>>点击“安装”按钮>>注意显示安装进度,不要停止安装,或者关闭安装窗口,如下图:>>安装组件,也不要停止安装,或者关闭安装窗口,如下图:如果安装过程中,出现360或者其他防火墙的阻止提示,请查看文件路径,如果路径中有oracle字样,请允许程序的所有操作,或者加入白名单,如下图:>>在选择安装方法时,选择了创建启动数据库,>>安装完组件以后,会自动创建数据库,下图显示的是数据库安装进度:>>数据库创建成功以后,oracle的服务端便安装成功。
>>点击“退出”按钮,如下图:2、Oracle 10g客户端安装安装完oracle服务端,我们接着来安装oracle客户端。
找到安装程序包中的client文件夹,双击进入该文件夹。
如下图:>>在client文件夹中,找到setup.exe文件,双击打开该文件,如下图:>>进入oracle客户端(client)安装界面>>点击“下一步”按钮,如下图:>>点击“下一步”按钮,如下图:>>点击“下一步”按钮,如下图:>>点击“下一步”如下图:>>点击“安装”按钮,如下图:>>显示安装进度,不要停止安装,或者关闭安装窗口,如下图:>>安装组件,不要停止安装,或者关闭安装窗口,如下图:>>组件安装完成,进入oracle net配置界面>>在执行典型配置前打勾>>点击“下一步”按钮,如下图:>>点击“下一步”按钮,如下图:>>提示oracle net 配置完毕,点击“完成”按钮,如下图:>>提示安装结束,oracle client安装结束。
oracle10g使用RMAN和flash_recovery_area进行自动备份恢复oracle 10g使用RMAN和flash_recovery_area进行自动备份恢复文章分类:数据库本文摘自互联网,经过自己实际检测应用,并做了详细修改。
1.配置控制文件自动备份从9i开始,可以用rman来配置控制文件的自动备份,默认备份到$ORACLE_HOME/dbs目录下,如果是10g且使用了闪回区(flash_recovery_area),则备份到闪回区。
使用rman配置控制文件自动备份,前提是一定要设置数据库为归档模式,否则不生效。
1.1环境用下面的命令查看SQL> select * from v$version;SQL> archive log listSQL> show parameter recovery;NAME TYPE VALUE------------------------------------ -----------------------------------------db_recovery_file_dest string /oracle10/flash_reco very_area db_recovery_file_dest_size big integer 1048Mrecovery_parallelism integer 01.2配置控制文件自动备份$ rman target /RMAN> configure controlfile autobackup on;old RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP OFF;new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters are successfully stored RMAN>RMAN> show controlfile autobackup;RMAN configuration parameters are:CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN>1.3 测试1.3.1 创建1个新的表空间(在数据库结构发生变化时,就会自动备份控制文件)$ sqlplus / as sysdbaSQL> create tablespace tbs_test datafile'/oracle10/oradata/ora10g/tbs_test_01.dbf' size 10M;Tablespace created.1.3.2观察alert_ora10g ($ORACLE_BASE/admin/$ORACLE_SID/bdump)日志文件,发现发生了控制文件的自动备份Tue Jan 8 20:52:15 2008create tablespace tbs_test datafile'/oracle10/oradata/ora10g/tbs_test_01.dbf' size 10MTue Jan 8 20:52:19 2008Starting control autobackupControl autobackup written to DISK devicehandle'/oracle10/flash_recovery_area/ORA10G/autobackup/2008_ 01_08/o1_mf_s_6 43495940_3r6wj9j1_.bkp'Completed: create tablespace tbs_test datafile'/oracle10/oradata/ora10g/tbs_test_01.dbf' size 10MPS:其实控制文件和spfile同时被自动备份了1.3.3观察闪回区的文件cd[oracle10@seagull ~]$ cd/oracle10/flash_recovery_area/ORA10G/autobackup/2008_0 1_08/[oracle10@seagull 2008_01_08]$ ls -ltotal 6988-rw-r----- 1 oracle10 oinstall 7143424 Jan 8 20:52o1_mf_s_643495940_3r6wj9j1_.bkp1.4恢复控制文件和spfile1.4.1恢复控制文件到一个临时目录下RMAN> restore controlfile to '/tmp/control01.ctl' from autobackup; 文件默认从最近的一个备份进行回复,可以把生成的文件copy到原始的控制文件存放目录/$ORACLE_BASE/product/oradata/[instance]/control01.ctlPS:如果数据库没有mount,则此操作会报错,可以采用set dbid 命令或者恢复时指定自动备份集(restore controlfile to 'xx' from 'xxxx')。
oracle数据库备份与恢复方法
Oracle数据库备份与恢复是确保数据安全和可靠性的重要方面。
备份是指将数据库中的数据复制到另一个位置,以便在数据丢失或
损坏时进行恢复。
恢复则是指在发生故障或数据丢失时,通过备份
数据来恢复数据库到之前的状态。
一、备份方法:
1. 物理备份,物理备份是通过操作系统级别的工具(如RMAN)将数据库文件直接复制到备份位置。
可以使用RMAN命令行或图形界
面工具来执行物理备份。
2. 逻辑备份,逻辑备份是通过导出数据到逻辑文件(如SQL脚
本或数据泵文件)来进行备份。
可以使用expdp和impdp命令来执
行逻辑备份和恢复。
二、恢复方法:
1. 完全恢复,在数据库严重损坏或丢失时,可以使用完全备份
进行完全恢复。
这涉及将数据库恢复到备份时的状态,并应用任何
后续的归档日志以实现完整的恢复。
2. 不完全恢复,在某些情况下,可能只需恢复部分数据文件或表空间。
这可以通过RMAN进行部分恢复来实现。
除了上述备份和恢复方法外,还有一些其他注意事项和最佳实践:
定期备份,建立合理的备份策略,包括完整备份、增量备份和归档日志备份,以确保数据的及时备份和恢复。
测试恢复,定期测试备份和恢复过程,以确保备份数据的完整性和可用性。
数据库保护,使用冗余服务器、存储冗余和灾难恢复计划来保护数据库免受硬件故障、自然灾害和人为错误的影响。
综上所述,Oracle数据库备份与恢复是确保数据安全和可靠性的重要措施,通过合理的备份策略和恢复方法,可以最大程度地保护数据库免受数据丢失和损坏的影响。
三.归档模式. 可以防止数据丢失. 数据处于OPEN状态时可以进行备份. 当出现介质失败时,除了SYSTEM表空间中的数据文件外其他的都可以在open状态下恢复. 可执行完全恢复,也可以恢复到备份点与失败点之间的某时刻1.备份1)冷备份shutdown后拷贝所需数据文件和控制文件2)热备份@将数据库设置为归档模式@在数据库上发出全局检查点,在所有的数据文件头块上加锁sql>alter database begin backup ;@备份数据文件及控制文件数据文件直接拷贝至其他目录控制文件需使用alter database backup controlfilesql>alter database backup controlfile to 'd:\backup\demo.ctl'; @结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组sql>alter database end backup;sql>alter system archive log cuurent;3)备份表空间*脱机备份(表空间处于OFFLINE状态,SYSTEM表空间和正在使用的UNDO空间不能脱机)@确定表空间包涵的数据文件,如空间USERSsql>select file_name from dba_data_fileswhere tablespace_name = 'users';@设置表空间为脱机状态sql>alter tablespace users offline;@复制数据文件@设置表空间联机sql>alter tablespace users online;*联机备份@确定对应关系@设置表空间为备份模式sql>alter tablespace users begin backup ;@复制数据文件@设置表空间为正常模式sql>alter tablespace users end backup ;*处理联机备份失败当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍处于备份状态,则会出错,此时需要结束备份@装载数据库sql>startup force mount@查看处于联机备份状态的所有数据文件sql>select file# from v$backup where status = 'active';@结束联机备份状态sql>alter tablespace end backup或alter tablespace datafile backup;或recover datafile 序号@打开数据库sql>alter database open;2.还原1)完全恢复相关命令:recover database :恢复数据库的多个数据文件(在MOUNT状态下运行) recover tadaspace :恢复多个表空间的所有数据文件(在open状态下运行)recover datafile :恢复一个或多个数据文件(在mount,open状态下都可) *在mount状态下恢复数据文件(用于SYSTEM表空间恢复)@装载数据库 mount状态@确定需要恢复的数据文件sql>select file#,error from v$recover_file@拷贝备份至原位置@恢复数据库 recover..上述命令@打开数据库 alter database open;*在open状态下恢复关闭后意外对视的数据文件,此时数据库将无法打开@装载数据库 mount@确定需要恢复的数据文件@使相应的数据文件脱机sql>alter database datafile 4 offline;@打开数据库sql>alter database open@复制数据备份文件@恢复数据文件@是数据文件联机 alter database datafile 4 online;*在open状态下恢复打开时意外丢失的数据文件@确定要恢复的数据文件@使数据文件脱机@复制数据文件@恢复相应的表空间或数据文件@使相应的表空间或数据文件联机*在open状态下恢复未备份的数据文件(要求在归档模式下,新建数据文件,其从简历开始的所有归档日志必须全部存在)@装载数据库@确定要恢复的数据文件@是数据文件脱机@打开数据库@重新建立数据文件sql>alter database create datafile 'd:\demo\users01.dbf'; @恢复数据文件@使数据文件联机2)不完全恢复使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点之间某个时刻的状态*恢复分类基于时间的恢复:误删除表,误截断表,提交了错误的数据基于取笑恢复:恢复到某个日志序列号之前的状态基于SCN的恢复:恢复到特定SCN值的状态基于备份控制文件恢复:表空间被意外删除,或所有控制文件全部损坏 *不完全恢复指令recover database until timerecover database until changerecover database until cancelrecover database .. using backup controlfile*基于时间的恢复@关闭数据库(为防止备份失败,应备份当前数据库所有文件@装载数据库 startup mount@复制所有备份数据文件,并确定备份文件的时间点sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)from v$recover_file;@执行recover database until timesql>recover database until time "2006-09-26 16:40:33'@以resetlogs方式打开数据库,并检查恢复结果sql>alter database open resetlogs;@备份数据库所有数据文件和控制文件,因为当以resetlogs方式打开数据库后会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1sql>select name from v$datafile;sql>alter database begin backup;拷贝数据文件sql>alter database end backup;sql>alter database backup controlfileto 'd:\backup\demo.ctl' reuse;sql>alter system archive log cuurent;*基于SCN恢复@关闭数据库@装载数据库 mount@复制所有备份数据文件,确定备份文件SCN值sql>select file#,change#, from v$recover_file;@执行recover database until changesql>recover database until change 675978;@以resetlogs方式打开数据库@备份数据库所有数据文件和控制文件*基于取消恢复@关闭数据库@装载数据库@复制所有备份的数据文件,确定备份文件的SCN值sql>select file#,change# from v$recover_file;@执行recover database until canclesql>recover database until cancel@以resetlogs方式打开数据库@备份所有数据文件和控制文件*基于备份控制文件的恢复@通过查看alert文件,确定误操作时间@关闭数据库@复制所有备份的数据文件,控制文件@装载数据库@执行recover database ing backup controlfilesql>recover database until time '2004-09-26 19:51:06' using backup controlfile@以resetlogs 方式打开数据库@备份所有数据文件和控制文件。
采用exp备份快速恢复数据库一、本文编写目的在Oracle10g数据库出现异常,无法启动时,根据exp备份,快速恢复数据库至exp备份时刻的状态。
主要步骤包括清空数据库、建库、起监听、建用户、imp恢复、用户授权信息补充。
二、恢复需要准备的脚本1.建库脚本:crdb10g.sh 、oratool.sql2.建用户脚本:zxindb.sql 、Create_zxdbm_870.sql、Create_User.sql3.Exp备份的文件:/zxinbak下的zxindb1.dmp、zxindb1.dmp.log备注:/zxinbak一般在/zxindata下,也可能跟/zxindata同级。
4.用户授权信息补充:grand_ user.sql三、清空数据库此处指清空数据库至裸状态,不是卸载oracle。
删除的内容主要包括:删除/zxindata目录下除/zxinbak以外的数据库文件,主要是控制文件、日志文件、数据文件。
只需要删除文件,不需要删除目录。
◆注意/zxinbak目录下的zxindb1.dmp、和zxindb1.dmp.log文件绝对不可以删除。
删除监听配置文件listener.ora、tnsnames.ora,目录$ORACLE_HOME/network/admin具体操作参考如下:【oracle用户】【1】备份oracle@linux:~>cd /oracle@linux:/>tar –cvf zxindata0128.tar /zxindata【注意】/zxindata/zxinbak目录下的文件不能删除oracle@linux:~> cd /zxindata/oracle@linux:/zxindata> lltotal 0drwxr-xr-x 2 oracle dba 48 Jan 28 09:35 datadrwxr-xr-x 5 oracle dba 120 Jan 27 18:04 oracledrwxr-xr-x 2 oracle dba 80 Jan 28 09:34 zxin_file0drwxr-xr-x 2 oracle dba 120 Jan 28 09:41 zxin_file1drwxr-xr-x 2 oracle dba 80 Jan 28 09:37 zxin_file2drwxr-xr-x 2 oracle dba 80 Jan 28 09:35 zxin_indexdrwxr-xr-x 2 oracle dba 80 Jan 28 09:35 zxin_tempdrwxr-xr-x 2 oracle dba 112 Jan 28 14:11 zxinbak【2】删除oracle/control中的文件oracle@linux:/zxindata/oracle/control> lltotal 26378-rw-r----- 1 oracle dba 8994816 Jan 28 14:15 control01.ctl-rw-r----- 1 oracle dba 8994816 Jan 28 14:15 control02.ctl-rw-r----- 1 oracle dba 8994816 Jan 28 14:15 control03.ctloracle@linux:~> rm /zxindata/oracle/control/control0*【3】删除oracle/redolog中的文件oracle@linux:/zxindata/oracle/redolog> lltotal 768762-rw-r----- 1 oracle dba 262144512 Jan 28 09:28 redo01.dbf-rw-r----- 1 oracle dba 262144512 Jan 28 14:16 redo02.dbf-rw-r----- 1 oracle dba 262144512 Jan 28 09:23 redo03.dbforacle@linux:~> rm /zxindata/oracle/ redolog/redo*【4】删除oracle/system中的文件oracle@linux:/zxindata/oracle/system> lltotal 3674632-rw-r----- 1 oracle dba 536879104 Jan 28 14:05 sysaux.dbf-rw-r----- 1 oracle dba 536879104 Jan 28 14:16 system.dbf-rw-r----- 1 oracle dba 536879104 Jan 28 09:30 temp.dbf-rw-r----- 1 oracle dba 2147491840 Jan 28 14:17 undo.dbf-rw-r----- 1 oracle dba 536879104 Jan 28 09:33 users.dbforacle@linux:~> rm /zxindata/oracle /system/*.dbf【5】删除zxin_file0中的文件oracle@linux:/zxindata/zxin_file0> lltotal 1640008-rw-r----- 1 oracle dba 1677729792 Jan 28 14:07 zxin_data.dbf oracle@linux:/zxindata/zxin_file0> rm zxin_data.dbf【6】删除zxin_file1中的文件oracle@linux:/zxindata/zxin_file1> lltotal 2408766-rw-r----- 1 oracle dba 1677729792 Jan 28 09:37 zxin_bill.dbf-rw-r----- 1 oracle dba 786440192 Jan 28 09:41 zxin_mmsloger.dbf oracle@linux:/zxindata/zxin_file1> rm zxin*【7】删除zxin_file2中的文件oracle@linux:/zxindata/zxin_file2> lltotal 1640008-rw-r----- 1 oracle dba 1677729792 Jan 28 09:38 zxin_omm.dbf oracle@linux:/zxindata/zxin_file2> rm zxin_omm.dbf【8】删除zxin_dex文件oracle@linux:/zxindata/zxin_index> lltotal 1640008-rw-r----- 1 oracle dba 1677729792 Jan 28 09:36 zxin_index.dbf oracle@linux:/zxindata/zxin_index> rm zxin_index.dbf【9】删除zxin_temp文件oracle@linux:/zxindata/zxin_temp> lltotal 472-rw-r----- 1 oracle dba 419438592 Jan 28 14:11 zxin_temp.dbf oracle@linux:/zxindata/zxin_temp> rm zxin_temp.dbf【10】listener.ora、tnsnames.ora文件备份删除oracle@linux:/zxindata/zxinbak> cd $ORACLE_HOME/network/admin oracle@linux:~/oracle10g/network/admin> lltotal 24-rw-r--r-- 1 oracle dba 686 Jan 28 09:23 listener.ora-rw-r--r-- 1 oracle dba 686 Jan 28 09:23 listener.zxinbakdrwxr-x--- 2 oracle dba 4096 Jan 28 08:54 samples-rw-r----- 1 oracle dba 172 Dec 26 2003 shrept.lst-rw-r--r-- 1 oracle dba 701 Jan 28 09:23 tnsnames.ora-rw-r--r-- 1 oracle dba 701 Jan 28 09:23 tnsnames.zxinbakoracle@linux:~/oracle10g/network/admin> cp listener.ora listener.ora.bak0128oracle@linux:~/oracle10g/network/admin> cp tnsnames.ora tnsnames.ora.bak0128oracle@linux:~/oracle10g/network/admin> rm listener.oraoracle@linux:~/oracle10g/network/admin> rm tnsnames.oraoracle@linux:~/oracle10g/network/admin> lltotal 24-rw-r--r-- 1 oracle dba 686 Jan 28 14:27 listener.ora.bak0128-rw-r--r-- 1 oracle dba 686 Jan 28 09:23 listener.zxinbakdrwxr-x--- 2 oracle dba 4096 Jan 28 08:54 samples-rw-r----- 1 oracle dba 172 Dec 26 2003 shrept.lst-rw-r--r-- 1 oracle dba 701 Jan 28 14:27 tnsnames.ora.bak0128-rw-r--r-- 1 oracle dba 701 Jan 28 09:23 tnsnames.zxinbak四、恢复过程恢复过程主要有建库、起监听、建用户、imp恢复数据、以及用户补充授权。
Oracle10g通过oradata恢复数据库的方法
Oracle数据库崩溃了,但是没有及时的备份,因此,只有通过拷贝其非系统分区中的oradata文件夹进行数据库的恢复。
第一步,在新机器上安装同样的操作系统(Windows2003)并保持计算机名与原服务器名相同(重要!);然后,安装Oracle 10g ,安装路径与原服务器相同(D:\ProgramFiles),创建相同实例(orcl)。
第二步,关闭和Oracle相关服务(OracleDBConsoleorcl、OracleOraDb10g_home1iSQL*Plus、OracleOraDb10g_home1TNSListener、OracleServiceORCL)。
第三步,替换文件,首先找到安装目录下的oradata(D:\oradata)下的实例目录(orcl),打开并删除其中的所有文件,然后,将从原数据库拷出的文件复制进此目录。
第四步,启动所有被手动关闭的服务(本次实践中OracleServiceORCL无法启动,通过重启电脑解决)。
第五步,打开em(http://lenovo-527g5dlo:1158/em)并查看是否恢复成功。
oracle 10g数据库备份与还原总结.txt今天心情不好。
我只有四句话想说。
包括这句和前面的两句。
我的话说完了对付凶恶的人,就要比他更凶恶;对付卑鄙的人,就要比他更卑鄙没有情人味,哪来人情味拿什么整死你,我的爱人。
收银员说:没零钱了,找你两个塑料袋吧!
三.归档模式
. 可以防止数据丢失
. 数据处于OPEN状态时可以进行备份
. 当出现介质失败时,除了SYSTEM表空间中的数据文件外其他的都可以在open状态下恢复
. 可执行完全恢复,也可以恢复到备份点与失败点之间的某时刻
1.备份
1)冷备份
shutdown后拷贝所需数据文件和控制文件
2)热备份
@将数据库设置为归档模式
@在数据库上发出全局检查点,在所有的数据文件头块上加锁
sql>alter database begin backup ;
@备份数据文件及控制文件
数据文件直接拷贝至其他目录
控制文件需使用alter database backup controlfile
sql>alter database backup controlfile to 'd:\backup\demo.ctl'; @结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组
sql>alter database end backup;
sql>alter system archive log cuurent;
3)备份表空间
*脱机备份(表空间处于OFFLINE状态,SYSTEM表空间和正在使用的UNDO空间不能脱机)
@确定表空间包涵的数据文件,如空间USERS
sql>select file_name from dba_data_files
where tablespace_name = 'users';
@设置表空间为脱机状态
sql>alter tablespace users offline;
@复制数据文件
@设置表空间联机
sql>alter tablespace users online;
*联机备份
@确定对应关系
@设置表空间为备份模式
sql>alter tablespace users begin backup ;
@复制数据文件
@设置表空间为正常模式
sql>alter tablespace users end backup ;
*处理联机备份失败
当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍处于备份状态,则会出错,此时需要结束备份
@装载数据库
sql>startup force mount
@查看处于联机备份状态的所有数据文件
sql>select file# from v$backup where status = 'active';
@结束联机备份状态
sql>alter tablespace end backup
或alter tablespace datafile backup;
或recover datafile 序号
@打开数据库
sql>alter database open;
2.还原
1)完全恢复
相关命令:
recover database :恢复数据库的多个数据文件(在MOUNT状态下运行) recover tadaspace :恢复多个表空间的所有数据文件(在open状态下运行)
recover datafile :恢复一个或多个数据文件(在mount,open状态下都可) *在mount状态下恢复数据文件(用于SYSTEM表空间恢复)
@装载数据库 mount状态
@确定需要恢复的数据文件
sql>select file#,error from v$recover_file
@拷贝备份至原位置
@恢复数据库 recover..上述命令
@打开数据库 alter database open;
*在open状态下恢复关闭后意外对视的数据文件,此时数据库将无法打开
@装载数据库 mount
@确定需要恢复的数据文件
@使相应的数据文件脱机
sql>alter database datafile 4 offline;
@打开数据库
sql>alter database open
@复制数据备份文件
@恢复数据文件
@是数据文件联机 alter database datafile 4 online;
*在open状态下恢复打开时意外丢失的数据文件
@确定要恢复的数据文件
@使数据文件脱机
@复制数据文件
@恢复相应的表空间或数据文件
@使相应的表空间或数据文件联机
*在open状态下恢复未备份的数据文件(要求在归档模式下,新建数据文件,其从简历开始的所有归档日志必须全部存在)
@装载数据库
@确定要恢复的数据文件
@是数据文件脱机
@打开数据库
@重新建立数据文件
sql>alter database create datafile 'd:\demo\users01.dbf'; @恢复数据文件
@使数据文件联机
2)不完全恢复
使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点之间某个时刻的状态
*恢复分类
基于时间的恢复:误删除表,误截断表,提交了错误的数据
基于取笑恢复:恢复到某个日志序列号之前的状态
基于SCN的恢复:恢复到特定SCN值的状态
基于备份控制文件恢复:表空间被意外删除,或所有控制文件全部损坏 *不完全恢复指令
recover database until time
recover database until change
recover database until cancel
recover database .. using backup controlfile
*基于时间的恢复
@关闭数据库(为防止备份失败,应备份当前数据库所有文件
@装载数据库 startup mount
@复制所有备份数据文件,并确定备份文件的时间点
sql>select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss)
from v$recover_file;
@执行recover database until time
sql>recover database until time "2006-09-26 16:40:33'
@以resetlogs方式打开数据库,并检查恢复结果
sql>alter database open resetlogs;
@备份数据库所有数据文件和控制文件,因为当以resetlogs方式打开数据库后会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1
sql>select name from v$datafile;
sql>alter database begin backup;
拷贝数据文件
sql>alter database end backup;
sql>alter database backup controlfile
to 'd:\backup\demo.ctl' reuse;
sql>alter system archive log cuurent;
*基于SCN恢复
@关闭数据库
@装载数据库 mount
@复制所有备份数据文件,确定备份文件SCN值
sql>select file#,change#, from v$recover_file;
@执行recover database until change
sql>recover database until change 675978;
@以resetlogs方式打开数据库
@备份数据库所有数据文件和控制文件
*基于取消恢复
@关闭数据库
@装载数据库
@复制所有备份的数据文件,确定备份文件的SCN值
sql>select file#,change# from v$recover_file;
@执行recover database until cancle
sql>recover database until cancel
@以resetlogs方式打开数据库
@备份所有数据文件和控制文件
*基于备份控制文件的恢复
@通过查看alert文件,确定误操作时间
@关闭数据库
@复制所有备份的数据文件,控制文件
@装载数据库
@执行recover database ing backup controlfile
sql>recover database until time '2004-09-26 19:51:06' using backup controlfile
@以resetlogs 方式打开数据库
@备份所有数据文件和控制文件。