我主要对 InnoDB 感兴趣,但也对 MyISAM 感兴趣。
我环顾 information_schema 并没有在任何地方看到这些数据。
我正在使用 MySQL 5.5.16。
当在线阅读有关 innodb_log_file_size 时,它说
日志文件的总大小必须小于 4GB
那么如果它需要更大呢?
在书籍和网上,它说将 innodb_log_file_size 设置为至少一个小时的写入值。
目前我有 2 个 1GB 的日志文件,在计算Innodb_os_log_written1 小时时,至少需要 10GB。2GB 的日志文件只能在我们的峰值负载下进行 20 分钟的写入。
蒂亚!
我有一个 MySQL 开发服务器,它在某些数据库中使用 InnoDB 表。它最初是使用默认值设置的,因此所有数据都进入系统表空间(例如主表空间)ibdata1文件)。一路上,我启用了innodb_file_per_table以便新的数据库表进入它们自己的文件。
我现在想通过删除一些开发数据库来回收磁盘空间。我知道我必须 mysqldump 并重新导入系统表空间中的那些数据库。确定重点关注哪些的最佳方法是什么?
我没有看到任何明显的东西 information_schema数据库中。我可以使用 SSH shell 手动浏览服务器,但我正在寻找一种更自动化或更优雅的方式来做到这一点。
在一些较旧的数据库中,我只看到.frm数据库目录中的文件,在较新的数据库中我看到.frm并.ibd文件。这似乎是知道数据在哪里的关键......
健全性检查:是否可以通过 mysqldump 一半的数据库来回收空间,或者你真的必须对每个数据库都做?该服务器中有 54 个使用 InnoDB 表的数据库。
注意:在 UNIX 上使用 MySQL v5.1。
我在集群中使用流式复制和 PITR(WAL 文件),目前我有不同版本postgresql.conf的主服务器和备用服务器。
文件中唯一的区别是归档命令,它指向不同的目录。
例如,在主人我有:
archive_command = 'cp %p /dbckp/server1master/%f'
Run Code Online (Sandbox Code Playgroud)
在待机状态下:
archive_command = 'cp %p /dbckp/server2master/%f'
Run Code Online (Sandbox Code Playgroud)
我认为,如果备用系统在“备用模式”下没有生成任何档案,我可以使用相同的目录并在单个postgresql.conf.
我有两个数据库,一个大小为 170 MB,第二个为 15 MB,都具有 INNODB 表并innodb_buffer_pool_size设置为 8 MB。
我的查询现在响应良好,即在几毫秒内。如果我设置的innodb_buffer_pool_size比默认值多,对性能有什么影响吗?
我需要将不同的 MySQL 数据库从多个服务器复制到单个从服务器中。如何才能做到这一点?有没有办法定义多个主主机?
我已经下载.sql了我的数据库服务器的文件。它在D:我的 Windows 机器的驱动器中。
我想在我的这台机器上恢复备份。我用了:
mysql database -u root < backupfile.sql
Run Code Online (Sandbox Code Playgroud)
其中 database 是我在这台机器上的新数据库名称。我的困惑是我backupfile.sql在D:驱动器中,因此我猜有错误。
ERROR 1064 <42000>:You have an error in your SQL syntax;Check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql database -u root < backupfile.sql' at line 1.
Run Code Online (Sandbox Code Playgroud) 不久前,运行 MySQL Server 5.5.31 的 Windows 7 系统崩溃并损坏了 InnoDB 数据库。可用的每周备份并未涵盖在此期间创建的所有表,因此我将努力从数据中尽可能多地恢复。崩溃后,我将 MySQL 的整个数据文件夹复制到外部驱动器。我想以此作为我的救援尝试的起点。
在下面,我将描述我的(尚未令人信服的)救援尝试的步骤,并感谢您对如何改进它的任何评论或指导:
我们有一个大小为 2 TB 的 mysql 数据库,其中有 5 个从 110GB 到 350GB 的大表。当我们尝试删除这些表时,mysql 进入 defunct 模式并长时间挂在该状态。有没有办法在不挂 mysql 的情况下删除这些表。我们有一台机器,内存为 122GB,交换为 60GB。我们使用 InnoDB 引擎希望信息足以帮助我们解决这个问题
我运行以下命令来创建一个 mysqldump
mysqldump -ubackup -psomething --single-transaction --quick somedatabase | gzip > 4_19.gz
Run Code Online (Sandbox Code Playgroud)
在创建转储的 60%(估计 zip 文件的检查大小)后,我收到以下错误:
mysqldump: Couldn't execute 'show table status like 'customer\_cohort\_paid'': SELECT command denied to user ''@'%' for column 'customer_id' in table 'sales_order' (1143)
Run Code Online (Sandbox Code Playgroud)
它谈到了一个空白用户的权限问题user ''@'%'。此外,grants对于backup用户如下:
mysql> show grants for 'backup'@'%';
+------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for backup@% |
+------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'backup'@'%' IDENTIFIED BY PASSWORD '*SOMETHING' |
+------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set …Run Code Online (Sandbox Code Playgroud) mysql ×9
innodb ×5
mysql-5.5 ×3
backup ×2
mysqldump ×2
replication ×2
restore ×2
drop-table ×1
myisam ×1
performance ×1
postgresql ×1
recovery ×1
tuning ×1