假设您有一个明确用于数据库功能的专用服务器——您应该为操作系统保留多少内存?
我意识到这可能会有所不同,具体取决于特定的操作系统、特定的数据库软件等。但是,由于内存对数据库性能非常重要,我希望数据库具有最大合理级别的内存,而不会使主机操作系统挨饿。
所以
今天早上我一直在尝试连接 Windows 7 Professional 桌面上的 PostgreSQL 数据库。
默认值是“postgres”,但果然我忘记了最初安装时使用的密码。
我用谷歌搜索并找到了一篇与重置密码相关的帖子。我按照步骤操作,但最终结果与帖子中提到的有点不同。我用了-
net user postgres postgres
Run Code Online (Sandbox Code Playgroud)
为我的数据库重置密码,但我收到的不是成功消息:
“发生系统错误 5。访问被拒绝。”
系统错误。如何避免此错误并重置密码?
postgresql authentication windows password-recovery postgresql-9.1
我们正在运行一个网站(Moodle),用户目前发现它很慢。我想我已经将问题追溯到 MySQL 在磁盘上创建临时表。我created_tmp_disk_tables在 Mysql Workbench 服务器管理中观察了这个变量,这个数字以大约 50 个表/秒的速度增加。经过一天的使用,created_tmp_disk_tables是> 100k。此外,内存似乎没有被释放。使用量不断增加,直到系统变得几乎无法使用,我们必须重新启动 MySQL。我几乎每天都需要重新启动它,从使用大约 30-35% 的可用内存开始,并以 80% 结束一天。
我在数据库中没有 blob,也无法控制查询,因此我无法尝试优化它们。我还使用了Percona 配置向导来生成配置文件,但是 my.ini 也没有解决我的问题。
我应该更改什么来阻止 MySQL 在磁盘上创建临时表?我需要更改哪些设置?我应该给它扔更多的内存吗?
如何阻止 MySQL 占用我的内存?
我启用了slow_queries日志并发现查询SELECT GET_LOCK() 被记录为缓慢。快速搜索显示我在 PHP 配置 ( mysqli.allow_persistent = ON) 中允许持久连接。我关掉了这个。这降低了 MySQL 消耗内存的速度。它仍然在创建临时表。
我还检查了它key_buffer size是否足够大。我看着变量key_writes。这应该为零。如果没有,请增加key_buffer_size.I 有零key_reads和零,key_writes因此我认为key_buffer_size足够大。
我将tmp_table_size和max-heap-table-size增加到 1024M,因为 created_tmp_disk_tables 的增加可能表明这些表无法放入内存。这并没有解决它。
参考:http : //www.mysqlperformanceblog.com/2007/08/16/how-much-overhead-is-caused-by-on-disk-temporary-tables/
如果您sort_merge_passes …
这篇 Microsoft 文章 -如何确定 64 位版本的 Windows Server 2008 和/或 Windows 2008 R2 的适当页面文件大小提供了计算 64 位 Windows 2008 和 Windows 2008R2 的页面文件大小的指南。这无疑适用于通用服务器。我想知道在 Windows 2008/R2 64 位上运行的 SQL Server 2008R2 的指导是什么?
我假设我们希望内存中的数据尽可能少地访问页面文件,否则 SQL 可能会访问磁盘两次以获取数据。SQL Server 甚至允许内存中的数据访问页面文件吗?我已经通过SQL Server 2008 R2 联机丛书寻找指导,但还没有发现任何关于页面文件使用的提及。
这是一个潜在的使用场景:给定一个具有 64GB RAM 的物理服务器,整个 64GB RAM 是否需要一个页面文件?我们应该为 96GB 的页面文件做好准备吗?对于单个文件来说,这似乎有点过分。我知道传统观点是,Windows 将页面文件与内存结合起来,以尝试在 RAM 上更轻松地交换应用程序,但这是真的吗?小于 64GB 的页面文件会影响性能吗?
我想更改文件中的datadir路径my.ini。
现有的datadir路径是C:/ProgramData/MySQL/MySQL Server 5.1/Data/
我的C:驱动器大小为 30 GB,MySQL 数据文件夹占用 25 GB。所以我想datadir将F:/naveen/data.
这可能吗?
我的机器运行的是Windows Server 2003。
在全新安装 XAMPP 并从我的 linux live db 导入到 windows 开发阶段后,我开始遇到INSERT. 其他一切似乎都运行良好。
我得到的错误mysql_error.log是:
2013-08-15 12:44:49 16c0 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-08-15 12:44:49 16c0 InnoDB: Recalculation of persistent statistics requested for table "sizaradb"."pages" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-08-15 12:44:59 16c0 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-08-15 12:44:59 16c0 InnoDB: Recalculation of persistent statistics requested for table "sizaradb"."translations" but the required persistent statistics storage is …Run Code Online (Sandbox Code Playgroud) 尝试对单个 Postgres 服务器(Win7 64)进行每小时增量备份。
我有以下设置postgresql.conf:
max_wal_senders = 2
wal_level = archive
archive_mode = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
Run Code Online (Sandbox Code Playgroud)
(重新开始)
我做了一个基本备份 pg_basebackup -U postgres -D ..\foo -F t -x
它在base.tar文件foo夹中创建了一个大文件并添加了一些 16,384 KB 的文件,我认为这些文件是 WAL。
我不明白的是为什么 WALfoo不会改变。data/pg_xlog变化中的 WAL 。pg 不应该复制它们吗?它是如何决定这样做的?
也许我需要设置archive_timeout=3600?
我见过几个站点(pg 的邮件列表、bacula 的 postgres 页面)说您需要调用 pg_start_backup() 和 pg_stop_backup(),但我相信这些不是必需的。真的吗?
次要问题:
多久data/pg_xlog写入一次 WAL ?什么触发写入?
如果我\q在 psql 中执行一些 DML,它似乎会更新 WAL 。或者在 pgAdmin 中编辑一个表,然后关闭窗口。我认为它会在提交时写入。
最佳实践?pg_basebackup 每周一次?将 …
我已经在我的 Windows 机器上安装了 PostgreSQL 进行开发。现在好久没用了,忘记了用户密码postgres(PostgreSQL默认admin用户)。如何postgres在 Windows 上重置PostgreSQL的密码?
我遵循 Milen 的建议,但在尝试重新加载配置文件时收到此消息:
C:\Program Files\PostgreSQL\9.1\data>pg_ctl reload -D .
pg_ctl: could not send reload signal (PID: 3396): Operation not permitted
Run Code Online (Sandbox Code Playgroud)
在 Windows 中有一个菜单选项“重新加载配置”效果更好,如下所示:

