实验8oracle热备份与恢复

合集下载

实验4 Oracle数据库备份与恢复实验[1]

实验4 Oracle数据库备份与恢复实验[1]

实验6 Oracle数据库备份与恢复实验一、实验目的理解数据库备份工作的重要性,将备份与恢复策略的理论和实践相结合,能根据实际情况确定备份和恢复策略。

熟练掌握逻辑备份和恢复工具。

二、实验要求1.逻辑备份工具表方式备份以实验3中创建的用户登录利用Oracle提供的逻辑备份工具EXP,选择表方式备份实验3中创建的模式对象2.逻辑备份工具用户方式备份以实验3中创建的用户登录利用Oracle提供的逻辑备份工具EXP,选择用户方式备份实验3中创建的模式对象3.逻辑备份工具数据库方式备份以SYSTEM用户登录利用Oracle提供的逻辑备份工具EXP,选择全库方式备份数据库4.逻辑恢复工具进行恢复以SYSTEM用户登录利用Oracle提供的逻辑恢复工具IMP,将前面1、2、3中选择的不同备份方式备份的文件,进行相应的数据库恢复5.备份向导进行联机热备份配置企业管理器的集成方式管理OMS 配置进行联机热备份的环境利用备份向导将实验2中创建的表空间联机热备份6.备份向导进行联机热恢复利用备份向导将5中联机热备份出的文件进行联机热恢复三、实验学时安排课堂内1学时完成二中所列1、2、3、4四项内容,其余各项内容均在课外自行上机练习完成。

四、实验内容与步骤任务1:逻辑备份工具EXP表方式备份选择【开始】/【程序】/【附件】/【命令提示符】选项,执行exp命令,在用户名后输入实验3中创建的用户名/口令@连接描述符并执行,数据库连接成功后出现如图6-1所示界面。

在该界面根据提示信息输入相应参数,将开始逻辑备份过程。

这里选择以表方式备份数据库。

备份出来的文件保存在指定的路径下(在本例中保存在e:\uwxd1.dmp下)。

图6-1 执行exp.exe 命令以表方式备份任务2:以用户方式备份选择【开始】/【程序】/【附件】/【命令提示符】选项,执行exp命令,在用户名后输入实验3中创建的用户名/口令@连接描述符并执行,数据库连接成功后出现如图6-2所示界面。

oracle冷备份与热备份

oracle冷备份与热备份
2.2、log下那些在archive rede log目标目录中的文件
2.3、重新启动archive进程
2.4、备份归档的redo log文件
3、用alter database backup controlfile命令来备份控制文件
三、提高oracle备份速度
1、发布命令启动跟踪机制:
3.3、全库方式,将数据库中的所有对象导出/导入
导出:$exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y
导入:$imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
sql>alter tablespace app_data read only;
sql>alter tablespace app_index read only;
7.2、发出exp命令
sql>host exp userid="""sys/password as sysdba""" transport_tablespace=y tablespaces=(app_data,app_index)
一、冷备份
1、关闭数据库
sqlplus /nolog
sql>connect /as sysdba
sql>shutdown normal;
2、用拷贝命令cp备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
sql>cp;;
3、重启Oracle数据库

oracle备份和恢复的操作流程

oracle备份和恢复的操作流程

oracle备份和恢复的操作流程Oracle备份和恢复的操作流程备份和恢复是数据库管理中非常重要的任务,可以保护数据免受丢失或损坏的影响。

在Oracle数据库中,备份和恢复操作有着明确的流程和步骤。

本文将详细介绍Oracle备份和恢复的操作流程。

一、备份操作流程1. 确定备份类型:根据需求和数据重要性,确定采用全备份、增量备份还是差异备份。

全备份是指备份整个数据库,增量备份是指备份自上次备份以来的所有更改,差异备份是指备份自上次全备份以来的所有更改。

2. 选择备份工具:Oracle提供了多种备份工具,如RMAN (Recovery Manager)、Data Pump、Export/Import等。

根据需求选择合适的备份工具。

3. 设置备份策略:根据业务需求和数据增长情况,设置备份策略,包括备份频率、保留周期、备份存储位置等。

备份策略应该根据实际情况制定,以充分保护数据并节约存储空间。

4. 执行备份命令:根据选择的备份工具和策略,执行相应的备份命令。

比如使用RMAN进行备份,可以使用RMAN命令行工具或者图形化工具执行备份操作。

5. 检查备份状态:备份完成后,需要检查备份状态,确保备份成功并没有错误。

可以查看备份日志或者备份工具提供的状态信息。

二、恢复操作流程1. 确定恢复类型:根据需要,确定采用完全恢复、部分恢复还是点恢复。

完全恢复是指将整个数据库恢复到某个时间点或备份点的状态,部分恢复是指只恢复某些表或数据文件,点恢复是指只恢复某个时间点的数据。

2. 准备恢复环境:恢复操作需要一个独立的环境,可以是一个新的数据库实例或者一个已有的实例。

需要确保恢复环境与原始数据库的版本和配置相同。

3. 恢复备份文件:根据选择的恢复类型,执行相应的恢复命令。

如果是完全恢复,可以使用全备份文件进行恢复;如果是部分恢复,可以使用增量备份或差异备份文件进行恢复。

