Oracle备份与恢复案例
通过RMAN备份Oracle数据库恢复到其他服务器(案例)
通过RMAN备份Oracle数据库恢复到其他服务器(案例)通过RMAN备份Oracle数据库恢复到其他服务器(案例)本节演示如何通过RMAN创建的备份集,将数据库恢复到其他服务器。
本小节执行的操作较多,一定要有一个清醒的大脑,因此赶紧把脑袋里那堆乱七八糟的东西清除清除,要不你一定会看晕的。
设定环境如下:源库192.168.100.100,SID:orcdb。
目录库192.168.100.101,已安装与源库相同版本的数据库软件(一定要相同版本哟)。
准备工作如下:记录下源数据库的DBID,DBID的获取方式上节已讲过。
创建完整备份集(含控制文件、数据文件、归档文件),源库为非归档模式也可以,只要确保创建的备份是一致备份,然后将备份集复制到目标服务器的相同路径下。
为简单起见,源端与目标端目录结构保持一致。
如果你在测试或正式操作时由于实际原因无法保持源端与目标端结构一致,在恢复过程中注意修改相关路径。
操作步骤如下:注意,下列操作如非特别注明,均是在目标端服务器上进行的。
1.在源库端创建数据库的完整备份Backup database;备份集创建成功之后,将其复制到目录端的相同路径下,强调一点,必须是相同路径。
复制方式灵活多样,Windows环境可以直接通过共享复制,Linux/UNIX下可以通过FTP。
2.在目标服务器上创建OracleService如果是Linux/UNIX环境,不需要执行本步骤,只要在连接数据库时指定ORACLE_SID环境变量即可。
如果是Windows服务器,需要通过ORADIM命令创建一个OracleService,创建的SID要与源库相同,操作如下:1. C:\Documents and Settings\Administrator>ORADIM -NEW -SID orcdb2. Instance created.上述命令创建了一个名为orcdb的OracleService。
几种oracle数据库恢复的练习示例
7:提示文件不存在。
8ห้องสมุดไป่ตู้还原热备的文件,令该文件脱机。
Alter database datafile ‘88888888’ offline;
9:打开数据库。
10:恢复该文件。
Recover databfile ‘88888888’;
11:alter database datafile online.
而联机日志则可以保证数据库恢复到发生事故时的状态,算是完全恢复。
如果没归档的联机日志丢失(状态为ACTIVE或者CURRENT),则只能使用归档日志恢复到最后一个归档日志的地方,是不完全恢复。
End;
/
5:切换几次日志,使所有日志都已经归档。
Alter system switch log file;
6:正常关闭数据库。Shutdown immediate;
7:恢复:
把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。
8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。
9:启动数据库 startup
mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。
确定归档日志位置正确后,输入auto.
ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。
10:打开数据库 alter database open;
11:查看user1用户及t1表中是否有刚才插入的10000条记录。
ORA-00279: ?? 84851370 (? 09/24/2003 11:16:01 ??) ???? 1 ????
ORA-00289: ??: D:\ORACLE\ORADATA\SAMPLE\ARCHIVE\TESTT001S01324.ARC
备份恢复实例
select instance_name,status from v$instance;冷备份恢复对数据库进行物理备份(冷备份),并恢复被用户误删除的数据。
(1)以管理员身份登录connect / as sysdba;(2)确定数据库各种物理文件select name from v$controlfileunion allselect member from v$logfileunion allselect name from v$datafileunion allselect name from v$tempfile(3)关闭数据库shutdown immediate;(4)将数据库中所有文件拷贝到d:\backup复制所有文件进行保存注意两个控制文件互为镜像文件都需要进行备份否则恢复时出现不一致的情况(上课恢复出现问题的主要原因就是仅恢复一个控制文件出现不一致情况)(5)模拟误删除操作系统下将数据库中users01.dbf删除(6)以管理员身份登录,并启动数据库Startup(7)关闭数据库(8)将d:\backup目录中的所有文件拷回数据库目录(9)以管理员身份登录,并启动数据库归档模式下数据库的完全恢复数据库进行物理备份(热备份),并恢复被用户误删除的数据。
(1)以管理员身份登录数据库,并查看当前归档模式conn / as sysdba;archive log list;(2)如果当前数据库运行在非归档模式下,首先关闭数据库,把数据库启动到mount状态,然后将数据库修改为归档模式,并打开数据库shutdown immediate;startup mount;alter database archivelog;alter database open;3)备份users表空间alter tablespace users begin backup;4) 拷贝users表空间下的数据文件USERS01.DBF到d:\backup2。
Oracle数据库-备份整个数据库与还原整个数据库数据
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 用户名;即可-全文完-。
Oracle数据库备份恢复实战
Oracle数据库备份恢复实战在管理和运维Oracle数据库时,数据库备份和恢复是一项至关重要的任务。
无论是因为误操作、硬件故障还是数据丢失,数据库备份和恢复能够帮助我们从灾难中恢复并保护我们的数据。
本文将介绍一些Oracle数据库备份恢复的实战方法,帮助读者了解如何有效地进行数据库备份和恢复。
1. 数据库备份方法1.1 物理备份物理备份是指对数据库的实际物理文件进行备份,备份的内容包括数据文件、控制文件和归档日志文件。
物理备份通常使用RMAN (Recovery Manager)工具来完成。
以下是进行物理备份的一般步骤:1) 配置RMAN环境并连接到目标数据库;2) 创建备份集并指定备份文件的存储位置;3) 开始备份任务,RMAN将自动备份数据文件、控制文件和归档日志文件;4) 备份完成后,可以使用RMAN验证备份文件的完整性。
1.2 逻辑备份逻辑备份是指对数据库中的逻辑结构(如表、视图等)进行备份,备份的内容是SQL语句或者导出文件。
逻辑备份通常使用expdp(数据泵)或者exp(传统导出)工具来完成。
以下是进行逻辑备份的一般步骤:1) 配置expdp或exp环境并连接到目标数据库;2) 创建备份目录并指定备份文件的存储位置;3) 开始备份任务,expdp或exp将自动生成备份文件;4) 备份完成后,可以使用impdp或imp工具验证备份文件的完整性。
2. 数据库恢复方法2.1 物理恢复物理恢复是指将备份的物理文件还原到数据库中,并应用归档日志文件来恢复丢失的数据。
以下是进行物理恢复的一般步骤:1) 将备份文件复制到目标数据库的恢复目录;2) 启动目标数据库并将其切换到恢复模式;3) 使用RMAN工具恢复数据文件、控制文件和归档日志文件;4) 应用归档日志文件以恢复丢失的数据;5) 完成恢复后,将数据库切换回正常运行模式。
2.2 逻辑恢复逻辑恢复是指使用逻辑备份文件来还原数据库中的逻辑结构和数据。
oracle数据库备份与恢复方案
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>。
实验8_Oracle数据库备份与恢复
实验8 Oracle 数据库备份与恢复实验班级计算机11-1姓名胡杨梅学号110415130 得分--一、实验目的目的和要求(1)理解数据库备份工作的重要性。
(2)将备份与恢复策略的理论和实践相结合,熟练掌握逻辑备份和恢复工具。
(3)能根据实际情况确定备份和恢复策略。
(4)学习和掌握EM工具和RMAN 技术二、实验要求本实验主要包含以下内容。
(1)逻辑备份工具方式备份:设置操作系统用户user作为批处理作业用户登陆。
(2)逻辑备份工具方式备份:以创建的用户jsj111_99或sys登录 em利用Oracle提供的em备份工具,选择oracle建议的备份,并恢复数据库(3)逻辑备份工具方式备份:以创建的用户jsj111_99或sys登录 em利用Oracle提供的em备份工具,选择定制的备份,并恢复数据库(4)RMAN技术方式备份与恢复:以用户sys登录sql*plus将数据库设置成归档模式,创建恢复目录所用的表空间,表空间的名字为rman_20,路径默认(实验室),(5)RMAN技术方式备份与恢复:以用户sys登录sql*plus创建rman_20用户并授权(备份和恢复的相应权限),创建恢复目录rman_20(6)RMAN技术方式备份与恢复:注册目标数据库,执行全数据库备份,并恢复。
(7)练习使用闪回技术。
三、实验学时安排课堂内3学时完成二中所列1、2、3、4、5、6六项内容,其余各项内容均在课外自行上机练习完成。
四、实验内容与步骤1、逻辑备份工具方式备份:设置操作系统用户user作为批处理作业用户登陆。
(1)开始—>设置—>控制面版—>管理工具→→本地策略—>用户权利指派—>单击“作为批处理作业登录”-->”添加用户或组”→”高级”→”立即查找”—”user”→单击“确定”.2、逻辑备份工具方式备份:以创建的用户jsj111_20或sys登录 em利用Oracle提供的em备份工具,选择oracle建议的备份,并恢复数据库.(1)创建用户jsj111—20(2)sys登录em3、逻辑备份工具方式备份:以创建的用户jsj111_20或sys登录 em利用Oracle提供的em备份工具,选择定制的备份,并恢复数据库3、RMAN技术方式备份与恢复:以用户sys登录sql*plus将数据库设置成归档模式,创建恢复目录所用的表空间,表空间的名字为rman_20,路径默认(实验室),5、RMAN技术方式备份与恢复:以用户sys登录sql*plus创建rman_20用户并授权(备份和恢复的相应权限),创建恢复目录rman_206、RMAN技术方式备份与恢复:注册目标数据库,执行全数据库备份,并恢复。
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备份分两种,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;数据库已更改。
Oracle11gR2 实现数据库备份与恢复(exp、imp)
Oracle11gR2 实现数据库备份与恢复
一、导出数据库(数据库备份)
1.Cmd exp
2.输入用户名scott及密码:Tiger
3.enter (默认)
4.输入要备份的文件名称如mydata.dmp
5.选择导出的内容U –>用户T->代表的是表
6.导入权限、导出表数据、及数据压缩选项
这样就完成数据备份了,,备份数据所在位置为默认目录
二、导入数据(imp)恢复备份数据
1.cmd ->imp(导入数据命令)
2.输入用户名:scott和密码:Tiger
3.对仅导入数据、选项进行选择
4.导入文件填写
5.对冲去进行默认操作、对只导入文件内容、等进行莫荣选择
6.对导入权限、导入表数据、导入整个导出文件选项进行选择
7.数据备份就完成了,,在pl/sqL工具中查询下删除掉的数据是否恢复就知道了。
Oracle备份与恢复案例共35页word资料
Oracle备份与恢复案例By Piner一.理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。
恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。
数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。
实例恢复将数据库恢复到故障之前的事务一致状态。
如果在在线后备发现实例故障,则需介质恢复。
在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。
如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。
该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。
(3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。
文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。
这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。
(1)完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。
对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。
(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
Oracle数据泵备份与恢复实例
SQL> conn / as sysdba已连接。
SQL> create directory mydump as 'd:\oracle\mydump';SQL> Grant read,write on directory mydump to test;授权成功。
创建目录d:\oracle\mydump。
C:\Users\David>expdp test/test directory=mydump dumpfile=test.dmp logfile=test.log tables=t1Export: Release 11.2.0.1.0 - Production on 星期三7月16 22:52:58 2014Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options启动"TEST"."SYS_EXPORT_TABLE_01": test/******** directory=mydump dumpfile=test.dmp logfile=test.log tables=t1正在使用BLOCKS 方法进行估计...处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA使用BLOCKS 方法的总估计: 64 KB处理对象类型TABLE_EXPORT/TABLE/TABLE处理对象类型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS. . 导出了"TEST"."T1" 5.507 KB 5 行已成功加载/卸载了主表"TEST"."SYS_EXPORT_TABLE_01"****************************************************************************** TEST.SYS_EXPORT_TABLE_01 的转储文件集为:D:\ORACLE\MYDUMP\TEST.DMP作业"TEST"."SYS_EXPORT_TABLE_01" 已于22:53:09 成功完成需要将原表删除。
oracle数据库备份恢复
GS下Oracle数据库备份恢复
注意:在对数据库做任何备份恢复操作时,请先备份数据库,以免丢失数据
本文将以一个例子来说明GS下oracle数据库帐套的备份恢复
原有数据库:cwbase002
恢复数据库:cwbase003
1.首先备份原有数据库cwbase002,使用如下命令:密码和oracle 服务名请改动
exp LC0029999/password@oradb file=d:\back\1\002.dmp owner=LC0029999 2.备份完成后会得到d:\back\1\002.dmp这个文件。
接下来,如果需要恢复到cwbase003,如果cwbase003已经存在的话,如果cwbase003正在使用,请谨慎处理,在确定cwbase003没用的话,删除cwbase003这个库,执行如下sql:Drop user lc0039999 cascade ;
如果cwbase003不存在,请新建lc0039999用户后再导入。
lc0039999需要有dba、resource角色,和unlimited tables权限,表空间用cwbase3,临时表用temp
3.在建好了lc0039999这个用户后,执行如下sql执行数据库恢复:密码和oracle 服务
名请改动
Imp lc0039999/password@oradb file= d:\back\1\002.dmp fromuser=LC0029999 touser=LC0039999
4.在恢复完数据库后,需要修改lc0039999用户下的syap表和system用户下
appinstmantab表,具体配置请查询数据依据帐套信息进行修改。
oracle 故障恢复案例
oracle 故障恢复案例Oracle故障恢复案例1. 数据库实例崩溃恢复某公司的Oracle数据库实例突然崩溃,导致所有业务无法正常运行。
经过专业技术人员的分析,发现是由于服务器硬件故障导致的。
为了恢复数据库,技术人员采取了备份恢复的方式,通过使用备份数据文件和重做日志文件,成功将数据库实例恢复到崩溃前的状态。
2. 数据文件损坏的恢复某公司的数据库中的一个数据文件损坏,导致部分数据无法正常访问。
为了解决这个问题,技术人员首先通过文件系统级别的工具检查数据文件的完整性,并确定了损坏的范围。
然后,他们使用备份数据文件和重做日志文件进行恢复,成功修复了损坏的数据文件,并使数据库恢复正常。
3. 表空间故障的恢复某公司的数据库中的一个表空间突然出现故障,导致表空间中的所有表无法访问。
为了解决这个问题,技术人员首先通过Oracle的故障自诊断工具诊断表空间故障的原因,并确定了故障的范围。
然后,他们使用备份的表空间文件和重做日志文件进行恢复,成功修复了故障的表空间,并使其正常运行。
4. 数据库日志文件损坏的恢复某公司的数据库日志文件突然损坏,导致数据库无法正常启动。
为了恢复数据库,技术人员首先检查了日志文件的完整性,并确定了损坏的范围。
然后,他们使用备份的日志文件进行恢复,成功修复了损坏的日志文件,并使数据库恢复正常。
5. 控制文件丢失的恢复某公司的数据库控制文件丢失,导致数据库无法正常启动。
为了解决这个问题,技术人员首先通过文件系统级别的工具检查控制文件的完整性,并确定了丢失的范围。
然后,他们使用备份的控制文件进行恢复,成功恢复了丢失的控制文件,并使数据库正常启动。
6. 数据库块损坏的恢复某公司的数据库中的一个数据块突然损坏,导致数据库无法正常读取该块的数据。
为了解决这个问题,技术人员首先通过Oracle的故障自诊断工具诊断数据块故障的原因,并确定了损坏的范围。
然后,他们使用备份的数据块进行恢复,成功修复了损坏的数据块,并使数据库恢复正常。
实验8-Oracle数据库备份与恢复
实验8-Oracle数据库备份与恢复实验8 Oracle数据库备份与恢复1 实验目的(1)掌握Oracle数据库各种物理备份方法。
(2)掌握Oracle数据库各种物理恢复方法。
(3)掌握利用RMAN工具进行数据库的备份与恢复。
(4)掌握数据的导入与导出操作。
2 实验要求(1)对BOOKSALES数据库进行一次冷备份。
(2)对BOOKSALES数据库进行一次热备份。
(3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数文件、归档日志文件进行备份。
(4)利用热备份恢复数据库。
(5)利用RMAN备份恢复数据库。
(6)利用备份进行数据库的不完全恢复。
3 实验步骤(1)关闭BOOKSALES数据库,进行一次完全冷备份。
select file_name from dba_data_files;select member from v$logfile;select value from v$parameter where name='control_files';(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。
CREATE TABLE COLD(ID NUMBER PRIMARY KEY,NAME V ARCHAR2(25));(3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。
(4)将BOOKSALES数据库设置为归档模式。
1.1 shutdown immediate 正常关闭数据1.2 startup mount;将数据库启动到mount状态3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。
alter database flashback off1.3 alter database archivelog;发出设置归档模式的命令1.4 alter database open;打开数据库 1.5 再次正常关闭数据库,并备份所有的数据文件和控制文件1.6 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认1.6.1 Database log mode 为Archive Mode说明当前的数据库为归档模式1.6.2 Automatic archival 为Enable说明启动了自动归档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle备份与恢复案例By Piner 一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。
恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。
数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。
实例恢复将数据库恢复到故障之前的事务一致状态。
如果在在线后备发现实例故障,则需介质恢复。
在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。
如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。
该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。
(3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。
文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。
这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。
(1)完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。
对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。
(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。
不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。
基于撤消(CANCEL)恢复:在某种情况,不完全介质恢复必须被控制,DBA可撤消在指定点的操作。
基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复操作。
基于时间(TIME)和基于修改(SCN)的恢复:如果DBA希望恢复到过去的某个指定点,是一种理想的不完全介质恢复,一般发生在恢复到某个特定操作之前,恢复到如意外删除某个数据表之前。
第二章. 数据库恢复案例测试环境2.1 数据库环境以下的所有案例都是通过测试经过,环境为:OS:Windows 2000 ServerDB:Oracle 816DBNAME:TEST数据文件:SQL> select file#,status,enabled,name from v$datafile;FILE# STATUS ENABLED NAME----------------------------------------------------------------1 SYSTEM READ WRITE D:\Oracle\ORADATA\TEST\SYSTEM01.DBF2 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\RBS01.DBF3 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\USERS01.DBF4 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\TEMP01.DBF5 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\TOOLS01.DBF6 ONLINE READ WRITE D:\Oracle\ORADATA\TEST\INDX01.DBF控制文件:SQL> select * from v$controlfile;STATUS NAME--------------------------------------------------------------------- D:\Oracle\ORADATA\TEST\CONTROL01.CTLD:\Oracle\ORADATA\TEST\CONTROL02.CTLD:\Oracle\ORADATA\TEST\CONTROL03.CTL联机日志:SQL> select * from v$logfile;GROUP# STATUS MEMBER---------------------------------------------------------------------1 STALE D:\Oracle\ORADATA\TEST\REDO01.LOG2 D:\Oracle\ORADATA\TEST\REDO02.LOG3 STALE D:\Oracle\ORADATA\TEST\REDO03.LOG2.2 数据库备份脚本冷备份脚本:rem script:coldbak.sqlrem creater:chenjipingrem date:5.8.2003rem desc:offline full backup database--connect databaseconnect internal/password;--shutdown databaseshutdown immediate;--Copy Data file!xcopy d:\Oracle\oradata\test\*.dbf d:\database/H/R;--Copy Control file!xcopy d:\Oracle\oradata\test\*.ctl d:\database/H/R;--Copy Log file!xcopy d:\Oracle\oradata\test\*.log d:\database/H/R;--startup databasestartup;说明:1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目录下),如果成功备份,所有文件是一致的;2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次;3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效;4、冷备份建议下人工干预下执行。
数据库OS热全备份脚本rem script:hotbak.sqlrem creater:chenjipingrem date:5.8.2003rem desc:backup all database datafile in archive--connect databaseconnect internal/password;--archivealter system archive log current;--startalter tablespace system begin backup;!xcopy d:\Oracle\oradata\test\system01.dbf d:\databak/H/R;alter tablespace system end backup;alter tablespace rbs begin backup;!xcopy d:\Oracle\oradata\test\rbs01.dbf d:\databak/H/R;alter tablespace rbs end backup;alter tablespace users begin backup;!xcopy d:\Oracle\oradata\test\users01.dbf d:\databak/H/R;alter tablespace users end backup;alter tablespace tools begin backup;!xcopy d:\Oracle\oradata\test\tools01.dbf d:\databak/H/R;alter tablespace tools end backup;alter tablespace indx begin backup;!xcopy d:\Oracle\oradata\test\indx01.dbf d:\databak/H/R;alter tablespace indx end backup;--end--bak control file--binaryalter database backup controlfile to 'd:\databak\controlbinbak.000'; --asciialter database backup controlfile to trace;alter system archive log current;说明:1、热备份必须在数据库归档方式下才可以运行;2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志;3、归档日志至少需要一次完整备份之后的所有日志;4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效。
RMAN备份只讲叙有恢复目录的情况,如果没有恢复目录,情形大致相似。
以下是RMAN的热备份全备份的脚本:# script:bakup.rcv# creater:chenjiping# date:5.8.2003# desc:backup all database datafile in archive with rman# connect databaseconnect rcvcat rman/rman@back;connect target internal/virpure;# start backup databaserun{allocate channel c1 type disk;backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database include current controlfile;sql 'alter system archive log current';release channel c1;}# end说明:1、数据库必须运行在归档模式下;2、 RMAN将自动备份数据文件,运行可靠;3、归档日志另外备份处理,但至少需要保存一次备份来的日志;4、没有必要用RMAN做冷备份,效果不好。