• DM8:达梦数据库dexp-DMP逻辑导出按用户模式定时自动备份数据库


    环境介绍

    • 在某些特殊情况无法使用全库备份,需要按用户备份部分重要的数据表,适合使用dexp逻辑备份
    • 若实际配置文件路径,数据库安装路径与博文不符,只需修改dmp.sh脚本中的两处:

    dm_conf.txt路径与/home/dmdba/dmdbms/bin 路径

    1 编写脚本&配置文件

    1.1编写shell脚本备份数据库

    vi /home/dmdba/dmp.sh
    
    #!/bin/bash
    
    echo -e '\n\n\n'
    time=$(date "+%Y-%m-%d-%H-%M-%S")
    echo "开始时间是:"$time
    
    #读取配置文件路径
    exec < /home/dmdba/dmp_conf.txt
    read dmp_conf
    
    #读取用户名密码
    #多个用户中间用空格分开
    exec < $dmp_conf/dm_user.txt
    read dm_userpwd
    
    #读取ip:port
    exec < $dmp_conf/ip_port.txt
    read ip_port
    
    #读取备份路径
    exec < $dmp_conf/bak_path.txt
    read bak_path
    
    #创建备份路径
    mkdir -p $bak_path/DATA$time
    
    #linux 中定义一个数据的语法为
    var_dm=("$dm_userpwd")
    var_count=0
    
    #数组的下标从0开始。
    #for遍历
    for i in ${var_dm[@]}; do
    
    #获取用户名
    dm_user=${i%/*}
    echo 备份数据库名称: $dm_user
    
    cd /home/dmdba/dmdbms/bin&&./dexp USERID=$i@$ip_port FILE=$bak_path/DATA$time/$dm_user.dmp LOG=$bak_path/DATA$time/$dm_user.log  SCHEMAS=$dm_user CONSTRAINTS=N TABLESPACE=N GRANTS=N TRIGGERS=N COMPRESS=Y >> /dev/null
    #过滤不要导出的表
    #EXCLUDE=TABLES:A
    
    #打印日志
    cat $bak_path/DATA$time/$dm_user.log |grep SCHEMA
    cat $bak_path/DATA$time/$dm_user.log |grep 警告
    
    #计数器
    var_count=$[$var_count+1]
    done
    
    #任务执行完成
    echo "------------------------------------------------"
    echo       "共 "$var_count" 个 数据库用户备份完成"
    echo "------------------------------------------------"
    
    echo "开始时间是:"$time
    time2=$(date "+%Y-%m-%d-%H-%M-%S")
    echo "结束时间是:"$time2
    echo -e '\n\n\n'
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    1.2 编写dm_conf 配置文件

    vi /home/dmdba/dm_conf.txt
    
    /home/dmdba/dmp_conf
    
    • 1
    • 2
    • 3

    1.3 编写用户名密码配置文件(用空格分隔多个用户,不能换行)

    vi /home/dmdba/dmp_conf/dm_user.txt
    
    SYSDBA/SYSDBASYSDBA DM/SYSDBASYSDBA
    
    • 1
    • 2
    • 3

    1.4 编写ip:port 配置文件

    vi /home/dmdba/dmp_conf/ip_port.txt
    
    192.168.248.19:5236
    
    • 1
    • 2
    • 3

    1.5 编写bak_path备份路径配置文件

    vi /home/dmdba/dmp_conf/bak_path.txt
    
    /home/dmdba/backup
    
    • 1
    • 2
    • 3

    2 编写linux 定时任务

    [root@localhost backup]$ crontab -e
    20 23 * * * cd /home/dmdba;./dmp.sh >> /home/dmdba/dmp.log
    [root@localhost backup]$
    
    
    • 1
    • 2
    • 3
    • 4

    3 执行dmp.sh 脚本输出的日志

    [root@localhost backup]$ /home/dmdba/dmp.sh
    
    
    
    
    开始时间是:2022-08-25-18-19-35
    备份数据库名称: SYSDBA
    成功导出 第1 个SCHEMA :SYSDBA
    共导出 1 个SCHEMA
    成功终止导出, 没有出现警告
    备份数据库名称: DM
    成功导出 第1 个SCHEMA :DM
    共导出 1 个SCHEMA
    成功终止导出, 没有出现警告
    ------------------------------------------------
    共 2 个 数据库用户备份完成
    ------------------------------------------------
    开始时间是:2022-08-25-18-19-35
    结束时间是:2022-08-25-18-19-36
    
    
    
    
    [root@localhost backup]$
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    4 dmp 命令参数介绍

    
    USERID:用户名/MiMa@IP:端口      如果MiMa带特殊字符,双引号外边加一层单引号 '"abc@)16"'
    FILE:导出路径
    LOG:导出日志
    OWNER:导出用户拥有权限的所有数据库对象
    SCHEMAS:以哪个模式导出
    TRIGGERS:触发器 Y=导出,N=不导出
    GRANTS:权限 Y=导出,N=不导出
    CONSTRAINTS:约束 Y=导出,N=不导出
    TABLESPACE:表空间  默认不导
    COMPRESS:压缩导出 Y=压缩,N=不压缩
    TABLE_EXISTS_ACTION=TRUNCATE:表如果存在,就删除
    REMAP_SCHEMA:源模式:目标模式(假如以A模式导出来的dmp文件,要导入到B模式里,需要用到这个参数)
    FAST_LOAD=Y 使用快速装载
    EXCLUDE= TABLES:A  不导出的表A
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5 达梦数据库学习使用列表

    欢迎一起学习交流 达梦数据库学习使用列表 点我跳转

  • 相关阅读:
    2022数学建模国赛B题思路分析
    Iterator和ListIterator的区别是什么?
    macOS下编译opencv-4.5.2+opencv_contrib-framework
    React Router 路由守卫
    【Leetcode】1896. Minimum Cost to Change the Final Value of Expression
    git撤销某一次commit提交
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-38-如何截图-下篇
    CPP-Templates-2nd--第十五章 模板实参推导
    linux Shell 命令行-05-test 检查某个条件是否成立
    win10桌面便签小工具,安全无广告下载哪一款
  • 原文地址:https://blog.csdn.net/qq_37358909/article/details/126505330