4. 应用归档日志:如果数据库启用了归档日志模式,需要将归档日志应用到恢复的数据库中,以保证数据的一致性。

Oracle11g数据库热备份恢复的方法

Oracle11g数据库热备份恢复的方法

Oracle11g数据库热备份恢复的方法最近发现多个客户使用的Oracle11g数据库,数据备份恢复会有数据异常丢失的问题、用原先exp 和imp导入导出命令会发现,ecology系统当中的部分表和视图不能被导出。

且exp的导出命令不会出现错误日志。

后来查资料找到了另一种解决数据备份恢复的方法:用expdp和impdp命令导出导入数据则没有上述问题。

完整的从服务器创建数据库备份恢复到本机测试环境的脚本如下:注,红色部分可能环境不同需要调整的变量。

--按win+R键打开运行、输入cmd进入命令行--输入Oralce命令行命令:sqlplus /nolog--sysdba身份登录Oracle数据库conn sys/Oracle1234$@orcl as sysdba--更改oracle配置参数alter system set "_allow_level_without_connect_by"=true;--创建临时报空间create temporary tablespace ecology_temp tempfile'D:\Developer\oracle\oradata\orcl\ecology_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local;--创建报空间create tablespace ecology logging datafile 'D:\Developer\oracle\oradata\orcl\ecology.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local;--创建备份输出目录(如果此目录在服务上不存在,则需要手动创建)create directory dmpdir as 'D:\ecology_data';--创建用户create user ecology identified by ecology default tablespace ecology temporary tablespace ecology_temp;--给ecology用户授权grant connect, resource, exp_full_database, imp_full_database to ecology;grant create session to ecology;grant create table to ecology;grant create tablespace to ecology;grant create view to ecology;grant resource, connect, RECOVERY_CATALOG_OWNER to ecology;--授权与ecology用户,解决用户数据导出的问题grant execute on SYS.DBMS_DEFER_IMPORT_INTERNAL to ecology;grant execute on SYS.DBMS_EXPORT_EXTENSION TO ecology;--授权与ecology用户读写备份目录的权限grant read, write on directory dmpdir to ecology;--提交数据commit;--Oracle数据库导出命令expdp ecology/ecology@orcl dumpfile=data0324.dmp(导出的文件) directory=dmpdir schemas=ecology(要导出的用户)--Oralce数据库导入命令impdp ecology/ecology@orcl directory=dmpdir dumpfile=data0324.dmp(要导入的文件,必须和服务器在同一目录下) schemas=ecology(要导入的用户)。

Oracle+sde数据备份、恢复

Oracle+sde数据备份、恢复

EXP SYSTEM/PASSWORD@SID FULL=Y FILE=D:\SYSTEM.DMP LOG=D:\SYSTEM.LOG2.数据入库(a)从数据库中删除SDE和SDE USER用户DROP USER SDE CASCADE;DROP USER SDEUSER CASCADE;(b)创建新的SDE用户和SDEUSER下为创建SDE用户过程:(i)创建表空间CREATE TABLESPACE "SDE"LOGGINGDA TAFILE 'C:\ORACLE\ORADATA\ORACLE\SDE.ora' SIZE 200MEXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO(ii)创建用户CREATE USER "SDE" PROFILE "DEFAULT"IDENTIFIED BY "PASSWORD" DEFAULT TABLESPACE "SDE"TEMPORARY TABLESPACE "TEMP"ACCOUNT UNLOCK;(iii)创建角色GRANT "DBA" TO "SDE";GRANT "CONNECT" TO "SDE";GRANT "RESOURCE" TO "SDE";(iiii)系统权限GRANT ALTER ANY INDEX TO "SDE" WITH ADMIN OPTION;GRANT ALTER ANY TABLE TO "SDE" WITH ADMIN OPTION;GRANT ANAL YZE ANY TO "SDE" WITH ADMIN OPTION;GRANT CREATE ANY INDEX TO "SDE" WITH ADMIN OPTION;GRANT CREATE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;GRANT CREATE ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;GRANT CREATE ANY TRIGGER TO "SDE" WITH ADMIN OPTION;GRANT CREATE ANY VIEW TO "SDE" WITH ADMIN OPTION;GRANT CREATE SESSION TO "SDE" WITH ADMIN OPTION;GRANT DROP ANY INDEX TO "SDE" WITH ADMIN OPTION;GRANT DROP ANY TABLE TO "SDE" WITH ADMIN OPTION;GRANT DROP ANY VIEW TO "SDE" WITH ADMIN OPTION;GRANT DROP ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;GRANT DROP ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;GRANT EXECUTE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;GRANT SELECT ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;GRANT SELECT ANY TABLE TO "SDE" WITH ADMIN OPTION;GRANT UNLIMITED TABLESPACE TO "SDE" WITH ADMIN OPTION;3.导入SDE和SDEUSER的数据注意顺序,先SDE,后SDEUSERIMP SYSTEM/PASSWOR@SID FROMUSER=SDE TOUSER=SDEIMP SYSTEM/PASSWOR@SID FROMUSER=SDEUSER TOUSER=SDEUSER以上提到的SDE和SDEUSER是不同的用户,SDE是ArcSDE安装时的默认用户,SDEUSER 是指用户存储数据的用户,如果之间使用SDE默认用户存储,则省去所以的SDEUSER操作空间数据的备份、导出/导入(以Oracle为例):1、首先为什么oracle的exp/imp不能使用?一个feature class (shp文件)导入数据库后,会生成3个table 和7个index,这些表或者是index 可以保存在不同的表空间中。

