标签: innodb

mysql灾难恢复

我们刚刚遭遇了一场大灾难:有人对生产数据库进行了不受控制的更新,很明显,备份过程很长时间没有工作,所以我们丢失了重大数据。一个 4000 万行的表现在充满了垃圾。

有人有恢复数据的想法吗?例如,使用文件系统恢复的工具?

事实:

  • ext3 fs(在 Debian 上)
  • InnoDB 引擎(在 Mysql 5.0 上)

老实说,这不是我们公司的第一次重大灾难,但这很容易成为最后一次。我们通常会想出一些主意来挽救这一天,但这一次,我真的没有主意了。Clusterf*ck...

编辑:问题发生在没有 where 的更新语句之后。问题是,这个问题发生在星期一下午和星期二早上(法国时间)之间,今天才发现,因为各种原因(应用程序提供了一个同步工具,所以新数据插入了现在丢失的数据,但在另一张桌子现在完全坏了)。所以实际上,表中几乎所有行(新插入的除外)都包含相同的数据(id 列除外)。

关于 ibdata* 和 ib_logfile*,我停止了复制的服务器,所以它们保持现在的状态。我无法停止主服务器上的数据库来复制文件。

mysql disaster-recovery innodb database-restore

5
推荐指数
1
解决办法
755
查看次数

什么是 gen_clust_index 在 mysql 中使用的?

看来我在 mysql(运行 innodb)中有一个死锁,部分原因是 gen_clust_index 上的锁,但是,这不是我创建的表。

那么...... gen_clust_index 的简短而甜蜜的描述是什么,它在 mysql 中的用途和目的是什么。

mysql cluster innodb

5
推荐指数
1
解决办法
5988
查看次数

当模式在其名称中包含连字符(“-”)时,MySQL 5.5.9 查询缓存不起作用

我正在运行从 mysql.com 下载的 MySQL 5.5.9 x86_64 RPM。在 CentOS 5.5 Xen DomU 上运行。

我启用了 Query_cache 但是 MySQL 从不使用它。我所有的表都是 InnoDB。为什么 Qcache 从不命中?

更新 2:我发现这仅限于名称中带有 - 的模式。创建一个新架构,例如 new-db,查询缓存失败。不幸的是,我有 148 个现有的 Schama,它们的名字中都带有“-”。

更新这似乎仅限于从以前版本的 MySQL (5.0.32) 转储和导入的模式 创建新模式并在此查询缓存中查询表按预期工作。

这是我的 Qc 工作和不工作的设置和示例。

mysql> SHOW VARIABLES LIKE '%query_cache%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| have_query_cache             | YES       |
| query_cache_limit            | 2097152   |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 536870912 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
+------------------------------+-----------+ …
Run Code Online (Sandbox Code Playgroud)

mysql innodb cache

5
推荐指数
1
解决办法
1182
查看次数

MySQL,检查并启用二进制日志

我在 CentOS 上运行 MySQL 5.1.47。如何检查 InnoDB 的二进制日志记录是否处于活动状态?如果未启用,如何启用二进制日志记录?赶紧跑?
mysqld --log-bin

mysql innodb

5
推荐指数
1
解决办法
1万
查看次数

调优 InnoDB 相关 MySQL 配置后磁盘 I/O 利用率高达 100%

我在“my.conf”中添加了以下几行:

query_cache_size=128M
innodb_buffer_pool_size=512M
innodb_flush_method=O_DIRECT
Run Code Online (Sandbox Code Playgroud)

之后磁盘利用率开始上升,达到 100% 并保持稳定,由于磁盘 I/O 相关任务,CPU 也有所上升,但物理内存仅使用了 50%。

我有点迷茫 这是怎么回事?

mysql optimization innodb

5
推荐指数
1
解决办法
7016
查看次数

为什么 MySQL 使用这么多临时表?

任何配置错误是否会导致 mysql..mysql 调谐器显示创建过多的临时表

Current max_heap_table_size = 200 M
Current tmp_table_size = 200 M
Of 17158 temp tables, 30% were created on disk


