1. 数据库导入和导出概念
数据库导入:把dmp格式文件从本地导入到数据库服务器中。
数据库导出:把数据库服务器中的数据导出到本地生成.dmp格式文件。
2. 数据库导出
数据库导出命令为exp。exp支持完全模式、用户模式和表模式三种导出功能。
命令格式:
exp [OPTION]...
[OPTION]: KEYWORD=value或者KEYWORD=( value1,value2,…,valueN)
参数选项:
连接参数
[USERID = ] user/pwd@servicesname
USERID 参数user/pwd@servicesname形式指明了连接到数据库的参数
例: [USERID = ] user/pwd@servicesname
servicename 是服务名,具体配置方法参见 手册文档
导出模式参数
OWNER = (value1,...,valueN)
指定导出的用户名(模式名),可导出多个模式;如果选用了该模式,则无法和表模式、全量模式共用。
例:
OWNER=public 导出 public模式数据
OWNER=”(kingbase,public)” 导出 kingbase、public两个模式的数据
TABLES = (value1,...,valueN)
指明了需要导出的表名,可以导出多个表;其中表名可以写成正则表达式的形式,导出时会做正则匹配,将匹配到的表都导出;如果选用了该模式,则无法和用户模式、全量模式共用。
例:tables=public.t1,public.t2
ROWS = y/n
默认是 y
ROWS=n时,只导出数据库对象的定义,不导出具体数据,不能和 QUERY 参数共用。
ROWS=y时,使用COPY 导出。
FULL = y/n
全量导出模式,如果选用了该模式,则无法和表模式、用户模式共用。默认值为 n。
FILE = filename
指定导出的 dmp 文件名,可以带路径,不指定路径即在当前路径下生成 dmp 文件, 注意 exp 程序只能导出数据库到一个文件中。该参数为必须项。
PARFILE = filename
指定包含exp参数的文件名,exp程序会读取该文件并加载里面的参数。
LOG = logfilename
指定日志文件名,exp程序会将所有日志输出写入到该文件中。
QUERY = whereclause
该参数仅在表模式下有效,exp 会导出 QUERY 参数指定的 where 条件限定的表的子集。该参数只能配置一个,若配置多个 QUERY 参数,那么只有最后一个 QUERY参数生效。
CONSTRAINS = y/n
指示 exp程序是否导出约束,默认值为 y。若设为 y,普通表的主键约束会变为非空约束。
INDEXES = y/n
指示 exp程序是否导出索引,默认值为 y。
TRIGGERS = y/n
指示 exp程序是否导出触发器,默认值为 y。
例:完全模式导出
./bin/exp XYZ/xyz@kingbasefile=xyz.dmp FULL=y FULL=y
3. 数据库导入
数据库导入命令为imp
命令格式:
imp [OPTION]...
[OPTION]: KEYWORD=value或者KEYWORD=( value1,value2,…,valueN)
参数选项:
连接参数
USERID
同导出参数
导入参数
FROMUSER = (value1,...,valueN)
指定了 imp要导入的模式数据,必须与 TOUSER参数一起使用形成 imp 的用户模式导入方式。
TOUSER = (value1,...,valueN)
FROMUSER 的模式个数必须与 TOUSER 的模式个数一致;或者 FROMUSER 模式有多个,TOUSER模式只有一个(即多个模式恢复到一个模式中)。FROMUSER、TOUSER形成的用户模式,不可以和其他模式(表模式、全量模式)一起使用。
TABLES = (value1,...,valueN)
指示 imp 程序要导入的表名。
ROWS = y/n
指示 imp 程序是否执行表数据的插入操作,默认值为 y。
FULL = y/n
指示 imp 程序导入完整的数据库 dmp文件,默认值为 n。该全量模式不能和其他模式共用。
IGNORE = y/n
指示 imp 程序导入过程中出错时的行为,是忽略错误继续执行导入,还是遇到错误直接退出,默认值为 n。
FILE = filename
指示 imp 程序要导入的dmp 文件的文件名,该参数为必须项。
PARFILE = filename
与exp的PARFILE参数完全一致。
LOG = logfilename
与exp的LOG 参数完全一致。
CLEAN = y/n
指示 imp 程序先删掉数据库对象,再执行导入操作,默认值为 n。
ONLYVIEW = y/n
指示 imp 程序只导入视图对象,默认值为n。
RECREATEVIEW = y/n
指示 imp 程序在导入的最后阶段先删掉所有视图,再重新创建它们,默认值为 n。
例:完全模式导入
./bin/imp XYZ/xyz@kingbase file=xyz.dmp full=y