当我在Docker容器上构建IRIS服务器时,由于升级Docker版本,发现我构建的IRIS服务器消失了。
基于这个经历,这篇文章展示如何在升级平台或docker之前为IRIS服务器做一个备份,以及在新环境中重建IRIS的过程。
IRIS服务器备份过程
完成IRIS服务器的构建后,需要进行备份。
特别是在升级之前建议做一个备份,尤其当有自定义类、routine或者 global时。
下文中的“{}”代表输入参数
- 导出用户定义
导出IRIS服务器中所有用户定义:
zn "%SYS"
write ##class(Security.Users).Export({输出完整路径文件名})
ObjectScriptObjectScript
- 导出application定义
zn "%SYS"
write ##class(Security.Applications).Export({输出完整路径文件名})
ObjectScriptObjectScript
- 停止IRIS
iris stop {iris运行实例名称}
ObjectScriptObjectScript
- 备份iris.cpf
Iris.cpf存放于iris安装目录下,比如 /usr/irissys/iris.cpf
- 备份所有的数据库文件
建议卸除数据库后,备份所有的数据库文件所在的文件夹
- 启动IRIS
iris start {iris 实例名称}
ObjectScriptObjectScript
服务器重建过程
如果重新安装IRIS服务器,则必须使用与备份时相同的配置重新构建它。
- 使用与原系统相同的配置部署数据库。
将IRIS.DAT部署到与备份时相同的目录。
- 安装IRIS。
- 停止IRIS的运行。
iris stop {iris 实例名称}
ObjectScriptObjectScript
- 将iris.cpf以备份的文件替换。
请注意查看 iris.cpf 的用户、用户组以及文件访问权限。
- 启动IRIS服务器。
iris start {iris实例名称}
ObjectScriptObjectScript
- 导入用户定义
zn "%SYS"
write ##class(Security.Users).Import({完整路径文件名})
ObjectScriptObjectScript
- 导入应用定义
zn "%SYS"
write ##class(Security.Applications).Import({完整路径文件名})
ObjectScriptObjectScript
如果可能重新编译类定义和routines.
以上就是所有从备份中重建IRIS服务器的过程。