我在 Wamp 服务器环境下使用 Mysql 5.6.12。现在我想将所有查询记录到“.log”文件中,由 PHP 或 PHPMyAdmin 运行的查询,我想记录它们......
我需要运行以下命令的替代方法:
C:\xxx\pgsql\bin\pg_ctl" -D "C:\xxx\pgsql\data" -l "C:\yyy\log\pgsql.log" start.
这样服务器启动并登录到C:\yyy\log\pgsql.log. 当我尝试将服务器注册为服务时 - 没有可用的日志记录选项,并且服务器会记录到事件查看器。从 pg_ctl 文档:
pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-S a[uto] | d[emand] ] [-w] [-t 秒] [-s] [-o 选项]
如何强制服务器登录到文件?注意:我不想使用一键安装程序,我只想使用解压缩的二进制文件。
说来话长,但我们的长期顾问(前雇员)在几年前(2006 年左右)编写了一个自定义脚本来与 Tivoli Storage Manager 交互,它似乎正在检查名为truncate log on checkpoint. 他们声称它阻止脚本在 SQL 2012 实例上运行和执行备份。
我觉得这完全是废话,因为我找不到任何这样的选项,sp_configure而且备份在任何地方都可以工作,只有一个实例。但是,我想移除地雷,如果是这样的话,并移除其他过时的元素。我确实让他们与供应商核实,但我对他们所说的任何事情都没有高度的信心。
我所做的研究几乎没有得到更多的回报,它可能是 SQL 2000 或 Sybase 选项的一个选项。另一种说法是,当恢复模型是SIMPLE并且没有显式选项打开或关闭它时,它在更高版本(2008 及更高版本)上被隐式调用/使用。
由于TRUNCATE LOG如今事务日志的工作方式,该命令已过时,因此我认为此时甚至无法查询该选项。
由于我没有任何 SQL Server 2000 实例,我希望有人能回忆起这个,或者可以在他们周围的一个实例上检查它。我已经告诉他们,我没有什么可以推荐的。我也希望有人可以确认这已经过时了。
我需要监控我们数据库中用户的活动。我在中设置了以下参数postgresql.conf:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Run Code Online (Sandbox Code Playgroud)
但是,我意识到大多数日志文件都填充了postgres用户执行的语句,这些语句被我为维护任务编写的脚本所使用:重新计算物化视图、pg_dump、pg_restore、将视图提取为列表文件等。结果是每天日志文件大小超过 12 Mb。
有没有办法从日志中排除特定用户的活动?
如何在 MySQL 8.0 上禁用二进制日志记录?
我需要导入一个大型 MySQLDump 文件,并且不想用大量 GB 的数据填充二进制日志。在过去,我会设置log_bin=0在my.cnf并重新启动数据库。
但是在 MySQL 8.0 中,我尝试了各种设置,但每次登录数据库并运行:
SELECT @@global.log_bin;
它不断返回 1
我试过了:
log_bin = 0
log_bin = OFF
#log_bin = 1
Run Code Online (Sandbox Code Playgroud)
是否可以禁用二进制日志?
我们有一个合并复制环境,它正在推送到 8 个订阅者。这工作正常。我们的分发数据库设置为简单恢复模式。我们有一个维护计划,将在每天 00:30 备份所有数据库。此过程完成后,分发日志文件会在接下来的 30 分钟内增长并吸收硬盘驱动器上的所有剩余空间(约 90GB)
然后发生的情况是分发数据库显示为“Recovery Pending”,在重新启动机器之前我们无法做任何事情。在此之后,我可以将日志文件缩小到 2MB。
我不知道为什么会这样。日志文件在白天以大约 10MB 的速度运行。数据库大小为 15GB。
我刚刚意识到我的服务器每天增长 2 GB,这不正常。
我查看了我的文件夹,文件夹 /var/lib/mysql 达到了 26 GB
一般情况下应该是4GB左右
一个月前,我将 MySQL 5.7 数据库迁移到 MySQL 8.0
我认为我的磁盘充满了 binlog 文件。
我想知道为什么这些文件突然变大了?
如何在不损坏数据库的情况下修复此问题?
total 26511376
-rw-r----- 1 mysql mysql 56 Aug 19 2018 auto.cnf
-rw-r----- 1 mysql mysql 178 Mar 10 06:07 binlog.000001
-rw-r----- 1 mysql mysql 73883481 Mar 10 06:25 binlog.000002
-rw-r----- 1 mysql mysql 58601919 Mar 10 13:13 binlog.000003
-rw-r----- 1 mysql mysql 178322334 Mar 11 06:25 binlog.000004
-rw-r----- 1 mysql mysql 379019579 Mar 12 06:25 binlog.000005
-rw-r----- 1 mysql mysql …Run Code Online (Sandbox Code Playgroud) 任何人都可以给出 MySQL 中使用的日志序列号 (LSN) 的示例或场景
我有一个 pl/pgsql 函数(见下文),它列出了一些字段并使用动态构造的 UPDATE 命令清除它们的内容。
当我设置时log_statement = 'mod',我在执行函数时在日志上看不到任何内容SELECT fnct_clear_temp_fields();。当我设置log_statement = 'all'并执行我可以SELECT fnct_clear_temp_fields();在日志中看到的函数时,但看不到底层的 UPDATE 命令。
有没有办法让 UPDATE 命令也出现在日志中?
有关信息,这里是功能:
CREATE OR REPLACE FUNCTION fnct_clear_temp_fields() RETURNS VOID AS $$
DECLARE
--Put into a cursor a view dynamically listing all user-defined fields beginning with 'temp_'
dataset_1 CURSOR FOR
SELECT
column_name,
table_name
FROM information_schema.tables
NATURAL JOIN information_schema.columns
WHERE
table_schema='public'
AND table_type='BASE TABLE'
AND column_name ~ '^temp_'
ORDER BY table_name,column_name;
--Record variable to go through each line …Run Code Online (Sandbox Code Playgroud) log ×10
mysql ×5
postgresql ×3
mysql-8.0 ×2
sql-server ×2
backup ×1
checkpoint ×1
dml ×1
functions ×1
innodb ×1
plpgsql ×1
transaction ×1
ubuntu ×1
windows ×1