copygroup的参数设置确实比较迷惑,这里举例子说明。拿 backup copygroup举例,archive copygroup参数比较容易理解。
我们知道当第一次备份一个文件到tsm时,它成为活动版本,再备份这个文件一次,新的备份成为活动版本,之前的变为非活动版本。同一个文件永远只有一个活动版本。
参数解释:
Versions Data Exists
客户端文件存在时,保存的版本数
Versions Data Deleted
客户端文件删除后,保存的版本数(保存的都是非活动版本)
Retain Extra Versions
有一个或以上非活动版本时,保存这些非活动版本的天数
Retain only version
当没有活动版本且只剩1个非活动版本时,保存的天数。
假设我们采用如下设置:
Versions Data Exist: This is set to NO LIMIT
Versions Data Deleted Exist: This is set to NO LIMIT
Retain Extra Versions: This is set to 30 (days)
Retain Only Version: This is set to 30 (days)
实际的效果:
活动版本永久保留直到它变为非活动版本,当我们对文件做selective备份,或对数据库等做全备份时,之前的活动版本变为非活动版本。
对非活动版本没有版本数限制
但非活动版本,包括额外的和唯一的,在保存30天后都会过期并删除。
针对不同的应用场景下,这些参数是否起作用,关键是看应用备份过来的数据文件的命名方式。
对于常规文件的备份,每次的备份文件名不会变, 所有的上边的copygroup的参数设置都生效,完全由TSM来控制文件的保存。
对于Oracle, 备份oracle都是通过RMAN接口,oracle每一次备份生成的数据文件都是些全新的数据文件,每次的备份文件和以前的备份都不同名,所以TSM中的备份文件永远是active状态,不会变成expire状态,就不会被删除。 那实际老的备份数据是如何删除的呢? RMAN 的配置中有自己的备份策略(备份保存多久,几个版本等),每次备份时检查 TSM 中的备份数据,超过备份周期的,他会通知TSM将其变为expire状态,这样TSM 的 expirei inv操作就能将其删除以便回收空间。所以是RMAN 和 TSM 共同完成备份数据的版本/保存周期/过期处理的。
另一个需要注意的是有些应用提供全备份—+增量/差异增量备份,每次增量备份的数据文件是唯一的,所以在TSM中也一直保持active状态,但这些应用会将一个全备份+若干增量备份看作一个整体,在下次全备份时,会通知TSM将之前的全备份+若干增量/差异增量备份整体变为expire状态。
在我们了解了 针对不同的应用,备份文件的命名方式都不同,具体还需要参考其设置文档设定copygroup的各个参数,一般文档都会给出配置建议的。