oracle备份,还原常用命令

oracle备份,还原常用命令

oracle备份,还原常⽤命令cmd 命令窗⼝下1.备份数据库exp ⽤户名/密码@数据库连接名 owner=⽤户名 file="盘符:\⽂件名.dmp" log="盘符:\⽇志⽂件名.log",⽇志可选.2.还原数据库imp ⽤户名/密码@数据库连接名 file="盘符:\⽂件名.dmp"" log="盘符:\⽇志⽂件名.log" fromuser=other touser=⽤户名。

3.创建表空间及修改⼤⼩CREATE TABLESPACE dcitDATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\dcit.dbf' SIZE 500MUNIFORM SIZE 128k;alter database datafile 'C:\oracle\product\10.2.0\oradata\orcl\dcit.dbf' autoextend on next 10M maxsize 1G;以下为转帖,转⾃:数据库imp/exp命令使⽤⽅法是本⽂我们主要要介绍的内容,接下来我们就通过例⼦来介绍这些内容。

举例导出数据库服务abc,⽤户user,密码psd下的table1,table2,table3表到d:\data⽬录下,导出⽂件名为test.dmp,语句为:exp file=d:\data\test.dmp tables=(table1,table2,table3) .将上述⽂件恢复的语句为:exp full=y file=d:\data\test.dmp.注意:如果将备份⽂件中的所有表恢复,需要加上full=y.如果只须只需要恢复table1,则语句为:exp file=d:\data\test.dmp tables=table1.即必须指明倒⼊那些信息,要么全部要么部分表。

ORACLE实验报告完结版

ORACLE实验报告完结版

实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称Oracle的存储管理与分析(1)成绩评定教师签名实验目的索引实验内容一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构六、删除500条记录,查看索引结构七、对索引进行合并,查看索引变化八、重构索引,查看索引变化一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划1.全表扫描(full table scan--fts)并行查询可能会使得我们的路径选择采用全表扫描2.通过行ID(ROWID)向表中插入对象时隐含会创建改行ROWID,它是数据行所存储的数据块地址,这样可以以最快的速度找到该行数据,是oracle中读取单行数据最快的方法。

3.使用索引(1)使用索引找到相应ROWID(2)通过找到的ROWID从表中读取相应的数据二、以emp为原型,创建一个test表,在test的empno列上创建索引三、分析索引,通过index_stats查看的索引高度,结构等信息四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息五、往test表中插入600条记录,查看索引结构这样依次插入到表test中600条记录,再查看索引结构有如下变化:六、删除500条记录,查看索引结构;按照这样删除的方法把插入的600记录删除500条后在查看索引结构:七、对索引进行合并,查看索引变化;八、重构索引,查看索引变化;实验报告(三)院系:信息学院课程名称:日期:班级姓名专业信息管理与信息系统学号实验室实验名称oracle存储管理与优化(2)成绩评定教师签名实验目的日志管理实验内容1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;2切换日志组,跟踪日志切换的时间频率;3往数据里增加两个日志组,再删除其中的一个,结合日志组的状态,分析哪些类型的日志组不能删除4.往日志组里增加日志成员,再删除添加的日志成员,分析哪些类型的日志文件不能删除;5日志文件的恢复:1.nactive日志损坏清洗日志2.active日志损坏,只要数据库是一致性关闭,与1的恢复一样3.current日志损坏不完全恢复1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;v$log记录了当前数据库的日志组号、日志序列号、每个日志文件的大小、以字节为单位、每个日志组的成员数量,以及日志组的当前状态。

Oracle数据库备份还原操作流程

Oracle数据库备份还原操作流程

1数据库备份和恢复1.1数据库备份数据库备份有两种方法:一、使用数据库备份向导;二、输入数据库备份命令。

方法一:向导备份1. 点击“开始-运行”,输入cmd,在命令行中输入“exp”,回车,如图:图 1-1向导备份2. 输入要导出数据库方案的用户名和密码:图 1-2输入用户名和密码3. 依次输入缓冲区大小、导出文件存放路径、选择导出方式(导出完整数据库、按用户导出、按表导出)、是否导出权限、是否导出表数据、是否压缩,一般情况下“是否导出权限”改成“no”,其余使用默认即可。

4. 最后输入导出数据库方案所属用户名,回车,如图:图 1-3输入导出数据库方案用户名5. 再次回车,完成导出。

方法二:命令备份根据数据库的具体情况,可以将方法一的第2、3步中需要的信息在第1步“exp”命令后进行描述。

例如:在本机上导出10.1.1.240服务器上用户ptac的数据库,点击“开始-运行”,输入cmd,命令行中输入:exp ptac/ptac@jqdemo_l0.1.1.240 file=d:\ptac.dmp full=n grants=n回车,完成备份。

●exp:oracle数据库导出指令;●ptac/ptac:用户名/密码;●jqdemo_l0.1.1.240:数据库服务名●file=d:\ptac.dmp:导出文件保存路径及名称;●full=n:是否导出整个文件,n表示选择no;●grants=n:是否导出权限,n表示选择no。

