mysqldump

mysql binlog详解

十年热恋 提交于 2019-12-03 00:08:46
首先,我先了解下关于逻辑备份与物理备份。 逻辑备份和物理备份各有优劣,一般来说,物理备份恢复速度比较快,占用空间比较大,逻辑备份速度比较慢,占用空间比较小。逻辑备份的恢复成本高。 逻辑备份是备份sql语句,在恢复的时候执行备份的sql语句实现数据库数据的重现。 mysqldump mysqldump是采用SQL级别的备份机制,他将数据表导成SQL脚本文件,是最常用的逻辑备份方法。 物理备份 物理备份就是备份数据文件了,比较形象点就是cp下数据文件,但真正备份的时候自然不是的cp这么简单。 好了,经过前面非常不详细的介绍,我后面主要学习的是逻辑备份。 1、逻辑备份数据 mysqldump mysqldump -uroot -p --all-databases > all.sql 备份所有的数据库内容 mysqldump -uroot -p --databases new3 hz1901 >all.sql 备份new3 hz1901两个数据库 mysqldump -uroot -p new3 > all.sql 备份单个new3的数据库 mysqldump -uroot -p new3 info >all.sql 备份库new3下面的info 表 2、恢复数据 mysql -uroot -p < all.sql mysql binlog详解 :https://www.cnblogs

Export Data from mysql Workbench 6.0

我的梦境 提交于 2019-12-03 00:06:57
问题 I'm trying to export my database, using MySQL Workbench 6.0 on Windows, to send to my db instance in Amazon RDS, but i'm getting this error: Operation failed with exitcode 7 11:34:40 Dumping clubbin (taxicompanies) Running: "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe" -defaults-extra- file="c:\users\selene\appdata\local\temp\tmp6o0hno.cnf" --max_allowed_packet=1G --delayed- insert=FALSE --host=localhost --user=root --port=3306 --default-character-set=utf8 "clubbin"

MySQL——导入导出.sql文件

非 Y 不嫁゛ 提交于 2019-12-02 23:07:18
1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u dbuser -p dbname users> dbname_users.sql 3.导出一个数据库结构 mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 常用source 命令 进入mysql数据库控制台,如 mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source d:/dbname.sql 1. 导入数据到数据库 mysql -uroot -D数据库名 1. 导入数据到数据库中得某个表 mysql -uroot -D数据库名 表名 D:\APMServ5.2.6\MySQL5.1\bin>mysqldump -u root -p erp lightinthebox_tags > ligh

数据库备份之热备,冷备,温备

匿名 (未验证) 提交于 2019-12-02 22:56:40
备份和恢复 备份类型: 完全备份,部分备份 完全备份:整个数据集 1 部分备份:只备份数据子集,如部分库或表 完全备份、增量备份、差异备份 2增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂 3差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单 注意:二进制日志文件不应该与数据文件放在同一磁盘 备份和恢复 冷、温、热备份 冷备:读写操作均不可进行 温备:读操作可执行;但写操作不可执行 热备:读写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 物理和逻辑备份 物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快 逻辑备份:从数据库中“导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度 备份时需要考虑的因素 温备的持锁多久 备份产生的负载 备份过程的时长 恢复过程的时长 备份什么 数据 二进制日志、InnoDB的事务日志 程序代码(存储过程、函数、触发器、事件调度器) 服务器的配置文件 备份工具 cp, tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份 LVM的快照:先加锁,做快照后解锁,几乎热备;借助文件系统工具进行备份 mysqldump:逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份

mysql数据库备份还原

匿名 (未验证) 提交于 2019-12-02 22:06:11
还原一个数据库:mysql -h localhost -u root -p123456 www<c:/www.sql 备份一个数据库:mysqldump -h localhost -u root -p123456 www > d:/www2008-2-26.sql //以下是在程序中进行测试 //$command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile"; $command="mysqldump -h localhost -u root -p123456 guestbook > guestbook2-29.sql"; system($command); echo "success"; ************************************************ 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 直接将MySQL数据库压缩备份 mysqldump -hhostname

执行mysqldump备份数据时报错

匿名 (未验证) 提交于 2019-12-02 22:06:11
环境; MySQL 版本 5.6.28 问题: 执行mysqldump出现以下报错,小白当时执行mysqldump备份时,是执行一次报一个错 1、mysqldump: Got error: 1146: Table 'mysql. innodb_index_stats ' doesn't exist when using LOCK TABLES 2、mysqldump: Got error: 1146: Table 'mysql. innodb_table_stats ' doesn't exist when using LOCK TABLES 3、mysqldump: Got error: 1146: Table 'mysql. slave_master_info ' doesn't exist when using LOCK TABLES 4、mysqldump: Got error: 1146: Table 'mysql. slave_relay_log_info ' doesn't exist when using LOCK TABLES 5、mysqldump: Got error: 1146: Table 'mysql. slave_worker_info ' doesn't exist when using LOCK TABLES 解决方式: 1、删除上述系统表,

