达梦数据库备份

一、建立脚本,导出dump文件

1、dm_bak.sh

#####################################
# call shell bakup DMSERVER
#####################################
#新建一个文件夹,路径为/home/dmdba/bakdb_script/userExp/
cd /home/dmdba/bakdb_script/userExp/
./database1.sh
./database2.sh

2、database1.sh

#################################################
# dm export : database1 
#################################################   
DF=database1_`date +%Y%m%d`_expdp.dmp 
LF=database1_`date +%Y%m%d`_expdp.log 
SC="database1"
#进入达梦数据库安装bin路径
cd /home/dmdba/dmdbms/bin
#username、password、ip、SCHEMAS需要替换
/home/dmdba/dmdbms/bin/dexp "username"/"password"@IP:5236 DIRECTORY=/home/dmdba/bakdb_script/dumpFile FILE=$DF SCHEMAS="\"database1\"" TABLESPACE=N DROP=N LOG=$LF LOG_WRITE=N

3、database2.sh

#################################################
# dm export : database2
#################################################  
 
DF=database2_`date +%Y%m%d`_expdp.dmp
LF=database2_`date +%Y%m%d`_expdp.log
SC="database2"

#进入达梦数据库安装bin路径
cd /home/dmdba/dmdbms/bin
#username、password、ip、SCHEMAS需要替换
/home/dmdba/dmdbms/bin/dexp "username"/"password"@IP:5236 DIRECTORY=/home/dmdba/bakdb_script/dumpFile FILE=$DF SCHEMAS="\"database1\"" TABLESPACE=N DROP=N LOG=$LF LOG_WRITE=N

二、将dump文件备份到其他服务器

4、scp_bak.sh

#################################################
# Use the scp command to periodically back up files to another server 
#################################################
filepath=/home/dmdba/bakdb_script/dumpFile
echo "`date +%Y%m%d` start upload......"
echo "`date +%Y%m%d` start upload......" > /home/dmdba/bakdb_script/logs/`date +%Y%m%d`.log
sleep 5s
#B server password
password='B server password'
echo "start copy datafile from remote path..."
echo "start copy datafile from remote path..." >> /home/dmdba/bakdb_script/logs/`date +%Y%m%d`.log
/usr/bin/expect <<EOF
set timeout 10
#username: B server  login name     IP:B server IP
#/home/dmdba/bakDump: 备份到B服务器的路径
spawn scp -r -p $filepath username@IP:/home/dmdba/bakDump
expect "*assword:"
send "$password\r"
send "exit\r"
expect eof
EOF
if [ $? = 0 ]; then
        echo "datafile copy successful!"
        echo "datafile copy successful!" >> /home/dmdba/bakdb_script/logs/`date +%Y%m%d`.log
else
        echo "datafile copy failed!"
        echo "datafile copy failed!" >> /home/dmdba/bakdb_script/logs/`date +%Y%m%d`.log
fi

三、定时删除服务器上的备份文件

5、delete_bak.sh

#################################################
# Regularly delete log and dump files 7 days ago
#################################################
#!/bin/sh
dumppath=/home/dmdba/bakdb_script/dumpFile
logpath=/home/dmdba/bakdb_script/logs
 
#detele logs
echo "`date +%Y%m%d` start delete logs:  `find  $logpath -mtime  +7   -name "*.log"`"
find  $logpath -mtime  +7   -name "*.log"  -exec  rm -rf {} \;
 
#delete dumpfile
echo "`date +%Y%m%d` start delete dumpfile:  `find  $dumppath  -mtime  +7   -name "*.dmp"`"
find  $dumppath  -mtime  +7   -name "*.dmp"  -exec  rm -rf {} \;
find  $dumppath  -mtime  +7   -name "*.log"  -exec  rm -rf {} \; 

注意:备份到另一台服务器也需要定时清除dump文件

四、在linux设置定时任务crontab

6、首次运行先执行crontab -e,按esc,按:,输入wq
7、crontab -l 查看定时任务
8、Crontab -e 编译定时任务

五、其他说明

9、Cron表达式
秒分时日月周年

*/5 6-9 * 12 1~5

每年12月周一到周五6点到9点每隔5分钟执行一次

10、各个脚本编写完成之后需要赋予执行权限

Chmod a+x 文件名 所有用户赋予执行权限

Chmod +x 文件名 当前用户赋予执行权限

11、定时删除脚本

# 命令格式
 find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

# 示例命令,将/home/kafka/logs目录下所有10天前带"."的文件删除
find /home/kafka/logs -mtime +10 -name "*.*" -exec rm -rf {} \;

find:Linux的查找命令,用户查找指定条件的文件
/home/kafka/logs:想要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,""表示查找所有文件,-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \;:固定写法;

11、安装yum install expept
Linux 使用scp命令定时将文件备份到另一台服务器,A为主服务器,B为备份服务器,需要每天定时将A上的文件备份到B上。首先在A上安装expept

yum install expect

12、看linux服务器是否能访问外网

ping www.baidu.com
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值