Oracle数据库备份和恢复操作手册
oracle 数据库的备份与恢复

– $ imp system/manager file=tank log=tank fromuser=seapark tables=(a,b)
第七页,共51页。
数据库备份和恢复概述
——备份类型
Oracle数据库的备份包括以下两种类型:
备份
物理备份
逻辑备份
• 对数据库的操作系统物理文件 (如数据文件、控制文件和重做日 志文件等)的备份 • 有脱机备份(冷备份)和联机
备份(热备份)
• 对数据库逻辑组件(如表、视 图和存储过程等数据库对象)
– $ exp seapark/seapark file=tank log=tank tables=tank – $ exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
导出一个或多个指定表
第十八页,共51页。
逻辑备份和恢复(导出/导入)
– $ exp system/manager file=bible_db log=dible_db full=y rows=n 导出数据库定义而不导出数据
– $ exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold) 导出一个或一组指定用户所属的全部表、索引和其他对象
第四页,共51页。
本章内容导航
数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作
Oracle:备份、还原数据库

Oracle:备份、还原数据库⼀ . 数据的导⼊与导出1. 数据的导出:输⼊exp 指令,没有数据的表不导出。
2. 数据的导⼊:进⼊到备份⽂件所在路径,输⼊imp 指令。
实际⼯作中不使⽤这种⽅式导出。
⼆. 数据库的冷备份:常⽤的说明:冷备份,称为归档备份,指的是数据库要关闭服务,备份如下⽂件: 控制⽂件:控制着oracle 的实例信息 “v$controlfile” 数据字典⽂件 重做⽇志⽂件:“v$logfile”数据⽂件:"v$datafile"核⼼配置⽂件 (pfile) :""1. 使⽤ sys登陆2. select * from v$controlfile ;select * from v$logfile select * from v$datafile show parameter pfile3, 记录好这些⽂件的路径4. 关闭 Oracle 服务。
shutdown immediate5 拷贝所有备份⽂件6 重新启动服务startup这种备份是允许关闭计算机服务。
参考: ——————————————————————————————————————————————————————————————————————————————Oracle数据导⼊导出imp/expOracle数据导⼊导出imp/exp在cmd的dos命令提⽰符下执⾏,⽽不是在sqlplus⾥⾯,但是格式⼀定要类似于:imp/exp ⽤户名/密码@service_name或oracle_sid full=y file=C:\导出⽂件名称.dmp ignore=yimp 命令是在dos提⽰符下执⾏的,直接cmd后执⾏⽽不是在sql下执⾏的数据导出:1 将数据库完全导出,⽤户名wlj ,密码wlj 导出到D:exportoracle.dmp中exp wlj/wlj@IP地址/orcl file=d:exportoracle.dmp full=yexp wlj/wlj@ip地址/orcl file=d:exportoracle.dmp full=yexp wlj/wlj@ip地址/orcl tables=表名 file=d:exportoracle.dmp full=y--expdp导出数据expdp CCENSE/CCENSE@OracleDB directory = "dpdata1" dumpfile ="oracleExpdp.dmp" logfile = oracleExpdp20161103.log注意:如果出现:EXP-00056: 遇到 ORACLE 错误 12154ORA-12154: TNS: ⽆法解析指定的连接标识符EXP-00000: 导出终⽌失败这个很明显是连接不上你的数据库,你可以查看⼀下你的net manager⾥⾯的服务名有没配置好解决⽅法:1、不再服务端的话,在其它机器可能通过service_name或oracle_sid来访问数据库,注意service_name必须写正确,需要查看oracle net manager 中的数据库的tns配置实例名称(上⾯@后⾯的 orcl)是否与需要连接的⼀样,cmd中使⽤ tnsping orcl 可以ping同的话,就说明没有问题。
Oracle数据库的备份与恢复操作手册(Linux)

