文章
· 六月 2, 2021 阅读大约需 3 分钟

FAQ 常见问题系列--系统管理篇 如何进行数据库备份

InterSystems产品有四种备份方法:
(1) 外部备份
(2) 在线备份
(3) 冷备份
(4) 传统的并行外部备份
有关这些方法的细节请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI...

以下是对每种备份方法的简要描述:

(1) 外部备份
外部备份是InterSystems推荐的最佳备份方式。
外部备份一般是对数据库文件所在的存储创建快照的方式来实现。
创建快照可以在多个层面进行,例如存储层面,操作系统层面,等等,因此这些相关技术和工具一般由第三方来提供。
在做快照前,一定要先停止对数据库文件的写入(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT)。但是用户进程可以继续对内存进行更新,而不需要中断。
InterSystems提供了停止对数据库文件写入的方法,用户可以把这个加入到快照工具的脚本里。
外部备份一般包括以下几步:
1. 使用Backup.General.ExternalFreeze()方法来停止对数据库文件的写入。
2. 使用第三方快照工具来对文件系统创建快照。
3. 使用Backup.General.ExternalThaw()方法来恢复对数据库文件的写入。
4. 把快照拷贝到备份介质上(用于存储备份的磁盘,磁带,等等)。
5. 删除快照。

(2) 在线备份
在线备份是InterSystems自己特有的备份方式,可实现无宕机备份。
但是,在线备份只能备份数据库文件(InterSystems IRIS的IRIS.DAT,Caché/Ensemble的CACHE.DAT),并且会把所有需要备份的数据库文件中的数据块写入到一个.cbk的备份文件。
因此如果想要使用在线备份来备份整个系统环境,除了数据库文件外,还需要额外备份很多系统文件,例如InterSystems产品的安装目录,WIJ文件,主日志和备日志目录等等。
在线备份包括3种类型:
1. 全备份 -- 把所有使用的数据块写入到一个.cbk文件。
2. 累积备份 -- 从上一次全备份起,所有变化过的数据块写入到一个.cbk文件。恢复时,需要和上一次全备份一起恢复。
3. 增量备份 -- 从上一次备份起,所有变化过的数据块写入到一个.cbk文件。恢复时,需要和上一次全备份及中间所有备份一起恢复。
在线备份的这些特性,并不适用于作为数据量大的生产系统的备份方案。

(3) 冷备份
冷备份是在数据库系统正常停机状态下,所做的外部备份,即拷贝文件系统到存储介质。

(4) 传统的并行外部备份
传统的并行外部备份是一种在特殊情况下才可行的备份方法。
一般需要满足以下条件:
1. 数据库在一个集群里,并且不能有宕机时间。
2. 没有快照功能。
3. 在线备份不能满足需求。
并行外部备份结合了数据库文件(*.DAT)拷贝和在线备份里增量备份的功能。
其步骤如下:
1. 在数据库中设置备份启动标志。
2. 拷贝数据库文件(*.DAT)。
3. 对该拷贝时间内被修改的数据进行在线备份的增量备份。
具体使用情况和详情也请参考在线文档 https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...

最新版本InterSystems IRIS for Health示例:
===============================================================
1. 设置标志,开始备份数据库。
Set ^ClearOK=$CLRINC^DBACK("QUIET")
2. 拷贝操作系统上的数据库文件(*.DAT)。
3. 运行下面的命令,表明你已经使用了一个外部备份工具。
Set x=$$BACKUP^DBACK("","E","Dirty external backup","","","")
4. 进行增量备份。
Set x=$$BACKUP^DBACK("","I","incremental","test.cbk","Y","bck.log","QUIET","Y","Y")
===============================================================
InterSystems产品中的上述处理可以做成例程Routine或类方法,并与批处理相结合进行操作。
关于传统并行外部备份中使用的^DBACK例程的更多信息,请参考以下文件
https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...

讨论 (0)1
登录或注册以继续