zoukankan      html  css  js  c++  java
  • 达梦数据库还原

    逻辑导入主要使用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;
        }
  • 相关阅读:
    小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
    Python实现百度贴吧自动顶贴机
    回文自动机简述
    计算几何基本知识整理
    考试题Speed
    [ZOJ 2112] [lg2617] Dynamic Rankings
    后缀数组(Suffix Arrary)
    莫比乌斯函数与莫比乌斯反演
    题解 洛谷 P3369 【【模板】普通平衡树】
    EXCRT(扩展中国剩余定理)
  • 原文地址:https://www.cnblogs.com/yjwww/p/12131841.html
Copyright © 2011-2022 走看看