CommVault Oracle数据库的备份及恢复For Linux北京同有飞骥科技有限公司上海分公司技术部目录1.iDataAgent for Oracle on Linux安装准备 (2)mV ault软件安装 (2)2.1.在Linux安装iDataAgent For Oracle (2)2.2.在Linux上载卸iDataAgent For Oracle (6)3.配置Oracle备份 (6)3.1.确认RMAN的备份方式 (6)3.2.配置CommVault内oracle子客户端 (7)3.3.建立备份策略 (10)4.Oracle数据恢复 (17)4.1.恢复控制文件 (17)4.2.将数据库启到Mount状态下 (20)4.3.恢复数据文件和归档日志 (20)4.4.重建redolog,并打开数据库 (25)1.iDataAgent for Oracle on Linux安装准备1.版本兼容,详见”Online Book CD”系统需求部分;2.Oracle需要处于自动归档模式下;3.在安装iData Agent For Oracle的过程中要停止oracle数据库,请做好停机准备;4.需要事先确认Oracle数据库的备份方式,本文档采用NOCATALOG的方式备份恢复oracle数据库。
5.在安装之前,请检查在CommServer和本机上的/etc/hosts文件中是否写入了CommServer和本机的IP地址及对应的主机名;mVault软件安装2.1. 在Linux安装iDataAgent For Oracle1.运行安装程序;2.接受安装协议;3.选择安装类型,本项目中选择安装到物理主机;4.选择Galaxy客户端模块;5.基本软件安装,选择备份服务器;6.选择安装路径;7.选择日志存放路径;8.输入Galaxy组名;9.选择客户端使用的存储策略;10.配置ORACLE实例;11.按照提示选择直至完成;2.2. 在Linux上载卸iDataAgent For Oracle1.运行卸载程序;# cd /appbakup/galaxy# ./cvpkgrm2.按ENTER开始卸载;This script will uninstall Galaxy from your machine.Press ENTER to begin ...3.选择要卸载的模块;1) CVGxBase <= Galaxy Base Module2) CVGxIDA <= FileSystem iDataAgent3)CVGxOrIDA <= Oracle iDataAgent4) ExitSubsystem number: [3]选择模块的序列号,用于相应模块的卸载。
(完整版)Oracle数据库备份和恢复操作手册.doc

1ORACLE 数据库数据备份和恢复操作手册1.1. ORACLE 参数设置进入 CMD 操作界面,使用sqlplus 连接数据库,图例 1 数据库连接操作连接语法: sqlplus system/Oracle2013@orcl参数说明参数说明备注sqlplus 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN图例 2 成功连接数据库环境变量设置 (在 Sqlplus 中执行 )create or replace directory <dir_name> as‘c:\tmpdir’;参数说明参数说明备注dir_name c:\tmpdir 路径名称文件路径也可以是另外的随意目录,用单引号括起来。
图例 3 环境变量设置1.2.数据备份备份脚本: expdp system/Oracle2013@orcl directory=file_pathdumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN参数说明参数说明备注expdp 语法命令system 数据库管理员用户名Oracle2013 system 用户密码数据库安装目录的 tnsnames.ora 文件中可以找到orcl 数据库连接标示符Oracle11G 目录:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMINdirectory 文件目录名称导出数据库文件的存放目录dumpfile 数据库文件名称导出数据库文件的文件名logfile 数据库日志文件名称导出数据库的日志文件名称schemas 数据库用户操作:图例 4 数据库备份操作成功导出。
Oracle的数据备份与恢复

第四部分 数据备份(续)
• 联机热备份:
– 前提条件:数据库必须工作在Archivelog模 式 – 要进行的步骤:
• 逐个表空间备份数据文件
– ALTER TAB_SP BEGIN BACKUP; – 拷贝与表空间有关的数据文件; – ALTER TAB_SP END BACKUP;
• 备份归档日志文件
第二部分 相关的背景知识
• 数据备份模式
– 物理备份
• 冷备份:也称脱机备份,是在数据库处于关闭的状态下的 备份操作。 • 热备份:也称联机备份,是在数据库处于打开状态下的备 份操作。
– 逻辑备份
• 整个数据库的逻辑备份 • 指定表的逻辑备份 • 指定用户的逻辑备份
• Oracle数据库工作模式
第二部分 相关的背景知识(续)
– 1、关闭数据库、 – 2、利用操作系统命令移动控制文件 – 3、编辑init.ora文件,重新定义control_files 中的控制文件路径。 – 4、重新启动数据库。
第四部分 数据备份
• 冷备份(脱机备份):
– Shutdown数据库 – 复制所有的数据文件、控制文件、联机重做 日志文件(比较简单的做法是复制database 的整个目录)。 – 重新启动数据库。
– ARCHIVELOG模式:归档日志模式,即当当前联 机日志的记录空间充满后,形成一个归档日志文件 写到系统配置指定的位置。 – NOARCHIVELOG模式:非归档日志模式,不形成 归档日志文件,联机日志切换时把原有的内容覆盖。
• 数据文件:
– 存放表空间的文件(一个表空间可以跨越多个数据 文件),通过操作系统可以对数据文件进行备份。 – 用 SELECT * FROM DBA_DATA_FILES 可以查询 当前数据库中所有的数据文件。
Oracle10g数据库备份与恢复操作手册

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)⽬录前⾔⽂档⽬的 备份与恢复是数据库管理中最重要的⽅⾯之⼀。
Oracle10g数据库的备份与恢复