table_open_cache = 125 tables
table_definition_cache = 256 tables

You have a total of 97 tables

You have 125 open tables.

Current table_cache hit rate is 3%
Run Code Online (Sandbox Code Playgroud)

早些时候,临时表是of the 23725 temp tables 38% were created on disk,但我改变max_heap,并tmp_table从16米200米和它降低到30%..

engine myisam 
group_concat_max_len = 32768
key_buffer_size = 3.7 GB,
thread_stack = 256k,
table_cache = 125
query_cache_limit …
Run Code Online (Sandbox Code Playgroud)

mysql innodb myisam memory

5
推荐指数
2
解决办法
7183
查看次数

删除 Magento MySQL 数据库后回收磁盘空间

我需要回收一些磁盘空间,所以我从我的服务器中删除了一个旧的 Magento 数据库。数据库大小约为 16 GB。我很惊讶一旦数据库被删除,它并没有真正释放磁盘空间。

我尝试重新启动 MySQL 服务器,但它仍在占用该空间。

如果重要的话,Magento 数据库会大量使用 innoDB。

我能做些什么来恢复这个磁盘空间吗?

mysql innodb magento

5
推荐指数
1
解决办法
5162
查看次数

INNODB mysql。插件已禁用

当我在我的 unbuntu 服务器上启动 mysql 时,我会收到一条消息。

121122 17:39:37 [Note] Plugin 'FEDERATED' is disabled.
121122 17:39:37 InnoDB: The InnoDB memory heap is disabled
121122 17:39:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
121122 17:39:37 InnoDB: Compressed tables use zlib 1.2.3.4
121122 17:39:37 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
121122 17:39:37 InnoDB: Completed initialization of buffer pool
121122 17:39:37 InnoDB: Fatal error: cannot allocate memory for the buffer pool
121122 17:39:37 [ERROR] Plugin 'InnoDB' init …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

5
推荐指数
1
解决办法
4062
查看次数

如何在没有全局锁的情况下顺利删除 8 GB InnoDB 表

MySQL 版本:5.1.63。

我即将删除一个更大的 ~8 GB InnoDB 表。上周,我在另一台机器上放下了一个四倍大的表,一个全局锁启动了,让我们停了大约 90 秒。我怀疑这与table_cache锁定有关。任何人都对如何使这个 DROP 更顺利地提出意见?首先小批量删除,然后删除,TRUNCATE最后删除DROP TABLE?显然,如果可能的话,我想将此数据库保留在生产中。我也一直在考虑在下降之前缩小缓冲池。

我很想听听您的意见。

mysql innodb

5
推荐指数
1
解决办法
844
查看次数

如何在 Ubuntu 上永久增加 innodb_buffer_pool_size

我已经阅读了很多帖子和手册,试图找出如何在 Ubuntu 上增加 MySQL 5.6 中的内存,其中说有 3 种方法:

  1. 通过在 my.cnf 中编辑 innodb_buffer_pool_size
  2. 通过启动 MySQL 的命令行选项
  3. 动态地使用 SQL 命令。

我假设 2 和 3 会在 MySQL 重新启动时丢失,剩下 1。

问题是,我的 /etc/mysql/my.conf 中没有这样的设置。

conf 文件中不存在字符串“inno”,“buffer_size”或“buffer-size”也不存在(但“key_buffer”在那里)。

我通过以下方式安装它:

# apt-get install mysql-server-5.6 
Run Code Online (Sandbox Code Playgroud)

我可以改变价值的任何想法?

我是否以某种方式在没有 InnoDB 引擎的情况下安装了 MySQL?

我在看错误的文件吗?

/etc/mysql 下还有一些其他的 .cnf 文件,但它们也没有 innodb 之类的东西。

mysql> show variables like 'inno%'
:
innodb_buffer_pool_size                  | 134217728              |
Run Code Online (Sandbox Code Playgroud)

所以看起来 InnoDB 已安装,我只是找不到它的配置文件在哪里。

任何帮助表示赞赏。

mysql ubuntu innodb memory buffer

5
推荐指数
1
解决办法
2万
查看次数