第一次写博客,希望以后能坚持。在oracle之路上,还望得到前辈及同学们的指教。
怕什么真理无穷,进一寸有一寸的欢喜。------胡适 共勉了!
话不多讲,这两天看了一下EXP和IMP,大概整理了一下,简单的笔记一下,共同学习。
1、简述
EXP和IMP是Oracle Database 10g 之前的工具。但10g版本及后续版本都保留了此工具。说明它仍有他的优势所在,比如它们具有跨版本、跨平台的特性,甚至支持跨字符集的数据迁移,最重要的是操作简单,只要执行IMP/EXP命令,指定相应的参数就可以实施导入/导出数据的任务了。当然它也存在相当的缺点:它不支持增量备份(曾经支持),而且对大规模数据库的导入/导出效率均较差,这是因为受限于它的处理数据的方式。
2、命令说明
2.1 导出(EXPORT)
导出就是使用工具EXP将数据库部分或全部对象的结构和数据导出,并存储到OS文件中的过程。
2.1.1 EXP常用命令说明
导出使用exp命令来完成,使用该命令可以带有多个选项,简单说几个常用的:
1、buffer
该选项用于指定提取行数据时的缓冲区尺寸。
2、file
该选项用于指定导出文件名,默认名称为expdat.dmp
3、filesize
该选项用具指定导出文件的最大尺寸。
4、full
该选项指定数据库的导出模式,默认值是N,当设置为Y时,导出除SYS外所有其他方案的对象。
5、help
该选项用于指定是否显示exp命令的帮助信息,默认N。在应用中若有问题可以使用该命令查询。
6、log
该选项用于指定到处日志文件的名称,默认不生成导出日志文件。
7、owner
该选项用于指定用户导出模式。普通用户只能导出其自身的方案,若想导出其他用户方案,须有exp_full_database的角色或dba角色。
8、parfile
该选项用于指定导出工具要使用的参数文件名。若经常使用exp导出数据,可以将命令放到参数文件中,然后导出时调用该参数文件。
9、query
该选项用于指定where条件子句,从而导出表的部分数据。
10、rows
该选项用于指定是否导出表行数据,默认Y,若设置为N,则只导出表结构,而不导出数据。
11、tables
该选项用于指定导出表。普通用户只能导出自身方案的表,若想导出其他用户方案的表,须有exp_full_database的角色或dba角色。
12、tablespaces
该选项用于指定表空间导出模式。使用该选项时,将导出指定表空间上的所有表。需要注意,使用该选项时,要求用户具有dba角色或exp_full_database的角色。
13、userid
该选项用于指定执行到处操作的用户名、口令和连接字符串。需要注意:当使用特权用户身份导出时,必须用单引号引住(userid=‘sys/admin as sysdba’),因为中间有空格;另外,如果userid是exp后的第一个选项,可以省略userid。
2.1.2 调用EXP
EXP是客户端的工具,该工具既可以在Oracle客户端使用,也可以在Oracle服务器端使用。当在客户端使用时,必须带有连接字符串;在服务器端使用时可以不带连接字符串。导出包括导出表、导出方案、导出数据库3中模式。
1、导出表
导出表是指使用exp将一个或多个表的结构和数据存储到OS文件中,导出表是使用tables选项完成的。普通用户可以导出其方案的所有表,但如果要导出其他方案的表,就需要该用户拥有dba角色或exp_full_database的角色。导出表时,默认情况下也会将相应表上的所有索引、触发器、约束导出。
示例如下:
exp scott/tiger@demo tables=dept,emp file=tab.dmp
2、导出方案
导出方案是指使用exp将一个或多个方案中的所有对象和数据存储到OS文件中,导出方案是使用owner选项完成的。普通用户可以导出其自身的方案,如要导出其他方案,
则需要该用户拥有dba角色或exp_full_database的角色。当用户导出自身方案时,可不指定owner选项。
示例如下:
exp scott/tiger@demo file=tab.dmp
3、导出数据库
导出数据库是指使用exp将所有数据库对象及其数据存储到特定OS文件中,导出数据库使用full选项完成。导出数据库要求用户必须具有dba角色或exp_full_database的角色,并且导出数据库不会导出SYS方案的任何对象。
示例如下:
exp system/manager@demo full=y file=full.dmp
2.2 导入(IMPORT)
导入就是使用工具IMP将OS文件中的对象结构和数据装载到数据库中的过程。
2.2.1 IMP常用命令说明
导入使用imp命令来完成,使用该命令可以带有多个选项,简单说几个常用的:
1、buffer
该选项用于指定传送行数据时的缓冲区尺寸。
2、datafiles
该选项值为Y时,用于指定要被搬移到目标数据库的数据文件列表。
3、file
该选项用于指定导入要使用的转储文件名。
4、filesize
该选项用于指定导出文件的最大尺寸。如果数据库对象数据被分布到多个导出文件中,导入时必须指定filesize选项。
5、full
该选项用于指定导入转储文件的所有内容,默认值为Y,设置为Y时,会将导出的文件所有内容导入到数据库中。
6、help
IMP的帮助信息。例:imp help=y
7、log
用于指定导入日志文件名称,默认情况下不生成导入日志文件。
8、parfile
该选项用于指定导入工具要使用的参数文件名。类似exp的该同名属性。
9、rows
该选项用于指定是否导入表行数据,默认值Y,当设置为N时,只导入表结构,而不导入数据。
10、tables
该选项用于指定导入表或表分区,例: imp scott/tiger tables=dept,emp file=a.dmp
11、tablespaces
该选项用于指定导入特定表空间上所有对象。使用tablespaces选项时,会导入特定表空间上的所有表。需要注意:使用tablespaces选项时,用户要具有imp_full_database或dba角色,并且,必须将full选项设置为Y。
示例:imp system/manager file=a.dmp tablespaces=user01 full=y
12、touser
该选项用于指定将特定方案对象导入到其他用户。使用该选项时,用户要具有imp_full_database或dba角色。
13、fromuser
该选项用于指定从导出文件中摘取并导入特定用户的对象。使用该选项导入其他方案的对象时,用户要具有imp_full_database或dba角色。
14、userid
用于指定导入操作的用户名、口令和连接字符串。痛emp的userid。
2.1.2 调用IMP
同exp类似,导入也包括导入表、导入方案、导入数据库3种模式。
1、导入表
是指使用imp将exp文件中的表结构及其数据装载到数据库中,导入表是使用tables选项完成的。普通用户可以直接导入其所拥有的表,但如果要将表导入到其他用户中,则要求该用户必须具有imp_full_database或dba角色,需要注意:如果将表导入到其它用户中,需要指定fromuser和touser选项.
示例:
imp scott/tiger@demo file=tab.dmp tables=emp,dept
imp system/manager@demo file=tab1.dmp tables=dept,emp fromuser=scott touser=system
2、导入方案
导入方案是使用imp将emp文件中特定方案的所有对象及数据装载到数据库中。普通用户可以导入其自身的方案,导入时提供userid和file即可。但如果要将一个方案的所有对象导入到其他方案中,则要求该用户具有imp_full_database或dba角色,并提供formuser和touser选项。
是例:
imp scott/tiger@demo file=schema2.dmp
imp system/manager@demo file=schma1.dmp formuser=scott touser=system
3、导入数据库
导入数据库是指使用imp将exp文件中所有对象和数据装载到oracle数据库中。导入数据库要求用户必须具有imp_full_database或dba角色。需要注意:因为导出文件中没有SYS方案的对象,所以导入时也不会包含SYS方案的对象。
示例:
imp system/manager@demo file=full.dmp full=y