一、数据库入门知识
1、如何获取数据库版本信息
Terminal 运行命令
Cache 版本数据运行命令:w $zv
IRIS 版本数据库运行命令:IRIS list
系统管理界面
首页主菜单中查询 About 菜单或者关于菜单
系统 OS 命令行:
iris list
2、数据库配置文件
配置文件含有所有在系统管理界面中配置的参数
- 缺省路径:installdirectory/iris.cpf
·搭建测试环境时确保里面库文件路径,namespace 及数据库 mapping 正确,否则数据库启动时会报错。
License 是 InterSystems 公司与客户之间的协议,客户要有 ISC 的授权才能正常的访问 IRIS 数据平台。
放置 iris.key 到
installdirectory/mgrLicense 管理页面五个字段说明
当 Current License Units Used 的数量到达 License Units Authorized 即 License 使用量达到上限;
当 Maximum License Units Used 的数量到达 License UnitsAuthorized 即 License 曾经使用量达到过上限;
Usage by Process]和 [Usage by User] 是日常观察哪些 process 或 user 占用,License Units 常用页签,通过对 Column
Units 进行排序来分析使用情况;
3、数据库端口号意义解释

4、数据库状态解释

5、数据库Namespace空间设置
Mapping: 是连接 Database- 与 Namespace 的纽带,包括三种:Global Mapping,Routine Mapping,Package Papping.
Global Mapping: 当某个 Namespace 需要调用其它 Database 的 Global, 或将某种规则的 Global3 写入其他 Database, 可以添加 Global Mapping.
例如:公司规定 tmp*,TMP* 之类的 1 临时 Globali 存放在 DHC-TEMP 中,在需要使用该 Global 的命名空间添加相应的映射,
否则,这类临时 Globali 还是会存到默认的 Database 中。
Routine Mapping: 当某个 Namespace 需要调用其它 Databasel 的 Routine 程序时,可以添加 Routine Mapping.
例如:DHC-APP 命名空间可以调用 DHC-MEDSRC 下的 DHCW 开头的 Routine。
Package Mapping: 当某个 Namespace 需要调用其他 Database 的类时,可以添加 Package Mapping,
例如:DHC-APP 命名空间下需要使用 DHC-LISSRC Databasel 的类。
6、数据库可用空间查询示例

7、查询系统锁命令
系统 portal 中查询:
System Operation->LocksTerminal 中运行命令查询:
d ^LOCKTAB
8、系统进程状态说明
Control 进程:
- 读 cache.cpf 到数据库
-Caché启动时首先启动该进程
- 分配共享内存
- 启动其他所有的系统进程和网络进程
- 给进程广播消息
- 在不同的平台上有些不同的功能
- 当 Caché正常启动后,只作很少一部分的工作
Write Daemon 进程:
- 负责所有的数据库写操作,将 buffer 中变化的数据写入磁盘
-WD 写的频次取决于数据库的活动量 - 至少每 80s 一次
- 还负责将 buffer 中的数据写入 Write Image Journal(WIJ)
GARCOL
垃圾收集器:Garbage Collector
- 代表其他进程处理大的分支树的 KILL
- 当一个 global 被删除时,分析并释放空间
Journal 后台进程:Journal Daemon
- 将 journal buffer 中内容写入 journal 文件
库文件扩展后台进程:Expansion Daemon
负责动态地扩展库文件
CLNDMN
系统清理后台进程:Clean Daemon
- 监控死进程 (dead/ghost jobs)
- 已经在 OS 上被 KILL 的进程,但是还没有从 PIDTAB 中别清理掉
MONITOR
监控进程:Monitor Daemon
- 监控并且报告系统错误
- 监控 ccsonole.log 并且发出 email 警告
%SYS.SERVER
超级服务:Super Server-%SYS.SERVER
- 控制通过 SuperServer port 连接到 Cache 的连接
- 作为 Caché一个侦听
- 在进程列表中,以运行 Routine%SYS.SERVER 的方式出现
- 缺省端口为 1972
Task Manager
任务管理:Task Manager
- 启动计划任务
- 在进程列表中,可以看到以运行 Routine%SYS.TaskSuper..1 的方式出现
RECEIVE /ECP*
网络后台进程:RECEIVE/ECP*
- 运行 ECP 协议等
9、ECP服务器
ECP 服务器 =WEB 服务器 +ECP 服务
WEB 服务器是指给应用系统提供 web 服务的服务器。
ECP 是企业缓存协议,允许远程访问主数据库的 Global、.Routines, 起到横向扩展硬件资源的作用;
WEB 服务器和 ECP 服务器的区别在于谁来处理请求,如下图:
10、Shadow、Mirror作用和说明
Shadow 技术是自动将生产数据库服务器的数据变化更新到 shadow 数据库服务器,其本质是一种异步的数据复制。
Shadowl 服务器持续地读取生产数据库服务器的 journal 文件来实现数据的更新。Shadow 数据库同步只作用于那些被
Journal 的 Databases, 只有对记录在 ournal 文件中的操作起作用,比如 Sets/Kills/Transactions。

