mysql怎么另存为 mysql转存 sql文件( 二 )


同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行 。
2.3.1
用phpMyAdmin工具
从控制面板 , 选择创建的空数据库,点“管理”,进入管理工具页面 。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行 。
注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率 。
gzip使用方法:
#
gzip
xxxxx.sql
得到
xxxxx.sql.gz文件 。
提示输入密码时,输入该数据库用户名的密码 。
3
直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法 , 但不同版本和操作系统之间可能不兼容,要慎用 。
3.1
准备原始文件
用tar打包为一个文件
3.2
创建空数据库
3.3
解压
在临时目录中解压,如:
cd
/tmp
tar
zxf
mydb.tar.gz
3.4
拷贝
将解压后的数据库文件拷贝到相关目录
cd
mydb/
cp
*
/var/lib/mysql/mydb/
对于FreeBSD:
cp
*
/var/db/mysql/mydb/
3.5
权限设置
将拷贝过去的文件的属主改为mysql:mysql , 权限改为660
chown
mysql:mysql
/var/lib/mysql/mydb/*
chmod
660
/var/lib/mysql/mydb/*
mysql到底如何备份数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要 。如果备份出问题,备份时影响了交易业务,备份数据无法恢复,这些也是企业难以承受的 。所以选择合适的备份工具尤为重要 。
每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案 。
Xtrabackup一直作为MEB 开源版备胎而存在 , 从MySQL 8.0开始情况可能会变得有所不同 。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性 。
MySQL 企业版还有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理备份,为了保证备份时InnoDB引擎表与其他引擎数据文件、及binlog日志的一致性会上全局读锁,再拷贝非InnoDB文件,这期间MySQL会变成只读,数据无法写入 。表数量越多,可能加上时间越长,如果使用的xtrabackup 不小心没加rsync参数 , 逐个拷贝frm文件,锁定时间会更长,对业务影响较大 。
我曾遇到过部署在虚拟机的实例有12000多张表,当时使用的xtrabackup,备份脚本中没加rsync参数,结果锁了十几分钟,而MEB就没有这样的问题 。
MySQL 8.0支持轻量级备份锁 LOCK INSTANCE FOR BACKUP,数据字典也重构了由InnoDB存储 。若不创建非InnoDB表,MEB默认使用备份锁获取binlog日志一致性位置,并阻止DDL操作,但不影响DML操作 。
只有InnoDB表,仅上备份锁
请点击输入图片描述
若有非InnoDB表,上全局锁
请点击输入图片描述
特性2:Redo Log Archiving
MEB能做到在线热备,备份时不影响数据库读写 , 这是利用了InnoDB事务日志,在备份期间持续监视redo log的变化,读取增量变化,写入到ibbackup_logfile,也就不需要上锁来保障备份一致性 。(对非InnoDB的文件需要上读锁拷贝)
如果备份期间数据库写入负载特别大,而写入ibbackup_logfile速度较慢,redo log size也不大,很可能会出现ibbackup_logfile的写入速度跟不上redo log记录生成速度,redo log 空间不够时需要覆写日志文件,那么来不及写入ibbackup_logfile的记录会丢失,导致备份失败 。

推荐阅读