Linux 7.6 环境下 InterSystems Caché 数据库的部署与核心配置实战
1. 环境准备打造Caché的温床在RHEL 7.6最小化系统上部署InterSystems Caché前我们需要像准备手术室一样严格配置基础环境。我曾在生产环境中因为漏掉一个依赖项导致整个安装流程卡住3小时这些血泪经验都浓缩在下面的步骤里。1.1 基础依赖安装最小化安装的RHEL就像毛坯房得先装好门窗才能住人。运行这两个命令搞定核心依赖yum install -y libicu unziplibicu处理国际化字符集就像翻译官保证多语言支持unzip则是解压安装包的必备工具。这里有个坑如果系统之前装过其他数据库可能会遇到libicu版本冲突用rpm -qa | grep libicu检查现有版本必要时用yum downgrade降级。1.2 安全策略调整SELinux就像过度热情的保安经常误伤合法操作。临时关闭它setenforce 0 sed -i s/SELINUXenforcing/SELINUXpermissive/g /etc/selinux/config防火墙也需要暂时放行否则安装程序可能被拦截systemctl stop firewalld systemctl disable firewalld注意生产环境应在安装完成后重新配置安全策略我这里只是为演示简化流程。1.3 内核参数调优Caché对共享内存的需求就像大胃王比赛默认配置根本不够吃。设置128MB的shmmaxecho 134217728 /proc/sys/kernel/shmmax echo kernel.shmmax 134217728 /etc/sysctl.conf sysctl -p这个值要根据实际内存调整我的经验公式是shmmax ≥ 物理内存的1/8。曾经有客户在16GB内存的机器上设了4GB的shmmax结果导致OOM切记过犹不及。1.4 Kerberos组件安装Caché的认证系统需要Kerberos支持就像汽车需要汽油yum install -y krb5-libs krb5-devel如果遇到No package krb5-devel available错误可能是yum源没配好先执行yum makecache刷新元数据。有个冷知识krb5-devel其实只在编译Caché源码时需要但官方安装包也会检查它的存在。2. 安装实战步步为营的部署过程2.1 安装包处理假设你已经从官网下载了cache-2016.2.3.907.11.20446-lnxrhx64.tar.gz别问我怎么下载你懂的按这个姿势解压tar -xvf cache-2016.2.3.907.11.20446-lnxrhx64.tar.gz -C / chmod -R ogrx /cache-2016.2.3.907.11.20446-lnxrhx64权限设置很重要我有次偷懒没执行chmod结果安装脚本报Permission denied排查了半天才发现是目录权限问题。2.2 运行安装向导进入解压目录执行魔法cd /cache-2016.2.3.907.11.20446-lnxrhx64 chmod x cinstall ./cinstall这时会出现文字安装向导几个关键选择安装类型选Developer开发环境或Production生产环境实例名建议用字母数字组合别用中文或特殊字符端口号保持默认57772就行除非有冲突2.3 服务管理安装完成后用这组命令操作Caché服务ccontrol start 实例名 # 启动 ccontrol stop 实例名 # 停止 ccontrol status # 查看状态启动时常见的两个坑如果报Shared memory not available检查前面shmmax设置是否生效如果报License limit exceeded说明试用版连接数受限需要正式license3. 验证与连接打通任督二脉3.1 Web管理界面访问在浏览器输入http://服务器IP:57772/csp/sys/UtilHome.csp你会看到登录页面。默认账号密码是用户名_SYSTEM密码SYS第一次登录一定要改密码我就见过用默认密码被黑的案例。管理界面左侧菜单中System Administration Configuration SQL Settings可以调整SQL兼容模式建议设为与你的应用匹配的标准如ODBC或JDBC。3.2 DBeaver连接配置在DBeaver新建连接时选择InterSystems IRIS驱动兼容Caché关键参数JDBC URL格式jdbc:IRIS://IP:1972/命名空间驱动类com.intersystems.jdbc.IRISDriver用户名密码同上常见连接错误解决方案Connection refused检查Caché的SuperServer端口默认1972是否开放Namespace does not exist在Web管理界面先创建命名空间Login failed在Caché终端执行%SYSTEM.Security.AddRoles(用户名,%SQL)赋予SQL权限4. 调优与排错从能用变好用4.1 内存配置优化编辑/cache/mgr/实例名.cpf文件调整这些参数[config] globals1024MB ; 全局变量缓冲区 routines512MB ; 例程缓冲区 gmheap256MB ; 通用内存堆修改后需要重启实例生效。建议初始值设为物理内存的1/4再根据监控逐步调整。有个诊断命令很实用csession 实例名 -U %SYS ##class(%SYSTEM.Process).GetMemoryUsage()4.2 常见错误处理许可证问题ccontrol list # 查看license信息如果显示Expired需要更新license.key文件到/cache/mgr/目录空间不足df -h /cache # 检查数据目录空间Caché默认安装到/cache目录建议挂载单独的大容量磁盘性能瓶颈top -p $(pgrep -d, cacheserver) # 监控进程资源高CPU可能是查询没走索引高内存可能是缓冲区设置过小5. 日常维护守护数据库的健康5.1 备份策略冷备份需停机ccontrol stop 实例名 tar -zcvf cache_backup_$(date %F).tar.gz /cache ccontrol start 实例名热备份在线csession 实例名 -U %SYS ##class(Backup.General).ExternalFreeze() rsync -avz /cache/ backup_server:/backup_path/ csession 实例名 -U %SYS ##class(Backup.General).ExternalThaw()5.2 监控方案内置监控页面http://IP:57772/csp/sys/op/%25CSP.UI.Portal.Stats.zen关键指标报警阈值建议日志空间使用率 80%锁等待时间 500ms每秒全局引用 10万次可以用这个命令提取监控数据csession 实例名 -U %SYS ##class(%Monitor.System).GetSystemMetrics()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2611307.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!