一、数据库入门知识

1、如何获取数据库版本信息

  1. Terminal 运行命令

Cache 版本数据运行命令:w $zv

IRIS 版本数据库运行命令:IRIS list

  1. 系统管理界面

首页主菜单中查询 About 菜单或者关于菜单

  1. 系统 OS 命令行:

iris list

2、数据库配置文件

  1. 配置文件含有所有在系统管理界面中配置的参数

- 缺省路径:installdirectory/iris.cpf

·搭建测试环境时确保里面库文件路径,namespace 及数据库 mapping 正确,否则数据库启动时会报错。

  1. License 是 InterSystems 公司与客户之间的协议,客户要有 ISC 的授权才能正常的访问 IRIS 数据平台。

    放置 iris.key 到installdirectory/mgr

  2. License 管理页面五个字段说明

当 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空间设置

  1. Mapping: 是连接 Database- 与 Namespace 的纽带,包括三种:Global Mapping,Routine Mapping,Package Papping.

  2. Global Mapping: 当某个 Namespace 需要调用其它 Database 的 Global, 或将某种规则的 Global3 写入其他 Database, 可以添加 Global Mapping.

例如:公司规定 tmp*,TMP* 之类的 1 临时 Globali 存放在 DHC-TEMP 中,在需要使用该 Global 的命名空间添加相应的映射,

否则,这类临时 Globali 还是会存到默认的 Database 中。

  1. Routine Mapping: 当某个 Namespace 需要调用其它 Databasel 的 Routine 程序时,可以添加 Routine Mapping.

例如:DHC-APP 命名空间可以调用 DHC-MEDSRC 下的 DHCW 开头的 Routine。

  1. Package Mapping: 当某个 Namespace 需要调用其他 Database 的类时,可以添加 Package Mapping,

例如:DHC-APP 命名空间下需要使用 DHC-LISSRC Databasel 的类。

6、数据库可用空间查询示例

7、查询系统锁命令

  1. 系统 portal 中查询:System Operation->Locks

  2. Terminal 中运行命令查询:d ^LOCKTAB

8、系统进程状态说明

  1. Control 进程:

- 读 cache.cpf 到数据库

-Caché启动时首先启动该进程

- 分配共享内存

- 启动其他所有的系统进程和网络进程

- 给进程广播消息

- 在不同的平台上有些不同的功能

- 当 Caché正常启动后,只作很少一部分的工作

  1. Write Daemon 进程:

- 负责所有的数据库写操作,将 buffer 中变化的数据写入磁盘

-WD 写的频次取决于数据库的活动量 - 至少每 80s 一次

- 还负责将 buffer 中的数据写入 Write Image Journal(WIJ)

  1. GARCOL

垃圾收集器:Garbage Collector

- 代表其他进程处理大的分支树的 KILL

- 当一个 global 被删除时,分析并释放空间

  1. Journal 后台进程:Journal Daemon

- 将 journal buffer 中内容写入 journal 文件

  1. 库文件扩展后台进程:Expansion Daemon

负责动态地扩展库文件

  1. CLNDMN

系统清理后台进程:Clean Daemon

- 监控死进程 (dead/ghost jobs)

- 已经在 OS 上被 KILL 的进程,但是还没有从 PIDTAB 中别清理掉

  1. MONITOR

监控进程:Monitor Daemon

- 监控并且报告系统错误

- 监控 ccsonole.log 并且发出 email 警告

  1. %SYS.SERVER

超级服务:Super Server-%SYS.SERVER

- 控制通过 SuperServer port 连接到 Cache 的连接

- 作为 Caché一个侦听

- 在进程列表中,以运行 Routine%SYS.SERVER 的方式出现

- 缺省端口为 1972

  1. Task Manager

任务管理:Task Manager

- 启动计划任务

- 在进程列表中,可以看到以运行 Routine%SYS.TaskSuper..1 的方式出现

  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实现数据同步。

  1. 可应用于高可用性 (HA) 方案。简单,可靠,经济,应用计划以及非计划的停机,整个 Failover 的时间可以以秒计,为完全冗余配置,没有任何共享模块,减少了共享存储的 HA 架构所带来的单点故障。采用逻辑上的同步数据复制,可避免与物理复制技术 (如基于 SAN 的复制) 相关的风险,包括无序更新和节点损坏等。

  2. 可应用于灾备 (D) 方案。支持远距离的多地灾备,无缝地,无数据丢失地转移到灾备数据中心(异步,网络质量好可接近于 Zero RPO), 无缝地,无数据丢失地转移回主数据中心。

  3. 可应用数据复制 (Replication, 异步,网络质量好可接近于 Zero RPO), 为数据仓库,Bl, 报表系统使用。

数据库Mirror中的2种成员类型:

  1. FailOver(故障转移类型):此模式下,主节点状态为 Primary, 备用节点状态为 Backup;

  2. DisasterRecovery(灾备恢复类型):此模式下,主节点状态为 Primary, 备节点状态为 Async DR(项目采用此模式)。

11、Cache和IRIS数据文件对比

cconsole.log 日志告警级别:0=info(消息),1=warning(警告),2=severe (严重),3=fatal ( 致命)

12、数据库备份方式

数据库备份:是指通过特定的方式将数据库的重要数据复制到别的存储介质中。

