TSM学习笔记及常用命令

Tip:不要太在意数据在物理上的位置~~~一切都在数据库中~~~
出来问题如果实在不知道怎么解决,试试audit library(比如tsm和带库状态不同步)
磁带只能顺序读(可以跳到老的地方读),顺序写(不能使用空白部分,原因应该是如果用了两个空白部分,中间又隔了一大段,那么读取的时候会停顿很久,这个在很多情况下几乎是无法容许的)

1.TAPE label & Checkin:
1.1对于manual drive:
label libvolume LIBRARYXXX LABELNAMEXXX
然后把这个tape分配到一个pool里:
define volume POLLXXX LABELNAMEXXX
1.2对于automated library:
先把带库里不想被TSM管理的tape移除。
label libvolume LIBRARYXXX search=yes labelsource=barcode checkin=scratch
q libv查看一下有没有磁带。
然后把想要的tape分配到一个pool里:
define volume POLLXXX LABELNAMEXXX

2.设置pool的nextpool
update stgpool POOLA nextstgpool=POOLB
一般在达到某个阀值的时候会的自动运行这个,如果想立刻进行,执行:
migrate stgpool POOLA

3.域操作
copy domain standard copystandard

4.定义一个random disk的pool
先定义pool(这里的devclass是disk,这个是系统预定义的,用q devc可以看到):
def stgpool engback1 disk maxsize=5G highmig=85 lowmig=40
给pool定义一个卷:
def volume engback1 /home/tsminst1/stgvol.001 formatsize=20

5.定义一个sequential disk的pool:
先定义一个devclass:
def devclass fileclass devtype=file mountlimit=2 maxcapacity=2G
定义一个pool(maxscratch指的是最多能自动抓取的卷的个数,不一定是最大的,比如你可以手动的def卷进去):
define stgpool engback2 fileclass maxscratch=10
然后给pool分配vol:
def volume engback2 aaa numberofvolumes=1

或者:

def devc backupfile devtype=file maxcapacity=10G directory=/home/tsminst1/tsmdir/dbbackup

6.定义磁带库
defile library LIBRXXX libtype=scsi
如果带库能自动的label,可以这样定义,以后的会磁带都会自动的在被checkin前被label:
define library autodltlib libtype=scsi autolabel=yes
定义path:
define path server1 autodltlib srctype=server desttype=library device=/dev/tsmscsi/lb3
定义drive(可能要加上element号,这个号用来指定drive的物理位置。):
define drive autodltlib drive01
define drive autodltlib drive02
指定path(如果上一步没有指定element号,那么在这里系统会的去自动获取):
define path server1 drive01 srctype=server desttype=drive library=autodltlib device=/dev/tsmscsi/mt4
define path server1 drive02 srctype=server desttype=drive library=autodltlib device=/dev/tsmscsi/mt5
定义一个设备类:
define devclass autodlt_class library=autodltlib devtype=dlt format=drive
定义pool(如果指定了maxscratch,那么tsm会的在需要的时候自动的去libv里找能用的vol,并占有。否则必须自己def vol):
define stgpool autodlt_pool autodlt_class maxscratch=20

7.查看cat /proc/scsi/scsi

8.windows备份
注册一个node(隐含的会注册这个节点的admin id):
reg node node_win pw_node_win
注册一个admin id,这个id用于管理tsm,和这个备份测试其实关系不大,如果之前有的话就不要注册了:
reg admin admin pw_admin
给这个用户最高权限:
grant authority admin classes=system
查看下权限:
q admin admin f=d
设置一个用于测试的pool,类型为disk(这个时候已经可以用客户端操作啦,用那个admin帐号登录就行):
def stgpool backup_test_pool disk maxsize=2G highmig=85 lowmig=40
给这个pool分配一个卷,大小50M好了:
def volume backup_test_pool /home/tsminst1/bcktestvol.001 formatsize=50
定义域,由于我们备份客户机是windows,并且是文件系统备份用的,这个备份域就叫做windows_fs好了:
def domain windows_fs
定义策略集:
def policyset windows_fs windows_fs_set
定义管理类:
def mgmtclass windows_fs windows_fs_set windows_fs_mgmt
把这个管理类设置为默认管理类:
ass defmgmt windows_fs windows_fs_set windows_fs_mgmt
定义一个拷贝组,目的地为之前定义的pool(如果不指定t=a,那么定义的是backup拷贝组):
DEFINE COPYGROUP windows_fs windows_fs_set windows_fs_mgmt standard dest=backup_test_pool
激活这个策略域:
activate policyset windows_fs windows_fs_set
可以用下面的命令看下状态:
q po
开始配置客户端,把dsm.smp复制到dsm.opt那里,然后开始编辑。
配置一个调度(可以指定参数):
def sch windows_fs test_sch t=c action=selective
设置下时间啥的(这里的时间是在server端的,不知道能不能改):
UPDATE SCHEDULE windows_fs test_sch t=c action=selective startdate=06/30/2013 startt=23:40 period=2 perunits=onetime
更新node的域:
update node node_win domain=windows_fs
与node关联:
def assoc windows_fs test_sch node_win
在节点客户端启动监听服务:
C:\Program Files\Tivoli\TSM\baclient>dsmcutil.exe inst /name:”test service” /node:node_win /password:pw_node_win /clientdir:”C:\Program Files\Tivoli\TSM\baclient” /optfile:”C:\Program Files\Tivoli\TSM\baclient\dsm.opt” /autostart:yes
用下面的命令查询:
Q sch * t=c
Q assoc
Q event * *
通过q event * *可以看到,这个sch的状态由future慢慢编程了pending(pending意味着在duration里边等待,随时会发生)

8.查看当前挂载的信息:
q mo

9.只要被加到某个pool里的磁带才会在checkout出来的时候依旧在库里保存label,其它磁带一般在checkout出来后,再次插入的时候如果不label可能就无法checkin了,需要重新label。q libv看到的应该是现在在磁带库里的,被label过的(且checkin),q vol则是看到被使用的。
如果一个此单处于private状态,且它不属于任何一个磁带库(q libv可以看到,但是q vol看不到),那么可能这盘磁带定义的时候指定了private参数。这个时候它只能通过def的方式被分配,而不会被自动抓取。

10.列出session:q sess 终止某个sess:cancel sess XXX

11.列出process: q process, 终止某个process: cancel process XXX

