我在一家小公司(3 个用户)有一台 Linux 服务器,它充当域服务器并在 VMware 下运行两台虚拟机:一台装有 SQL Server 2000,另一台装有 SQL Server 2005,每种情况都在 Win2k 上运行。每个 SQL Server 都有几个小而重要的数据库。
据我所知,Linux 服务器的一生都非常无聊。它有 2GB 的内存,但即使使用虚拟机,它的内存使用量也不会超过 512MB,其余的都分配给缓存。
但是虚拟机性能很糟糕!数据库比我从专用(但古老的)机器上移动它们之前要慢。如果有一段时间没有使用数据库,您可以在它再次开始响应之前喝杯咖啡。
我可以做些什么来提高性能?
sql-server-2005 sql-server linux sql-server-2000 virtualisation
我有一个表,里面有 300 列。每列最多为255个字节(也就是这个企业的理由)。
当我尝试使用创建它时VARCHAR(255),我超过了最大字节数的限制。所以我创建的是使用 300 个TEXT字段。然后当我尝试插入数据时,出现错误:
行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 或使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 可能会有所帮助。
在当前行格式中,内联存储 768 字节的 BLOB 前缀。
阅读完此内容后,我尝试通过指定ROW_FORMAT=COMPRESSED. 现在的问题似乎是,当我尝试使用该格式创建表时,出现相同的错误。
CREATE TABLE T_ObjLarge__c (Id VARCHAR(18), Name VARCHAR(80),
ObjLarge_Field_1__c TEXT,
ObjLarge_Field_2__c TEXT,
...
ObjLarge_Field_300__c TEXT
) ROW_FORMAT=COMPRESSED ;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 可能会有所帮助。
在当前行格式中,内联存储 0 字节的 BLOB 前缀。
我在 Linux mint 上使用 MySQL 5.5.31。没有索引。我试过DYNAMIC格式;它的行为方式相同。
的输出SHOW GLOBAL VARIABLES LIKE 'innodb_file_per_table';:
+--------------------------+-----------+ …Run Code Online (Sandbox Code Playgroud) 在我的开发 (Ubuntu linux) 笔记本电脑上,我有一个postgres操作系统帐户,该帐户拥有 Postgres 安装。
当我想执行任何 postgres 活动、创建/删除数据库等时,我必须首先 su 到 postgres 帐户。
$ sudo su postgres
Run Code Online (Sandbox Code Playgroud)
如何更改我自己的操作系统帐户以获得postgres的操作系统级权限,这样我就不需要su 了?
我有一个 8GB 的大数据库,在这个数据库中有 900 万个联系人。当我们尝试检索所有联系人时,需要将近 1 或 2 个小时(在某些情况下会导致超时)来检索单个查询执行的所有联系人。此外,我有 8 个 CPU 和 24GB RAM、至强处理器,mysql 进程不会分布在 8 个 CPU 上。我的问题是,我们是否可以为单个查询启用多线程。
等待您的回复
类似问题:Mongodb 上的高全局锁定百分比
我们在 v2.4.8 mongodb 中有一个生产设置副本集,它运行在五个 4 核、28gb RAM 虚拟机上,标准 azure 数据磁盘 HDD 运行在 64 位 CentOS 6 上。我们以大约 600-700 ops/sec/secondary 的速度在辅助节点上分配读取。每个辅助节点的 CPU 使用率约为 15%。主服务器上的 CPU 使用率约为 5-10%。我们目前在我们的主服务器上遇到高全局写锁和后台刷新平均值的问题。尽管每秒只有大约 200 次插入/更新/删除(请参阅下面的 MMS 输出),但我们的主服务器上的全局写锁定在 30-40% 之间。我们还注意到,我们的后台刷新平均值在 2 到 15 秒之间。不幸的是,这会导致大量缓慢的查询(每秒最多 50 次更新/插入 > 100 毫秒)。我们已经考虑过分片,但觉得 mongodb 应该表现得比这更好。
这告诉我,我们在写入 HDD 时遇到问题,但运行一个简单的 iostat 显示我们在 sdc(我们正在写入的磁盘)上的利用率没有达到最大值,并且在 20% 到 40% 之间:
$ iostat -x 1
Run Code Online (Sandbox Code Playgroud)
4秒结果:
Linux 2.6.32-279.14.1.el6.openlogic.x86_64 (mongodb3-wus) 05/08/2014 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.28 0.00 1.82 …Run Code Online (Sandbox Code Playgroud) 让我描述一下我们现在面临的情况:
我们有一个 MySQL Master-Slave,基于行的复制设置,目前,slave 被一个永久的System Lock. Master 是一个活跃的服务器,有很多updates并且deletes正在运行,但是 Slave 不会复制任何东西。日志中没有错误,从站正在从主站读取二进制日志,但它对从站没有任何作用。该Seconds_Behind_Master值不断增加。这是show processlist奴隶显示的内容:
mysql> show processlist ;
+----+-------------+-----------+------+---------+-------+----------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------+------+---------+-------+----------------------------------+------------------+
| 10 | system user | | NULL | Connect | 4985 | Waiting for master to send event | NULL |
| 11 | system user | | NULL | Connect | 53715 | System …Run Code Online (Sandbox Code Playgroud) 很多时候,postgresql 服务在一些配置更改后无法重新启动。
是否有任何命令行工具允许在重新加载/重新启动服务之前检查pg_hba.conf和其他 pg*.conf文件的语法,或者在任何配置更改之后检查更好?
我正在根据https://docs.microsoft.com/en-us/sql/linux/sql-server-linux为 Linux 配置 Always-on for SQL Server 2017 RC1(14.0.80.90,日期为 2017-7-18)-availability-group-configure-ha。此安装使用 docker 映像,全部位于同一物理主机上。所有步骤都在工作,直到我到达步骤:
CREATE AVAILABILITY GROUP [ag1]
WITH (DB_FAILOVER = ON, CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'always-onA'
WITH (
ENDPOINT_URL = N'tcp://always-onA:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'always-onB'
WITH (
ENDPOINT_URL = N'tcp://always-onB:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'always-onC'
WITH(
ENDPOINT_URL = N'tcp://always-onC:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
);
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
Msg 35237, …Run Code Online (Sandbox Code Playgroud) 当我跑步时它journalctl -u mssql-server.service说B blob data:
Sep 06 17:34:44 x230 systemd[1]: Stopping Microsoft SQL Server Database Engine...
Sep 06 17:34:44 x230 sqlservr[22239]: [200B blob data]
Sep 06 17:34:44 x230 sqlservr[22239]: [190B blob data]
Sep 06 17:34:51 x230 sqlservr[22239]: [73B blob data]
Sep 06 17:34:51 x230 sqlservr[22239]: [146B blob data]
Sep 06 17:39:51 x230 sqlservr[22239]: [73B blob data]
Sep 06 17:39:51 x230 sqlservr[22239]: [146B blob data]
Run Code Online (Sandbox Code Playgroud)
我也没有运行 DDL 命令,也没有插入或更新 blob 数据。但有可能是mssql-cli在后台执行类似操作。
我已经安装了 Mongodb 4.2
和跑步时
sudo service mongod start|restart
它不会启动服务器,我在 mongod.log 文件中有以下日志。
Exception in initAndListen: MustDowngrade: Collection does not have UUID in KVCatalog. Collection: local.startup_log, terminating
这里有更多细节:
CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
CONTROL [initandlisten] MongoDB starting : pid=7434 port=27017 dbpath=/var/lib/mongodb 64-bit host=vm2851358555.bitcommand.com
CONTROL [initandlisten] db version v4.2.0
CONTROL [initandlisten] git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.0k 28 May 2019
CONTROL [initandlisten] allocator: tcmalloc
CONTROL [initandlisten] modules: none
CONTROL [initandlisten] build environment: …Run Code Online (Sandbox Code Playgroud) linux ×10
mysql ×3
mongodb ×2
postgresql ×2
sql-server ×2
ubuntu ×2
debian ×1
errors ×1
innodb ×1
locking ×1
logs ×1
mongodb-4.0 ×1
mysql-5.5 ×1
pg-hba.conf ×1
replication ×1