oracle 10g备份与还原总结一.总述1.数据库归档模式:* 非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式, 这样提高性能* 归档模式:对于数据库数据经常变动,数据库最好用归档模式,这样可以尽量避免数据库数据丢失,使出现问题时灾害降到最低2.非归档模式与归档模式间的切换(在命令窗口下):@检查当前日志操作模式f:\>sqlplus sys/dba as sysdba连接数据库sql>select log_mode from v$database;@关闭数据库,后装载数据库,只能在mount状态下改变日志操作模式sql>startup mount@改变日志模式sql>alter database achivelog;(变为归档方式,否则为nochivelog)sql>alter database open;3.查看归档模式相关信息:@若采用默认设置,归档日志位置在快速恢复区@配置归档日志位置 log_archive_dest_n (n=[1:10])sql>alter system setlog_archive_dest_1 = 'location =c:\demo\archive [optional]';sql>alter system setlog_archive_dest_2 = 'service =standby [mandatory] [reopen]';其中:location 是本地service 是远程optional 无论归档是否成功,都会覆盖重做日志mandatory只有成功归档才会覆盖重做日志reopen 重新归档时间间隔默认是300s@显示归档信息,即显示显示日志操作模式sql>select name,log_mode from v$database;@显示归档日志信息sql>select name,sequence#,first_change# from v$archive_log;sequence#: 归档序列号first_change# : 起始SCN值@显示归档日志位置sql>select dest_name,destination,status from v$archive_dest;dest_name 归档位置参数名destination 位置@显示日志历史信息sql>select * from v$loghist;threade# : 重做线程号sequence# : 日志序列号first_change# : 起始SCN值first_time : 起始SCN发生时间switch_change : 切换SCN值二.非归档模式下的备份与还原. 日志采用覆盖原有日志的方式存储. 出现介质失败时,只能恢复到过去的完全备份点. 数据库OPEN状态是,不能备份数据库. 必须先关闭数据库,再备份,且必须备份所有数据,控制文件1.备份==冷备份@ 先关闭数据库sql>shutdown immediate@ 拷贝所有数据文件,和控制文件2.恢复* 数据文件出现丢失,但备份以来的重做日志内容尚未被覆盖,此时可以完全恢复@装载数据库sql>startup force mount@复制数据文件备份@恢复数据文件sql>recover datafile 1@打开数据库sql>alter database open;* 备份文件的重做日志内容已经被覆盖,则只能还原到备份点@关闭数据库@复制所有数据和控制备份文件至原位置@装载数据库,执行恢复命令sql>startup mountsql>recover database until cancel提示控制文件不再使用原有重做日志@用resetlogs选项打开数据库sql>alter database open resetlogs;三.归档模式. 可以防止数据丢失. 数据处于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 controlfile sql>recover database until time '2004-09-26 19:51:06'using backup controlfile@以resetlogs 方式打开数据库@备份所有数据文件和控制文件。
oracle数据库还原的详细流程