12.每一个schdule对于server来说都成为一个event

13.数据库操作:
q dbspace f=d
q db f=d
q log f=d

14.磁道操作
label磁带:
label libv 3100lib search=bulk labelsource=barcode overwrite=yes(从io仓里找,label名为barcode)
对于overwrite参数,如果指定no,那么被label过的磁带都不会去重新label,即便已经存在的label和你新输入的label不同(比如,barcode被改了)。
如果overwrite参数是yes,那么除非磁带上的label和你输入提示的label不一样,否则不会label。

checkout:
磁带不在pool中:
checkout libvolume 3100lib acv610l5 checklabel=yes remove=bulk checklabel指定在checkout的时候检查下label,这个对速度有影响,不过更准确。如果不指定,tsm应该会按照数据库中的信息直接checkout。remove=bulk指定放到io仓中。一般不会提示reply什么的。如果指定了yes,那么会有request,让你取出。这个时候用q libv已经看不到这个磁带了。

磁带在pool中:
checkout libvolume 3100lib acv610l5 checklabel=yes remove=bulk
基本上和上面的一样,不过通过q v还是能看到的。q libv看不到。
如果这个时候restore了在该卷上的东西,会的有req提示你把卷放回去。

checkin:
一个参数的解释:
volume_name
Specifies the volume name of the storage volume being checked in. This
parameter is required if SEARCH equals NO. Do not enter this parameter if
the SEARCH parameter equals YES or BULK. If you are checking a volume
into a SCSI library with multiple entry/exit ports, the volume in the lowest
numbered slot will be checked in.

对于status,如果是private,则表示这个卷属于某个server(library client)?(还有一种可能是这个状态表示这个卷不能被自动抓取),如果是scratch,则表示不属于某个server(也就是说,卷的状态是不是private不是指的是不是属于某个pool,而是应该指的是是不是属于某个server?)

checkin的时候,磁带应该是已经label过了。如果想通过io仓checkin,那么指定search=bulk,如果直接在slot里取,那么指定search=yes,如果不指定卷名,就要指定下卷名从什么地方取得(比如,checklabel=yes说明从label取)。如果指定了卷名,search那里就只能是no了,这种情况下你得保证这盘磁带确实是你要的磁带,否则会有很大的麻烦,运行命令的时候系统会的提示你把磁带放到哪个slot或io仓里,然后按操作进行,最后checkin入带库。

磁带原来在pool中:
checkin libv 3100lib search=bulk status=private checklabel=yes
这里的status需要是private。

磁带原来不在pool中:
checkin libv 3100lib search=bulk status=scratch checklabel=yes
bulk说明在io 仓中找,checklabel说明找的时候要按照label找(这里也可以指定no或barcode)。然后q req能看到有个请求,按照提示完成后,输入reply XXX就行了。这个时候等process结束,q libv就能看到磁带了。

如果不想要reply才能check in,用waitt=0:
checkin libv 3100lib search=bulk status=scratch checklabel=yes waitt=0

从pool中删除卷:
del v XXX discarddata=yes(数据也会被删)
如果卷不是自动抓取的,那么删了后状态还会是private,可以自己update下:
update libv 3100lib acv611l5 status=scratch

15.数据库操作
数据库还原需要三个东西:
1.数据库备份
2.volume history file
3.device configuration file
最好还有这个:
4.配置文件

备份数据库时候,即便数据库很小,也会独占一盘磁带。
如果报错,检查下是不是log目录权限不够,或者看下是不是安装tsm的时候没有设置db2使用api的密码,具体的可以看下总结的安装文档:
1.设置备份设备类
set dbrecovery XXX
可以通过q db f=d查看到这个设备类。
2.手工进行一次全备份(注意,备份自身的数据库其实就是用API去备份,相关的信息看下tsminst1的环境变量就行了。尤其是要看下这里的log文件的权限,一般都是root,需要a+rw给权限才行):
backup db devclass=XXX type=full
这个时候通过q libv可以看到一盘磁带被用来备份了。
如果再备份一次,用q libv可以看到又一盘磁带被用于备份了。

删除过期的备份:
del volh todate=07/02/2013 totime=12:01:09 type=dbbackup
todate格式是月/日/年,和volhistory里看到的格式可能不大一样。这个命令删除了这个时间以及这个时间之前的所有备份记录,相应的备份卷会的重新变成scratch。

对于del volh这个命令,如果原来的vol是用private状态checkin的,且不属于pool,被删了后会的变成scratch。如果是scratchd的file,被删了后会消失。
同时,最近一次的备份是不会被删除的,并且这个命令不会同步vol history文件,除非你手工backup下。如果删除的卷属于pool,删了后经过测试就是volhistory中没有相关信息,但是用还是能正常用,估计在还原的时候会有麻烦。另外如果不想有一盘磁带被占用,可以把数据库备份到磁盘一次,然后在del volh就行了。

备份volhistory:
backup volhistory

注意,VOLHISTORY在del的时候,不会的去同步磁盘上的volhistory文件,但是在任何其它操作(比如定义了一个卷到某个pool里,备份一次db)的时候,会的同步更新volhistory文件。除非手工执行backup volh一次。换句话说,手工backup volh不需要太频繁。

备份devconfig:
backup devconfig

===================
def sch aix_fs_domain backup_imccnsup2v1_fs type=client desc=”Backup ITM FS everyday on imccnsup2v1″ action=command objects=”bash /tsm_backup.sh” startdate=today starttime=00:30 duration=2 durunits=minutes period=1 perunits=days
def assoc aix_fs_domain backup_imccnsup2v1_fs imccnsup2v1_fs

bash-3.00# export DSM_CONFIG=/usr/tivoli/tsm/client/ba/bin64/dsm.opt
bash-3.00# dsmcad

1.编写脚本
2.运行脚本测试一下
3.服务器端设置调度
4.关联调度
5.启动监听服务

===================

==
commrestartduration
commrestartinterval
==

==
指定servername:
/usr/tivoli/tsm/client/ba/bin64/dsmc query sche -servername=TSMSERVER_FS02

C:\Program Files\Tivoli\TSM\baclient>dsmc.exe query sch -optfile=”C:\Program Files\Tivoli\TSM\baclient\dsm_db.opt”

