我有一种方法可以查询 SQL Server 2005+ 的各种日志文件的文件系统位置。我的意思是文本日志文件,而不是数据库事务日志文件?
例如,我的 SQL 代理、错误日志和维护计划都写入一个名为:
D:\MSSQLData\MSSQL.1\MSSQL\LOG
Run Code Online (Sandbox Code Playgroud)

我需要找到这个文件夹的名称。
更新:
除了寻找 SQL 书籍之外,我还浏览了下的注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
Run Code Online (Sandbox Code Playgroud)
和
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER`
Run Code Online (Sandbox Code Playgroud)
但没有什么跳出来给我。
我也想要一种“官方”的方式来实现这一点,而不是依赖于未记录的功能。
我尝试使用 pt-query-digest 解析一个大型日志文件,但它给出了“内存不足!” 当我尝试读取文件时。我有 3GB 内存,40GB 硬盘空间,文件是 20GB。我没有在有关内存的文档中找到任何内容。
我减少命令:
pt-query-digest --group-by fingerprint --print --no-report /path/to/largeLogFile.log
pt-query-digest --table-access /path/to/largeLogFile.log
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
如何从 general_log 生成的大型日志文件中提取查询指纹?
如何提取所有使用过的表?
编辑:
尝试@DTest --sample 选项(带有 2 和 1),但结果相同。就在它在 htop 中达到 50% 内存之前,它每次都会死亡(请参阅 screnshoot):
我在它死之前做了一个 strace 我得到:
read(3, "phone from teams as t ri"..., 4096) = 4096
mremap(0x5b27a000, 1543499776, 1543503872, MREMAP_MAYMOVE) = -1 ENOMEM (Cannot allocate memory)
mmap2(NULL, 1543503872, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
brk(0x64c2d000) = 0x8c2e000
mmap2(NULL, 1543634944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = …Run Code Online (Sandbox Code Playgroud) 我在谷歌上搜索了很多,但没有找到解决方案,我不确定我在这里缺少什么。
我的目的是将此过程中的通知、信息存储到存储在日志目录中的 postgres 日志(txt 文件)中。
在postgres中,我写了一个简单的过程,如下所示。 - - 程序 - - -
create or replace procedure log_debug_info()
language 'plpgsql'
as $body$
begin
raise notice 'Test notice';
raise info 'Test info';
raise log 'test log';
raise debug 'test debug';
end;
$body$
Run Code Online (Sandbox Code Playgroud)
---结束------ 这是我对日志的配置。
#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on. …Run Code Online (Sandbox Code Playgroud) 在PostgreSQL文档状态:
任何有副作用的函数都必须标记为 VOLATILE...
考虑以下函数:
CREATE OR REPLACE FUNCTION count_items()
RETURNS integer AS
$BODY$
DECLARE
v_result INTEGER DEFAULT 0;
BEGIN
SELECT
count( t.id )
INTO
v_result
FROM
some_table t;
RETURN v_result;
EXCEPTION
WHEN OTHERS THEN
PERFORM error_log_insert( SQLSTATE, SQLERRM, current_query() );
RETURN 0;
END;
$BODY$
LANGUAGE plpgsql STABLE
COST 10;
Run Code Online (Sandbox Code Playgroud)
由于error_log_insert更改数据库(对异常执行插入),这是否意味着该count_items函数具有副作用(尽管是间接的),因此不能声明STABLE,但必须声明VOLATILE?
换句话说,函数的稳定性或波动性是否也取决于它在其异常块中调用的函数?
如果是这种情况,那么您将如何STABLE在 PostgreSQL 中创建将所有异常记录到数据库表中的函数?
我和我的同事没有使用“远程桌面”连接到 SQL Server,而是使用 SQL Server Management Studio 将更改应用于远程服务器(每个用户都有自己的凭据)。
我们中的一个人对 SQL 表进行了一些更改,这使所有数据都处于危险之中。我很确定我们中的一个人是有罪的。我的问题是这个。我怎样才能证明这一点?是否有任何类型的查询来显示从客户端到远程 SQL Server 实例的所有过去的远程连接?也许有 IP 地址、计算机名称、凭据。
SQL Server Management Studio 是否有某种日志文件或任何查询来显示远程服务器登录?
PS 远程 SQL Server 实例上没有完整备份。日志很干净。
这是我们登录 SQL Server 的方式:

这个问题在专家交流中尝试了两次,但没有真正的答案。
我知道我不应该缩小日志文件 - 这不是问题。
如果你想回答一个人不应该这样做 - 这已经被多次确认,是的,这不是这个问题的目标。
设置为简单备份也不是一个选项。
多年来一直困扰着我 - 事实上我现在知道为什么应该备份它两次。
我最近看到第一个日志文件每次都能够在第一次尝试时缩小 - 令人难以置信。我向那个人询问了这件事,我只能说“在发布之前重新组织”——我不知道他指的是什么。我无法再次与他联系。
我从 EE 上的现有帖子中知道这一点:“收缩删除日志的非活动部分。为了不活动,必须截断日志,这作为日志备份的一部分发生。
但是,事务日志由许多以循环方式使用的虚拟日志文件组成。只能修剪文件末尾的虚拟日志,因此如果 SQL Server 当前正在使用最后一个虚拟日志,则无法删除任何内容。sql 7 中的旧修复是运行一个脚本,该脚本运行足够多的虚拟事务来填充日志并将指针环绕到第一个虚拟日志(如果您愿意,仍然可以使用此方法)。
http://support.microsoft.com/kb/256650/EN-US
DBCC 现在为您执行此操作,但仍需要额外的步骤再次截断日志,以便可以删除非活动空间”
来自另一位用户:“我所要做的就是停止上次管理员在数据库维护计划中留下的自动优化和完整性检查。”
请问MySQL审计日志插件和一般日志的区别?我正在寻找在 MySQL 服务器中完成的任何活动。
我一直在试验 Postgres 配置参数,并注意到当我使用阻止 Postgres 启动的设置时,pg_log 目录日志中没有显示任何内容。我有
log_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
Run Code Online (Sandbox Code Playgroud)
有没有办法让 Postgres 在 Windows 7 和 Postgres 9.3 上将启动错误记录到 pg_log?
我找不到任何相关的东西listing the installed features in sql server 2016。
我可以手动查看日志 - 根据下面的信息,但我想自动化它。
安装 SQL Server 2016 后,我得到一个日志文件 - 位于以下文件夹中的某处:
C:\Program Files\Microsoft SQL Server\130\Setup Bootstrap\Log\20200109_205540
名称以Summary_+开头的文件my_server_name
在该文件中,除其他外,我可以找到已安装的 Sql Server 功能列表:

安装后,稍后当系统已在使用时,应用登录和权限,修复防火墙等。
有没有一种简单的方法来获取安装在 sql server 实例上的功能列表?
logs ×10
postgresql ×4
sql-server ×4
audit ×2
mysql ×2
automation ×1
backup ×1
exception ×1
installation ×1
t-sql ×1
truncate ×1