1.数据导出工具EXP
EXP是客户端工具,该工具不仅可以在oracle客户端使用,还可以在oracle服务器端使用。当在oracle客户端使用EXP工具时,必须带有连接字符串;当在oracle服务器端使用EXP工具时,可以不带字符串。导出包括导出表、导出方案、导出数据库三种模式。
(1)导出表
导出表是指使用EXP工具将一个或多个表的结构和数据存储到OS文件中,导出表是使用TABLES选项来完成的。
普通用户可以导出其自身方案的所有表,但如果要导出其他方案的表,则要求该用户必须具有EXP_FULL_DATABASE角色或DBA角色。另外当导出表时,默认情况下会导出相应表上的所有索引、触发器、约束。下面以SYSTEM用户导出SCOTT.DEPT表为例,示例如下:
exp system/oracle@charge TABLE=scott.dept,scott.emp FILE=tab1.dmp
(2)导出方案
导出方案是指使用EXP工具将一个或多个方案中的所有对象记数据存储到OS文件中,导出表是使用OWNER选项来完成的。
普通用户可以导出其自身方案,但如果要导出其他方案,则要求该用户必须具有DBA角色或EXP_FULL_DATABASE角色。当用户要导出其自身方案的所有对象时,可以不指定OWNER选项,下面以SYSTEM用户导出SCOTT方案的所有对象为例,示例如下:
exp system/oracle@charge OWNER=scott FILE=schemal.dmp
以上为命令行方式进行数据的导出,EXP工具还可以以交互的方式进行数据导出。
(1)导出表(交互方式)
[oracle@ora-asm3 dbs]$ exp
Export: Release 10.2.0.1.0 - Production on 星期一 6月 16 16:24:26 2008
Copyright (c) 1982, 2005, Oracle.; All rights reserved.
Username: charge输入用户名
Password:;;;;输入密码
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Enter array fetch buffer size: 4096 >;;;;输入缓冲区大小,可以默认也可以自定义,如果数据文件较大,建议设置的大一些。
Export file: expdat.dmp > charge01.dmp输入导出的文件名,必须以.dmp文件做为扩展名。
(2)U(sers), or (3)T(ables): (2)U > t输入导出类型,默认为用户(也就是方案),在此输入t,为导出表
Export table data (yes/no): yes >;;是否导出表中的数据,如果选NO,则导出表结构。
Compress extents (yes/no): yes >;是否对数据压缩
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path ...
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > clients输入表名
开始导出clients表数据
. . exporting table;;;;;CLIENTS 10 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >如果没有要导出的数据时,按回车退出。
Export terminated successfully without warnings.
提示导出成功,没有任何告警。
(2)导出方案(交互方式)
[oracle@ora-asm3 dbs]$ exp
Export: Release 10.2.0.1.0 - Production on 星期一 6月 16 16:23:47 2008
Copyright (c) 1982, 2005, Oracle.; All rights reserved.
Username: charge;;;;输入用户名
Password:;;;;;输入密码
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Enter array fetch buffer size: 4096 >;;;输入缓冲区大小,可以默认也可以自定义,如果数据文件较大,建议设置的大一些。
Export file: expdat.dmp > charge.dmp;;输入导出的文件名,必须以.dmp做为扩展名。
(2)U(sers), or (3)T(ables): (2)U > u 输入导出类型,默认为用户(方案),可以直接回车,也可以输入u。
Export grants (yes/no): yes >导入权限
Export table data (yes/no): yes >;是否导出表中的数据,如果选NO,则导出表结构。
Compress extents (yes/no): yes > 是否对数据压缩
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user CHARGE
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user CHARGE
About to export CHARGE's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export CHARGE's tables via Conventional Path ...
. . exporting table;BALANCE; 0 rows exported
. . exporting table;BALANCEFINISHED; 0 rows exported
………………
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.
提示导出成功,没有任何告警。
2.数据导入工具IMP
(1)导入表
导入表是指使用工具IMP将EXP文件中的表结构及其数据转载到数据库中,导入表是使用TABLES选项来完成的。
普通用户可以直接导入其拥有的表,但如果要将表导入到其他用户中,则要求该用户必须具有IMP_FULL_DATABASE角色或DBA角色。注意,如果要将表导入到其他用户中,则需要指定FROMUSER和TOUSER选项,示例如下:
imp scott/oracle@charge FILE=tab2.dmp TABLES=dept.emp
imp system/oracle@charge FILE=tab2.dmp TABLES=dept.emp; FROMUSER=scott TOUSER=system
如上所示,第一示例表示将文件tab2.dmp中DEPT和EMP表的结构和数据导入到SCOTT用户中;第二个示例表示文件tab2.dmp中SCOTT用户的DEPT和EMP表导入SYSTEM用户中。
(2)导入方案
导入方案是指使用工具IMP将EXP文件中的特定方案的所有对象及数据转载到数据库中。
普通用户可以直接导入其自身方案,并且在导入时需要提供USERID和FILE选项即可。但如果要将一个方案的所有对象导入到其他方案中,则要求该用户必须具有IMP_FULL_DATABASE角色,并且必须提供FROMUSER和TOUSER选项。示例如下:
imp scott/oracle@charge FILE=schema2.dmp
imp system/oracle@charge FILE=schema2.dmp FROMUSER=scott; TOUSER=system
如上所示,第一示例表示将文件schema 2.dmp中SCOTT用户的所有对象及数据导入到SCOTT用户中;第二个示例表示文件schema 2.dmp中SCOTT用户的所有对象及数据导入SYSTEM用户中。
以上为命令行方式进行数据的导出,EXP工具还可以以交互的方式进行数据导出。
(1)导入表(交互方式)
[oracle@ora-asm3 ~]$ imp
Import: Release 10.2.0.1.0 - Production on 星期一 6月 16 16:40:10 2008
Copyright (c) 1982, 2005, Oracle.; All rights reserved.
Username: charge;;;输入用户名
Password: 输入密码
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Import file: expdat.dmp > charge.dmp;输入要导入的数据文件
Enter insert buffer size (minimum is 8192) 30720>;;输入缓冲区大小,可以默认也可以自定义,如果数据文件较大,建议设置的大一些。
Export file created by EXPORT:V10.02.01 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
List contents of import file only (yes/no): no >;只列出导入文件的内容
Ignore create error due to object existence (yes/no): no >由于对象已存在, 忽略创建错误
Import grants (yes/no): yes >导入权限
Import table data (yes/no): yes >;;导入表数据,如果选NO,则导入表结构
Import entire export file (yes/no): no >;;导入整个导出文件
Username: charge;;;;;要导入方案的名称
Enter table(T) or partition(T:P) names. Null list means all tables for user
Enter table(T) or partition(T:P) name or . if done: clients输入要导入的表名
Enter table(T) or partition(T:P) name or . if done:; 如果没有要导入的表时,直接回车,进行导入
. importing CHARGE's objects into CHARGE
. importing CHARGE's objects into CHARGE
. . importing table;;"CLIENTS" 10 rows imported
Import terminated successfully without warnings.
导入成功,没有告警。
(2)导入方案(交互方式)
[oracle@ora-asm3 ~]$ imp
Import: Release 10.2.0.1.0 - Production on 星期一 6月 16 17:17:54 2008
Copyright (c) 1982, 2005, Oracle.; All rights reserved.
Username: charge; 输入用户名称
Password:;;;;输入密码
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Import file: expdat.dmp > charge.dmp;输入要导入的数据文件
Enter insert buffer size (minimum is 8192) 30720>输入缓冲区大小,可以默认也可以自定义,如果数据文件较大,建议设置的大一些。
Export file created by EXPORT:V10.02.01 via conventional path
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
List contents of import file only (yes/no): no >;;;;只列出导入文件的内容
Ignore create error due to object existence (yes/no): no >由于对象已存在, 忽略创建错误
Import grants (yes/no): yes >导入权限
Import table data (yes/no): yes >;;导入表数据,如果选NO,则导入表结构
Import entire export file (yes/no): no >;;导入整个导出文件
Username: charge;输入要导入方案的名称
Enter table(T) or partition(T:P) names. Null list means all tables for user
Enter table(T) or partition(T:P) name or . if done:;;;回车,进行导入数据
. importing CHARGE's objects into CHARGE
. . importing table"BALANCE"0 rows imported
. . importing table"BALANCEFINISHED"0 rows imported
About to enable constraints...
Import terminated successfully without warnings.
导入成功,没有任何告警。