●statistics=NONE:是否忽略字符集输入exp help=y,可获得过更多关于数据库备份命令的信息。

1.2数据库恢复如果是初次恢复数据库方案,需要先添加相应的表空间和用户,详见“4.数据库的配置”。

如果是要覆盖已有数据库方案,恢复之前要删除原方案,详见“7.1删除方案”。

数据库恢复有两种方法:一、使用数据库恢复向导;二、输入数据库恢复命令。

方法一:向导恢复1. 点击“开始-运行”,输入cmd,在命令行中输入“imp”,回车,如图:图 1-4向导恢复2. 输入用户名和密码(如为初次导入应输入新建的用户名,如需覆盖原方案则输入原方案所属用户名),然后依次输入导入文件的路径及文件名、缓冲区大小(可默认),如果输入的用户名与文件备份时使用的用户名不一致会出现提示,如:图 1-5出错提示3. 依次选择是否只列出导入文件的内容、是否忽略创建错误、是否导入权限、是否导入表数据、是否导入整个导出文件,其中“导入权限”通常写“no”,导入整个导出文件选择“yes”,其余默认即可,最后回车,完成导入。

oracle数据备份与还原

oracle数据备份与还原

在Oracle11g及以上版本中建议使用数据泵来代替EXP和IMP实用程序,数据泵技术提供了许多新的特性,可以中断导出\导入作业然后恢复作业的执行,从一个会话中监控数据泵取作业,在作业执行过程中修改作业属性,以及重启一个失败的数据泵取作业等。

☐数据泵导入导出技术的结构当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入及导出任务,所以我们也称数据泵技术是基于Oracle数据库服务器的,导入及导出的数据文件也保存在数据库服务器端。

数据泵取即EXPDP程序启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的计算机磁盘空间,文件格式filename.dat。

导出的备份文件在导入时只能通过数据泵的导入实用程序IMPDP完成,将数据导入到运行在其他平台上的数据库中。

☐数据泵导入导出与EXP/IMP技术的区别☐Oracle数据泵技术是对传统的EXP和IMP实用程序扩展,使得在数据库服务器端快速的移动数据。

这里我们给出二者的主要区别,使得读者在使用时根据需要有所取舍。

☐数据泵技术比传统的EXP/IMP技术更快速的移动大量数据,因为数据泵技术采用并行流技术实现快速的并行处理。

☐数据泵技术基于数据库服务器,在启动数据泵导入导出实用程序时在数据库服务器端产生服务器进程负责备份或导入数据,并且将备份的数据备份在数据库服务器端。

而且服务器进程与EXPDP客户机建立的会话无关。

☐传统的EXP/IMP是类似于普通的用户进程,执行象SELECT、INSERT、CREATE等的SQL语句。

而数据泵技术类似于启动作业的控制进程,不但启动客户端进程建立会话,还控制整个导入或导出过程,如重启作业。

☐使用传统的EXP/IMP实用程序导出的数据格式与数据泵技术导出的数据格式不兼容。

☐数据泵技术与传统的导入导出实用程序不同,它使用目录和目录对象存储数据泵导出文件,使用数据泵导出数据前必须先创建目录对象,否则无法使用数据泵导入和导出作业。

Oracle数据库备份与恢复的三种方法

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 数据库管理员可以排定⼀个备份⽇程表,⽤数据导出的三个不同⽅式合理⾼效的完成。

ORACLE表备份恢复测试用例

ORACLE表备份恢复测试用例

1.准备工作在ORACLE中创建表SQL> create table test(name char(8),age int);Table created.SQL> select * from test;no rows selectedSQL> insert into test values('aaa',22);1 row created.SQL> commit;Commit complete.SQL> select * from test;NAME AGE-------- ----------aaa 222.准备工作在安腾普管理控制台创建Oracle备份应用添加ORACLE相关参数,包括ORACLE_HOME、ORALE_SID软件库文件等◆如果填写的各项参数都正确,点ORACLE应用图标右键还原和归档管理器就能展开ORACLE数据库结构如下◆定义ORACLE备份的介质池◆在作用管理器中可以查看ORACLE备份结果3.进行ORACLE表备份恢复测试◆恢复前将数据库的表dropSQL> drop table test;Table dropped.SQL> conn /as sysdbaConnected.SQL> shutdown immediate; Database closed.Database dismounted.ORACLE instance shut down.SQL>进入还原和归档管理器,启动还原操作数据库还原后,对数据库进行recoverSQL> startup mount;ORACLE instance started.Total System Global Area 5010685952 bytesFixed Size 2212936 bytesVariable Size 3221228472 bytesDatabase Buffers 1744830464 bytesRedo Buffers 42414080 bytesDatabase mounted.SQL> recover database using backup controlfile until cancel;ORA-00279: change 1040140 generated at 03/04/2015 02:54:36 needed for thread 1 ORA-00289: suggestion : /u01/app/11.2.0/arch/1_11_873425412.dbfORA-00280: change 1040140 for thread 1 is in sequence #11Specify log: {<RET>=suggested | filename | AUTO | CANCEL}ORA-00279: change 1040340 generated at 03/04/2015 02:55:15 needed for thread 1 ORA-00289: suggestion : /u01/app/11.2.0/arch/1_12_873425412.dbfORA-00280: change 1040340 for thread 1 is in sequence #12ORA-00278: log file '/u01/app/11.2.0/arch/1_11_873425412.dbf' no longer needed for this recoverySpecify log: {<RET>=suggested | filename | AUTO | CANCEL}Log applied.Media recovery complete.SQL>SQL> alter database open resetlogs;Database altered.4.检查还原的数据SQL> conn zwh/zwh Connected.SQL> select * from test; NAME AGE-------- ----------aaa 22SQL>。

