• 达梦数据库还原


    逻辑导入主要使用dimp命令

      四种级别的导入命令如下:

      FULL: ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y  DIRECTORY=/mnt/data/dimp

      OWNER: ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log  OWNER=USER01 DIRECTORY=/mnt/data/dimp

      SCHEMAS: ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp

      TABLES: ./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp

    远程导入文件命令:sshpass -p pwd  scp -P 22 username@远程ip:/opt/data/test1.dmp + 本地存放目录

    以tables级别为例:

    在备份是已将备份文件名和等备份信息保存到数据库,还原时通过记录id查询到备份信息拼接语句。

     public String recover(Map<String, Object> param) {
            String result = "";
            String copyType = param.get(“type”);
            Map<String, Object> map = new HashMap<>();
            Connection conn = DMruntimeUtil.login(ip, userName, userPwd);
            String filename = param.getWjmc();
            if (param.get(“tids”) == "") {
                //全部恢复
            } else {
                //部分恢复
                // 根据tids拼接表名
                List<Bfb> bfbList = bfbMapper.getTables(param.getTids().toString().split(","));
                if (bfbMapper == null || bfbList.size() == 0) {
                    return null;
                }
                
                String tnames = param.get("tnames");
                String dexpStr = "";
    
                // 恢复命令./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
                // DIRECTORY=/mnt/data/dimp
                dexpStr = DMruntimeUtil.dimpByTables(hostip, dbname, username, password, filename, tnames);
                if (copyType.equals("本地")) {
                    String cmd = "cd /opt/dameng/dmdbms/bin;" + dexpStr;
                    result = DMruntimeUtil.execute(conn, cmd);
                } else if (copyType.equals("异域")) {
                    // sshpass -p pwd scp -P 22 root@ip:/opt/data/test1.dmp
                    // /opt/dameng/dmdbms/dm7data/EVAL/dexp/
                    String cmd = "sshpass -p  " + param.getRepassword() + " scp -P " + param.getPort() + " "
                            + param.getUsername() + "@" + param.getIp() + ":" + param.getDir() + "/" + filename
                            + " /opt/dameng/dmdbms/dm7data/EVAL/dexp/;cd /opt/dameng/dmdbms/bin;" + dexpStr;
                    result = DMruntimeUtil.execute(conn, cmd);
                }
            }
            return result;
        }
  • 相关阅读:
    windows 7系统搭建PHP网站环境
    本机搭建PHP环境全教程(图文)
    cmd不是内部命令解决方法
    [Tex学习笔记]章节用罗马字母编号
    丁伟岳院士逝世 享年70岁
    2014年度江西省青年科学家培养对象名单(共36名)
    Alexander Grothendieck去世了
    [詹兴致矩阵论习题参考解答]序言
    2014-2015第一学期听课安排
    一个老和尚的真言
  • 原文地址:https://www.cnblogs.com/yjwww/p/12131841.html
Copyright © 2020-2023  润新知