目录
exp 导出指定的数据库到dmp文件中,使用方法如下:
exp [OPTION]... [OPTION]: KEYWORD=value or KEYWORD=(value1,value2,…,valueN)
[USERID=]user/pwd@servicesname
USERID 参数用user/pwd@servicesname的形式指明了连接到数据库的参数,用户名、密码,以及配置文件中预置的servicename,和oracle的使用方式保持了一致;同时,也支持独立的链接参数,使用host、port、dbname、 user、password参数来实现同样的使用效果。该参数为必须项。
注意
user/pwd@servicesname、host=ip、port=123、dbname=db 这些参数共用时,host、port、dbname参数将被忽略,只使用servicesname内指定的host、port、dbname。
注意
使用user/pwd@servicesname形式时,同时也使用了user、password参数,那么后面的值会覆盖前面的值,即实际生效的参数值是后面的。
USERID示例 | 说明 |
---|---|
USERID=kingbase/kingbase@kingbase | |
kingbase/kingbase@kingbase | |
host=192.168.45.162 port=54323 dbname=test user=kingbase password=kingbase | |
kingbase/kingbase@kingbase host=host1 port=54321 dbname=tb1 | host=host1 port=54321 dbname=tb1 将被忽略 |
kingbase/kingbase@kingbase user=kb2 | 实际使用的用户名为 kb2 |
password=pwdx kingbase/kingbase@kingbase | 实际使用的密码为 kingbase |
OWNER=(value1,...,valueN)
指明了需要导出的用户名(模式名),可导出多个模式;如果选用了该模式,则无法和表模式、全量模式共用。
OWNER示例 | 说明 |
---|---|
OWNER=public | 导出public模式数据 |
OWNER="(kingbase,public)" | 导出kingbase、public两个模式的数据 |
TABLES=(value1,...,valueN)
指明了需要导出的表名,可以导出多个表;其中表名可以写成正则表达式的形式,导出时会做正则匹配,将匹配到的表都导出;如果选用了该模式,则无法和用户模式、全量模式共用。
注意
如果参数值中未加模式,即tables=t,就会去该用户的模式下查找表并导出,作用等同于 tables=username.t。
TABLES示例 | 说明 |
---|---|
tables=public.t1 | |
tables=public.t1,public.t2 | |
tables="(public.t1,public.t2)" | |
tables=public.'"aaAA~!@#$%^&*()123"' | 适用Linux平台,对于包含特殊字符的表名,可参照此例处理 |
tables=public.'aa*123' | 适用Linux平台 |
tables="(public."'"aaAA~!@#$%^&*()123"'")" | 适用Linux平台,对于包含特殊字符的表名,可参照此例处理 |
tables="(public.'aa*123')" | 适用Linux平台 |
注意
尽量避免使用表模式导出带有特殊字符的表,因为需要对特殊符号做转义,或者借助正则表达式的形式(aaAA*123)来唯一匹配到带特殊字符的表(aaAA~!@#$%^&*()123)。
注意
#会被当作命令的注释开头,所以表名中带有#需要使用双引号或者单引号引起来。
ROWS=y/n
默认是y
ROWS=n时,只导出数据库对象的定义,不导出具体数据,不能和QUERY参数共用
ROWS=y时,使用COPY导出
注意
若设为n,物化视图的刷新操作不会被导出,导入后需要手动刷新物化视图,否则会报错并提示未初始化。
ROWS示例 |
---|
ROWS=y |
ROWS=n |
FULL=y/n
全量导出模式,如果选用了该模式,则无法和表模式、用户模式共用。默认值为n。
FULL示例 |
---|
FULL=y |
FULL=n |
FILE=filename
指定导出的dmp文件名,可以带路径,不指定路径即在当前路径下生成dmp文件, 注意exp程序只能导出数据库到一个文件中 。该参数为必须项。
FILE示例 | 说明 |
---|---|
FILE=db.dmp | |
FILE=/tmp/db.dmp | Linux平台带路径的设置 |
FILE=c:\tables.dmp | Windows平台也可以使用全路径 |
PARFILE=filename
指定包含exp参数的文件名,exp程序会读取该文件并加载里面的参数。
注意
文件内的参数必须以空格或者换行间隔。
PARFILE示例 | 说明 |
---|---|
PARFILE=parameters.conf | cat parameters.conf kingbase/kingbase@kingbase LOG=logfile FULL=y 或者 kingbase/kingbase@kingbase LOG=logfile FULL=y |
LOG=logfilename
指定日志文件名,exp程序会将所有日志输出写入到该文件中。
LOG示例 | 说明 |
---|---|
LOG=exp.log | |
LOG=/tmp/exp.log | Linux平台带路径的设置 |
LOG=c:\exp.log | Windows平台也可以使用全路径 |
QUERY=whereclause
该参数仅在表模式下有效,exp会导出QUERY参数指定的where条件限定的表的子集。该参数只能配置一个,若配置多个QUERY参数,那么只有最后一个QUERY参数生效。
注意
Windows平台需要转义。
QUERY示例 | 说明 |
---|---|
TABLES=public.t | 理解为select * from public.t |
TABLES=public.t QUERY="where id > 10" | 理解为select * from public.t where id > 10 |
TABLES=public.t QUERY="'where id > 10'" 或者 TABLES=public.t QUERY='"where id > 10"' | Windows平台需要特殊的转义 |
CONSTRAINTS=y/n
指示exp程序是否导出约束,默认值为y。
注意
非空约束不受该参数限制。
注意
若设为y,普通表的主键约束会变为非空约束。
INDEXES=y/n
指示exp程序是否导出索引,默认值为y。
INDEXES示例 |
---|
INDEXES=y |
INDEXES=n |
TRIGGERS=y/n
指示exp程序是否导出触发器,默认值为y。
TRIGGERS示例 |
---|
TRIGGERS=y |
TRIGGERS=n |
KEY=encryptkey
设定exp程序加密dmp文件的密钥,密钥长度限制为1~16字节,不设置该参数则不加密。
KEY示例 |
---|
KEY='123;434' |
KEY='好费21a你和' |
-?, --help show this help, then exit
输出帮助信息并退出。
-V, --version output version information, then exit
输出版本信息并退出。