=====================
多schedule(可以忽略了,一般用dsmcad来):
bash-3.00# cat dsm.sys
SErvername TSMSERVER_DB02
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 158.87.1.41
nodename imccnsup2v5_db02
schedlogname /usr/tivoli/tsm/client/ba/bin64/db02_dsmsched.log
errorlogname /usr/tivoli/tsm/client/ba/bin64/db02_dsmerror.log
passwordaccess generate

SErvername TSMSERVER_FS02
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 158.87.1.41
nodename imccnsup2v5_fs02
schedlogname /usr/tivoli/tsm/client/ba/bin64/fs02_dsmsched.log
errorlogname /usr/tivoli/tsm/client/ba/bin64/fs02_dsmerror.log
passwordaccess generate

===========================
schedlogname /usr/tivoli/tsm/client/ba/bin64/dsmsched.log
schedlogretention 14 d
errorlogname /usr/tivoli/tsm/client/ba/bin64/dsmerror.log
errorlogretention 30 d
=====================
用dsmcad来schedule,执行的时候在每个shell里先引入环境变量:
export DSM_CONFIG=/usr/tivoli/tsm/client/ba/bin64/dsm_db02.opt
这个是dsm.sys:
bash-3.00# cat dsm.sys
SErvername TSMSERVER_DB02
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 158.87.1.41
nodename imccnsup2v5_db02
schedlogname /usr/tivoli/tsm/client/ba/bin64/db02_dsmsched.log
errorlogname /usr/tivoli/tsm/client/ba/bin64/db02_dsmerror.log
managedservices schedule
schedmode prompted
tcpclientport 1507
passwordaccess generate

SErvername TSMSERVER_FS02
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 158.87.1.41
nodename imccnsup2v5_fs02
schedlogname /usr/tivoli/tsm/client/ba/bin64/fs02_dsmsched.log
errorlogname /usr/tivoli/tsm/client/ba/bin64/fs02_dsmerror.log
managedservices schedule
schedmode prompted
tcpclientport 1508
passwordaccess generate
=====================

用root先执行一下看看有没有问题。注意,语句的最后必须要有分号!!!!!!!!!!!

bash-3.00$ cat backup_maximo.sh
#!/usr/bin/bash
su – db2inst2 -c “db2 backup db maxdb72 online use tsm include logs”; —-》注意,这个分号一定要有!!!!

tsm: IMCTSM>def sch aix_db2_domain backup_imccnsup2v5_db_maxdb72 type=client desc=”Backup db maxdb72 everyday on imccnsup2v5″ action=command objects=”bash /home/db2inst2/backup_maximo.sh” startdate=today starttime=23:00 duration=10 durunits=minutes period=1 perunits=days
ANR2500I Schedule BACKUP_IMCCNSUP2V5_DB_MAXDB72 defined in policy domain AIX_DB2_DOMAIN.

tsm: IMCTSM>q sch

Domain * Schedule Name Action Start Date/Time Duration Period Day
———— – —————- —— ——————– ——– —— —
AIX_DB2_DOM- BACKUP_IMCCNSUP- CMD 10/16/2013 23:00:00 10 M 1 D Any
AIN 2V5_DB_MAXDB72

tsm: IMCTSM>q sch f=d

Policy Domain Name: AIX_DB2_DOMAIN
Schedule Name: BACKUP_IMCCNSUP2V5_DB_MAXDB72
Description: Backup db maxdb72 everyday on imccnsup2v5
Action: Command
Subaction:
Options:
Objects: bash /home/db2inst2/backup_maximo.sh
Priority: 5
Start Date/Time: 10/16/2013 23:00:00
Duration: 10 Minute(s)
Schedule Style: Classic
Period: 1 Day(s)
Day of Week: Any
Month:
Day of Month:
Week of Month:
Expiration:
Last Update by (administrator): ADMIN
Last Update Date/Time: 10/16/2013 17:44:22
Managing profile:

======================
backup db devclass=tape type=full 12:00:00 30min
del volhistory type=dbbackup todate=today-1 12:45:00 10min
backup volhistory filename=/home/tsminst1/tsminst1/volumehistory 13:00:00 10min
backup devconfig filename=/home/tsminst1/tsminst1/devconfig 13:15:00 10min

def sch backuptsmdb t=a cmd=”backup db devclass=tape type=full” active=yes desc=”Backup TSM DB” startdate=today starttime=20:30:00 duration=2 durunits=minutes period=1 perunits=days

def sch delvolhistory t=a cmd=”del volhistory type=dbbackup todate=today-1″ active=yes desc=”Delete volume history.” startdate=today starttime=21:30:00 duration=1 durunits=minutes period=1 perunits=days

def sch backupvolhistory t=a cmd=”backup volhistory filename=/home/tsminst1/tsminst1/volumehistory” active=yes desc=”Backup TSM Volume History.” startdate=today starttime=22:30:00 duration=1 durunits=minutes period=1 perunits=days

def sch backupdevconfig t=a cmd=”backup devconfig filename=/home/tsminst1/tsminst1/devconfig” active=yes desc=”Backup TSM Devconfig.” startdate=today starttime=23:30:00 duration=1 durunits=minutes period=1 perunits=days
======================

========================
def sch windows_fs_domain 2000_backupfs_dmsdb01 action=Selective options=’-subdir=yes’ objects=’C:\Users\*’ startdate=today starttime=20:00:00 duration=20 durunits=minutes period=5 perunits=hours
========================

=========================

下面这个在执行之前需要到对应的目录里边去。另外,执行之前可以./dsmc query sess来看下要不要初始化密码。同时,可以./dsmc query sch来看看下面的调度是什么时候。
nohup ./dsmc sched -optfile=/usr/tivoli/tsm/client/api/bin64/dsm.opt 2>/dev/null &

dsm.opt:
SErvername TSMSERVER1

TSMERVER1在DSMI_CONFIG或默认的安装路径下的dsm.sys中有。
=========================
def sch checkoutXXX t=a cmd=”checkout libvolume 3100lib acv774l5 checklabel=yes remove=bulk ” active=yes startdate=today starttime=11:40:00 duration=5 durunits=minutes period=1 perunits=days

def sch checkinXXX t=a cmd=”checkin libv 3100lib search=bulk status=private checklabel=yes waitt=0″ active=yes startdate=today starttime=11:50:00 duration=3 durunits=minutes period=1 perunits=days
=========================

