达梦数据库通过Shell脚本定时备份模式(vmware凝思磐石6.0)

目录

 

一、前言

二、环境

三、备份方法

四、操作步骤

4.1、在备份目录新建back.sh脚本文件

4.2、创建定时任务,每天02点执行一次

五、查看执行情况


一、前言

很多项目由于存储空间限制,给数据库备份预留的空间不足,同时数据库中一些数据量大的模式不是必须备份的,这样就可以考虑只备份一些最重要的模式,确保硬件损坏等不可控因素下数据不至完全丢失。

二、环境

操作系统:凝思磐石6.0

数据库:达梦7

三、备份方法

编写shell脚本,利用达梦dexp工具、crontab定时任务、tar解压缩来做。

四、操作步骤

4.1、在备份目录新建back.sh脚本文件

dmdba@dmdsc01:~/dbbak$ touch back.sh
dmdba@dmdsc01:~/dbbak$ chmod 755 back.sh
dmdba@dmdsc01:~/dbbak$ vim back.sh

脚本内容如下

schname=PI6000
filename=$schname-$(date '+%Y%m%d%H%M%S')
echo $filename

## 设置环境变量
export DM_HOME=/home/dmdba/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

## 导出用户PI6000的数据
/home/dmdba/dmdbms/bin/dexp userid=SYSDBA/SYSDBA owner=$schname directory=/home/dmdba/dbbak/ file=$filename.dmp log=$filename.log parallel=4

## 压缩备份文件和日志文件然后删除dmp和log文件
cd /home/dmdba/dbbak
tar zcvf $filename.tar.gz *.dmp *.log --remove-files

## 保存30天备份文件,删除29天之前备份
find /home/dmdba/dbbak/ -mtime +29 -name "*.tar.gz" -exec rm -rf {} \;

dexp命令参数说明

root@dmdsc01:/home/dmdba/dbbak# /home/dmdba/dmdbms/bin/dexp help
dexp V7.6.1.92-Build(2021.02.26-135621)ENT 
格式: ./dexp  KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: ./dexp  SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)

USERID 必须是命令行中的第一个参数

关键字              说明(默认值)
--------------------------------------------------------------------------------
USERID              用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
FILE                导出文件 (dexp.dmp)
DIRECTORY           导出文件所在目录
FULL                整库导出 (N)
OWNER               以用户方式导出 格式 (user1,user2,...)
SCHEMAS             以模式方式导出 格式 (schema1,schema2,...)
TABLES              以表方式导出 格式 (table1,table2,...)
FUZZY_MATCH         TABLES选项是否支持模糊匹配 (N)
QUERY               用于导出表的子集的select 子句
PARALLEL            用于指定导出的过程中所使用的线程数目
TABLE_PARALLEL      用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
TABLE_POOL          用于指定表的缓冲区个数
EXCLUDE             忽略指定的对象 
                       格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
                            EXCLUDE=TABLES:table1,table2 or
                            EXCLUDE=SCHEMAS:sch1,sch2 
INCLUDE             包含指定的对象 
                       格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or 
                            INCLUDE=TABLES:table1,table2
CONSTRAINTS         导出约束 (Y)
TABLESPACE          导出对象带有表空间 (N)
GRANTS              导出权限 (Y)
INDEXES             导出索引 (Y)
TRIGGERS            导出触发器 (Y)
ROWS                导出数据行 (Y)
LOG                 屏幕输出的日志文件
NOLOGFILE           不使用日志文件(N)
NOLOG               屏幕上不显示日志信息(N)
LOG_WRITE           日志信息实时写入文件: 是(Y),否(N)
DUMMY               交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N) 
PARFILE             参数文件名
FEEDBACK            每 x 行显示进度 (0)
COMPRESS            导出数据是否压缩 (N)
ENCRYPT             导出数据是否加密 (N)
ENCRYPT_PASSWORD    导出数据的加密密钥
ENCRYPT_NAME        加密算法的名称
FILESIZE            每个转储文件的最大大小
FILENUM             一个模板可以生成的文件数
DROP                导出后删除原表,但不级联删除 (N)
DESCRIBE            导出数据文件的描述信息,记录在数据文件中
LOCAL               MPP模式下登录使用MPP_LOCAL方式(N)
HELP                打印帮助信息

4.2、创建定时任务,每天02点执行一次

root@dmdsc01:/home/dmdba/dbbak# crontab -e

00 02 * * * /home/dmdba/dbbak/back.sh

通过以下命令查看定时任务情况

查看定时任务服务是否启动:service cron status
启动定时任务服务:service cron start
停止定时任务服务:service cron stop
重启定时任务服务:service cron restrat

五、查看执行情况

root@dmdsc01:/home/dmdba/dbbak# ls -lrth
总用量 405M
-rwxr-xr-x 1 root  root      674 5月  22 21:42 back.sh
-rw-r--r-- 1 root  root     405M 5月  22 21:53 PI6000-20210522215101.tar.gz
 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值