Oracle数据库三种备份方案

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自动备份和恢复文档精选全文完整版

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状态。

oracle数据库备份与还原方法

oracle数据库备份与还原方法

oracle数据库备份与还原方法一、Oracle数据库备份方法。

1.1 冷备份。

冷备份是在数据库关闭状态下进行的备份。

这就好比是给一个睡着的人做全身检查,一切都是静止的,好操作。

你得把数据库相关的文件,像数据文件、控制文件、重做日志文件等一股脑儿地拷贝到一个安全的地方。

这种备份方法简单直接,但是呢,在备份期间数据库是不能使用的,就像你要修东西得先把它停下来一样,有点不方便。

不过它恢复起来也相对容易,就像把之前拷贝走的东西再原封不动地拿回来就好。

1.2 热备份。

热备份可就不一样啦,它是在数据库运行的时候进行备份的。

这就像是给一个正在跑步的人换鞋子,难度不小。

热备份主要是利用归档模式,对表空间或者数据文件进行备份。

这种方式不影响数据库的正常使用,就像在火车行驶的时候给它换个小零件,火车还能继续跑。

但是热备份的操作相对复杂一些,需要对Oracle数据库有比较深入的了解,不然很容易搞砸,那可就“偷鸡不成蚀把米”了。

1.3 逻辑备份。

逻辑备份呢,是通过Oracle的工具,比如EXP或者EXPDP来进行的。

这就像是把数据库里的数据按照一定的逻辑规则整理出来,打包带走。

它可以备份特定的表、用户或者整个数据库。

这种备份方式比较灵活,就像你可以从一个大仓库里挑选你想要备份的东西。

但是逻辑备份的速度可能会比较慢,特别是数据量很大的时候,就像小马拉大车,有点吃力。

二、Oracle数据库还原方法。

2.1 冷备份还原。

如果是冷备份还原,那就简单多啦。

首先把数据库关闭,然后把之前备份的文件再拷贝回原来的位置,就像把东西放回原位一样。

不过要注意文件的权限和路径,可不能张冠李戴。

一切就绪后,再启动数据库,就大功告成了。

这就像把修好的东西重新启动,又能正常工作了。

2.2 热备份还原。

热备份还原就复杂得多了。

首先要根据备份的情况,确定需要还原的表空间或者数据文件。

然后利用归档日志和备份文件进行恢复。

这过程就像走钢丝,得小心翼翼的。

Oracle-RAC环境数据备份与恢复方案

Oracle-RAC环境数据备份与恢复方案

Oracle RAC 环境数据备份与恢复方案【导读】某企业因项目需要在Oracle RAC集群环境下,根据实际情况对Oracle数据库进行备份;使用生产环境的rman全备数据,进行恢复数据搭建测试环境。

本文将详细介绍此案例中Oracle数据库rman全备份过程、Oracle RAC 环境下rman备份数据如何恢复至单机服务器。

考虑到非常的实用,将实施经验分享给更多同行进行交流学习。

一、背景环境生产环境使用两台DELL R840 服务器,安装了 linux centos 7.6操作系统,并配置多路径,使用 EMC untiy 作为共享存储,分配了2个1T LUN 存储数据库文件,1个500G LUN存放归档数据,3个30G LUN存放 OCR 、FALSH、GIMR 数据。

Oracle RAC 软件版本是19C 19.0.0.0.0。

二、数据备份1、备份策略为保障oracle rac 集群数据安全,因项目组要求设计数据库备份方案。

考虑到服务器RAC1与RAC2每台服务器自带2T本地可用容量,每次全备产生约400GB数据文件。

可将奇数天备份到RAC1,偶数天备份到RAC2,4*400GB=1.6TB,每台服务器可以备份4天的全量数据。

空间非常的富余,不计划使用rman的增量备份,直接全量备份近8天数据,恢复也较为方便。

2、备份过程在RAC1主机下执行,(RAC2同理)首先Oracle 数据库开启归档,归档模式下,才可以进行数据库的热备份、联机备份、手工备份等。

非归档模式下,只能进行冷备份。

当然我们rman备份是在线备份。

如下图:接着,创建rman脚本目录创建备份执行脚本,并加入定时任务创建备份数据清理脚本,并加入定时任务,只备份近4次数据,脚本会自动判断最近一次rman备份是否成功,不成功将不删除备份数据。

这里我调用了zabora.sh 脚本判断rman备份状态,sql语句也比较简单。

定时任务(RAC1)定时任务 (RAC2)记得重启定时任务创建rman执行脚本,用于被上述执行脚本调用3、测试验证第一次可手动执行备份任务,不等到凌晨自动执行查看日志log备份完成如下图:三、数据恢复因为本项目使用的是全备数据,无增量。

Oracle备份恢复方案

Oracle备份恢复方案

Oracle 备份恢复方案第一章基础知识一、备份内容:备份数据库一般包括备份数据库文件、控制文件、归档重做日志文件和INIT.OTRA文件,如果有可能,备份还应包括可执行代码和配置文件。

