Questions tagged «mysqldump»

MySQL的标准转储/备份实用程序

2
MySQL复制:“ PRIMARY键的重复条目”
您能否帮助我了解为什么在完全重新同步后,在从属服务器上收到“ PRIMARY键的重复项”。 基本上,“ mysqldump”几乎整个晚上都在运行,然后还原过程花费了几个小时,所以当我启动从站时,它比主站晚了约63874秒。 从属服务器是只读的(read_only),并且在重新同步过程中没有任何写操作,因此我不明白为什么会有重复的键。 二进制日志格式在主数据库上设置为MIXED。 用于备份数据库的命令: mysqldump --opt --single-transaction -Q --master-data=2 db | bzip2 -cz > db.sql.bz2 从属服务器仅使用以下选项从主控服务器(db-> db_backup)复制一个数据库: replicate-wild-do-table = db_backup.% replicate-rewrite-db = db->db_backup

1
导入时转储的mysql表替换了现有记录
我使用mysqldump进行了转储。 mysqldump -u... -p... mydb t1 > mydb_table.sql 然后,我将转储导入到另一个具有相同表但记录不同的数据库中。 mysql -u...-p... mydb < mydb_tables.sql 导入数据库的记录从primary_key 1到1000,导出数据库的记录从5000到10,000。 但是在导入时,现有记录(即1到1000)被删除了。 怎么样??为什么??如果它是默认行为,那么我可以给转储提供哪些选择,以免下次发生。

2
mysql.proc不断崩溃,无法执行mysqldump吗?
由于InnoDB的某些问题,我将所有数据库转储到新服务器上: mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server 转储过程因错误而停止: 59.9kB assword: 59.9kB ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should be repaired 228MB mysqldump: Got errno 32 on write 我运行了以下命令来修复所有数据库中的所有表: mysqlcheck --auto-repair --all-databases 当我检查mysql.proc状态时,会得到: mysql> check table …

3
用户抱怨当mysqldump进行时系统运行缓慢
MYSQL数据库(ibdata1)的大小为73 GB,并配置为在Windows 2008 O / S上作为INNODB表的专用数据库服务器运行。我们正在使用mysqldump运行备份mysqldump --skip-opt --quick --single-transaction --create-options --extended-insert --disable-keys --add-drop-table --complete-insert-设置字符集-压缩--log-error = Proddb0635.err -u根-pjohndoe Proddb> \ devNas \ devNas \ sqlbackup \ LIVE \ db \ Proddb0635.sql 备份文件Proddb0635.sql存储在与数据库服务器不同的服务器上。RAM是12 GB。INNODB缓冲池大小为6 GB。额外的mem.pool为32 MB。查询缓存大小为2 GB,净缓冲区长度为最大16M。数据包大小1 GB。 mysql版本是5.0.67。 当备份未运行时,用户会对性能感到满意。 备份运行时,INNODB缓冲池命中率很高,接近100%。没有挂起的读取或挂起的写入。innodb free free等待时间为0。CPU使用率不高,最低9%到最高15%,无论是否运行mysqlbackup,查询缓存命中率都较低,约为40%。当前,Windows任务管理器显示正在使用10GB的RAM。是否应该仅使用2GB RAM来增加查询缓存?mysqlld-nt占用9.2 GB的RAM,而mysqldump占用5 MB的RAM。Alos注意到,存在--compress选项时,转储文件的大小是相同的。 我应该减少iNNODB缓冲池的大小吗? 谢谢


2
加载从mysqldump创建的数据时,如何显示警告?
我有一个很大的.sql文件,其中有大量插入...值...语句。这些语句中的许多语句在执行期间都会生成警告。如何获得mysql打印警告? 如果命中了control-C,则导入将停止,然后将我放回OS命令行。 这是运行SQL的示例输出: Query OK, 9827 rows affected, 5403 warnings (0.20 sec) Records: 9827 Duplicates: 0 Warnings: 5403 Query OK, 9859 rows affected, 5247 warnings (0.20 sec) Records: 9859 Duplicates: 0 Warnings: 5247

