好用的mysql备份工具

好用的mysql备份工具,第1张

我以前备份都使用mysqldump 导成文本文件便于存放 但是速度很慢的 最快的备份方法当然是直接把数据目录copy一份了 但是一般来说 都要关闭 MySQL的服务才能做 不然在你copy的时候刚好还有人读写表那麻烦就大了 这次朋友介绍我使用mysqlhotcopy 就相当于上面 不过他可以热备份 他备份非常快 我测试一个 G的mysql他备份的时间在 分钟内完成

下面是它的介绍

mysqlhotcopy是一个Perl脚本 最初由Tim Bunce编写并提供 它使用LOCK TABLES FLUSH TABLES和cp或scp来快速备份数据库 它是备份数据库或单个表的最快的途径 但它只能运行在数据库目录所在的机器上 mysqlhotcopy只用于备份MyISAM 它运行在Unix和NetWare中

使用方法见下面的脚本 加入crotab中吧

#!/bin/sh    # Name:mysqlbackup sh    # PS:MySQL DataBase Backup Use mysqlhotcopy script     # Last Modify:     # 定义变量 请根据具体情况修改    # 定义脚本所在目录    scriptsDir=`pwd`

# 数据库的数据目录    dataDir=/var/lib/mysql

# 数据备份目录    tmpBackupDir=/tmp/mysqlblackup    backupDir=/backup/mysql

# 用来备份数据库的用户名和密码    mysqlUser=root    mysqlPWD= you password

# 如果临时备份目录存在 清空它 如果不存在则创建它    if [[ e $tmpBackupDir ]]then      rm rf $tmpBackupDir/*    else      mkdir $tmpBackupDir    fi

# 如果备份目录不存在则创建它    if [[ ! e $backupDir ]]then      mkdir $backupDir    fi

# 得到数据库备份列表 在此可以过滤不想备份的数据库    for databases in `find $dataDir type d | \      sed e s/\/var\/lib\/mysql\/// | \      sed e s/test// `do      if [[ $databases == ]]then        continue      else

# 备份数据库    /usr/bin/mysqlhotcopy user=$mysqlUser password=$mysqlPWD q $databases $tmpBackupDir        dateTime=`date +%Y %m %d %H:%M:%S `        echo $dateTime Database:$databases backup success! >>MySQLBackup log      fi    done

# 压缩备份文件    date=`date I`    cd $tmpBackupDir    tar czf $backupDir/mysql $date tar gz /

#End完成

加入到crontab中设置每周 运行    * * /backup/blackup sh

注意:恢复数据库到备份时的状态

mysqlhotcopy 备份出来的是整个数据库目录 使用时可以直接拷贝到 mysqld 指定的 datadir (在这里是 /var/lib/mysql/)目录下即可 同时要注意权限的问题 如下例

shell>cp rf db_name /var/lib/mysql/

shell>chown R mysql:mysql /var/lib/mysql/ (将 db_name 目录的属主改成 mysqld 运行用户)

本套备份策略只能恢复数据库到最后一次备份时的状态 要想在崩溃时丢失的数据尽量少应该更频繁的进行备份 要想恢复数据到崩溃时的状态请使用主从复制机制(replication)

小技巧:

不想写密码在shell中的话 可以在root的home目录下建立一个f文件 以便让mysqlhotcopy从中读取用户名/密码     [mysqlhotcopy]    user=root    password=YourPassword    然后安全起见 chmod一下     chmod ~/f

附:mysqlhotcopy常用参数

·     allowold  如果目标存在不放弃(加上一个_old后缀重新命名它)     ·     checkpoint=db_name tbl_name 在指定的db_name tbl_name插入检查点条目     ·     debug   启用调试输出     ·     dryrun n  报告动作而不执行它们     ·     flushlog  所有表锁定后刷新日志     ·     keepold   完成后不删除以前(重新命名的)的目标     ·     method=mand  复制方法(cp或scp)     ·     noindices  备份中不包括全部索引文件 这样使备份更小 更快 可以在以后用myisamc rq重新构建索引     ·     password=password p password 当连接服务器时使用的密码 请注意该选项的密码值是不可选的 不象其它MySQL程序     ·     port=port_num P port_num 当连接本地服务器时使用的TCP/IP端口号     ·     quiet q  除了出现错误时保持沉默     ·     regexp=expr  复制所有数据库名匹配给出的正则表达式的数据库     ·     socket=path S path 用于连接的Unix套接字文件     ·     suffix=str  所复制的数据库名的后缀     ·     tmpdir=path  临时目录(代替/tmp)     ·     user=user_name u user_name 当连接服务器时使用的MySQL用户名

lishixinzhi/Article/program/MySQL/201311/29401

MYSQL数据如何实时备份

依次单击:开始--程序--Microsoft SQL Server--企业管理器--SQL Server组--管理--数据库维护计划

在右侧空白处右键单击,新建维护计划--勾选要备份的数据库--下一步

指定数据库备份计划--调度--单击"更改"--设置备份的时间,备份周期--下一步

每日频率即是每天什么时间开始进行备份

发生频率即是执行的周期

指定备份磁盘目录--修改"使用此目录"的路径作为备份数据库的存放路径.勾选删除早于此时间的文件,我这里选择一周,即是数据库备份文件把一周前的进行删除

给此任务计划填写一个名字:back 2单击"完成",就可以在数据库维护计划中看到刚才新建的计划.

注意事项

一定要开启sql server agent服务

数据库的自动备份,可以减轻维护者的工作量也便于系统恢复,对于比较重要的数据库,最好还是设置下自动备份。

工具/原料

navicat for mysql

mysql 5.5

方法/步骤

打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。

双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。

点击保存,d出个命名对话框,给这个任务取个名字,点击“确定”

点击“设置”计划任务。

d出的对话框,选择“计划”,再点击“新建”。

这里设置为从2014年1月24号起每天早上九点备份该数据库。如果想提高备份频率、或者设置备份截止日期,请点击“高级”。

高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点,每隔2小时备份一次,每天的备份都持续24小时。

最后,输入电脑密码就大功告成。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6780598.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存