二、备份方法分类:主要的备份方法有物理备份、逻辑备份和恢复管理器(RMAN)备份。

1.物理备份是实际物理数据库文件从一处拷贝到另一处的备份,它使用操作系统提供的拷贝命令来完成,包括操作系统备份(NT下一般不用)、冷备份和热备份;2.逻辑备份是利用SQL从数据库中抽取数据并存入二进制文件,这些数据可以重新导入原来的数据库,或者以后导入其它数据库,ORACLE提供的EXPORT/IMPORT工具可用于进行数据库的导入和导出。

3.恢复管理器RMAN(Recovery Manager)为Oracle 8新引入,能够完成数据库的备份与恢复任务,既可以在图形用户界面GUI中使用,也可以在CLI (命令行)中使用。

三种方法各有长短,DBA应该综合灵活运用。

第二章物理备份和恢复一、冷备份步骤如下:1、关闭数据库实例:命令行下关闭数据库有三种方式:normal,immediate,和abort,对于备份而言,immediate方式最好,因为这种方式既避免了normal方式下因用户忘记退出而造成的等待,且因为Oracle进行了回滚和检查点操作,可以保证数据库的一致和完整性。

推荐在控制面板的服务窗口下关闭专用服务,可以彻底的关闭数据库,这里的数据库服务名为OracleServiceZZYD。

2、拷贝所有与数据库相关的物理文件:包括控制文件、重做日志文件和数据库文件,这里拷贝目录E:\ZZYD即可,另外最好把监听器配置文件(d:\orace\ora81\network\admin\目录下的listener.ora和tnsnames.ora)也拷贝下来。

3、完成拷贝后重新启动数据库。

二、热备份步骤:热备份是一个复杂的过程,这是因为每个表空间都是一个完整的备份过程。

ORACLE数据库如何恢复

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最简单有效的备份恢复方案

ORACLE最简单有效的备份恢复方案

