oracle 备份恢复语句整理(最全)

合集下载

Oracle数据库备份与还原命令

Oracle数据库备份与还原命令

Oracle数据库备份与还原命令Oracle数据库备份与还原命令数据导出:1 将数据库TEST完全导出,用户名system 密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2 导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)4将数据库中的表table1中的字段filed1 以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1)query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。

不过在上面命令后面加上compress=y就可以了数据的导入1将D:\daochu.dmp中的数据导入TEST数据库中。

imp system/manager@TEST file=d:\daochu.dmp上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上ignore=y 就可以了2 将d:\daochu.dmp 中的表tablel 导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)基本上上面的导入导出够用了。

不少情况我是将表彻底删除,然后导入。

一、/ A注息:你要有足够的权限,权限不够它会提示你。

oracle备份与恢复

oracle备份与恢复
shutdown immediate startup mount alter database archivelog; alter database open; alter system archive log start
设置归档运行
删除恢复
如果误删除了数据文件,可以通过归档日志恢复 如果误删除了表,可以从备份中回复或者通过回闪回复 如果误删除了数据
exp system/aptech parfile='C:\parameters.txt' 使用参数文件导出数据
导入命令 2-1
导入实用程序有如下常用命令参数:
参数 USERID BUFFER COMMIT
FILE FROMUSER TOUSER
FULL TABLES ROWS PARFILE
备份与归档
Oracle 数据库可以运行在两种归档方式:
非归档日志方式 归档日志方式
非归档日志方式可以避免实例故障,但无法避免介质故障。在此方式 下,数据库只能实施冷备份
归档日志方式产生归档日志,用户可以使用归档日志完全恢复数据库
archive log list:查看归档方式 可以通过em设置是否归档运行 手工修改为归档模式
Oracle备份与恢复
java培训
oracle的备份
备份与恢复是数据库管理工作中非常重要的任务之一 oracle提供多种备份方式
物理备份:备份常用的数据文件,配置等 逻辑备份:对逻辑组件(表等)的备份
故障类型
导致数据库操作中止的故障包括四种类型:
故障类型
语句故障
用户进程故障
实例故障
介质故障
在当执用行户当S程OQ序rLa出c语le错句的而过数无程据法中库访发实问生例数的由据逻于库辑硬时故件发障或生可软用导件户致问进语题程句而故故无障障法。。导如致果 用户用进户程编故写继障的续的S运原Q行L因时语是,句异就无常会效断发,开生就连实会接例发或故生异障逻常辑终故止障进程

oracle备份与恢复剖析

oracle备份与恢复剖析

RMAN 备份与恢复实例收藏1. 检查数据库模式:sqlplus /nologconn /as sysdbaarchive log list (查看数据库是否处于归档模式中)若为非归档,则修改数据库归档模式。

startup mountalter database archivelogalter database open2.连接到target数据库命令:connect target / (connect target system/oracle@ora10g,如果数据库没有起来,也可要直接在rman命令下用startup进行启动数据库)可以连接到target database.(rman 一边连接到target数据库,另外一边连接到control file(nocatalog mode),control file 中存储rman 的备份信息)3.用list backupset 命令查看有没有备份的东西4. 常用备份命令:备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_备份归档日志:RMAN> backup archivelog all delete input;======================对整个数据库进行备份==================1.对整个数据库进行全备份(full backup)。

只要输入命令: backup database;2.list backupset 查看备份的具体信息List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time------- ---- -- ---------- ----------- ------------ ---------------1 Full 6.80M DISK 00:00:02 06-DEC-08BP Key: 1 Status: A V AILABLE Compressed: NO Tag: TAG20081206T201041Piece Name: /home/oracle/flash_recovery_area/ORA10G/backupset/2008_12_06/o1_mf_ncsnf_TAG20081206 T201041_4mntz78s_.bkpControl File Included: Ckp SCN: 782019 Ckp time: 06-DEC-08SPFILE Included: Modification time: 06-DEC-08BS(backupset), piece是一个文件,一个BS包含多个piece.3.rman中缺省的参数,可以通过show all ;来进行查看(RMAN configuration parameters),我们在使用backup database命令中,可以把这些default value 用固定的值来进行替代.4.我们可以把备份的文件才备份的目录中拷贝到磁带上,然后删除备份目录下面的备份文件,如果下次需要恢复的话,只要把文件重新拷回到用来的备份目录就可以了5.查看control file 文件中的备份信息(因为我们做的备份是在nocatalog模式下),control file 在/u01/oracle/oradata/ora10g目录下,由于control file 是个二进制文件,要查看control file 文件中的内容,用strings control03.ctl,发现control03.ctl中有rman备份的信息了====================0级增量备份===============概念:全备份和0级增量备份。

oracle数据库备份与恢复

