【达梦】导入导出 dexp & dimp
导入语句:
./dimp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=imp_exp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts REMAP_SCHEMA=DEV:PRE LOG=dev_exp.log FULL=Y EXCLUDE=ROWS
解释一下各个参数的意思:
./dimp : 进入到达梦安装路径的 bin 目录下就会有这个指令
user_name 就是要导入的目标库连接的用户名了
password 要导入的目标库连接的密码,密码要用双引号包起来,然后外面再用一个单引号包一下(可能不用单引号也行,不知道)
127.0.0.1:5237 达梦数据库部署的host & port
FILE:要导入的文件, 写绝对路径也是可以的
DIRECTORY:文件路径,指定了路径后, FILE 和 log 都可以只写文件名就行了
REMAP_SCHEMA: 导出的使用的库和要导入的库名字不是同一个的时候,就要指定这个参数,否则就会默认按 dmp 文件里面的 schema 名字进行导入。反正也挺重要的一个参数了。 导出的时候是 DEV 的SECHEMA, 导入是 PRE
EXCLUDE: 排除的部分,这里表示不导出表数据
导出语句
./dimp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=imp_exp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts/ REMAP_SCHEMA=DEV:PRE LOG=dev_imp.log FULL=Y EXCLUDE=ROWS
只导出某几张表数据
./dexp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=imp_exp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts/ REMAP_SCHEMA=DEV:PRE LOG=table_dev_imp.log TABLES=student,score,teacher
导出,但不要部分表
./dexp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=exp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts LOG=dev_exp.log EXCLUDE=TABLES:t1,t2,t3;
-- 导入刚才导出的表数据
./dimp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=table_dev_imp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts/ REMAP_SCHEMA=DEV:PRE LOG=dev_imp.log LOG=table_dev_imp.log FULL=Y
这里刚才虽然是指定表导出,但导入的时候,还是使用 FULL=Y, 并且,如果表已经存在,会提示报错。。。把表删掉再导就好了
或者
如果导入的库已存在部分表或数据
添加参数: PRIMARY_CONFLICT=OVERWRITE IGNORE=Y 即可
./dimp USERID=user_name/'"password"'@127.0.0.1:5237 FILE=table_dev_imp.dmp DIRECTORY=/home/sudoroot/dameng/00-scripts/ REMAP_SCHEMA=DEV:PRE LOG=dev_imp.log LOG=table_dev_imp.log FULL=Y PRIMARY_CONFLICT=OVERWRITE IGNORE=Y