Mirror技术其本质是通过Copy Journal3实现数据同步。
可应用于高可用性 (HA) 方案。简单,可靠,经济,应用计划以及非计划的停机,整个 Failover 的时间可以以秒计,为完全冗余配置,没有任何共享模块,减少了共享存储的 HA 架构所带来的单点故障。采用逻辑上的同步数据复制,可避免与物理复制技术 (如基于 SAN 的复制) 相关的风险,包括无序更新和节点损坏等。
可应用于灾备 (D) 方案。支持远距离的多地灾备,无缝地,无数据丢失地转移到灾备数据中心(异步,网络质量好可接近于 Zero RPO), 无缝地,无数据丢失地转移回主数据中心。
可应用数据复制 (Replication, 异步,网络质量好可接近于 Zero RPO), 为数据仓库,Bl, 报表系统使用。
数据库Mirror中的2种成员类型:
FailOver(故障转移类型):此模式下,主节点状态为 Primary, 备用节点状态为 Backup;
DisasterRecovery(灾备恢复类型):此模式下,主节点状态为 Primary, 备节点状态为 Async DR(项目采用此模式)。
11、Cache和IRIS数据文件对比

cconsole.log 日志告警级别:0=info(消息),1=warning(警告),2=severe (严重),3=fatal ( 致命)
12、数据库备份方式
数据库备份:是指通过特定的方式将数据库的重要数据复制到别的存储介质中。
创建备份数据库列表
System Administration->Configuration->Database Backup -Database Backup ListTerminal 中运行命令:
do ^BACKUP
数据库查询备份结果
管理主页面 Management Portal
●备份过程中:System Operation->Backup->Backup Status
●备份后:System Operation->Backup->Backup History
13、数据库日志