oracle数据库备份与恢复
‘C:\db02\new.dbf’ ; 6. 使数据文件联机: ALTER DATABASE DATAFILE
‘C:\db02\new.dbf’ ONLINE;
恢复重做日志
❖ 当前日志组损坏 ❖ 非活动日志组损坏
当前日志组损坏
❖ OPEN状态:清除当前日志组 ALTER DATABASE CLEAR
NOARCHIVELOG
LGWR
LGWR
日志组1
日志组2
❖ 新内容覆盖旧内容 ❖ 只能在关闭数据库时进行备份 ❖ 只能恢复到完全备份点 ❖ 必须备份完整数据库
ARCHIVELOG
LGWR
日志组1
ARCH LGWR
日志组2
ARCH LGWR
日志组1
ARCH LGWR
日志组2
❖ 只有归档后新内容才能覆盖旧内容 ❖ 允许在数据库打开时备份 ❖ 可以完全恢复数据库
UNARCHIVED LOGFILE GROUP 1; ❖ MOUNT状态:不完全恢复
非活动日志组损坏
❖ 增加新日志组 ALTER DATABASE ADD LOGFILE
‘g:\test\log3a.log’ SIZE 1M; ❖ 删除损坏日志组 ALTER DATABASE DROP
LOGFILE GROUP 1;
第一章 备份与恢复简介
❖ ORACLE恢复结构和后台管理 ❖ 备份与恢复配置 ❖ 错误分类
ORACLE恢复结构和后台进程
用户进程
服务器 进程
instance
数据高 重做日志 速缓存 缓冲区
大池 共享池
SMON DBWn CKPT PMON LGWR ARCH
参数文件 口令文件
控制文件
数据文件

orcle数据库备份语句

orcle数据库备份语句

orcle数据库备份语句Oracle数据库备份是一项非常重要的任务,可以保障数据的安全性和完整性。

在进行数据库备份时,我们可以使用不同的语句和方法来完成备份操作。

