MySQL 软件包提供了一个名为 mysqlhotcopy 的 Perl程序帮助我们完成热备份。
举例:mysqlhotcopy -uuser -ppass dbname backupdir
用法: /usr/bin/mysqlhotcopy db_name[./table_regex/] [new_db_name | directory]
参数:
-u, --user=# 用户名
-p, --password=# 密码
-h, --host=# 主机
-P, --port=# 端口
-S, --socket=# 套接字位置
--allowold 假如备份目标存在将其命名为 _oldXXXX再继续
--addtodest 假如备份目标存在直接添加新文件,不重命名
--keepold不删除重命名为 _oldXXXX的文件
--noindices 不保留所有索引
--method=# 复制的方法 目前仅支持 cp
-q, --quiet 安静模式,除非发生错误
--debug 启动调试
-n, --dryrun 仅现实将要执行的动作但是不实际执行
--regexp=# 复制所有数据库名和指定内容正则匹配的数据库
--suffix=# 指定要复制的数据前缀
--checkpoint=# 将备份检测点插入到指定数据库的数据表中 形如:db.table
--flushlog 一旦所有标锁定就刷新日志
--resetmaster重置binlog一旦所有的被锁定
--resetslave 重置 master.info一旦所有的被锁定
--tmpdir=# 指定临时目录而不是 /tmp
--record_log_pos=# 记录主从状态到指定数据库的表中 形如:db.table
--chroot=# 当执行 MySQL *** 作的时候chroot到指定目录
手动热备份 MyISAM引擎的数据库
我们通过 锁表->复制备份->解锁 的流程进行
# mysql命令
flush tables with read lock
# 系统命令
cp -R /database/path/ /backup/path
# mysql命令
unlock tables
可能遇到的错误:
Can’t locate DBI.pm in @INC
解决:
perl -MCPAN -e “install DBI”
perl -MCPAN -e “install DBD::mysql”
This entry was written by zpz, posted on 2013 年 1 月 18 日 at 上午 11:52, filed under mysql and tagged Mysql备份, Mysql数据备份. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.
数据库备份很重要,很多服务器经常遭到黑客的恶意攻击,造成数据丢失,如果没有及时备份的话,后果不堪设想。一:备份的目的:
做灾难恢复:对损坏的数据进行恢复和还原
需求改变:因需求改变而需要把数据还原到改变以前
二:备份的分类:
1:根据是否需要数据库离线
冷备(cold backup):需要关MySQL服务,读写请求均不允许状态下进行;
温备(warm backup): 服务在线,但仅支持读请求,不允许写请求;
热备(hot backup):备份的同时,业务不受影响。
注意:
这种类型的备份,取决于业务的需求,而不是备份工具
MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具
2:根据要备份的数据集合的范围
完全备份:full backup,备份全部字符集。
增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。
差异备份:differential backup 上次完全备份以来改变了的数据。
三:备份手段
1:使用mysqldump备份命令,手动备份
2 : 使用第三方的增值服务,例如阿里云的自动备份机制
3:使用第三方工具的计划任务,自动备份数据库
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)