您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库逻辑备份方法exp-expdp
Oracle数据库逻辑备份方法exp/expdp,imp/impdpexp/imp简介Export(导出)和Import(导入)程序可以将Oracle数据从Oracle数据库中导出和导入,为用户提供一个在Oracle数据库间移动数据对象的简单方法。Export和Import两者是互补的,Export讲数据按Oracle特定的格式从Oracle数据库写到操作系统文件中。Import读取Export导出的文件,将相应信息恢复到现有数据库中。第一章Export(导出)使用Export,必须要有Oracle数据库上的CREATESESSION特权。要导出其他用户拥有的表,必须有EXP_FULL_DATABASE角色。导出顺序:类型定义、表定义、表数据、表索引、完整性约束、视图、过程和触发器、位图、函数和区域索引1.1导出方式表方式用户方式表空间方式全数据库方式1.2使用Export为了使用Export,在建立数据库后必须运行脚本CATEXP.SQL或CATALOG.SQL。它们只需在数据库上运行一次,在执行导出前不需重新运行。运行Export前,要确保有足够的磁盘或磁带存储空间以写导出文件。若没有足够的空间,则发生写故障,Export中断。1.2.1Export程序的参数BUFFER:缓冲区大小COMPRESS:(Y)是否合并压缩CONSISTENT:(N)一致性CONSTRAINTS:约束(Y)DIRECT:直接路径导出(N)FEEDBACK:点格式显示进度(0)FILE:导出文件名称。(expdat.dmp)FILESIZE:导出文件最大字节数FULL:是否在全数据库方式下导出(N)GRANTS:权限(Y)HELP:显示描述参数的帮助信息(N)INCTYPE:指定增量备份的类型INDEXES:导出索引(Y)LOG:接收报告和错误消息的文件名OWNER:用户导出方式PARFILE:参数文件QUERY:选择表的行的子集RECORD:是否记录系统表(Y)RECORDLENGTH:文件记录长度ROW:到出表数据的行(Y)STATISTICS:优化器统计类型(estimate)TABLES:表方式TABLESPACES:表空间列表TRANSPORT_TABLESPACE:表空间方式(N)USERID:用户名/密码VOLSIZE:每卷磁带中导出文件的最大字节数1.2.2调用Export程序(1)输入命令expusername/passwordPARFILE=filename(2)输入命令expusername/password(3)只输入命令exp1.3警告、错误和完成信息日志文件:可以在日志文件中查找全部Export信息警告信息:非致命错误后Export不中断。这些非致命错误称为警告(warning)致命错误信息:致命错误发生,并中断Export会话。完成消息:Export没有错误而成功1.4直接路径导出Export提供常规路径导出和直接路径导出两种方法导出表数据。常规路径导出使用sqlselect语句从表中提取数据。直接路径导出中,数据从磁盘读到缓冲区高速缓存中,行被直接传输到Export用户直接路径导出提去数据比常规路径导出快1.5Export常见注意事项跨网络传输导出文件远程导出/导入字符集使用不同版本的Export第二章Import(导入)Import程序将Export程序从一个Oracle数据库中导出的数据插入到另一个Oracle数据库中。Export导出的文件只能由Import读取。建议在到入导已有表时,将引用完整性约束使不能,在导入完成后重新是能该约束2.1导入方式表方式用户方式全数据库方式可传输的表空间方式2.2Import程序的参数ANALYZE:导出文件中的sqlanalyze语句,或装入导出时的优化统计。(Y)BUFFER:COMMIT:每组插入后是否提交(N)CONSTRAINTS:(Y)DATAFILES:在表空间导入时,制定要传输导数据库的数据文件DESTROY:数据库文件是否被重用(Y)FEEDBACK:(0)FILE:(expdat.dmp)FILESIZE:导出时指定导入时必须指定FROMUSER:指定包含导入对象的模式列表FULL:(N)GRANTS:(Y)HELP:(N)INNORE:如何处理对象建立错误(N)INCTYPEINDEXES:(Y)INDEXFILE:接收索引建立命令的文件LOG:PARFILE:RECALCULATE_STATISTICS:导入时生成数据库优化器统计RECORDLENGTH:ROWS:(Y)SHOW:屏幕上显示导出文件的内容,而不导入它们,还是导入它们。(N)SKIP_UNUSABLE_INDEXES:是否跳过已被设为不可用的索引。(N)TABLE:导入的表的列表TABLESPACES:TOUSER:指定被导入的用户名列表TRANSPORT_TABLESPACE:TTS_OWNERS:表空间导入时列出可传输表空间中的数据的用户USERIDVOLSIZE2.3调用Import(1)输入命令impusername/passwordPARFILE=filename(2)输入命令expusername/passwordparameters(3)输入命令impusername/password第三章导入导出与字符集导入导出经常遇到的问题:(1)字符集(2)版本3.1字符集导出使用的字符集将会记录在导出文件中,当文件导入时,将会检查导出时使用的字符集设置。如果不同于导入客户端的NLS_LANG设置,字符集将根据导入客户端NLS_LANG设置进行转换。通常在导出时最好把客户端字符集设置得和数据库端相同。两种情况当进行数据导入时,主要存在以下两种情况:(1)源数据库和目标数据库具有相同的字符集:只需设置导出和导入端的客户端NLS_LANG等于数据库字符集即可。(2)源数据库和目标数据库字符集不同:先将导出端客户端的NLS_LANG设置成和导出端的数据库字符集一致,导出数据,然后将导入端客户端的NLS_LANG设置成和导出端一致,导入数据,这样转换发生在数据库端,而且只发生一次。只有当导入端数据库字符集为导出端数据库字符集的严格超集时,数据才能完全导成功,否则,可能会有数据不一致或乱码出现。3.2版本可以跨版本的使用EXP/IMP,但必须正确地使用EXP和IMP的版本:使用IMP的版本匹配数据库的版本使用EXP的版本匹配两个数据库中最低的版本版本跨度不要大Oracle数据泵expdp/impdp数据泵技术是在Oracle10g及以上版本中使用的数据库备份与恢复技术,是一种更自动化、智能化得数据库备份与恢复工具。数据泵技术的特点:1.导入导出速度更快:因为在数据泵导入导出作业中可以启动多个线程,所以可以并行的实现作业,对于移动大数据量,性能显著提高。2.重启失败的作业:这个功能是传统的EXP/IMP程序无法实现的,不论是数据泵导入导出作业停止还是失败,都可以很容易的重启作业。同时也支持手动停止或重启作业。3.实时交互能力:在一个运行的数据泵作业中,可以从其他屏幕或控制终端与当前数据泵作业交互,以监控作业的执行以及更改作业的某些参数。Oracle数据泵技术特点-续4.独立于客户机:因为数据泵技术是基于数据库服务器的,它是数据库服务器的一部分,一旦启动数据泵作业,则与客户机无关。5.支持网络操作:支持在两个联网的数据库服务器之间导入和导出数据文件,也支持直接的将数据从一个数据库导入另一个数据库,而不需要备份文件。网络操作的方式基于数据库连接,在数据库间直接移动数据的方法不需要磁盘存储。6.导入功能更加细粒度:在数据泵技术中,使用INCLUDE和EXCLUDE参数使得数据泵实用程序可以导入或导出更加细粒度的对象,如可以选择只导出过程或函数等。7.支持增量备份以及快速增量备份,使得备份的数据量减少加快了备份速度。数据泵的目录对象数据泵的目录对象。数据泵作业在数据库服务器上创建所有的备份文件,而Oracle要求数据泵必须使用目录对象,以防止用户误操作数据库服务器上特定目录下的操作系统文件。目录对象对应于操作系统上的一个指定目录。如果用户需要自己创建目录对象,需要具有CREATEANYDIRECTORY权限,如下所示,首先向SCOTT用户授权CREATEANYDIRECTORY然后创建属于SCOTT用户的数据泵目录对象。授权过程:SQLconnsystem/oracle@orcl已连接。SQLgrantcreateanydirectorytoscott;授权成功。数据泵的目录对象(续)。数据泵的目录对象(续)。如果使用SYS用户可以直接创建数据泵目录。SQLcreatedirectorypump_diras'f:\pump';目录已创建。我们创建了一目录。该目录可以给其他用户使用,但是必须将读、写该目录的权限赋予用户,我们可以将该目录的读、写权赋予SCOTT用户,如下所示。SQLgrantreadondirectorypump_dirtoscott;授权成功。数据泵导入导出操作实例:1.导出整个数据库,我们使用SYSTEM用户登录数据库,限制备份的数据文件的大小为100M,一旦备份数据文件满,则自动创建一个新的备份文件,使用了替换变量%U来实现备份文件的自动创建,其中NOLOGFILE=Y即不记录备份过程。F:\expdpsystem/oracle@orcldumpfile=pump_dir:mydb3_%u.datfilesize=100mnologfile=yjob_name=tomfull=y。2.导出一个模式我们导出SCOTT模式,在下例中没有SCHEMA参数,但是默认导出登录数据库时的模式对象。D:\expdpscott/tiger@orcldumpfile=pump_dir:scottschema.dmplogfile=pump_dir:scottschema.log数据泵导入导出操作实例:3.导出特定的表,此时使用TABLES参数指定导入的表的列表,如果该表不属于登录的用户,但是登录用户有访问这些表的权限,则在TABLES参数的表必须使用schema.tablename的方式。F:\expdpsystem/oracle@orcldumpfile=pump_dir:scott_tables_%u.dattables=scott.emp,scott.deptnologfile=yjob_name=only_scott4.导出表空间,导出指定表空间使用TABESAPCES参数,如果有多个表空间需要导出,表空间名使用逗号隔开,这里我们使用了PARALLEL参数,指定数据导出并行线程数量,与之对应使用替换变量%U来创建相应数量的备份数据文件,这样每个线程可以独立写一个备份数据文件,提高了导出速度。D:\expdpsystem/oracle@orcldumpfile=pump_dir:users_tbs_%u.dmptablespaces=usersfilesize=100mparallel=2logfile=users_tbs.logjob_name=exp_users_tbsOracle数据泵技术5.只导出数据,使用EXPDP的CONTENT参数,可以指定导出表数据和元数据(对应参数ALL),导出表行数据(对应参数DATA_ONLY)或只导出元数据即表以及其他数据库对象的定义(对应参数METADATA_ONLY)。F:\expdpsystem/oracle@orcldumpfile=pump_dir:mydb_dataonly_%u.datfilesize=100mjob_name=larryfull=ycontent=data_onlylogfile=pump_dir:mydb_exp_dataonly_logOracle数据泵技术6.使用参数文件:在使用EXPDP导出数据时,由于参数很多导致每次执行备份都输入一长串指令,这样不但繁琐而且不易修改,Orac
本文标题:Oracle数据库逻辑备份方法exp-expdp
链接地址:https://www.777doc.com/doc-4272097 .html