以下是一些常用的Oracle数据库备份语句:1. 使用RMAN备份整个数据库:RMAN是Oracle推荐的备份工具,可以使用以下语句备份整个数据库:```RMAN> BACKUP DATABASE;```2. 使用RMAN备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```RMAN> BACKUP TABLESPACE tablespace_name;```3. 使用RMAN备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```RMAN> BACKUP DATAFILE 'datafile_path';4. 使用RMAN备份指定控制文件:控制文件是数据库的关键组成部分,可以使用以下语句备份控制文件:```RMAN> BACKUP CURRENT CONTROLFILE;```5. 使用RMAN备份归档日志:归档日志包含了数据库的所有更改记录,可以使用以下语句备份归档日志:```RMAN> BACKUP ARCHIVELOG ALL;```6. 使用EXPDP备份数据库:EXPDP是Oracle提供的数据泵工具,可以使用以下语句备份整个数据库:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp full=yes;7. 使用EXPDP备份指定表:如果只需要备份数据库中的特定表,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name;```8. 使用EXPDP备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tablespaces=tablespace_name;```9. 使用EXPDP备份指定用户:如果只需要备份数据库中的特定用户,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp schemas=user_name;```10. 使用EXPDP备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp filesperset=1 include=datafile:'datafile_path';```总结:以上是一些常用的Oracle数据库备份语句,通过使用不同的备份语句可以实现对整个数据库、指定表空间、指定数据文件、归档日志等的备份。

orcal数据备份语句

orcal数据备份语句

orcal数据备份语句Oracle数据库备份语句是数据库管理员经常使用的重要工具,它可以保护数据库的数据安全,防止数据丢失或损坏。

以下是一些常用的Oracle数据库备份语句:1. 全备份语句:RMAN> BACKUP DATABASE;这个语句将对整个数据库进行备份,包括数据文件、控制文件和日志文件。

2. 表空间备份语句:RMAN> BACKUP TABLESPACE example;这个语句将备份指定的表空间,可以用于恢复该表空间的数据。

3. 数据文件备份语句:RMAN> BACKUP DATAFILE 1 FORMAT '/backup/datafile1.bak';这个语句将备份指定的数据文件,可以用于恢复该数据文件的数据。

4. 控制文件备份语句:RMAN> BACKUP CURRENT CONTROLFILE FORMAT '/backup/controlfile.bak';这个语句将备份当前的控制文件,以便在需要时进行恢复。

5. 归档日志备份语句:RMAN> BACKUP ARCHIVELOG ALL FORMAT '/backup/archivelog.bak';这个语句将备份所有归档日志文件,用于保留数据库变更的历史记录。

6. 增量备份语句:RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;这个语句将备份已更改的数据块,可以用于快速备份大型数据库。

7. 压缩备份语句:RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;这个语句将备份数据库并使用压缩备份集来减小备份文件的大小。

8. 备份到远程服务器语句:RMAN> BACKUP DATABASE FORMAT '/backup/%d_%T_%U' TAG 'PROD_BACKUP'2> REMOTE 'ssh user@remotehost "/backup"' SECTION SIZE 10M;这个语句将备份数据库并将备份文件传输到远程服务器上的指定路径。

oracle数据库备份恢复

oracle数据库备份恢复

2.数据库备份应用
(1) 从备份中把丢失的文件恢复到其原来位置 cp/db10/oracle/CC1/data01.dbf/db03
/oracle/CC1/data01.dbf
2.数据库备份应用
(2) 安装数据库 ORACLE_SID=CC1;export
ORACLE_SID ORAENV_ASK=NO;export
导入文件:EXPDAT.DMP>XS.DMP
/*输入要导入的导出转储文件名*/ 输入插入缓冲区大小(最小为919230720> /*使用默认设置,然后回车*/
2.导入
经由常规路径导出由EXPORT:V10.02.00创建 的文件已经完成ZHS16GBK字符集和 AL16UTF16 NCHAR字符集中的导入只列出导 入文件的内容(yes/no):no> 由于对象已存在,忽略创建错误(yes/no no> 导入权限(yes/no):yes> 导入整个导出文件(yes/no):no>
表9.1 Export选项
表9.1 Export选项
1.导出
【例1】以交互模式进行数据库XSCJ的表XS的导出。 C:\exp /*在命令提示符下输入EXP,然后回车*/ Export: Release 10.2.0.1.0 – Production on 星期四 6月9 15:19:19 2019 Copyright <C> 1992,2019, Oracle. All rights reserved.
…正在导入表 22行被导入源自“XS”准备启用约束条件…
成功终止导入,但出现警告。
2.导入
(2)参数模式 参数模式其实就是将命令行中命令后面所带 的参数写在一个参数文件中,然后再使用命 令,使后面带一个调用该文件的参数。可以 通过普通的文本文件编辑器来创建这个文件。 为了便于标识,将该参数文件命名为.parfile 的后缀。以下是一个参数文件的内容:

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库impexp导入导出命令(备份与恢复)

Oracle数据库imp/exp导入导出命令(备份与恢复)Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。

今天在这里主要讲一下用命令行来操作oracle数据导入和导出:备份数据1、获取帮助:exp help=y2. 导出一个完整数据库exp user/pwd@instance file=path full=y示例:exp system/system@xc file = c:/hehe full =yimp tax/test@tax file=d:/dbbak.dmp full=y3 、导出一个或一组指定用户所属的全部表、索引和其他对象exp system/manager file=seapark log=seapark owner=seaparkexp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)示例:exp system/system@xc file=c:/hehe owner=uep4、导出一个或多个指定表exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table)恢复数据1. 获取帮助imp help=y2. 导入一个完整数据库imp system/manager file=bible_db log=dible_db full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象imp system/manager file=seapark log=seapark fromuser=seaparkimp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)4. 将一个用户所属的数据导入另一个用户imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copyimp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)5. 导入一个表imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)****************************************************利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。

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

Oracle备份恢复场景总结一、数据文件、表空间恢复1、数据库文件恢复1>场景一:问题描述:test.dbf丢失,有RMAN备份。

重启报错:Startup;ORA-01157: cannot identify/lock data file 5 - see DBWR trace file ORA-01110: data file 5: '/oracle/app/oracle/oradata/orcl/test01.dbf'run{startup mount;allocate channel ch00 type 'SBT_TAPE';restore datafile 5;recoverdatafile 5;alter database open;release channel ch00;}2>场景二问题描述:模拟test表空间损坏,删除数据文件(恢复到新目录)旧目录:/oracle/app/oracle/oradata新目录: /home/oraclerun{allocate channel ch00 type 'SBT_TAPE';sql 'alter database datafile 5 offline';setnewname for datafile 5 to '/home/oracle/test01.dbf';restoredatafile 5;switchdatafile 5;recoverdatafile 5;sql 'alter database datafile 4 online';release channel ch00;}说明:set newname for 告诉RMAN 还原数据文件的新位置在哪里。

这个命令在restore 前出现。

switch datafile更新controlfile,记录这个新位置。

这个命令要在recover 前出现2、表空间恢复恢复误删除表空间(已备份),RMAN 必须通过备份的控制文件(与之配套的老控制文件)进行恢复。

run{startupnomount;allocate channel d1 type sbt;restorecontrolfile from '/bk_43_1_920726015';sql 'alter database mount';set until time '2016-08-24 13:17:16';restore database;recover database;alter database open read only;release channel d1;}确保没问题在:shutdown abort;startup mount;alter database open resetlogs;二、控制文件恢复1、场景一:控制文件自动备份的恢复startupnomountset dbidxxxx需指定DBIDrestorecontrolfilefrom autobackup;alter database mount;recover database;alter database open resetlogs;如何寻找DBID?1.既然是默认路径,那么就去默认路径寻找,一般在$ORACLE_HOME/dbs目录下,例如c-361654012-20150312-04,其中361654012就是DBID2.在数据文件的头部含有DBID2、场景一:控制文件从非默认地方恢复这里控制文件从nbu备份的磁带上恢复备份路径startupnomount#从本地恢复restore controlfile from ‘/u01/c-361654012-20150312-04’;在此之前无需指定DBID 或者#从SBT_TAPE恢复restorecontrolfile from '/cntrl_23_1_920645270';run{allocate channel d1 type sbt;restorecontrolfile from '/cntrl_23_1_920645270';sql 'alter database mount';recover database;sql 'alter database open resetlogs';release channel d1;}注释:1>、restore controlfile必须写在run块了,否则报错:RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece2>sbt的磁带号-/cntrl_23_1_920645270可以从已备份成功的任务里查看。

三、Redo 文件恢复联机重做日志的3种状态:current 当前inactive 非活动active 活动观察数据恢复是否需要联机重做日志来恢复。

1.inactive日志丢失的恢复—实例恢复不需要2.active日志丢失的恢复:日志组对应的脏块还没有从data buffer 写入到data file,不能被覆盖(但已写入到归档里)—实例恢复需要3.current日志丢失的恢复—实例恢复需要1、场景一:inactive日志丢失的恢复1>正常关闭数据库后(redo的丢失就属于inactive日志丢失的恢复)shutdown immediaterm redo*startup mountalter database clear logfile '/u01/app/oracle/oradata/ortest/redo01.log';## alter database clear logfile group n;也行alter database clear logfile '/u01/app/oracle/oradata/ortest/redo03.log';alter database clear unarchivedlogfile '/u01/app/oracle/oradata/ortest/redo02.log';alter database open;此情况不会丢失数据。

起来后多切几遍日志,看是否正常:alter system switch logfile;注意事项:必须clear 完非current log之后,才能clear unarchived current log(当你不带参数unarchived而clear当前日志的时候会提示你日志需要归档)。

2>非关闭数据库后(inactive日志丢失)shutdown abortrm redo01.logstartup mountalter database clear logfile '/u01/app/oracle/oradata/ortest/redo01.log';alter database open;此种情况不会丢失数据2、场景二:active日志丢失非正常关闭数据库,active日志丢失shutdown abortrm redo01.logstartup mountrecover database until cancel;alter database open resetlogs;此种情况不会丢失数据。

(active的日志已写入归档)3、场景三:current日志丢失此种情况会丢失数据:shutdown abortrm redo01.logstartup mountalter system set "_allow_resetlogs_corruption"=true scope=spfile;添加隐藏参数recover database until cancel;alter database open resetlogs;四、不完全恢复RMAN不完全恢复:三个标准模式:基于time、基于scn和基于sequence还有一种是基于cancel的恢复(注意是在SQL下执行)在不完全恢复时,有时为了保险往往一步把数据库open read only,确保没问题再open resetlogs:alter database open read only;启动到mount下执行:run {allocate channel c1 type disk;allocate channel c2 type disk;set until time '2016-06-06 11:54:05';restore database;recover database;alter database open resetlogs;}//基于scn的方法与基于time 相似,语法是set until scn 6689163;//基于日志的方法类似手工恢复的例子,语法是set until sequence 3;//有时报错格式不对恢复前执行://linux操作系统:export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'五、database恢复1、原机器恢复1>恢复spfile文件-到nomount状态:可以从数据库模板里随便找个pfile起到mount下,再恢复spfile。

因为分配channel 必须得在nomount下面:rman>run{allocate channel c1 type sbt;restorespfile from '/al_63_1_920727874'; release channel c1;}2>恢复控制文件-到mount状态run{allocate channel c1 type sbt; restorecontrolfile from '/cntrl_64_1_920727890'; sql 'alter database mount';release channel c1;}3>恢复数据文件-以read only打开run{allocate channel c1 type sbt;allocate channel c2 type sbt;allocate channel c3 type sbt;allocate channel c4 type sbt;set until time '2016-08-24 13:40:00';restore database;recover database;sql 'alter database open read only';release channel c1;release channel c2;release channel c3;release channel c4;}注释:查看恢复用到的截止时间戳:用list backup;查看备份的归档最后的时间:4>打开数据库确定无误后,已resetlogs打开数据库:shutdown abort;startup mount;alter database open resetlogs;2、异机恢复:参考原机器恢复,主要的就是,再每个run里面写着一条:run{….SEND 'NB_ORA_CLIENT=rac1;…}rac1是nbu上原机器的client名字。

相关文档
最新文档