创建备份数据库列表

  1. System Administration->Configuration->Database Backup -Database Backup List

  2. Terminal 中运行命令:do ^BACKUP

数据库查询备份结果

管理主页面 Management Portal

●备份过程中:System Operation->Backup->Backup Status

●备份后:System Operation->Backup->Backup History

13、数据库日志

Journal用来记录数据的变化,以备恢复或检查,当数据发生变化(Set/Kill)时,将变化的情况写入到ournal文件中。

主要用途:

  1. - 在数据库恢复的时候 (Restore) 与数据库备份一起使用(JRN)。

  2. - 当数据库崩盘时候,恢复数据库 (WIJ,JRN)

  3. -IRIS 的事务处理,维护应用逻辑上的完整性,一致性 (JRN)

  4. -Shadowing/Mirroring (JRN)

Journal文件设置:

  1. Alternate Directory

·RS 数据平台如果不能写入首选路径,则会写向备用路径。

·一旦使用备用路径,不会自动回到首选路径。

  1. Maximum file size: 默认大小 1024M

到达文件上限后 Journal 文件自动产生并写向新文件。

Journal日志文件的任务检查情况

检查目的:查看 Journal 是否按设置的天数清除

配置清除天数

  • Journal 文件保留天数

  • Console.log 日志记录核实

  • 实现方式:通过数据库的系统任务

关注点:

  • 没删掉,有异常程序没完成,很有可能存在开放性事务

14、Cconsole.log日志内容

日志内容包含:

  1. 系统错误

  2. 普通信息

·数据库启 / 停时间

·版本信息:$zV

  1. 部分 OS 错误

  2. 网络错误

  3. 状态信息

  4. 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、数据库一致性检查方法

  1. 运行数据库一致性检查任务;

  2. protal 中选择单个或者部分 database 进行一致性检查

检查目的:检查数据库内部是否存在一致性被损坏的数据节点。如果存在这样的数据节点而不及时修复,可能导致系统突然宕机以及数据丢失等灾难情况发生。

数据库任务,频率是周,需要明确生成的位置,每周去查看一下输出文件是否有 notok

适用场景:数据库做了重大的操作

可单独检查某个库、某个 global

整库一致性检查,最好后端通过命令行做d ^Integrity

2、清除网络中的锁

  1. 需要在 terminate 该进程(^JOBEXAM 或者系统管理界面)

  2. 如果是死进程,CLNDMN daemon 会清理该进程;

  3. 关闭 devices,清除 job 表上的记录,CLNDMN daemon 没十分钟唤醒一次;

  4. 一定要删除锁,必须先去 ECP 客户端,来自 ECPClient 端请求,请一定不要再 ECPServer 端(DB 服务器)进行锁的 remove。

3、cache数据库用户默认权限一览表

4、数据库备份方式

  1. 全量备份:备份数据库全部内容

  2. 累积备份:备份自上次全部备份后改变的数据。

  3. 增量备份:备份自上次备份后改变的数据,不论上次为何种备份。

优缺点:1. 全量:对大型数据库,可能需要耗费比较久的时间;

2. 累积:比增量备份耗费时间长,数据库恢复时需要配合全备一起使用耗时比较长;

3. 增量:需要多份备份加上全备一起用来做数据库恢复,耗费时间最长。

5、备份恢复注意点

  1. 恢复过程中不允许用户访问;

  2. 从最近一次全备份中恢复数据库;

  3. 全备份后从最近的累积备份中恢复数据库;

  4. 一次从所有增量备份中恢复数据库;

  5. 恢复数据后进行数据一致性检查;

  6. 所有备份文件都被恢复后,从 journal 日志中恢复数据。

6、备份计划任务的任务类型说明:

  1. ChangeToDrcList:每天中午 12:20 更改数据库备份列表的任务(更改备份列表为只备份程序文件 app、absrc、sys 等);

  2. BackupSrcDB:每天中午备份程序库文件的任务(在任务 ChangeToDrcList 做完之后执行);

  3. ChangeToFullList:每天凌晨 3 点更改数据库备份列表的任务(更改备份列表为备份所有库文件);

  4. BackupFullDB:每天凌晨备份所有应用的库文件的任务(在任务 ChangeToFullList 做完之后执行);

7、Shadow数据恢复步骤

  1. 从生产库上 copy 全备份 cbk 文件到 shadow 服务器;

  2. 进入 shadow 库的 protal,将 shadow 的同步状态改成 stop;

  3. 拿新考的 cbk 全备份文件对 shadow 上数据进行恢复;

  1. 恢复完数据,在 shadow 数据库的 portal 中选择追加 journal 的事件点;

  2. 查看 shadow 的同步状态是否为 processing,待 shadow 数据追加 journal 完成,查看数据是否同步;

8、Mirror数据恢复步骤

  1. 从 hisdb 上 copy 备份的 cbk 文件

  1. 恢复 cbk:

  1. 检查 mirror 的同步状态。

9、数据库操作需要上报的业务:

  1. 在产品组独立的 namespace 中进行替库、建空库、删库操作;

  2. 临时库 DHC-TEMP 的替换;

  3. 系统临时库 CACHETEMP 的替换;

  4. 修改服务器“CSP Web Application"中“/imedical,/web" 的各种配置;

  5. 重启生产 DB 数据库、服务器、HA 切换、Mirror 接管等操作。