标签: logs

如何安全地更改 MySQL innodb 变量“innodb_log_file_size”?

所以我对调整 InnoDB 还很陌生。我正在慢慢地将表(在必要时)从 MyIsam 更改为 InnoDB。我在 innodb 中有大约 100MB,所以我将innodb_buffer_pool_size变量增加到 128MB:

mysql> show variables like 'innodb_buffer%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

当我去更改innodb_log_file_size值时(例如mysql 的 innodb 配置页面my.cnf注释将日志文件大小更改为缓冲区大小的 25%。所以现在我的 my.cnf 看起来像这样:

# innodb
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
Run Code Online (Sandbox Code Playgroud)

当我重新启动服务器时,出现此错误:

110216 9:48:41 InnoDB:初始化缓冲池,大小 = 128.0M
110216 9:48:41 InnoDB:缓冲池初始化完成
InnoDB:错误:日志文件 ./ib_logfile0 的大小不同 0 5242880 字节
InnoDB:比指定的.cnf 文件 0 33554432 字节!
110216 9:48:41 [错误] …

mysql innodb myisam logs

113
推荐指数
3
解决办法
21万
查看次数

使用 log_bin 变量禁用 MySQL 二进制日志记录

某些使用 APT 的 debian 包安装的默认 MySQL 配置文件 /etc/mysql/my.cnf 经常设置 log_bin 变量,因此启用了 binlog:

log_bin = /var/log/mysql/mysql-bin.log
Run Code Online (Sandbox Code Playgroud)

当我想在这样的安装上禁用二进制日志记录时,当然注释掉 my.cnf 中的行,但我想知道是否有办法通过将 log_bin 显式设置为 OFF 来禁用二进制日志记录,在 debian 风格中,我的意思是在一个包含文件,如 /etc/mysql/conf.d/myCustomFile.cnf,因此默认 my.cnf 不会更改,如有必要,可以通过 apt 轻松更新。

我试过“log_bin = 0”、“log_bin = OFF”或“log_bin =”,但没有一个有效......

mysql logs binlog debian

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

我可以看到在 SQL Server 数据库上运行的历史查询吗?

有人在我们的 SQL Server 数据库上远程运行查询,他们的系统崩溃了。

他们没有该查询的备份,并希望查看服务器上运行的内容。

是否可以在日志或历史记录中找到此查询?

sql-server logs

46
推荐指数
4
解决办法
31万
查看次数

log_min_duration_statement 设置被忽略

Postgresql 9.1在 Ubuntu 上运行。确切的 Postgresql 版本是9.1+129ubuntu1如我的包管理器所示。

我有 2 个正在使用的数据库,它们是从远程服务器使用的。

我希望记录执行时间较长的查询。所以我在/etc/postgresql/9.1/main/postgresql.conf文件中设置了以下参数

log_min_duration_statement = 10000
log_statement = 'mod'
Run Code Online (Sandbox Code Playgroud)

所以 Postgresql 会记录耗时超过 10 秒的查询。

但是当我reload配置 postgres 时,Postgresql 开始记录每个符合log_statement值的查询。我将持续时间设置为 100 秒以确保

log_min_duration_statement = 100000
Run Code Online (Sandbox Code Playgroud)

但是 Postgresql 会继续记录每个符合log_statement值的查询,而不管值是多少log_min_duration_statement

设置log_statementnone似乎停止记录。

有什么我错过的配置吗?

postgresql performance logs postgresql-9.1 postgresql-performance

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

MySQL InnoDB page_cleaner 设置可能不是最佳的

在mysqld.log中看到这个注释:

[Note] InnoDB: page_cleaner: 1000ms intended loop took 15888ms. The settings might not be optimal. (flushed=200 and evicted=0, during the time.)
Run Code Online (Sandbox Code Playgroud)

这里似乎提到了这样的事情: MySQL 实例停滞“做 SYNC 索引”

我的问题是:当在日志中看到此注释时,应该采取什么措施(如果有)?

MySQL 和操作系统版本:
mysql-community-server- 5.7.9 -1.el7.x86_64
centos-release-7-1.1503.el7.centos.2.8.x86_64

运行SHOW VARIABLES LIKE 'innodb%'; 如建议所示:

innodb_page_cleaners | 1
Run Code Online (Sandbox Code Playgroud)

mysql innodb optimization logs configuration

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

如何在 Sql Server 中存储“n”天的 Web 服务器日志?

为了更快的报告和性能分析,我们希望将我们的 Web 服务器日志插入到 Sql Server 中。这将使我们能够近乎实时地查看流量模式、问题和减速情况。

我们有一个守护进程,它监听来自负载均衡器的请求/响应事件并批量插入数据库。

但是,我们每天会获得大约 1 GB 的日志,而且我们只需要保留大约一周的时间(至少以这种原始形式)。

存储这些数据的最佳方法是什么,删除旧条目的最佳方法是什么?

我们已经讨论过将每天的数据存储在它自己的表中,例如,Log_2011_04_07将拥有当天的所有条目,然后删除最旧的表。可以创建一个视图来跨越所有日表,以便于查询。可行吗?

sql-server-2008 sql-server logs web-server

18
推荐指数
2
解决办法
1297
查看次数

mysql中的iblog文件究竟是什么

我想了解这些 ibdata 文件,因为它们在崩溃恢复过程中起着至关重要的作用。我无法通过网络找到合适的资源。

mysql innodb logs

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

如何将 MySQL 日志输出到 syslog?

我想使用 syslog 在 Ubuntu(10.04 LTS) 上记录 MySQL(5.1.41)。我找到了将错误日志输出到 syslog 的信息。

[mysqld_safe]
syslog
Run Code Online (Sandbox Code Playgroud)

但我想使用 syslog 来记录一般日志和慢查询日志。请教我如何写配置文件?

我在参考手册中找不到如何做到这一点。

http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html

mysql logs

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

日志表应该获取 id 字段还是主键?

我有一个日志表,用于捕获某些文件何时导出到另一个系统的日期时间戳。

导出的日志表目前有三个字段:

id                (primary key)
messageId         (int)
exportedDateTime  (datetime)
Run Code Online (Sandbox Code Playgroud)

回顾这一点,我发现该id字段没有任何用处,因为没有连接到该表。在这个表上唯一的工作是插入处理消息的批处理作业并插入到这个日志表中。

我应该删除该id字段吗?

我是否应该在任何一个主键messageIdexportedDateTime或两者兼而有之?

database-design primary-key logs

13
推荐指数
2
解决办法
6139
查看次数

如何最好地维护 SQL 日志文件大小

我有点像一个新的 DBA,我正在管理一个具有大量活动的 SQL Server 2012 实例。我在完全恢复模式下运行,因为我们需要时间点恢复。

现在,我每天凌晨 5 点对数据库和日志进行完整备份。一些日志文件已经膨胀到 300gb,即使在进行备份后,它们的大小也不会减小。我可以通过运行类似于以下内容的内容来减小它们的大小:

BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);
Run Code Online (Sandbox Code Playgroud)

当我检查备份文件的 LSN 时,我看到如下内容:

RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN:  15781000014686200001
SecondLSN: 15802000000665000001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN:  15802000000665000001
SecondLSN: 15805000000004100001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN:  15805000000004100001
SecondLSN: 15808000000004200001
Run Code Online (Sandbox Code Playgroud)

我不相信我通过缩小日志文件来破坏我的日志链。读到这里,我确实相信我正在损害我的性能,因为那些缩小的日志文件必须重新增长自己。

问题:

  1. 为什么备份后日志文件没有缩小?是因为有未提交的事务吗?
  2. 起初我想我应该在每 5:00 AM 备份后缩小日志文件。在阅读了这对性能的影响之后,我现在相信我需要在白天每隔几个小时进行一次定期的日志备份。那是对的吗? …

sql-server backup logs sql-server-2012

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