• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

IMC7.3,如何修改SQLserver内存大小

9小时前提问
  • 0关注
  • 0收藏,69浏览
粉丝:0人 关注:1人

问题描述:

IMC安装的时候是使用内嵌数据库安装SQLserver。目前客户担心SQLserver会无限吃内存,使用如下图2的操作,报错。接下来该如何操作。

6 个回答
粉丝:6人 关注:1人

10-SQL Server 2019安装指导-新华三集团-H3C,需要使用工具配置,参考这个手册

暂无评论

粉丝:6人 关注:0人
粉丝:133人 关注:11人

SQL Server占用内存过高导致iMC运行异常的解决方法

一、   组网

二、   问题描述

iMCWindows环境下运行时,调用SQL Server数据库来存储数据。期间可能会出现SQL Server数据库内存占用率极高且在Windows任务管理器及iMC部署监控代理无法显示SQL Server实际占用内存大小的情况,如图1以及图2。如果该情况出现,则会严重影响iMC服务器的正常运行。

1

2

三、   过程分析

SQL Server为了使用大内存,采用AWE32位操作系统)或LockedPage技术,访问独立的内存区域。这部分内存区域不在进程的地址空间中,因此在Windows“任务管理器”的进程列表中,看不到使用的这部分内存。该现象非iMC导致,如果要查看该部分内存,则需要在SQL Server Management Studio中执行特定语句进行查询。

当数据库为SQL server 2005时,使用SQL Server Management Studio,以管理员用户身份(如sa),登录数据库,执行如下语句即可查询数据库的实际占用内存,具体操作如图3及图4

select sum(multi_pages_kb

    + virtual_memory_committed_kb

    + shared_memory_committed_kb

    + awe_allocated_kb) as total_mem_occupied

from sys.dm_os_memory_clerks

where type='MEMORYCLERK_SQLBUFFERPOOL'

3

4

当数据库为SQL Server 20082008 R22012时,使用SQL Server Management Studio,以管理员用户身份(如sa),登录数据库,执行如下语句即可查询数据库的实际占用内存,具体操作如图5及图6

select physical_memory_in_use_kb as total_mem_occupied

from sys.dm_os_process_memory

5

6

四、    解决方法:

解决该问题的方法为限制SQL Server内存,通常建议将该内存限制为物理内存的一半。限制SQL内存主要分为两种方式,分别如下:

通过iMC批处理脚本限制

可以在CMD命令行中执行setsqlservermaxmem.bat来限制,相关参数说明如下:

【存放路径】[iMC安装路径]\client\bin\setsqlservermaxmem.bat

【执行方式】

语法结构:setsqlservermaxmem.bat [-server数据库服务器IP地址或服务器名] [-saPwdsa”用户的密码] [-maxMem最大内存数值]

参数说明:saPwd指“sa”用户的密码;maxMemMB为单位。

【执行效果】如下图所示,将“192.168.4.61”这台SQL Server服务器的最大内存设置为最大值“2147483647MB
command-6

7

通过SQL Server客户端限制

windows用户或者sa用户登陆数据库,在数据库服务器名称处右键选择【属性】,见下图:

8

点击【内存】可以设置最大服务器内存,该值即为需要限制的内存大小,见下图:

9

设置完成之后,在操作系统服务中重启数据库服务即可

暂无评论

粉丝:45人 关注:25人

请确保sa对应密码正确,报错原因是数据库sa密码错误。

如果不记得密码可以通过https://zhiliao.h3c.com/Theme/details/24750 案例中提供的命令

或者pwdmgr.bat -query 127.0.0.1 master sa 查询正确的密码

暂无评论

粉丝:23人 关注:2人