尝试使用特定 SQL Server 群集的网络名称将 SSMS 连接到 Integration Services 时收到以下错误:
连接到计算机 'FooDB' 上的 Integration Services 服务失败,出现以下错误:“访问被拒绝”。
如果计算机尚未配置为允许通过 DCOM 进行远程连接,或者用户确实有权通过 DCOM 访问 SQL Server Integration Services 服务,则会发生此错误。
这是一个有据可查的解决方案的常规问题。例如,请参阅此处和此处的解决方案。
但是,我已经尝试了我所知道的所有解决方案,但问题仍然存在。
更详细地说,我做了以下工作:
验证连接的用户是否具有以上 MsDtsServer100 上链接的文章中列出的 DCOM 权限:
启动和激活权限:允许本地启动、允许远程启动、本地激活、远程激活
访问权限:允许本地访问,允许远程访问
配置权限:允许读取
使用数据包嗅探器确认与连接相关的所有流量都成功通过了防火墙。在 TCP 连接断开之前显示的最后一个数据包是来自服务器的回复,其中包含 MSRPC 标头中“拒绝访问”的 Windows 状态代码。
测试将用户添加到“分布式 COM 用户”组和/或本地管理员组,然后重新启动服务器。这允许用户使用本地节点名称(FooDBN1、FooDBN2)从 SSMS 连接到 SSIS,但是在连接到集群网络名称(FooDB)时,他们仍然会收到“访问被拒绝”错误,这是他们的习惯使用,以及什么对我们的其他集群有效。
此外,我还没有发现在其他集群上更改这些组的成员身份是必要的。
在我检查过的其他集群上,我可以使用集群名称将 SSMS 连接到 SSIS,无需任何非默认配置。
我意识到这可能更适合 ServerFault,如果需要,可以迁移问题,但这也是一个 SQL Server 问题,我认为这里的用户之前可能更可能处理过它。
平台详情:
windows ×10
postgresql ×4
mysql ×3
sql-server ×3
memory ×2
permissions ×2
backup ×1
clustering ×1
innodb ×1
linux ×1
mysql-5.1 ×1
mysql-5.6 ×1
performance ×1
ssis ×1