16.存储池
执行过期设置时,如update stgpool stgpoolname reclaim=60时,是要检查磁带占用达到60%时开始执行回收,还是没到达到60%的部分磁带执行回收? 空余空间超过60%,也就是使用率降到40%的时候。这里的空余空间是指expire或deleted的部分。既无效的过期数据达到60%时启用reclaim。

存储池的分层架构主要是为了速度,所以一般把disk作为第一级,然后磁带做第二级,把第一级、第二级都做磁带是没有意义的,因为第一次被移动后,空间不会被释放,需要reclaim。

常用命令:
q v
q stg
q occup 查看某个节点的数据信息
q con XXX 查看卷中有什么内容
q nodedata XXX VOL=YYY 查看某个磁带中被使用了多少物理空间

q vol f=d的Pct Util + Pct Reclaim可能大于100,这是因为这两个的统计方法不同。
q stgpool的Pct Util中包含了可以被回收的数据(但是q vol f=d看到的是实际数据)
Pct Util可能会大于Pct Migr,因为前者可能有cache,这部分cache已经放到了nextpool里了。而且Pct Util包括一个transaction中没有commit的文件的大小,而Pct Migr除非transaction完成,否则大小不记录。

q stg看到的Pct Util如果到达了HIGMig就会发生migration。

下面的这个需要重视,可能和版本有关,不同的版本不一样,看着参考下就行了:
q stg看到的Pct Migr指的是已用的磁盘数/总的磁盘数,这里总的磁盘数包括maxscratch的个数,即便未被分配。
q stg看到的Pct Util指的是已用的数据量/总的可用数据量

” The Pct Util value includes cached data on a volume; The Pct Migr value excludes cached data. Therefore, when cache is enabled and migration occurs, the Pct Migr value decreases but the Pct Util value remains the same because the migrated data remains on the volume as cached data. The Pct Util value decreases only when the cached data expires or when the space that cached files occupy needs to be used for noncached files.”

“Note: The value for Pct Util can be higher than the value for Pct Migr if you query for storage pool information while a client transaction (such as a backup) is in progress. The value for Pct Util is determined by the amount of space actually allocated (while the transaction is in progress). The value for Pct Migr represents only the space occupied by committed files. At the end of the transaction, Pct Util and Pct Migr become synchronized.”

backup pool:
定义一个拷贝池,经过测试,拷贝池中的东西应该是和实际的池子是同步的,比方说我backup stgpool b c,然后删除了b中的一个卷,这个时候c中对于的卷也会被删除:
def stgpool backtape_copy tape pooltype=copy masxcratch=2

关于copypool:
copypool里可以有多个pool的备份? 是的,通过q con XXX可以查看。
那还原的时候怎么知道还原哪个? 根据数据库里的信息,TSM数据库会的跟踪这些东西。
copypool里的数据会自动过期吗? 应该会的,原因见下面一条
源pool中的数据卷被discard后,copypool中的内容会同步删除吗? 会的
需要reclaim吗? 需要的。对于离线的磁带,会的在同一个pool里找新的磁带,然后从primarypool中复制数据到新磁带上,离线磁带上的数据则自动的从数据库中删除。这个时候离线的磁带就是空的了。

拷贝:
backup stgpool backtape backtape_copy 需要足够的drive(>= 2),且copypool的类型需要是copy.
restore pool:看ref吧,主要应该是查数据库,比方数据库中记录了b中有一个vol中有文件a,然后去看下b中的a是不是好的,如果是好的,就不restore,否则就restore。

reclaim pool:
默认的话一个小时检查一次,一般的话会在同一个资源池里找一个卷来做reclaim的目标卷(也就是说,多给点卷的话就不用手工去管这个了)。不过对于那些只有一个drive的库来说,需要定义reclaim pool,且这个pool需要是file类型的。之后还得把这个file类型的pool的nextpool指定为当前的pool,这样当file类型的pool满了后,数据就又会回来了(其实一般是手工migrate回来)。有时候机子硬盘不够了,file不够用,那么把file类型的pool的higmig和lowmig舍得小一点,并且nextpool指向一个pool。
如果要手工reclaim,那么确保auto reclaim被停了(通过设置stg reclaim的阀值为100)。然后运行reclaim stg XXX th=YYY命令,th=YYY表示只有Pct. Reclaim在YYY之上的vol会被reclaim,Pct. Reclaim可以通过q vol XXX f=d看到。

单驱动器回收:
首先通过q v查看Pct Util 和 reclaimable util的大小是否合适,看看能不能放到文件系统上。
然后定义一个file类型的stgpool,这里的maxcapacity是以后单个文件的最大大小:
def devc reclaimfile devtype=file maxcapacity=10G directory=/home/tsminst1/RECLAIM_POOL
然后定义一个reclaim的pool,这里的maxscratch指的是允许的文件的个数:
ef stgpool reclaimpool reclaimfile maxscratch=100
然后设置reclaimpool的下一个pool是被回收的那个pool:
update stg reclaimpool nextstgpool=imc_fs_pool
设置需要被回收的那个pool的reclaim pool是reclaimpool:
update stg imc_fs_pool reclaimstgpool=reclaimpool
确认当前没有人在使用driver后,执行回收:
运行reclaim stg XXX th=YYY命令,th=YYY表示只有Pct. Reclaim在YYY之上的vol会被reclaim,Pct. Reclaim可以通过q vol XXX f=d看到。不过一般都会直接进行回收的,因为这个时候要被回收的那个pool的空间已经超过了relcaim的阀值了。
然后回收的时候q pro可以看到对应的状态。
等回收完成后,手工从reclaimpool中把数据倾倒会被回收的pool中:
upd stg reclaimpool hig=00 low=00

move data from one vol to another vol:
1.考虑移动前先设置为readonly
2.move data VOLXXX stg=STGPOOLXXX(注意,要看下Mount limit的限制,比如如果drive为1,很多时候就移动不了)

17.运维命令:
disable session
enable session
q session
cancel session XXX
q process
cancel session
q mount
q request

q db
q dbspace

q occ

q drive

q content VOLXXX

del filespace NODEXXX *

q opt

q co
q co t=a

show slots 3100lib

18.4个参数
详见TSMADMIN.pdf P159

19.dsm client的password
passwordaccess为generate的时候,忽略password参数。

