我无权访问 Postgres 安装,因此无法检查。
我是一名安全人员,我在日志中看到了明文密码:
create user user1 with password 'PLAINTEXT PASSWORD'
Run Code Online (Sandbox Code Playgroud)
在日志中没有明文密码的情况下,DBA 如何更改或创建他们的密码?
我见过这个,它指出您可以使用密码的 md5 散列,但散列也是明文。有没有更好的办法?
如何截断 SQL Server 2008 数据库中的事务日志?
什么是可能的最佳方法?
我从博客中尝试了以下方法:
1)从设置数据库到简单恢复,缩小文件,再设置完全恢复,实际上是丢失了宝贵的日志数据,无法及时恢复。不仅如此,您还将无法使用后续日志文件。
2) 缩小数据库文件或数据库增加碎片。
你可以做很多事情。首先,使用以下命令开始进行适当的日志备份,而不是截断它们并经常丢失它们。
BACKUP LOG [TestDb] TO DISK = N'C:\Backup\TestDb.bak'
GO
Run Code Online (Sandbox Code Playgroud)
删除 SHRINKING 文件的代码。如果您进行适当的日志备份,您的日志文件通常(同样通常,特殊情况除外)不会变得很大。
我遇到了一个死锁场景,死锁的唯一参与者似乎是一个表和一个从该表中删除的存储过程。我根据对其中几个死锁时的 sql 错误日志的分析得出了这个结论,并使用下面的 MSDN 文章作为破译错误日志中的跟踪的指南。
下面定义了表 DEXTable 和存储过程 ClearDEXTableRows。还有另一个存储过程 InsertDEXTableRow 将行插入 DEXTable,但是根据 sql 错误日志中的条目,该过程似乎没有涉及死锁。
DEXTable 中有大约 830 万行,并且趋于稳定增长。受访者表也很大,并且趋于稳定增长。
它是从具有频繁快速连续调用 ClearDEXTableRows 和 InsertDEXTableRow 的页面的高流量网站访问的。
在过去的 10 天内,每天发生 0 到 9 次死锁。
我已经为 1222(使用 DBCC TRACEON 1222)启用了 sql 跟踪,并且最近启用了标志 1204。在检测和结束死锁上有对这些标志的输出的很好的描述
只有这个存储过程 ClearDEXTableRows 是导致死锁的原因是否有意义?
如果是这样,任何人都可以很好地解释这种情况是如何发生的并推荐一种解决方法吗?
我怀疑 DELETE 语句导致 DEXTable 的 PK 争用需要经常重建。
如果没有,我应该启用哪些额外的跟踪来深入挖掘死锁的原因?(我想在这里学习)
-- Table definition
CREATE TABLE [dbo].[DEXTable](
[ExportID] [int] NOT NULL,
[RespondentID] [int] NOT NULL,
[Exported] [datetime] NOT NULL,
CONSTRAINT [PK_DEXTable] PRIMARY KEY CLUSTERED …Run Code Online (Sandbox Code Playgroud) 有没有办法跳过二进制日志中的特定表?
我已将二进制日志配置为每晚备份之间的增量备份策略。但是我们有一个巨大的参考表,我们将每晚从批处理(70GB 表)中更新。此表仅供读取,并且每晚使用mysqlimport.
在这个仅供参考的表的更新过程中,二进制日志导致了相当严重的延迟(尤其是当我进行完整的 70GB 更新时)。基本上它必须做两次 70GB。糟糕。
参考表当前正在使用 MyISAM(我阻止 InnoDB 尝试加载它,因此尝试使用 MyISAM)。
我正在使用此页面中的语句来查看 Postgres 中的阻塞查询
SELECT bl.pid AS blocked_pid,
a.usename AS blocked_user,
ka.query AS blocking_statement,
now() - ka.query_start AS blocking_duration,
kl.pid AS blocking_pid,
ka.usename AS blocking_user,
a.query AS blocked_statement,
now() - a.query_start AS blocked_duration
FROM pg_catalog.pg_locks bl
JOIN pg_catalog.pg_stat_activity a ON a.pid = bl.pid
JOIN pg_catalog.pg_locks kl ON kl.transactionid = bl.transactionid AND kl.pid != bl.pid
JOIN pg_catalog.pg_stat_activity ka ON ka.pid = kl.pid
WHERE NOT bl.granted;
Run Code Online (Sandbox Code Playgroud)
然而,查询被截断了,所以我通常看不到WHERE子句中的内容,这使得调试这些阻塞问题非常困难。是否有设置可以告诉 postgres 将完整查询记录到pg_stat_activity
使用 SQL Server 2008 R2:
如何写入 SQL Server 错误日志?我有一个 ROLLBACK 语句,我想将它与写入错误日志的语句结合起来用于外部监控。
例子:
BEGIN TRAN
INSERT INTO table1
SELECT *
FROM table2
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
--Write to log
RETURN
END
COMMIT TRAN
Run Code Online (Sandbox Code Playgroud)
编辑:
我想澄清一下 - 我想写入对象资源管理器中“管理”文件夹下的“SQL Server 日志”、“当前”日志。
Windows 7 64 位上的 PostgreSQL 9.2.2。
设置log_statement在postgresql.conf文件中指定的语句记录哪些(无,DDL,修改数据,或全部)。设置log_statement = 'all'会在多大程度上降低性能?我读过这会显着降低性能,但这些说法来自较旧的文章,那么相对于 ,我应该期望多少性能损失log_statement = 'none'?
我有mysql服务器。
服务器由我的应用程序和外部审计员(使用 mysql 工作台的人)访问。审核员拥有特定的用户和密码以及专用 IP,并且仅授予选择权限。
我需要记录审计员的活动。有没有可能以某种方式做到这一点?如果没有,我可以记录来自网络的包吗?
我们正在使用 SQL Server 2012 的 HADR(AlwaysOn 可用性组)功能。服务器和 AG 配置如下:
SQL12_SRV1 --> AG1(PRIMARY) - SYNC -->> DBTest
SQL12_SRV2 --> AG1(SECONDARY) -->> DBTest - ASYNC
DBTest 数据库每天都在增长 (200GB),大约每月和相同的事务日志文件也将根据数据增长。
那么如何通过使用正确的日志备份方法来最小化事务日志文件大小。我们必须在哪个副本上进行日志备份。
提前致谢。
我有一个系统(从另一家开发公司继承),但我还不知道它的所有功能。构造:
- Web 客户端/应用程序(symfony 1.4)
- DB - MySQL。
项目部署在2台服务器上:
1-st:nginx服务器+PHP+DB Master;
2-st:DB 从站。
当数据在 DB Master 上被 web-client 修改时,DB Slave 运行良好,数据有正常的复制过程。当 MySQL 管理客户端修改数据时,我有一个通知:
无法执行语句:无法写入二进制日志,因为 BINLOG_FORMAT = STATEMENT 并且至少一个表使用仅限于基于行的日志记录的存储引擎。当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,InnoDB 仅限于行日志记录
然后,DB Slave 崩溃并且复制过程中断(错误插入...重复条目...)。
类似的通知发生(在这种情况下 - 错误)具有相同的文本,当我尝试使用 java 应用程序/模块(它在事务内运行)插入数据时,异常后,事务回滚并且不会发生任何修改。
如何解决这个问题并使系统正常工作并使DB Master和DB Slaves上的修改数据在正常模式下工作成为可能?
logs ×10
mysql ×3
postgresql ×3
sql-server ×3
backup ×1
binlog ×1
concurrency ×1
deadlock ×1
errors ×1
password ×1
performance ×1
primary-key ×1
upsert ×1