说明前得说说达梦级数得分布格式 用户----模式----表
每一个数据库用户 可以有 多个不同的 模式 ;模式下可以有多个不同的表
(可以理解模式为文件夹 表理解为 文件下的文件 。这样理解就形象许多了)
达梦数据库中带有 备份dexp 和 导入dimp 工具 ,处于安装目录bin文件下。
一 、工具使用
1.备份工具dexp
dexp路径 + 数据库用户名 /数据库用户密码 + @LOCALHOST:+ 端口号 + 命令参数(筛选备份时的规则,根据需要组合);
例如: 在本机数据库ztq用户下导出ZTQ_ONE模式包含的所有表(包括模式设置的权限)
/home/DM/bin/dexp ZTQ/ZTQ@LOCALHOST:5236 SCHEMAS=ZTQ_ONE GRANTS=Y DIRECTORY= FILE=/home/1.dmp
/home/DM/bin/dexp :是dexp工具的路径 这里是linux下 在win下是dexp.exe
ZTQ/ZTQ :是数据库用户名/密码
@LOCALHOST : 是连接ip LOCALHOST是指本地的医生 可以换成你将要进行操作的IP地址
5236: 5236是你使用的端口号
SCHEMAS :是将要对用户下那个模式进行操作
ZTQ_ONE :是模式的名字
GRANTS=Y :是指导出权限
DIRECTORY :是导出后的文件存放位置 可以为空(但必须是FILE参数中必须有具体路径时)
FILE :是指导出后存放文件的名字
2.导入工具dimp
dexp路径 + 数据库用户名 /数据库用户密码 + @LOCALHOST:+ 端口号 + 命令参数(筛选导入时的规则,根据需要组合);
例:导入/home/1.dmp数据文件下的所有数据到达梦数据库
/home/DM/bin/dimp ZTQ/ZTQ@LOCALHOST:5236 DIRECTORY= FILE=/home/1.dmp FULL=Y
FULL=Y : 是指导入文件下的整个数据库。
**导入时需要注意当导入文件中含有的数据表 在 达梦数据库中存在时 会导入失败,需要在导入时删除跟文件中的同名表**
二、 QT 使用外部程序 QProcess类的简单使用
QProcess.start("bash"); //调用的外部程序名 此处为开启终端 win下是 "cmd"
QProcess.write(dexp.toLocal8bit); //写入命令执行
三、示例代码
(1)备份
QString dexp = "/home/DM/bin/dexp ZTQ/ZTQ@LOCALHOST:5236 SCHEMAS=ZTQ_ONE GRANTS=Y DIRECTORY= FILE=/home/1.dmp \n"; //执行语句
QProcess.start("bash"); //开启终端 win下是 "cmd"
QProcess.write(dexp.toLocal8bit); //写入命令执行
QProcess.waitForFinished();//等待执行程序完后关闭程序
(2) 还原
QString dimp = "/home/DM/bin/dimp ZTQ/ZTQ@LOCALHOST:5236 DIRECTORY= FILE=/home/1.dmp FULL=Y \n"; //执行语句
QProcess.start("bash"); //开启终端 win下是 "cmd"
QProcess.write(dimp.toLocal8bit); //写入命令执行
QProcess.waitForFinished();//等待执行程序完后关闭程序
关于其他使用参数请观看 达梦数据库安装目录下的使用手册,其中有具体说明