password参数指的应该是用node的用户的密码,比如对于节点f,你用用户f_user去维护,那么password就是f_user的密码。如果设置为passwordaccess为generate,那么第一次登录的时候会提示你输入一次密码,以后就不用了,如果设置为prompt,那么每次这个用户在这里备份的时候都需要输入密码才行。

node的password一般在从认证方式由LDAP变为local的时候需要这个。

20.BA
domain: 增备情况下,如果命令里不指定被什么,那么会备份domain下的所有文件
使用dsmc的时候,可以参数可以改变默认的domain。比如默认的domain为c和d盘,想要备份的时候增加a盘,那么可以:dsmc i -domain=”a:”

命令行备份命令:
增备:dsmc incremental
可以通过下面的命令扩充在dsm.opt里的domain:dsmc incremental -domain=”g:h:”
可以通过下面的命令排除定义在dsm.opt里的domain: dsmc incremental -domain=”all-local -c:”
可以通过下面的命令排除系统对象:dsmc incremental -domain=”all-local -c: -systemobject”
可以通过下面的命令排除系统状态:dsmc incremental -domain=”all-local -c: -systemstate”
可以通过下面的命令只备份G和H:dsmc incremental g: h:
可以通过下面的命令只备份c:\accounting目录及其子目录的所有东西:dsmc incremental c:\accounting\* -sub=yes
可以通过下面的命令备份d:\proj下面的索引文件:dsmc selective d:\proj\
可以通过filelist参数指定一个文件,这个文件里包含想备份的东西,如:dsmc selective -filelist=c:\filelist.txt
/opt/tivoli/tsm/client/ba/bin/dsmc inc -subdir=yes /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ ==》 注意这里如果是目录必须要用/结尾!!!

注意!!!
在dsmc后面如果指定要备份的对象的话,这个对象是不会受到dsm.opt的domain参数影响的,但是这个对象会的受到dsm.opt的include /exclude的影响。

换句话说,备份的原始对象如果你在dsmc中指定了,那么就是它,如果没有指定,那么就是domain下的所有文件。备份的时候会的在这个原始对象的基础上按照include/exclude进行加工。

比如:
dsm.opt:
domain e:\
exclude c:\a.txt
这个时候运行dsmc i c:\a.txt就不会备份。
但是如果改成:
dsm.opt:
domain e:\
这个时候运行dsmc i c:\a.txt就会备份。

21.备份DB2
在仅修改了少量页面的情况下执行增量备份时,可能必须增大 TSM 参数 IDLETIMEOUT(单位是分钟)和COMMTIMEOUT(单位是秒)(setopt idletimeout 120/setopt COMMTIMEOUT 7200,这两个参数的help语法是help COMMTIMEOUT,而不是help setopt XXX),以使它大于完成对最大表空间进行备份所需的时间。这可以防止 TSM 在完成增量备份之前关闭会话。

备份和归档日志都是直接发到TSM那,不会在本地有什么中间文件。

BA不是必要的,但是可以用BA来进行schedule,并且dsmadmc也在BA里。
API是必须的(安装文件可能在BA的安装文件里,就是那个SDK选项)
BA的三个变量:DSM_CONFIG DSM_DIR DSM_LOG
API的三个变量:DMSI_CONFIG DSMI_DIR DSMI_LOG。设置了这些变量后db2的实例必须重启,因为db2只有在实例重启的时候会的读取这些变量。

DSMI_DIR
标识 API 可信代理程序文件(dsmtca)所在的用户定义目录路径。后来发现这个可能有问题,好像在windows上需要DLL文件所在的那个目录,那个目录下需要有:adsmv3.dll和tsmapi64.dll两个链接库。
DSMI_CONFIG
标识 dsm.opt 文件(它包含 TSM 用户选项)的用户定义目录路径。与另外两个变量不同,此变量应包含标准路径和文件名。
DSMI_LOG
标识将在其中创建错误日志(dsierror.log)的用户定义目录路径。

4个参数应该是:
VEREXISTS=1
VERDELETED=0
RETEXTRA=0
RETONLY=0

windows的备份,db2cmd建议加上-c

配置过程:

0.设置管理类。参数参考上面的。要记住,DB2的备份永远不会自动过期,需要通过db2adutl来让它变为过期。
1.设置环境变量,注意,如果是linux,建议修改sqllib/userprofile;如果是windows,设置的时候不要只是用户级别的环境变量,因为windows上的环境变量运行的时候,会的以系统服务运行,这个时候用户级别的环境变量无用,如(对于linux,需要保证log的那个目录(或文件,是文件的话最好)对于实例用户来说有写的权限,否则会有106的error)):
DSMI_CONFIG=C:\Program Files\Tivoli\TSM\api64\BIN\dsm.opt
DSMI_DIR=C:\Program Files\Tivoli\TSM\api64\DLL
DSMI_LOG=C:\Program Files\Tivoli\TSM\api64\
2.设置dsm.opt,内容参考如下,PASSWORDACCESS一定要是GENERATE:
NODENAME windows
TCPSERVERADDRESS 192.168.71.199
PASSWORDACCESS GENERATE

3.(建议重启下计算机)重启db2实例
4.使用dsmapipw设置密码,保存在系统中(需要root或Administrator权限来做这一步)(注意,如果要走lanfree,则需要1: use option passworddir in dsm.sys to a directory which the
non-root user has full permission or owned by the non-root user
passworddir /path_own_by_non-root
2:recreate the encrypted password as the non-root user. For API
user,
this need to be done via command dsmapipw. For B/A client user
command dsmc will prompt to enter the nodeID/password):
这里会的提示你输入密码,这个密码是你在dsm.opt节点中的那个节点的密码,然后会让你设置个新的密码。
5.用db2adutl看看能不能和服务器取得联系:
db2adutl query
如果能正常和服务器通信,那么这里会的显示一个警告,告知服务器上还没有文件。
6.可以修改DB2数据库的几个TSM参数,尤其是tsm_mgmtclass来设置备份的默认管理类。注意,除了tsm_mgmtclass外,其它几个参数一般不要去动,这些参数一般在设置passwordaccess为prompt的时候有用,在设置为generate的时候如果设置了这些参数那一般备份的时候就会报错。
7.离线备份一个数据库:
db2 backup db XXX use tsm
这个时候如果去看actlog的话可以看到一些相关信息。也可以用db2adutl query去看。
8.设置下归档日志目的地为TSM(这个命令用了后需要重新激活数据库):
db2 update db cfg using logarchmeth1 tsm
也可以在这里制定下具体的管理类:
db2 update db cfg using logarchmeth1 tsm:AAA
这个时候你就会发现归档的日志去了TSM那了,具体的可以用这个命令立马看下:
db2 archive log for db XXX

