【达梦】导入导出 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

posted @ 2023-03-02 20:03  aaacarrot  阅读(867)  评论(0编辑  收藏  举报