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.
2,3问题,这样的话可以用mysqldump进行热备,但是这样会锁表,应用无法向数据库进行写 *** 作,如果必须有写 *** 作的话,可以使用xtrabackup热备工具,支持在线热备,对innodb表不会有读写影响,但是对myisam表会锁住,如果你库里面大部分是myisam表的话,还是直接mysqldump吧4,可以关闭服务的话,那么就直接逻辑备份了,(假如是myisam引擎表,那么就很爽了,直接备份datadir里面的数据文件即可,可以物理恢复数据的),innodb引擎表需要备份ibdata文件、*.frm文件和my.cnf,设置innodb_data_file_path来制定原先的ibdata路径
备份单个表的语句为:mysqldump -u root -p 数据库名 tb_name>d:\bbb.sql备份的目的有三个:
做灾难恢复:对损坏的数据进行恢复和还原;
需求改变:因需求改变而需要把数据还原到改变以前;
测试:测试新功能是否可用。
备份需要考虑的问题:
可以容忍丢失多长时间的数据;
恢复数据要在多长时间内完;
恢复的时候是否需要持续提供服务;
恢复的对象,是整个库,多个表,还是单个库,单个表。
参考资料
脚本之家.脚本之家[引用时间2018-1-9]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)