备份、还原的什么的就当是一般的备份还原就行了,因为对于dba来说,具体的东西是保存在本地磁盘还是保存在TSM上都是透明的,dba不需要意识到这个。对于恢复其它节点的数据库,需要指定一些参数,参考:数据库管理 > 数据恢复 > recover > 恢复数据

因为db2的介质好像不会自动被删除,所以需要db2adutl手工删除(其实是手工过期,然后通过设置四个参数让TSM删除)。
db2adutl常用命令:
db2adutl query
db2adutl verify full taken at XXX 这个命令会的将备份文件一片一片的传到本地内存中,然后去检查。在实际情况中比db2ckbkp来的使用的多
db2adutl extract
db2adutl extract taken at 20031209184503 这里取回的备份文件可能会是多个,以.XXX结尾,用的时候直接按时间用就行了,没什么区别。XXX的意思是如果存在多个备份路径,那每个备份路径放一部分。因此可以猜测磁带上的读写是按照块来进行的。

对于备份文件:
因为需要手工删除,所以db2有三个方法来删(删除之前,为了避免报权限的错误,需要在tsm server上先:update node NODEXXX backdel=y):
db2adutl delete taken at
db2adutl delete older [than]
db2adutl delete keep n
db2adutl delete keep 14 database ppp WITHOUT PROMPTING
强烈推荐最后一种!keep n,其会的报存最后n个备份(可能包括不成功的)。如:
#!/usr/bin/bash
su – db2inst2 -c “db2 backup db maxdb72 online use tsm include logs”;
su – db2inst2 -c “db2adutl delete keep 5 database maxdb72 WITHOUT PROMPTING”;

对于归档日志:
db2adutl delete logs between S00000016 and S00000018 db XXX

DB2异机恢复数据库(有BUG,用的时候请三思):
查看运行访问的节点权限:db2adutl queryaccess
添加某个节点c有访问本节点数据库备份的能力(貌似node这里不能是all,虽然语法上是允许的,而且好像这里的语法和infocenter里的不大一样,可能是版本的原因吧。另外在windows上username一直是ALL):
db2adutl grant all on nodename c for database test
在另外一台机上用节点c:
db2adutl query db test node w w是db2备份节点的名字。

22.取消一个调度
q assoc先看看有哪些管理,然后:
删除关联:del assoc windows_fs_doman 2000_backupfs_dmsdb01 dmsdb01_fs
q sch看看有哪些调度计划:
删除调度:
del sch windows_fs_domain 2000_backupfs_dmsdb01 t=c
在客户端删除后台进程:
dsmcutil remove /name:”XXX”

23.压缩
在reg node的时候指定压缩。具体的看下help reg node

24.清洗带
如果使用TSM控制,先确保带库自己的清洗功能被关闭了。清洗带好像不用label,因为是专门的磁带,可能默认就label过了(或者说,带库得到磁带后会的有一个检查是不是清洗带的步骤,这个步骤是默认的。清洗带自己有个芯片,用于记录使用过的次数啥的,所以这磁带和一般磁带肯定是不一样的)。
定义drive每处理100G就进行一次清理:
update drive 3100lib drive0 cleanfrequency=100

checkin一盘清洗带:
checkin libv 3100lib XXX status=cleaner cleanings=30 checklabel=no

如果要手动出发清洗,那么:
clean drive 3100lib drive0

如果使用带库自己的清理,那么把清洗带查到IO仓里,然后面板里service啥啥啥的设置下就行了。注意清洗的时候不要有备份任务。一般需要亮黄灯才能清洗。

25.DRM
其主要功能就是把所有的东西都给合理化、规范化。

COPYGROUP、ACTIVEGROUP、BACKUPDB的卷都可以通过DRM提供的move drmedia移动到异地。通过q drmedia命令可以查询各个卷的状态。

重点在admin guide里的那张循环图。

查看设置:
q drmstatus
其中各个参数的设定方法:
Recovery Plan Prefix:
通过:set drmplanprefix /u/server/recoveryplans/来指定一个恢复计划文件的路径。
Plan Instructions Prefix:
通过:set drminstrprefix /u/recovery/plans/rpp来设置。这个被用来指定恢复时候的指令源文件的路径。
Replacement Volume Postfix: @
通过:set drmplanvpostfix r来设定。在灾备恢复的时候,老的volume会的被标记为无效,且它的名字会的被加上这里指定的符号,然后新的volume会的以老的名字重建。
Primary Storage Pools: A
通过:set drmprimstgpool PRIM1,PRIM2来设定。用于指定需要处理的主存储池。删除的话用””来代替。
Copy Storage Pools:
通过:set drmcopystgpool copy1,copy2来设定。用于指定需要处理的拷贝存储池。删除的话用””来代替。
Active-Data Storage Pools:
通过:set drmactivedatastgpool activepool1,activepool2来设定。删除的话用””来代替。
Not Mountable Location Name: NOTMOUNTABLE
Courier Name: COURIER
Vault Site Name: VAULT
DB Backup Series Expiration Days: 60 Day(s)
Recovery Plan File Expiration Days: 60 Day(s)
通过:set drmrpfexpiredays 90来指定过期时间。
Check Label?: Yes
Process FILE Device Type?: No
Command File Name:

———————————————————————————————
可以建立下面五个文件用于说明发生灾难后应该注意的信息:
prefix.RECOVERY.INSTRUCTIONS.GENERAL
prefix.RECOVERY.INSTRUCTIONS.OFFSITE
prefix.RECOVERY.INSTRUCTIONS.INSTALL
prefix.RECOVERY.INSTRUCTIONS.DATABASE
prefix.RECOVERY.INSTRUCTIONS.STGPOOL

比如:
prefix.RECOVERY.INSTRUCTIONS.GENERAL
包括管理员用户名、密码信息
prefix.RECOVERY.INSTRUCTIONS.OFFSITE
说明offsite的保存地点在哪里
prefix.RECOVERY.INSTRUCTIONS.INSTALL
告知如果reinstall tsm
prefix.RECOVERY.INSTRUCTIONS.DATABASE
告知如何恢复数据库
prefix.RECOVERY.INSTRUCTIONS.STGPOOL
告知系统中的存储池的一些信息