ORACLE 最简单有效的备份恢复方案ORACLE备份分两种,1.逻辑备份;2.物理备份;逻辑备份又分两种:传统的exp备份;10g开始支持的expdp数据泵备份;物理备份主要就是RMAN备份;最基本的原则是:这些逻辑或物理备份和数据库文件必须放在不同的硬盘上;否者一损俱损;备份就没多大意义了;如果数据库不是很大,比如在50G以下,那么我们就考虑一些傻话化的全备方案我现在的备份方案是:两个逻辑备份和RMAN 备份全部用上;1.传统dmp逻辑备份和恢复1.1传统dmp逻辑备份,这个是最简单的备份方法;现在我提供一个简单的脚本:1.1.1首先建立一个bat文件,名字叫:exp_backup.bat内容是:set oracle_username=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old.dmp del %oracle_username%_old.dmpif exist %oracle_username%_old.log del %oracle_username%_old.logif exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmpif exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.logexp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG该脚本是一个通用的最简单的exp脚本;意思就是:备份之间,把以前的备份文件修改名字,后面加上_old ,如果本来就有old文件,就删除之;之后,就开始备份;备份的文件目录和该脚本一致(这样做最简单);所以总是会出现一新一旧两个文件;当然只要最新的就行了,所以理论上只要一份文件;但是考虑有可能备份的时候突然报错,这样old文件还在,将就着使用,否者新的是坏的,旧的也没了;有的人做一周7天逻辑循环备份,我觉得没有必要,要那么多旧的备份文件何用,浪费空间;1.1.2然后再做一个bat文件,比如是my_exp.bat内容是:call exp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call exp_backup.bat USER1 PASSWORD1 ""….My_EXP.BAT可以做成windows的执行计划,每天不忙的时候执行一次;1.2 exp备份的恢复下面就是恢复的最简单方法:1.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXX CASCADE1.2.2.再创建该用户CREATE USER xxxxIDENTIFIED BY xxxxDEFAULT TABLESPACE xxxxTEMPORARY TABLESPACE TEMP并赋予权限:GRANT DBA TO xxxx WITH ADMIN OPTION1.2.3用IMP恢复C:\> imp xxxx/xxxx FILE=xxxx.DMP LOG=xxxx.LOG FULL=Y2.10G后的数据泵expdp备份和恢复2.1 expdp 备份据说这个比exp有很多优点,这个我就不说了,大家可以自己参考资料;不过我测试下来,如果数据量小expdp 还是不如exp的;但是还是建议是使用expdp,因为数据会慢慢变大的,用expdp更好些;我最看重的是:expdp备份的文件涵盖的东西更多;所以恢复的时候方便;删除用户后,可以不用再创建用户恢复;实现方法和exp类似:不过,它的目录不像EXP那么直接,需要使用oracle的目录对象;所以2.1.1第一步先创建一个目录对象,比如:SQL>create or replace directory LOGIC_BUCKUPas 'd:\OACLE_BACKUP\逻辑备份';2.1.2建立一个通用脚本,比如叫EXPDP_BACKUP.BAT内容是:set oracle_username=%1set oracle_password=%2set local_tnsname=%3set url=%oracle_username%/%oracle_password%if not %local_tnsname% == "" set url=%url%@%local_tnsname%if exist %oracle_username%_old_dump.dmp del %oracle_username%_old_dump.dmpif exist %oracle_username%_old_dump.log del %oracle_username%_old_dump.logif exist %oracle_username%_dump.dmp ren %oracle_username%_dump.dmp %oracle_username%_old_dump.dmpif exist %oracle_username%_dump.log ren %oracle_username%_dump.log %oracle_username%_old_dump.logEXPDP %url% DIRECTORY=LOGIC_BACKUP DUMPFILE=%oracle_username%_DUMP.DMP LOGFILE=%oracle_username%_DUMP.LOG PARALLEL=2该方法与上面的dmp备份类似;2.1.3然后再做一个bat文件,比如是my_expdp.bat内容是:call expdp_backup.bat USER PASSWORD ""如果是在服务器自身上备份,就不需要写入数据库服务名;如果有多个用户数据需要备份;那么就在my_exp.bat继续添加:call expdp_backup.bat USER1 PASSWORD1 ""……同dmp备份一样,My_EXPdp.BAT也可以做成windows的执行计划,每天不忙的时候执行一次;2.2 expdp备份的恢复下面就是恢复的最简单方法:2.2.1.把电脑上当前用户彻底删除,用命令,这样就可以把对象彻底清除;DROP USER XXXX CASCADE2.2.2.用另外一个权限较高的用户(最好不是sys,比如是YYYY) 导入:C:\>IMPDP yyyy/yyyy DUMPFILE=xxxx_DUMP.DMP LOGFILE=xxxx_DUMP.LOG DIRECTORY=LOGIC_BUCKUPPARALLEL=2(这里的LOGIC_BUCKUP是oracle的对象目录,要和xxxx_dump.dup存放的目录一致)这样就OK了,也即是说用户不需要创建,数据泵文件含有了用户以及它原来的权限;从这点来讲,是不是比IMP导入更为方便;好了,两种逻辑备份讲完了,下面重点说一下RMAN备份;因为在生产系统中,逻辑备份作用不大的,因为它不能实时的备份数据,所以逻辑备份更多的时候是给开发人员互相导入数据和存储过程之类用的;RMAN备份的原理还是有点复杂的,很多细节的我也不是很清楚,不过没关系,我们可以整理出一套最简单的备份方案:3.RMAN备份和恢复3.1. RMAN备份3.1.1 首先把数据库参数关注一下,关注下面两个参数第一个参数:db_recovery_file_dest_size,上图中的大小是默认的4G,也就是归档模式下,archivelog的所有归档日志文件大小总和,如果超过这个数,就会导致数据库出问题;所以要非常小心,因而建议修改大一些,比如修改成20G;当然最本质的方法,是要按时清理无用的归档日志;第二个参数:db_recovery_file_dest ,这个参数非常重要,是11G里,存放rman备份集和归档日志的地方;默认是放在flash_recovery_area目录下的,因为我的系统的flash_recovery_area 和数据库文件在同一个硬盘,所以修改了;3.1.2.关注redo日志文件,每组里要有两个成员,1个在数据库文件的硬盘下,1个在备份文件的硬盘下,因为日志文件写入最频繁,RMAN无法对它备份,或者说任何备份工具都无法对redo日志备份;不过redo它自己可以做冗余,两个文件只要有一个在,即可;比如:3.1.3做一个最简单的rman备份脚本;3.1.3.1首先做一个txt,比如是:autorman.txt内容是:sql 'alter system archive log current';backup database;delete noprompt obsolete;这三句话的作用分别是:1.对当前redo日志进行归档;2.备份数据库3.删除无效的archive日志和rman备份集3.1.3.2 做一个bat 调用上面的autorman.txt,比如是:autorman.bat内容是:rman target / @autorman.txt然后就在winddows下做一个执行计划,每天或没隔几天,自动执行一下这个autorman.bat当然备份之前,要用rman>show all 看一下参数设置,有没有自动备份控制文件,如果没有,要加上;3.2 rman恢复Rman恢复非常简单;下面说一下步骤:3.2.1 假如最新一次全备是3天前的,先随便建立一个新表,比如是test_rman,随便插几条数据;用来测试还原后,这个最新的对象是否也给恢复了;现在用sqlplus登陆,shutdown 数据库,然后把oracle的数据库文件全部删除(控制文件,redo日志文件,数据库文件);3.2.2 用sql> startup nomount 启动数据库的参数文件,参数文件和数据库文件不在同一个硬盘,所以没丢;这时候如果执行sql>alter database mount 会报错,因为mount会加载控制文件,而控制文件已经丢了;3.3.3.把以前控制文件所在的目录建立好,否者rman找不到控制文件恢复路径;然后执行RMAN> restore controlfile from autobackup;这样控制文件就回复了,有了控制文件就好办了;3.2.4. 以为有了控制文件,所以在sqlplus里,可以装载数据库Sql>alter database mount3.2.5 数据库被装载后,说明控制文件生效了,这时候,所有的数据库信息都出来了;所以可以用rman还原数据库了:RMAN> RESTORE database;3.2.6 恢复数据库:RMAN> recover database;2.2.7 数据库现在已经全部回复好,可以重新启动了:SQL> alter database open resetlogs;数据库已更改。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、联机热备份具体步骤:
1)首先以SYSDBA身份连接数据库,然后执行ARCHIVE LOG LIST命令查看当前数据库是否处于归档模式。