1
mydumper的“ --use-savepoints”选项如何减少元数据锁定
MyDumper 0.6.1添加一个新选项--use-savepoints。从手册中,它意味着: 使用保存点减少元数据锁定问题,需要SUPER特权 我不明白 它如何“减少元数据锁定问题”,为什么它需要“超级权限”?我认为,元数据对于防止其他DDL修改表结构至关重要。

6
移动大型数据库
我有一个centos服务器,/ var / lib / mysql /是125GB(磁盘有1GB可用空间)。 通常,我会使用mysqldump备份数据库,但是我通常不使用大型数据库,因此我需要知道将数据库复制到新服务器的最安全方法。 所有建议表示赞赏!

1
如何将大型MySQL数据库迁移到RDS?
我已经研究了一下。我意识到在Stack Overflow上也有类似的问题,Amazon本身也提供了一个有用的文档,在此提供了建议: http://aws.amazon.com/articles/2933 我的担忧如下: 亚马逊建议mysqldump仅用于“少量数据”,它们定义为小于1GB。我打算迁移的数据库超过20GB。 mysqldump但是,有一件很有趣的事,就是它具有--single-transaction标志,这使我可以确保数据库状态与单个时间点一致。 对于大量数据,Amazon的建议是将数据库导出到平面(例如CSV)文件中,然后用于mysqlimport将其导入RDS。但是,我知道如何执行此操作的最好方法是通过SELECT ... INTO OUTFILE命令,该命令一次只操作一个表。当然,这样做的缺点是它不提供的一致性保证--single-transaction。 我想我可以通过暂时关闭整个数据库来确保一致性。但我想尽可能避免这种情况。 将大型(> 20GB)大数据库转换为平面文件以便可以使用的最佳方法是什么mysqlimport? 如果确实是SELECT ... INTO OUTFILE命令,那么如何导出数据库中的所有表(最好不必一次执行一个表)? 有什么好的方法可以确保所有这些方面的一致性?

2
用mysqldump和USE ..缓慢的MySQL数据库导入
我在MySQL innoDB中大约有12个表,其中一个表中有1100万条记录。 我使用此命令来备份内容: mysqldump -u [USERNAME] -p [DBNAME] | gzip > [/path_to_file/DBNAME].sql.gz 然后使用以下命令在新服务器上导入内容: USE [DBNAME]; SOURCE [/path_to_file/DBNAME].sql; 这是我的痛苦(每个查询的时间都在增加!): 我该怎么做才能加快速度?我的mysqldump命令出问题了吗?

2
使用MyISAM和InnoDB引擎的数据库的一致逻辑备份
我对使用MyISAM和InnoDB的MySQL数据库的逻辑备份有疑问。 该mysqldump实用程序支持以下两个选项: --single-transaction-通过在单个事务中转储所有表来创建一致的快照。daccess-ods.un.org daccess-ods.un.org仅适用于存储在支持多版本的存储引擎中的表(当前仅InnoDB支持)。option自动关闭--lock-tables。 -x, --lock -all-tables-锁定所有数据库中的所有表。这可以通过在整个转储期间使用全局读锁定来实现。自动关闭--single-transaction和--lock-tables。 对于InnoDB,我们需要 --single-transaction 对于MyISAM,我们需要-锁定表或全部锁定表(以防需要跨数据库一致性)。 那么,应该如何备份混合数据库(同时使用MyISAM和InnoDB引擎的数据库)? 编辑: 为了澄清起见,可以将问题改写为: lock- [all-] tables选项是否可以保证InnoDB表的一致性备份?


3
更改了max_allowed_pa​​cket并仍然收到“ Packet Too Large”错误
我使用mysqldump创建用于备份目的的平面文件。我已使用此文件在备用服务器上重新创建数据库。我在命令行上通过ssh运行了导入过程,但收到多个Packet too Large错误。 我用更大的max_allowed_pa​​cket(即1000M)重新启动了mysql,但仍然收到错误。我什至尝试在导入文件中设置max_allowed_pa​​cket,仍然收到错误。 有没有一种方法可以确保设置了max_allowed_pa​​cket和/或使用mysqldump来创建不会引起此问题的文件? 以供参考: 未压缩的mysqldump文件约为2GB 数据库类型为INNODB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.