———————————————————————————————
通过def machine来定义tsm server的机子和clinet的机子。
通过def machnodeassociation来定义client的机子和node的关系。
如:
def machine tsmserv adsmserver=yes priority=1 这里adsmserver用于告知这是台TSM Server,恢复的时候优先级为最高级别1.

def machine testmach building=021 floor=2 room=321 priority=1 定义一台客户机。

def machnodeassociation testmach nodea 定义node和machine的关系。

可以用q machine f=d来查看机子。

然后设置一下machine的特性,如:
insert machine testmach 1 characteristics=”Host Name: XXX with 128MB Memory Card” 这里的1表示插入到第一行。

用类似的方法说明恢复指定:
insert machine testmach 1 recoveryinstructions=”Recover this machine for accounts receivable dept.”

这些信息也可以用tsm自带的一个awk的脚本来录入。

———————————————————————————————
为客户节点定义恢复介质:
这里是定义bootable的介质,和aix有关。
def recoverymedia tellerwrkstnimage type=boot volumenames=aix001,aix002,aix003 product=”AIX 4.3″ location=”Building 21″

定义客户机和这些恢复介质的关联:
def recmedmachassociation tellerwrkstnimage machtest

当然也可以定义其它类型的:
def recoverymedia aix51manuals type=other volumes=cd001 description=”AIX 5.1 Bookshelf”

———————————————————————————————
灾难恢复计划可以放在本地或者是其它服务器上,一般需要包含下面信息:
1.关于卷的所有信息
2.optionfile、device configure file、volhistory file
3.用于进行数据库恢复和存储池恢复的命令
4.用于注册license的命令
5.自定义的一些命令
6.机器和恢复介质的定义

每次执行prepare的时候都会拷贝一个灾难恢复计划的副本。可以把这个副本保存在CD或其它主机上。

定义一个本地的灾难恢复计划:
prepare planprefix=/home/tsminst1
然后在/home目录下会的生成:
[tsminst1@TSM home]$ less tsminst1.20130723.214952
这个文件里边包含了很多个恢复脚本,可以用下面的方法把它分成几个文件:
[tsminst1@TSM home]$ awk -f /opt/tivoli/tsm/server/bin/planexpl.awk.smp tsminst1.20130723.214952

26.backup set(恢复的时候测试了一下只能是同构机的恢复,比如Windows恢复到Windows、Linux恢复到Linux)
把节点的活动数据保存到特定的磁带、file中。这些磁带、file可以再没有DB Server参与的情况下直接由BA客户端还原。

可以用nodegroup来同时备份多个节点的活动数据到backup set中。

定义Backupset:
generate backupset win backupsetname devclass=devc_file scratch=yes

恢复Backupset:
在BA主机上,把节点名设置正确,然后(注意参数前有-):
dsmc.exe restore backupset D:\ C:\target\ -backupsetname=C:\986693.ost -loc=file -subdir=yes

如果从另外一台机子恢复,并且数据源在磁带里,那么类似于(恢复的主机需要知道磁带驱动器的路径,并把对应的磁带放到驱动器中。这个路径会用于backupsetname参数):
[root@TSM bin]# /etc/init.d/mhvtl start
vtllibrary process PID is 6619
[root@TSM bin]# lsscsi -g
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda /dev/sg0
[0:0:1:0] disk VMware, VMware Virtual S 1.0 /dev/sdb /dev/sg1
[1:0:8:0] mediumx STK L80 0103 – /dev/sg3
[1:0:9:0] tape STK T10000B 0103 /dev/st0 /dev/sg2
[root@TSM bin]# mtx -f /dev/sg3 load 5 0
[root@TSM bin]# ./dsmc restore backupset -backupsetname=/dev/st0 -loc=tape

27.密码策略
默认是90天过期,这个90是由set passexp来指定的,可以用q status查看。默认的这个过期时间用set passexp XXX可以修改。

lock admin XXX
unlock admin XXX

28.ANS1355E Session rejected: Server disabled
在server上enable sess

29.上线流程
设置密码最低长度:
set MINPWLENGTH 8

设置密码过期时间:
set PASSEXP 90

设置错误的连接次数用于锁定:
set INVALIDPWLIMIT 5

设置需要认证:
set AUTHENTICATION on

设置归档时间:
set ACTLOGRETENTION 90

30.自动化异地磁带设置
准备工作:
–初始化一盘磁带,打上label先(就是在磁带的开头写入一些信息)。这一步不会把这个磁带加入到带库中,所以q libv看不到任何东西
label libv 3100lib search=bulk labels=barcode overwrite=yes waittime=0
–checkin指定名字的磁带(磁带放IO仓就可以了)。这一步之后,磁带就进入到带库了,q libv就能看到东西了。如果这里的名字和lable的不一样,那么就会失败。一般的话这里的status可能应该是private。
checkin libv 3100lib Y62418L4 search=no status=private checklabel=yes waittime=0
–checkout指定名字的磁带。这一步之后q libv就看不到磁带了
checkout libv 3100lib Y62418L4 remove=bulk checklabel=yes force=no

磁带测试(保留两个版本):
–定义一个不会的自动抓取数据的stgpool
def stgpool testpool tape maxscratch=0
–把这个pool的collocate定义为no:
update stg testpool collocate=no
–给这个pool加入一盘磁带(q v,q libv都能看到了)
def vol testpool Y62418L4
–做一次备份
./dsmc selective -subdir=yes /root/Desktop/
–把磁带checkout出来(q libv看不到了,q v可以看到stg中有这盘磁带)
checkout libv 3100lib Y62418L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62418L4 access=unavailable
–给这个pool再加入一盘磁带
def vol testpool Y62420L4
–做一次备份
./dsmc selective -subdir=yes /root/Desktop/
–把磁带checkout出来
checkout libv 3100lib Y62420L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62420L4 access=unavailable
–给这个pool再加入一盘磁带
def vol testpool Y62430L4
–做一次备份(这个时候最开始的备份应该已经过期了)
./dsmc selective -subdir=yes /root/Desktop/
–把磁带checkout出来
checkout libv 3100lib Y62430L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62430L4 access=unavailable
–给这个pool再加入一盘磁带
def vol testpool Y62431L4
–做一次备份
./dsmc selective -subdir=yes /root/Desktop/
–把磁带checkout出来
checkout libv 3100lib Y62431L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62431L4 access=unavailable

