说明:一二为最基本情况的导出导入,即导出导入环境与数据库版本差别不大,不论是达梦数据库管理工具连接或者bin下命令行完成,导入环境与原数据库除导出数据外没有其他差异,比如模式导入,相同模式下不能有其他表.其他情况在后面说明,比如版本差别较大,不同模式之间迁移,表导入已存在数据的表.
一.达梦数据库4种级别导出
库级别
用户级别
模式级别
表级别
1全库导出
导出数据库的所有用户
选择目录,填写导出文件名(更方便识别)
导出完成后,点击关闭(点确定会填出一个文件已存在弹窗,关闭即可)
文件已存在路径下
命令方式:
cd /home/dmdba/dmdbms/bin
./dexp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp FULL=Y LOG=exp_2021_11_26_14_31_38.log
DIR:dmp文件路径
FILE:dmp文件名
FULL=Y 全库导出
LOG:导出日志
2.用户导出
导出用户下的所有模式
选择目录,填写导出文件名(更方便识别)
导出完成后,点击关闭(点确定会填出一个文件已存在弹窗,关闭即可)
文件已存在路径下
命令方式
cd /home/dmdba/dmdbms/bin
./dexp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp OWNER=TEST LOG=exp_2021_11_26_14_27_50.log
DIR:dmp文件路径
FILE:dmp文件
OWNER: 导出用户
LOG:导出日志
3.模式导出
导出模式下的所有表
选择目录,填写导出文件名(更方便识别)
导出完成后,点击关闭(点确定会填出一个文件已存在弹窗,关闭即可)
文件已存在路径下
命令方式
cd /home/dmdba/dmdbms/bin
./dexp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=112.dmp SCHEMAS="AAA" LOG=exp_2021_11_24_15_46.log
DIR:dmp文件路径
FILE:dmp文件名
SCHEMAS: 导出模式
LOG:导出日志
4.表导出
导出表下所有数据
选择目录,填写导出文件名(更方便识别)
导出完成后,点击关闭(点确定会填出一个文件已存在弹窗,关闭即可)
文件已存在路径下
命令方式
cd /home/dmdba/dmdbms/bin
./dexp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp TABLES="TEST"."AAA" LOG=exp_2021_11_26_14_34_18.log
DIR:dmp文件路径
FILE:dmp文件名
TABLES: 导出表
LOG:导出日志
二.达梦数据库导入
全库级导入
用户级导入
模式级导入
表级导入
1.全库导入
选择导入文件路径,选择文件
导入完成后,点击关闭即可,确认会弹出文件已存在弹窗
命令方式
cd /home/dmdba/dmdbms/bin
./dimp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp FULL=Y LOG=imp_2021_11_26_14_38_51.log
DIR:dmp文件路径
FILE:dmp文件名
FULL=Y: 全库导入
LOG:导入日志
2.用户级别导入
需要提前创建此用户
选择导入文件路径,选择文件
导入完成后,点击关闭即可,确认会弹出文件已存在弹窗
命令方式
cd /home/dmdba/dmdbms/bin
./dimp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp OWNER=AAA LOG=imp_2021_11_26_14_38_51.log
DIR:dmp文件路径
FILE:dmp文件名
OWNER: 导入用户
LOG:导入日志
3.模式级导入
需要创建此模式,所属用户要相同(不同用户情况参考后面)
选择导入文件路径,选择文件
导入完成后,点击关闭即可,确认会弹出文件已存在弹窗
命令方式
cd /home/dmdba/dmdbms/bin
./dimp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp SCHEMAS=AAA LOG=imp_2021_11_26_14_38_51.log
DIR:dmp文件路径
FILE:dmp文件名
SCHEMAS: 导入模式
LOG:导入日志
4.表级导入
选择导入文件路径,选择文件
导入完成后,点击关闭即可,确认会弹出文件已存在弹窗
命令方式
./dimp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=imp_exp.dmp TABLES=AAA.TEST LOG=imp_2021_11_26_14_38_51.log
DIR:dmp文件路径
FILE:dmp文件名
TABLES: 导入表
LOG:导入日志
三.导入问题(主要问题为目的库存在数据)
1.目的库存在数据
1.1目的库导入时表已存在
例:库导入时表已存在
此种情况其他用户会完成导入,但用户下的已存在表数据会导入失败
将表存在时的操作选为替换或者删除(注意确认此表数据是否不需要了,不然将更新为导入的数据)
依旧会提示导入对象中有错误,但对表的处理已经生效了,表里数据已经更新了
删除原表再导入
1.2目的库里存在原数据库没有的用户及数据.
新建用户BBB,建表BBB插入数据
注:与导入数据没有冲突的没关系,上面报错跟BBB用户及数据没有关系,是导入数据库的TEST1表已存在即还是第一个问题
1.3目的库含有的数据都是需要的,需要把原数据库的数据加入现在的表中(不会过滤重复数据)
例:目的库AAA用户下的AAA表数据已存在,需把原数据库AAA表中的数据添加进来
这样即可忽略表AAA的创建,直接导入数据
2.用户导入
用户不同,不行,即需要创建此用户
3.模式导入
模式有差异:①模式不同②所属用户不同(会报错),需要填写模式映射
例:所属用户不同,原数据为AAA用户下AAA模式,现在AAA模式为BBB用户所属,需要映射一下,如非必要还是建议重新创建相同用户AAA,再导入.
(相同的,不同模式名如BBB,CCC等也需要映射AAA)
命令方式
cd /home/dmdba/dmdbms/bin
./dimp SYSDBA/SYSDBA@LOCALHOST:55237 DIRECTORY=/home/dmdba/dmdbms/data3/DAMENG/bak FILE=112.dmp full=y log=dexp_2021_11_24_15_47.log REMAP_SCHEMA="AAA":"BBB";
REMAP_SCHEMA=“原模式”:“新模式”
4.目的库与原数据库建库参数不同
查看建库参数,如果不同可能需要重新创建实例
4.1管理工具方法
4.2到数据库路径下查看建库日志
参数说明:
db path:实例路径
auto overwrite:自动覆盖
page size:页大小
extent size: 簇大小
time zone: 时区
string case sensitive:大小写敏感(0表示不敏感,1表示敏感)
charset: 字符集(0表示‘GBK18030’,1表示‘UTF-8’,2表示‘EUC-KR’)
length in char: 长度是否以字符为单位
5.版本差异较大
高版本导出到低版本时,低版本执行会报错,此时需要到高版本的管理工具或者bin下执行
查看版本信息
连接数据执行SELECT ID_CODE;
6.管理工具报映射参数错误
管理工具正确填写了模式映射后执行导入依旧会报错,感觉识别有问题,此时建议到命令行执行.