一、数据库入门知识

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接管等操作。