数据库自动备份脚本使用

备份

Linux

请先在测试环境进行测试

  • 编写备份脚本

根据情况调整以下内容中的参数,并保存为backup.sh并放置在数据库所在服务器上(位置无限制)

echo '##########################################'
echo '###### The database is automatically backed up at 03:00 am every day ######'
echo '##########################################'
# Setting environment variables
db_user="username"
db_password="password"
# 数据库名称
db_name="test"
# docker容器名 未使用docker则删除此变量
db_container_name="mysql"
# 备份文件的存放位置
backup_dir="/usr/local/db/backup"
time="$(date +"%Y%m%d")"
echo 'Get system date: ' $time
if [ ! -e "$backup_dir" ]; then
mkdir $backup_dir
fi
cd $backup_dir
echo ${backup_dir}
echo 'backup started...' $(date "+%Y-%m-%d %H:%M:%S")
# docker安装mysql使用下列命令
docker exec ${db_container_name} mysqldump -u${db_user} -p${db_password} ${db_name} --quick --single-transaction > ${db_name}_${time}.sql
# 直接安装mysql使用下列命令
# mysqldump所在位置 -u${db_user} -p${db_password} ${db_name} --quick --single-transaction > ${db_name}_${time}.sql
find ${backup_dir} -name ${db_name}"*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
echo 'backup completed!' $(date "+%Y-%m-%d %H:%M:%S")

P.S. 执行失败时请检查Windows与Linux符号差异问题,并且避免以文本文档(.txt)来新建脚本

  • 授予脚本可执行权限

进入脚本所在目录并执行以下命令:

chmod u+x backup.sh
  • 测试脚本

执行命令:

./backup.sh

观察控制台输出,并检查生成的SQL文件。

  • 创建定时任务

执行以下命令:

crontab -e

在文本中插入以下内容:

0 3 * * * /usr/local/db/backup.sh >> /usr/local/db/log/backup.log 2>&1

每天凌晨三点执行备份

> /usr/local/db/log/backup.log 2>&1是将任务执行的日志输出到指定文件。如果不需要日志则可以去除这一段。

保存并退出,任务会自动运行。


导入备份数据

按普通SQL文件导入方式使用即可

注意:

  • 调整SQL文件

有时,备份的SQL文件在开头会附带这一行:mysqldump: [Warning] Using a password on the command line interface can be insecure. 。如果有,则需要删除该行再执行导入操作。

  • 出现 Got a packet bigger than 'max_allowed_packet' bytes 错误

打开数据库,执行以下查询:

SELECT @@max_allowed_packet / 1024 / 1024;

得到当前最大允许读取包大小,如果小于你要导入的SQL文件大小,则执行以下命令来提高该限制大小:

SET GLOBAL max_allowed_packet=1000000000;

P.S. 该设置在数据库重启后失效

导入的SQL文件大小,则执行以下命令来提高该限制大小:

SET GLOBAL max_allowed_packet=1000000000;

P.S. 该设置在数据库重启后失效

数据库自动备份脚本使用相关推荐

  1. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  2. windows下oracle数据库自动备份脚本

    1.根据日期自动生成 Oracle 备份文件 @echo off echo 正在备份Oracle数据库,请稍等...... exp userid='用户名/密码@SID' file=D:\bak\re ...

  3. 数据库自动备份脚本并删除前3天的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  4. MySQL数据库自动备份脚本

    1.自动备份脚本 #备份文件后缀时间 time="$(date +"%Y%m%d$H")" #备份路径和备份的数据库 #把 root替换为实际的用户名: #把 ...

  5. svn数据库自动备份脚本

    创建一个存放备份数据的路径 mkdir /data/svnbak -p 采用shell脚本的方式实现自动备份 #vim backup.sh #!/bin/bash log="/data/sv ...

  6. gbase导入sql文件_GBase数据库自动备份脚本

    ontape是GBase 8s数据库的简单易用的备份工具,但是它必须交互进行,对数据库的日常维护有一定的限制,比如,我们想在晚上进行备份,而不是在白天工作的时间. 下面我就简单示例,实现ontape的 ...

  7. ubuntu mysql自动备份_Ubuntu下mysql数据库自动备份脚本

    1.创建保存备份文件的目录:/home/mysql_datasudo mkdir mysql_data 2.创建备份脚本文件:/home/mysql_data/mysql_databak.shtouc ...

  8. Linux系统下Oracle数据库自动备份脚本经验分享

    1.新建Oracle数据库备份目录 mkdir -p /backup/oracledata   2.新建Oracle数据库备份脚本 vi /backup/oracledata/ordatabak.sh ...

  9. oracle自动备份教程,Oracle数据库自动备份脚本分享(超实用)

    前言 众所周知数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC ...

最新文章

  1. SAP S/4 HANA与SAP Business Suite/R3(ECC)的区别
  2. 二、Zabbix 服务端部署安装
  3. java socket smtp_JAVA Socket实现smtp发送邮件
  4. IDEA Maven项目左边栏只能看到pom文件
  5. [深度学习]为什么梯度反方向是函数值下降最快的方向?
  6. kafka实时日志处理
  7. 线性模型第4讲:弹性网络
  8. 【细胞分割】基于matlab GUI阙值+边缘+形态学+种子点图像分割【含Matlab源码 615期】
  9. Steam家庭共享教程
  10. PHP从入门到精通 第3版pdf
  11. 最新坦白说破解方法!!!
  12. SharePoint CAML In Action——Part II
  13. 开关电源LLC谐振变换器的工作原理
  14. 天池比赛notebook
  15. linux添加HP网络打印机,在Ubuntu 18.10系统下安装HP网络打印机的方法
  16. 合适的教育ERP管理系统,可让你省去很多麻烦
  17. iOS 应用上架流程(提交到AppStore)
  18. 凸函数的判断(上): 重要的基本性质
  19. JAVA 好用的文件备份代码
  20. 基于JAVA学校校园网站系统(Springboot框架) 开题报告

热门文章

  1. 测试需不需要单元测试
  2. vim c语言环境变量,vim设置环境变量的具体方法
  3. audio 读取服务器文件夹,从互联网/服务器(并传递到nAudio声音播放器)流声音...
  4. Pycharm中python运行环境与终端中python运行环境不一致
  5. Java IO流常见面试问题
  6. 微信JS-SDK之地理位置的获取与在线导航,集成百度地图实现在线地图搜索
  7. 感谢上帝又赐给我一个好妈妈
  8. HTML5 body设置全屏背景图片
  9. miniconda总结
  10. 机器学习基石1(ML基本概念和VC dimension)