oracle数据库还原的详细流程
Oracle数据库还原的详细流程如下:
1. 关闭Oracle数据库服务:在开始还原之前,需要确保Oracle数据库服务已经关闭。
这样可以避免在还原过程中发生数据冲突或损坏。
2. 确认数据库备份:在开始还原之前,需要确认数据库的备份情况。
数据库的备份可以分为完全备份和增量备份两种。
完全备份是指对整个数据库进行备份,而增量备份是在完全备份的基础上,对新增或修改的数据进行备份。
可以通过查看备份记录或者与负责备份的人员进行沟通来确认备份情况。
3. 选择合适的还原方式:根据备份文件的位置和可用资源,选择适合的还原方式。
例如,如果备份文件在本地磁盘上,可以选择磁盘还原;如果备份文件在云端,可以选择云存储还原。
4. 执行还原操作:根据选择的还原方式,执行相应的操作。
例如,在磁盘还原中,需要将备份文件复制到目标磁盘中。
在云存储还原中,需要将备份文件从云存储下载到本地或直接在云平台上进行还原。
5. 启动Oracle数据库服务:完成还原后,启动Oracle数据库服务,验证数据是否正确加载并可用。
请注意,以上步骤仅供参考,具体操作可能因实际情况而有所不同。
在进行数据库还原时,建议参考Oracle官方文档或咨询专业人士以获取更准确的信息和指导。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1ORACLE数据库数据备份和恢复操作手册1.1.ORACLE参数设置进入CMD操作界面,使用sqlplus连接数据库,图例 1 数据库连接操作连接语法:sqlplus system/Oracle2013@orcl参数说明备注sqlplus 语法命令system 数据库管理员用户名Oracle2013 system用户密码orcl 数据库连接标示符数据库安装目录的tnsnames.ora文件中可以找到Oracle11G目录:C:\app\Administrator\product\11.2.0\dbhome _1\NETWORK\ADMIN图例 2 成功连接数据库环境变量设置(在Sqlplus中执行)create or replace directory <dir_name> as ‘c:\tmpdir’;参数说明备注dir_name 路径名称c:\tmpdir 文件路径也可以是另外的随意目录,用单引号括起来。
图例 3 环境变量设置1.2.数据备份备份脚本:expdp system/Oracle2013@orcl directory= dump log schemas=ARADMIN参数说明备注expdp 语法命令system 数据库管理员用户名Oracle2013 system用户密码orcl 数据库连接标示符数据库安装目录的tnsnames.ora文件中可以找到Oracle11G目录:C:\app\Administrator\product\11.2.0\dbhome _1\NETWORK\ADMINdirectory 文件目录名称导出数据库文件的存放目录dumpfile 数据库文件名称导出数据库文件的文件名logfile 数据库日志文件名称导出数据库的日志文件名称schemas 数据库用户图例 4 数据库备份操作成功导出。
图例 5 成功导出1.3.数据恢复1.3.1.删除ARADMIN用户1.连接数据库sqlplus system/Oracle2013@orcl图例 6 连接数据库2.删除目标数据库中的ARADMIN用户drop user ARADMIN cascade;图例 7 成功删除目标数据库中的ARADMIN用户1.3.2.重新创建ARADMIN用户1.连接数据库sqlplus system/Oracle2013@orcl图例 8 连接数据库2.创建ARADMIN用户create user ARAdmin identified by AR#Admin# default tablespace ARSYSTEM temporary tablespace ARTMPSPC quota unlimited on arsystem;图例 9创建ARADMIN用户3.赋予数据库权限grant alter session,create cluster,create database link,create sequence,createsession,create synonym,create table,create view,create procedure,create trigger,query rewrite to ARAdmin;图例 10 赋予数据库权限1.3.3.数据库导入导入命令:impdp system/Oracle2013@orcl directory= dumpfile=ARADMIN20130606.DAT logfile= ARADMIN20130614.log schemas=ARADMIN图例 11 数据库导入导入完成1.4.EXP/IMP与EXPDP/IMPDP 对比1.0.1运行位置不同1.0.2EXP/IMP不同模式原理:exp/imp 默认会是传统路径,这种模式下,是用SELECT 加数据查询出来,然后写入buffer cache,在将这些记录写入evaluate buffer. 最后传到Export客户端,在写入dump 文件。
直接路径模式下,数据直接从硬盘读取,然后写入PGA,格式就是export的格式,不需要转换,数据再直接传到export 客户端,写入dump 文件.这种模式没有经过evaluation buffer。
少了一个过程,导出速度提高也是很明显.1.0.3EXPDP/IMPDP不同模式原理:expdp/impdp 默认就是使用直接路径的,所以expdp要比exp快。
Network Link这种模式很方便,但是速度是最慢的,因为它是通过insert,select + dblink来实现的。
速度慢也由此可见了。
1.0.4网络和磁盘影响expdp/impdp 是服务端程序,影响它速度的只有磁盘IO。
exp/imp 可以在服务端,也可以在客户端。
所以,它受限于网络和磁盘。
1.0.5功能上的区别更换表空间,用exp/imp 的时候,要想更改表所在的表空间,需要手工去处理一下,如alter table xxx move tablespace_new之类的操作。
用impdp 只要用remap_tablespace='tabspace_old':'tablespace_new'-----------------------------------当指定一些表的时候,使用exp/imp时,tables的用法是tables=('table1','table2','table3')。
expdp/impdp用法是tables='table1','table2','table3'-----------------------------------是否要导出数据行exp (ROWS=Y 导出数据行,ROWS=N 不导出数据行)expdp content(ALL:对象+导出数据行,DATA_ONLY:只导出对象,METADATA_ONLY:只导出数据的记录)====================================================================== 1.0.6使用中的优化事项EXP和DIRECT=Y配合使用的是RECORDLENGTH参数,它定义了Export I/O缓冲的大小,作用类似于常规路径导出使用的BUFFER参数。
建议设置RECORDLENGTH参数为最大I/O缓冲,即65535(64kb)。
其用法如下:如:exp userid=system/manager full=y direct=y recordlength=65535log=exp_full.log--直接路径不能使用在tablespace-mode--直接路径不支持query 参数,query只能在conventional path模式下使用。
-- buffer 选项只对conventional path exp 有效。
对于直接路径没有影响。
对直接路径,应该设置RECORDLENGTH 参数。
-- 对于直接路径下,RECORDLENGTH参数建议设成64k(65535)。
这个值对性能提高比较大----------------------------------------------------------------------IMPOracle Import进程需要花比Export进程数倍的时间将数据导入数据库。
某些关键时刻,导入是为了应对数据库的紧急故障恢复。
为了减少宕机时间,加快导入速度显得至关重要(1)避免I/O竞争Import是一个I/O 密集的操作,避免I/O竞争可以加快导入速度。
如果可能,不要在系统高峰的时间导入数据,不要在导入数据时运行job等可能竞争系统资源的操作。
(2)增加排序区Oracle Import进程先导入数据再创建索引,不论INDEXES值设为YES或者NO,主键的索引是一定会创建的。
创建索引的时候需要用到排序区,在内存大小不足的时候,使用临时表空间进行磁盘排序,由于磁盘排序效率和内存排序效率相差好几个数量级。
增加排序区可以大大提高创建索引的效率,从而加快导入速度。
(3)调整BUFFER选项Imp 参数BUFFER定义了每一次读取导出文件的数据量,设的越大,就越减少Import 进程读取数据的次数,从而提高导入效率。
BUFFER的大小取决于系统应用、数据库规模,通常来说,设为百兆就足够了。
其用法如下:imp user/pwd fromuser=user1 touser=user2 commit=yfeedback=10000 buffer=10240000(4)使用COMMIT=Y选项COMMIT=Y表示每个数据缓冲满了之后提交一次,而不是导完一张表提交一次。
这样会大大减少对系统回滚段等资源的消耗,对顺利完成导入是有益的。
(5)使用INDEXES=N选项前面谈到增加排序区时,说明Imp 进程会先导入数据再创建索引。
导入过程中建立用户定义的索引,特别是表上有多个索引或者数据表特别庞大时,需要耗费大量时间。
某些情况下,需要以最快的时间导入数据,而索引允许后建,我们就可以使用INDEXES=N 只导入数据不创建索引,从而加快导入速度。
我们可以用INDEXFILE选项生成创建索引的DLL脚本,再手工创建索引。
我们也可以用如下的方法导入两次,第一次导入数据,第二次导入索引。
其用法如下:imp user/pwd fromuser=user1 touser=user2 commit=yfeedback=10000 buffer=10240000 ignore=y rows=y indexes=n-----------------------------------imp user/pwd fromuser=user1 touser=user2 commit=yfeedback=10000 buffer=10240000 ignore=y rows=n indexes=y(6)增加 LARGE_POOL_SIZE如果在init.ora 中配置了MTS_SERVICE,MTS_DISPATCHERS等参数,tnsnames.ora中又没有(SERVER=DEDICATED)的配置,那么数据库就使用了共享服务器模式。
在MTS模式下,Exp/Imp操作会用到LARGE_POOL,建议调整LARGE_POOL_SIZE到150M。
检查数据库是否在MTS模式下: SQL>select distinct server from v$session;如果返回值出现none或shared,说明启用了MTS----------------------------------------------------------------------EXPDP据泵与exp/imp 来说性能有很大的提高,其中影响最大的就是paralle。