(SQL*PLUS下)
conn system/llx123 as SYSDBA
ARCHIVE LOG LIST;
2)如果没有处于归档模式,则设置归档日志的路径,并将数据库切换为归档模式。

(1)设置归档日志路径,如归档当前联机日志文件至c:\backup\archive_log文件夹和C:\oradata\archive_log文件夹下:(先在C盘下建立back和oradata文件夹)
alter system set log_archive_dest_1='location=C:\backup\archive_log';
alter system set log_archive_dest_2='location=C:\oradata\archive_log';
查询数据库所有归档路径信息:
SET LINESIZE 300
select destination,binding from v$archive_dest;
(注:
①重做日志文件用于记录外部程序(用户)对数据库的改变操作。

归档文件用于保存已经
写满了的重做日志文件。

②oracle数据库能够把已经写满了的重做日志文件保存到指定的一个或多个位置,被保存
的重做日志文件的集合成为归档重做日志文件,这个过程叫做归档
③为了将所有的重做日志文件保存下来,需要指定重做日志文件的存储位置,即归档的路

(2)将数据库切换为归档模式:
①关闭数据库:SHUTDOWN IMMEDIATE
②启动数据库到MOUNT状态:STARTUP MOUNT
③将数据库设置为归档模式:ALTER DATABASE ARCHIVELOG;
④打开数据库:ALTER DATABASE OPEN;
3)进行数据库的热备份
(1)热备份:以表空间为单位备份数据文件
①查看当前数据库有哪些表空间,以及每个表空间中有哪些数据文件。

SELECT tablespace_name,file_name FROM dba_data_files
ORDER BY tablespace_name;
②将需要备份的表空间(如EXAMPLE)设为备份状态:
ALTER TABLESPACE EXAMPLE BEGIN BACKUP;
HOST COPY D:\oracle\product\10.1.0\oradata\orcl\EXAMPLE01.dbf C:\backup\EXAMPLE01.dbf
ALTER TABLESPACE EXAMPLE END BACKUP;
(2)热备份:备份控制文件
将控制文件备份到c:\backup下:
ALTER DATABASE BACKUP CONTROLFILE TO 'c:\backup\control.bkp';
(3)热备份:备份其他物理文件
①归档当前的联机重做日志文件
ALTER SYSTEM ARCHIVE LOG CURRENT; 或:ALTER SYSTEM SWITCH LOGFILE;
②备份归档重做日志文件(在归档日志路径中)
在操作系统中将所有的归档重做日志文件复制到备份文件夹中。

(默认的路径在闪回恢复区,现在在你自己制定的归档路径下)
③备份初始化参数文件
在操作系统中将初始化参数文件(在D:\oracle\product\10.1.0\admin\orcl\pfile 下)复制到备份文件夹中。

二、表空间级别的完全恢复步骤:
1)模拟数据文件丢失的情况:
首先关闭数据库:SHUTDOWN IMMEDIATE;
然后将EXAMPLE表空间的数据文件example01.dbf删除,以模拟example01.dbf损坏进行表空级的完全恢复。

最后启动数据库:STARTUP,可以看到数据库装载完毕后的出错信息。

2)数据库处于打开状态下的恢复
(1)如果数据库已经关闭,则将数据库启动到MOUNT状态:STARTUP MOUNT
(2)将损坏的数据文件设置为脱机状态(须在归档模式下)
ALTER DATABASE DATAFILE ' ‘D:\oracle\product\10.1.0\oradata\orcl\example01.dbf' OFFLINE;
(3)将数据库修改为打开状态:ALTER DATABASE OPEN;
(4)将损坏的数据文件所在的表空间脱机
ALTER TABLESPACE EXAMPLE OFFLINE FOR RECOVER;
(5)将备份的表空间对应的所有数据文件复制到原来的目录,覆盖受损的数据文件。

这里为复制example01.dbf到原来的目录。

(6)执行表空间恢复命令:RECOVER TABLESPACE EXAMPLE;
(7)将表空间联机:ALTER TABLESPACE EXAMPLE ONLINE;
三、数据文件级别的完全恢复步骤:
1)模拟数据文件丢失的情况:
首先关闭数据库:SHUTDOWN IMMEDIATE;
然后将EXAMPLE表空间的数据文件d:\oracle\product\10.1.0\oradata\orcl\example01.dbf删除,以数据文件example01.dbf损坏为例模拟数据文件级的完全恢复。

最后启动数据库:STARTUP,可以看到数据库装载完毕后的出错信息。

2)数据库处于打开状态下的恢复
(1)如果数据库已经关闭,则将数据库启动到MOUNT状态:STARTUP MOUNT
(2)将损坏的数据文件设置为脱机状态
ALTER DATABASE DATAFILE 'd:\oracle\product\10.1.0\oradata\orcl\example01.dbf' OFFLINE;
(3)将数据库修改为打开状态:ALTER DATABASE OPEN;
(4)利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。

(5)使用RECOVER命令恢复数据文件:
RECOVER DATAFILE 'C:\oracle\product\10.1.0\oradata\orcl\example01.dbf'; (6)将数据文件设为联机状态:
ALTER DATABASE DATAFILE 'd:\oracle\product\10.1.0\oradata\orcl\example01.dbf' ONLINE;。

相关文档
最新文档