一、报错根因
日志核心:Login failed for user 'sa'
执行批处理脚本连接 SQL Server 时 sa 账号登录失败,分 4 类常见原因:
sa 密码输入错误、带空格 / 特殊符号未加英文双引号包裹;
SQL Server 未开启SQL 身份验证(混合认证模式),仅 Windows 登录,sa 账号禁用;
数据库 IP、端口不通,防火墙拦截 1433 端口;
本地内嵌 SQL 实例不是默认实例,脚本未指定实例名。
二、分步骤完整解决流程(IMC 内嵌本地 SQL Server)
步骤 1:修正 bat 脚本命令格式(先排查语法)
标准正确格式(密码必须用英文双引号包裹)
cmd
cd /d E:\Program Files\iMC\client\bin
setsqlservermaxmem.bat -server 192.168.13.236 -saPwd "iMC123" -maxMem 16384
易错点:
参数是 -saPwd 不是 -sa wd,不能中间换行拆分参数;
密码含数字、字母、特殊符号时,必须套英文双引号,否则识别截断;
-server 本地库填写 127.0.0.1 或本机内网 IP,内嵌库优先用 127.0.0.1。
步骤 2:修复 SQL Server sa 账号登录失败(核心解决)
2.1 开启混合身份验证模式
打开 SSMS(SQL Server 管理工具),用Windows 身份验证登录本地数据库;
右键数据库实例 → 属性 → 安全性;
服务器身份验证选择:SQL Server 和 Windows 身份验证模式;
确定后重启 SQL Server 服务生效。
2.2 启用 sa 账号、重置密码
sql
-- 1. 启用sa账户
ALTER LOGIN sa ENABLE ;
GO
-- 2. 重置sa密码(替换为你的密码)
ALTER LOGIN sa WITH PASSWORD = 'iMC123';
GO
执行完成后,用 SSMS 测试 sa 账号能否正常登录。
2.3 放行 1433 端口防火墙
内嵌 SQL 默认端口 1433,Windows 防火墙入站规则放行 TCP 1433,否则脚本连接超时报登录失败。
步骤 3:区分 IMC 内嵌 SQL 特殊场景(极易踩坑)
IMC 自带的本地 SQL 一般是命名实例(非默认实例),-server 参数格式要加实例名:
cmd
# 格式:IP\实例名
setsqlservermaxmem.bat -server 127.0.0.1\IMC -saPwd "iMC123" -maxMem 16384
查询本地实例名方法:
服务列表查看 SQL 服务名,形如 SQL Server (IMC),括号内就是实例名;
SSMS 登录页服务器名称下拉框可查看完整实例地址。
步骤 4:bat 脚本执行成功后验证内存配置
执行成功示例
plaintext
Current max server memory: 2147483647 [128, 2147483647]
Modify max server memory from 2147483647 to 16384
SQL 内校验内存参数
登录数据库执行 SQL 查看最大内存:
sql
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'max server memory (MB)';
GO
输出config_value为你设置的数值即生效。
步骤 5:备选方案(bat 脚本持续报错时,手动 SSMS 修改内存)
Windows 身份登录 SSMS,右键实例 → 内存;
设置最大服务器内存 (MB),推荐配置规范:
服务器总内存 16G:SQL 最大设 12288MB,预留 4G 给 iMC 服务、系统;
服务器总内存 32G:SQL 最大设 24576MB;
服务器总内存 64G:SQL 最大设 49152MB;
点击确定,重启 SQL Server 服务配置立即生效。
三、关键注意事项
IMC 本地库不要把 SQL 内存拉满,必须预留至少 4GB 物理内存给 iMC 前台、后台进程,否则平台卡顿、数据库阻塞;
修改内存无需重启 IMC,仅重启 SQL 服务即可;
若客户担心内存无限占用,设置 maxMem 后会限制 SQL 内存峰值,不会无上限占用。
精简总结
报错根源:sa 账号登录失败,排查顺序:命令语法→混合认证模式→sa 启用 / 密码→实例名 / 1433 端口;
正确 bat 命令密码用英文双引号,本地内嵌库建议用 127.0.0.1 + 实例名连接;
bat 工具无法使用时,直接 SSMS 图形界面手动限制 SQL 最大内存为最优兜底方案。

暂无评论

粉丝:25人 关注:1人

你遇到的报错,通常是SSMS图形界面显示异常或权限问题导致的。可以通过下面更可靠的方法来解决。

🚀 方法一:使用 iMC 官方脚本(最推荐)

这是H3C官方为iMC环境提供的工具,专门用来修改内存限制,兼容性最好

  1. 找到脚本:在iMC服务器上,进入目录 <iMC安装目录>\client\bin\,找到 setsqlservermaxmem.bat 文件

  2. 以管理员身份运行命令提示符:在Windows开始菜单找到“命令提示符”,右键选择“以管理员身份运行”。

  3. 执行修改命令:在打开的窗口中,执行以下命令(请替换尖括号内的内容):

    bash
    "<iMC安装目录>\client\bin\setsqlservermaxmem.bat" -server localhost -saPwd <你的sa密码> -maxMem <目标内存MB数>

    示例:假设iMC安装在 D:\iMC,sa密码是 iMC123,想设置为 8GB (8192 MB),则命令为:

    bash
    "D:\iMC\client\bin\setsqlservermaxmem.bat" -server localhost -saPwd iMC123 -maxMem 8192

🖱️ 方法二:使用 SQL 命令行(T-SQL)

如果脚本无法执行,这个方法可以绕过SSMS的图形界面,直接修改配置

  1. 打开 SQL Server Management Studio (SSMS)

  2. 使用 sa 账号登录数据库

  3. 点击“新建查询”,在查询窗口中粘贴并执行以下命令(将 8192 替换为你想要的内存MB数)

    sql
    EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'max server memory (MB)', 8192; RECONFIGURE; EXEC sp_configure 'show advanced options', 0; RECONFIGURE; GO

    如果看到“命令已成功完成”的提示,说明修改已生效。

⚙️ 最后的步骤

  • 重启服务:为确保修改生效,建议重启 SQL Server 服务,甚至重启操作系统

  • 验证结果:重启后,在SSMS中右键点击实例名选择“属性”,在“内存”页面确认“最大服务器内存”的值是否已更新

💡 内存大小设置建议

  • 通用规则:建议将SQL Server的最大内存设置为服务器物理内存的一半。例如,32GB内存的服务器可设为 16384 MB

  • 如果服务器只跑iMC:可以适当提高到物理内存的 70% - 80%

  • 如果内存较小:建议不要低于 2GB (2048 MB)

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明