mysql数据库定时备份
生产环境中使用mysql数据库,我们如何进行数据备份?
这里我们采用mysqldump来进行数据备份,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATETABLEINSERT等。创建目录mkdirrootmysqlcdrootmysql编写备份脚本vistartBackup。sh
数据导出脚本如下:!binbash直接配置帐号密码就把下面注释放开dbuserrootdbpasswordcatrootmysqlmysqlpasswordmysql安装地址exportPATHusrlocalmysqlbin:PATH数据库名称dbnamedb备份地址根据情况指定backupdirrootmysqldatacurrenttime(dateYmdHMS)filepathbackupdircurrenttime。sql。gz此处没有使用dbpassworddbuser,已经写入到配置文件中echo开始导出数据库。。。读取数据库连接配置,导出数据并压缩mysqldumpdefaultsextrafilerootmysqlbackup。cnfdbnamegzipfilepathecho导出成功,文件名为:filepath
上面backup。cnf配置内容如下:〔mysqldump〕maxallowedpacket1000Mhostlocalhostuser帐号password〔mysql〕hostlocalhostuser账号password
编写移除历史备份数据脚本,我们这里保留7天内的备份。(可以根据具体情况调整)viremoveHistory。shbinbash删除7天前的备份findrootmysqldatatypefmtime7xargsrmf定时直行备份脚本
给脚本赋权限chmodxstartBackup。shchmodxremoveHistory。sh
centos命令行中输入crontabe编写定时执行脚本,每天凌晨1点进行备份并清除历史数据01startBackup。sh01removeHistory。sh
配置完成后每天就会定时执行备份,备份信息如下:
备份文件数据恢复
数据压缩备份后,我们可以通过下面的命令来进行数据恢复!binbashif〔z1〕〔!f1〕thenecho请输入sql压缩文件(。sql。gz)exit1fidbnamedbbasedirrootmysqldatagzsqlfilebasename1fileext{gzsqlfile。}if〔fileext!gz〕thenecho文件格式不正确,请输入。sql。gz文件exit1fisqlfile{gzsqlfile。}echo解压文件中。。。gzipdcbasedirgzsqlfilebasedirsqlfileecho解压完成。echo开始导入数据库。。。mysqldefaultsextrafilerootmysqlbackup。cnfdbnamebasedirsqlfileif〔fbasedirsqlfile〕thenecho删除临时文件。rmfbasedirsqlfilefiecho导入完成。