MySQL备份与恢复

匿名 (未验证) 提交于 2019-12-02 22:06:11
mysql的备份可以分为冷备份和热备份两种。 冷备份:停止数据库服务进行备份 热备份:不停止数据库服务进行备份 mysql的存储引擎为MyIsam时,只支持冷备份,可以直接复制mysql的data目录下的数据库文件。这种方式需要注意mysql版本兼容性问题,同时,为了保证一致性,必须停机或者锁表进行备份。 在恢复时,首先关闭mysql服务,将备份的数据库文件复制到mysql的data目录下,然后启动mysql服务。 mysql的存储引擎为InnoDB时,支持热备份,因为InnoDB引擎是事务性存储引擎,可以根据日志来进行redo和undo,即将备份的时候没有提交的事务进行回滚,已经提交了的事务进行重做。 mysql提供了mysqldump命令用于存储引擎为InnoDB时的备份。 一、备份 mysqldump的语法和选项可以通过命令行输入mysqldump --help查看。 -- 运行帮助命令,查看语法及完整的选项列表 mysqldeump --help 这里因为安装mysql时配置了环境变量,所以可以直接输入命令,否则需要进入mysql安装目录的bin目录下。(例如:C:\soft\MySql\mysql-5.7.22-winx64\bin) mysqldump命令备份指定数据库。 -- 备份指定数据库(demo) mysqldump -u root -h 127.0.0.1

mysqldump 多 个 db

匿名 (未验证) 提交于 2019-12-02 22:06:11
背景 机器下架,需要将源db迁移到新机器上, db_xx 有固定前缀,按照号段号段分100个库, 需要将该100个 现在需要向办法将这 100个 db 迁移到 新机器上。 由于之前使用过mysqldump 备份过数据库,这里也想使用 mysqldump方法. 1.mysqldump 备份 简介 mysqldump 备份少数数据库: mysqldump -uusername -ppassword -hxxxxx --databases db1 db2 > db1db2.sql mysqldump 备份少量数据库时,可以通过--databases 将要备份的db 列出来, 进行备份,但 如果使用这种方法,将会使 --databases 后的 列表很长, 而且 很容易漏写( 除非你用脚本罗列 拼接) 2.source 恢复简介 mysqldump出的数据,可以通过 source命令来恢复,使用方法: mysql> source db1db2.sql; 该方法要求进入mysql , 当然还有其他方法。 3.思考使用脚本批量备份 要想使用脚本,需要解决下面的问题: 1.需要备份的db名字列表 2.能在shell管理台执行备份操作 3.1 获取db列表 show databases like ‘db%’ 来获取 需要备份 的 db列表,并导出到文件: mysql -hxxx -uxxx

centos 备份与还原mysql

匿名 (未验证) 提交于 2019-12-02 22:06:11
备份sql #导出整个数据库(包括数据库中的数据) #mysqldump -u 用户名 -p 数据库 > 备份的路径及文件名 [root @hll ~] # mysqldump -u hll -p hll > /home/hll.sql #输入密码 Enter password: [root @hll ~] # #导出数据库中的某张数据表(包含数据) #mysqldump -u 用户名 -p 数据库 表名 > 备份的路径及文件名 [root @hll ~] # mysqldump -u hll -p hll user > /home/user.sql #输入密码 Enter password: [root @hll ~] # 还原sql #还原数据库 #mysql -u 用户名 -p -f 数据库 < 备份的路径及文件名(-f 参数表示在导出过程中忽略出现的SQL错误) [root @hll ~] # mysql -u hll -p -f hll < /home/hll.sql #输入密码 Enter password: [root @hll ~] # 文章来源: centos 备份与还原mysql

MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟

匿名 (未验证) 提交于 2019-12-02 22:06:11
本来MySQL BINLOG和SHOW PROCESSLIST命令属于八竿子打不着的两个事务,但在最近故障排查中,发现主库和从库已经存在很严重的复制延迟,但从库上显示slave_behind_master值为0,复制SQL线程与备份线程之间相互阻塞,但未报死锁。 在从库上执行SHOW PROCESSLIST发现复制的SQL线程等待锁,而等待SQL的WHERE条件竟然是类似于WHERE C1='ABC' AND C2>'2018-03-01' AND C2<'2018-03-26' 这种个范围查询,第一时间想到就是怎么是个基于STATEMENT的复制,不科学啊,我们生产环境统一使用基于ROW格式的复制,难道研发私自修改回话级别的复制格式? 使用MySQL Binlog导出日志一看: 发现真错怪研发同事啦,rbr_only=yes说明基于ROW格式进行复制,“SET TRANSACTION ISOLATION LEVEL READ COMMITTED”也是基于行格式复制的典型特征之一,last_committed和sequence_number用于MySQL 5.7版本中的并发复制,row_query后跟的是在主库上执行的原始SQL,也就是我们在从库SHOW PROCESSLIST中看到的SQL,但实际上从库执行的还是BINLOG部分,该BINLOG可以直接可以直接直接在从库上执行