Journal用来记录数据的变化,以备恢复或检查,当数据发生变化(Set/Kill)时,将变化的情况写入到ournal文件中。
主要用途:
- 在数据库恢复的时候 (Restore) 与数据库备份一起使用(JRN)。
- 当数据库崩盘时候,恢复数据库 (WIJ,JRN)
-IRIS 的事务处理,维护应用逻辑上的完整性,一致性 (JRN)
-Shadowing/Mirroring (JRN)
Journal文件设置:
Alternate Directory
·RS 数据平台如果不能写入首选路径,则会写向备用路径。
·一旦使用备用路径,不会自动回到首选路径。
Maximum file size: 默认大小 1024M
到达文件上限后 Journal 文件自动产生并写向新文件。
Journal日志文件的任务检查情况
检查目的:查看 Journal 是否按设置的天数清除
配置清除天数
Journal 文件保留天数
Console.log 日志记录核实
实现方式:通过数据库的系统任务
关注点:
没删掉,有异常程序没完成,很有可能存在开放性事务
14、Cconsole.log日志内容
日志内容包含:
系统错误
普通信息
·数据库启 / 停时间
·版本信息:$zV
部分 OS 错误
网络错误
状态信息
cstat: 如果 Cache 是 Forced Down
日志路径:InstallDirectory/mgr/cconsole.log
ー cconsole.old
•当文件达到最大尺寸时,在下次数据库启动时切换到另一个文件
- 并将当前的文件更名为 cconsole.old
-Windows 以及 UNIX 只保留一个版本的 cconsole.old
- 手工切换,如果当前尺寸 >MaxConsoleLogSize
.Write ##class(Config.Startup).SwitchConsoleLog()
•缺省最大尺寸为 5MB
注:IRIS 数据平台为 messages..log
二、数据库基础知识
1、数据库一致性检查方法
运行数据库一致性检查任务;
protal 中选择单个或者部分 database 进行一致性检查
检查目的:检查数据库内部是否存在一致性被损坏的数据节点。如果存在这样的数据节点而不及时修复,可能导致系统突然宕机以及数据丢失等灾难情况发生。
数据库任务,频率是周,需要明确生成的位置,每周去查看一下输出文件是否有 notok
适用场景:数据库做了重大的操作
可单独检查某个库、某个 global
整库一致性检查,最好后端通过命令行做d ^Integrity
2、清除网络中的锁
需要在 terminate 该进程(^JOBEXAM 或者系统管理界面)
如果是死进程,CLNDMN daemon 会清理该进程;
关闭 devices,清除 job 表上的记录,CLNDMN daemon 没十分钟唤醒一次;
一定要删除锁,必须先去 ECP 客户端,来自 ECPClient 端请求,请一定不要再 ECPServer 端(DB 服务器)进行锁的 remove。
3、cache数据库用户默认权限一览表

4、数据库备份方式
全量备份:备份数据库全部内容
累积备份:备份自上次全部备份后改变的数据。
增量备份:备份自上次备份后改变的数据,不论上次为何种备份。
优缺点:1. 全量:对大型数据库,可能需要耗费比较久的时间;
2. 累积:比增量备份耗费时间长,数据库恢复时需要配合全备一起使用耗时比较长;
3. 增量:需要多份备份加上全备一起用来做数据库恢复,耗费时间最长。
5、备份恢复注意点
恢复过程中不允许用户访问;
从最近一次全备份中恢复数据库;
全备份后从最近的累积备份中恢复数据库;
一次从所有增量备份中恢复数据库;
恢复数据后进行数据一致性检查;
所有备份文件都被恢复后,从 journal 日志中恢复数据。
6、备份计划任务的任务类型说明:
ChangeToDrcList:每天中午 12:20 更改数据库备份列表的任务(更改备份列表为只备份程序文件 app、absrc、sys 等);
BackupSrcDB:每天中午备份程序库文件的任务(在任务 ChangeToDrcList 做完之后执行);
ChangeToFullList:每天凌晨 3 点更改数据库备份列表的任务(更改备份列表为备份所有库文件);
BackupFullDB:每天凌晨备份所有应用的库文件的任务(在任务 ChangeToFullList 做完之后执行);
7、Shadow数据恢复步骤
从生产库上 copy 全备份 cbk 文件到 shadow 服务器;
进入 shadow 库的 protal,将 shadow 的同步状态改成 stop;
拿新考的 cbk 全备份文件对 shadow 上数据进行恢复;


恢复完数据,在 shadow 数据库的 portal 中选择追加 journal 的事件点;
查看 shadow 的同步状态是否为 processing,待 shadow 数据追加 journal 完成,查看数据是否同步;
8、Mirror数据恢复步骤
从 hisdb 上 copy 备份的 cbk 文件

恢复 cbk:


检查 mirror 的同步状态。

9、数据库操作需要上报的业务:
在产品组独立的 namespace 中进行替库、建空库、删库操作;
临时库 DHC-TEMP 的替换;
系统临时库 CACHETEMP 的替换;
修改服务器“CSP Web Application"中“/imedical,/web" 的各种配置;
重启生产 DB 数据库、服务器、HA 切换、Mirror 接管等操作。
评论