现在我们有4盘磁带属于这个pool,状态都为unavailable:
Y62418L4:v0的数据(过期)
Y62420L4:v1的数据(过期)
Y62430L4:v2的数据
Y62431L4:v3的数据

–手工过期一次
expire inventory

–查看Y62418L4,看看有没有数据了还:
q cont Y62418L4 –发现数据都没有了,说明磁带不在带库里也是可以正常过期的。
–查看Y62420L4,看看有没有数据了还:
q cont Y62420L4 –发现数据都没有了,说明磁带不在带库里也是可以正常过期的。
–查看Y62430L4,看看有没有数据了还:
q cont Y62430L4 –发现数据都还在
–查看Y62431L4,看看有没有数据了还:
q cont Y62431L4 –发现数据都还在

开始做还原的测试:
先看看老的数据(Y62430L4上的数据)能不能被还原:
–checkin磁带
checkin libv 3100lib Y62430L4 search=no status=private checklabel=yes waittime=0
–设置状态为可读可写
update v Y62430L4 access=readwrite
–然后试试能不能还原
dsmj,然后点点 –发现是可以还原的
–把这个磁带checkout出来
checkout libv 3100lib Y62430L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62430L4 access=unavailable
–checkin磁带
checkin libv 3100lib Y62431L4 search=no status=private checklabel=yes waittime=0
–设置状态为可读可写
update v Y62431L4 access=readwrite
–然后试试能不能还原
dsmj,然后点点 –发现是可以还原的
–把这个磁带checkout出来
checkout libv 3100lib Y62431L4 remove=bulk checklabel=yes force=no
–设置状态为不可访问
update v Y62431L4 access=unavailable

开始新的轮回:
–checkin磁带
checkin libv 3100lib Y62418L4 search=no status=private checklabel=yes waittime=0
–设置状态为可读可写
update v Y62418L4 access=readwrite
–做一次备份
./dsmc selective -subdir=yes /root/Desktop/

紧接上面的,试试看自动化checkout和设置unavailable:
def sch checkoutY62418L4 t=a cmd=”checkout libv 3100lib Y62418L4 remove=bulk checklabel=yes force=no” active=yes startdate=today starttime=16:00:00 duration=2 durunits=minutes period=1 perunits=days
def sch unavailableY62418L4 t=a cmd=”update v Y62418L4 access=unavailable” active=yes startdate=today starttime=16:05:00 duration=2 durunits=minutes period=1 perunits=days

在紧接上面的,试试看自动化checkin和设置readwrite:
def sch checkinY62418L4 t=a cmd=”checkin libv 3100lib Y62418L4 search=no status=private checklabel=yes waittime=0″ active=yes startdate=today starttime=16:10:00 duration=2 durunits=minutes period=1 perunits=days
def sch readwriteY62418L4 t=a cmd=”update v Y62418L4 access=readwrite” active=yes startdate=today starttime=16:15:00 duration=2 durunits=minutes period=1 perunits=days

现在我们有4盘磁带属于这个pool,除了Y62418L4,其余状态都为unavailable。Y62418L4在每天下午4点还会自动checkout和checkin:
Y62418L4:v0的数据
Y62420L4:v1的数据(过期)
Y62430L4:v2的数据(过期)
Y62431L4:v3的数据

31.还原路径参数
restore partial path:比如要还原的东西是/a/b/c.out,然后我指定了还原目录是/restore/,那么这个时候还原出来的就是/restore/c.out
resotre complete path:比如要还原的东西是/a/b/c.out,然后我指定了还原目录是/restore/,那么这个时候还原出来的就是/restore/a/b/c.out

32.TSM for VE
几个备份、还原类型:
Full VM backups:备份完整的VM到TSM中。这个VM是个完整的VM的snapshot,包含了所有的VM Disk。所有的数据都在disk block级别被备份。
Incremental VM backups:值备份自从上一次full backup后变化的数据。所有的数据都在disk block级别被备份。如果目前还没有full backup,那么默认会的执行一次full backup。
File level restore:通过把备份的volume当成一个虚拟的volume挂在到还原的主机上,然后从中拷贝出需要的文件(类似于我把别的PC的硬盘通过移动硬盘盒连接到我的笔记本,然后我把需要的东西拿出来的那种)。默认这些volume只能被读,但其实也是可以写的(和刚刚举得例子一模一样)
Instant restore:应用立即可以访问正在恢复的数据卷
Full VM restore:还原整个VM的backup。类似于还原一个快照。
Full VM instan restore:应用立即可以访问正在恢复的虚机实例。7.1版本前只能是一个非OS的卷,7.1的时候则是可以整个VM都能做到了。

VE中的TSM node:
一个node就是安装了BA或Data protection for VMWARE或其它client的主机系统。
在VE中,最基本的node是data mover node。其是一个特定的BA客户端,用于将一个系统的数据移动到另一个系统。
在一个简单的系统中,一个VM的备份就是属于保存在那个data mover node下的。
不过如果是一个复杂的系统,就需要多个data mover。在这种情形中就需要另一个node用于协调TSM server和这些mover node的通信,这个协调的node叫做VMCLI节点。

也就是说,一个vcenter代表一个node,可以注册为VC1。Filespace是安装datacenter这个级别建立的。假如datacenter注册为VC1_DC1,其有两台ESXi,那么每台ESXi也需要注册一个node,这个node就是data mover,名字可以叫做VC1_DC1_DM1/VC1_DC1_DM2。同时需要一个给commind-line interface用的node,名字可以叫:VC1_VCLI1,这个用于管理。比如ESXi上一共有VM1~6六台虚机,那么VC1_DC1这个filespace下就会的有6台虚机。

32.FastBack
FastBack Client:一个运行在客户系统上的一个服务,用于备份那些被使用的或被修改或的disk block。其只能通过FastBack Server控制。
FastBack Server:保存了一个所有背备份数据的repository。并且所有的snapshot backups、scheduled backups都是由server发起。
FastBack Manager:一个用户图形化界面接口

注意,client和server不要装在同一台机子上,否则可能有不可预见的情况出现。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*