小编Rol*_*DBA的帖子

如何找出 MySQL 表上次被分析的时间?

我主要对 InnoDB 感兴趣,但也对 MyISAM 感兴趣。

我环顾 information_schema 并没有在任何地方看到这些数据。

我正在使用 MySQL 5.5.16。

mysql innodb myisam mysql-5.5

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

MySQL 5.5 - Innodb - innodb_log_file_size 大于 4GB 的总和?

在线阅读有关 innodb_log_file_size 时,它说

日志文件的总大小必须小于 4GB

那么如果它需要更大呢?

在书籍和网上,它说将 innodb_log_file_size 设置为至少一个小时的写入值。

目前我有 2 个 1GB 的日志文件,在计算Innodb_os_log_written1 小时时,至少需要 10GB。2GB 的日志文件只能在我们的峰值负载下进行 20 分钟的写入。

蒂亚!

mysql innodb tuning mysql-5.5

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

确定 MySQL InnoDB 表是否在其自己的文件中,而不是在系统表空间中的最佳方法

我有一个 MySQL 开发服务器,它在某些数据库中使用 InnoDB 表。它最初是使用默认值设置的,因此所有数据都进入系统表空间(例如主表空间)ibdata1文件)。一路上,我启用了innodb_file_per_table以便新的数据库表进入它们自己的文件。

我现在想通过删除一些开发数据库来回收磁盘空间。我知道我必须 mysqldump 并重新导入系统表空间中的那些数据库。确定重点关注哪些的最佳方法是什么?

我没有看到任何明显的东西 information_schema数据库中。我可以使用 SSH shell 手动浏览服务器,但我正在寻找一种更自动化或更优雅的方式来做到这一点。

在一些较旧的数据库中,我只看到.frm数据库目录中的文件,在较新的数据库中我看到.frm.ibd文件。这似乎是知道数据在哪里的关键......

健全性检查:是否可以通过 mysqldump 一半的数据库来回收空间,或者你真的必须对每个数据库都做?该服务器中有 54 个使用 InnoDB 表的数据库。

注意:在 UNIX 上使用 MySQL v5.1。

mysql innodb mysqldump

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

PostgreSQL:master和standby的archive命令可以指向同一个目录吗?

我在集群中使用流式复制和 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.

postgresql replication postgresql-9.1

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

增加 innodb_buffer_pool_size 对 MySQL 性能的影响

我有两个数据库,一个大小为 170 MB,第二个为 15 MB,都具有 INNODB 表并innodb_buffer_pool_size设置为 8 MB。

我的查询现在响应良好,即在几毫秒内。如果我设置的innodb_buffer_pool_size比默认值多,对性能有什么影响吗?

mysql innodb performance

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

单从-多主 MySQL 复制

我需要将不同的 MySQL 数据库从多个服务器复制到单个从服务器中。如何才能做到这一点?有没有办法定义多个主主机?

mysql replication

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

在 MySQL 中将数据库备份恢复到本地机器

我已经下载.sql了我的数据库服务器的文件。它在D:我的 Windows 机器的驱动器中。

我想在我的这台机器上恢复备份。我用了:

mysql database -u root < backupfile.sql
Run Code Online (Sandbox Code Playgroud)

其中 database 是我在这台机器上的新数据库名称。我的困惑是我backupfile.sqlD:驱动器中,因此我猜有错误。

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 backup restore

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

如何恢复/恢复损坏的 Innodb 数据文件?

不久前,运行 MySQL Server 5.5.31 的 Windows 7 系统崩溃并损坏了 InnoDB 数据库。可用的每周备份并未涵盖在此期间创建的所有表,因此我将努力从数据中尽可能多地恢复。崩溃后,我将 MySQL 的整个数据文件夹复制到外部驱动器。我想以此作为我的救援尝试的起点。

在下面,我将描述我的(尚未令人信服的)救援尝试的步骤,并感谢您对如何改进它的任何评论或指导:

  1. 我现在已经在另一台 PC 上全新安装了 MySQL Server 5.5.31
  2. 我在命令提示符下使用“net stop MySQL”停止 MySQL 服务。
  3. 我已经认为我需要调整 my.ini 文件中 innodb 日志文件的大小,因为它偏离了默认值 (19MB) (256 MB)。
  4. 在my.ini中,我还设置了innodb_force_recovery=6
  5. 在全新安装的数据文件夹中,我用从崩溃的机器中恢复的文件覆盖了 ibdata1、iblogfile0、iblogfile1 文件。我还将相关的数据库(UPDATE:和 mysql)文件夹复制到这里(不是标准的mysql、 test 和 performance 文件夹)。
  6. 我用“net start MySQL”启动 MySQL 服务。
  7. 我进入 MySQL Workbench,打开我的服务器实例,转到数据导出,基本上保留默认设置,并将我的数据库的每个表作为单独的转储文件导出。我还设置了要转储的存储过程。否则我不会更改那里的默认设置。
  8. 我开始转储过程;它通过了 195 个表中的 43 个。在这 43 个中,
    • 有些无法恢复,产生错误“ mysqldump: Got error: 1146: Table '...whatever...' 在执行 LOCK TABLES 时不存在”,
    • 但很多都可以。我假设当转储没有产生任何错误时,表的数据没有损坏。
      然后,在 44 日之后,所有其他表转储都失败,因为它报告服务器无法再连接到:
      mysqldump: Got error: 2003: Can't connect …

mysql recovery restore

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

删除更大尺寸的表

我们有一个大小为 2 TB 的 mysql 数据库,其中有 5 个从 110GB 到 350GB 的大表。当我们尝试删除这些表时,mysql 进入 defunct 模式并长时间挂在该状态。有没有办法在不挂 mysql 的情况下删除这些表。我们有一台机器,内存为 122GB,交换为 60GB。我们使用 InnoDB 引擎希望信息足以帮助我们解决这个问题

mysql innodb drop-table

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

为什么 mysqldump 返回错误 1143:无法执行 'show table status like

我运行以下命令来创建一个 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 mysqldump backup mysql-5.5

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