操作软件环境:CENTOS 4.4,TSM5.3.2,ORACLE 10G
环境:
一台破PC机,P3 900Mhz,256M内存,40G硬盘
一台淘汰了的HP DAT 40磁带机
N个不知道多少年的DDS3和DDS4磁带
参考书籍:
IBM Tivoli Storage Manager for Linux 管理员指南
IBM Tivoli Storage Manager for Linux 管理员参考
IBM Tivoli Storage Manager for Linux 快速入门
IBM Tivoli Storage Manager for Database
IBM Tivoli Storage Manager for UNIX 备份-归档客户机安装与用户指南
IBM Tivoli Storage Manager 消息
安装包:
TIVsm-server-5.3.2-0.i686.tar.bz2
TSM532.tar
TDP FOR ORACLE
目的: 能够让oracle使用TSM作为第三方媒体管理层,将RMAN备份集等备份到磁带里面,并且自动备份TSM的数据库
安装步骤:
1. 最小化安装CENTOS.
2. 解压缩TIVsm-server-5.3.2-0.i686.tar.bz2,里面有server和tsmscsi两个rpm文件,一个是服务器端,一个是设备的驱动程序,都是必须的,想都不想,装上去先,记得会提示缺一个包,在CENTOS光盘中就有,装上就OK.
3. 解压缩TSM532.tar,安装里面的TIVsm-API.i386.rpm和TIVsm-BA.i386.rpm.
4. 全部4个rpm文件按照默认路径安装完成之后,会在/opt目录下生成tivoli子目录,内有N多东西,如server目录,client目录.
5. 执行:export DSMSERV_DIR=/opt/tivoli/tsm/server/bin
执行:export DSMSERV_CONFIG=/opt/tivoli/tsm/server/bin/dsmserv.opt
用来添加一下变量。配置步骤一
1. 首先,进入/opt/Tivoli/tsm/client/ba/bin目录,里面有dsm.opt.smp和dsm.sys.smp两个示例文件,把他们分别copy成dsm.opt和dsm.sys文件.
2. 用VI编辑dsm.sys文件,如下:
######################################
SErvername centos
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 172.16.9.165
nodename centos
passwordaccess generate
managedservices schedule
######################################
其中,第一行SErvername centos表示,服务器的名称centos,
第二行 COMMMethod TCPip表示客户端和服务器端的通讯方式
第三行 TCPPort 1500表示客户端和服务器端的通讯端口
第四行 TCPServeraddress 172.16.9.165表示服务器的IP地址
第五行 nodename centos表示这台客户端的节点名称centos
第六行 passwordaccess generate表示密码的提示方式
第七行 managedservices schedule表示CAD服务管理目标
由于我只有一台破PC,所以服务器和客户端都是它,名字也都是centos,服务器IP就是自己,这些都好说,重点在第六,七行,第六行有两个值,其中passwordaccess是选项名,generate是值,generate表示在客户端和服务器端联系的时候,不询问密码,另一个值prompt表示每次都询问密码,是默认值.由于我需要自动执行任务,所以需要指明是generate.第七行managedservices是指CAD程序管理调度程序还是WEB客户机,两个值,webclient是默认值,schedule表示管理调度,可以两个都指定.
3. 用VI编辑dsm.opt文件,如下:
###############################
SErvername centos
###############################
这里我只写了一行,因为我没有很多个服务器,所以只有一行,要和dsm.sys里面对应
4. 进入/opt/Tivoli/tsm/server/bin,运行./dsmserv &启动服务器,并放入后台运行.
5. 进入/opt/Tivoli/tsm/client/ba/bin,运行./dsmadmc –con,用以查看服务器反馈的消息,这个很重要的,管理员帐号和密码都是admin.
6. 再次运行./dsmadmc,进入命令行控制台,帐号密码admin.此时,服务器的名字是server 1,用set servername centos把名字改成centos.最好把服务重启一次.
7. q do 发现,有一个domain是standard,我不喜欢他,删除掉,但需要先删除掉domain里面的 客户机,remove node client可以删除原有的接点,client是接点名.然后再del do standard, 删除掉默认的domain,后面会重新建立一个.
8. 定义一个手动库newlibrary:
Def libr newlibrary libtype=manual
9. 定义newlibrary里面的驱动器newdrive.
Def drive newlibrary newdrive
10. 定义newdrive的path:
Def path centos newdrive srctype=server desttype=drive library=newlibrary device=/dev/tsmscsi/mt0.
我曾在这里碰到很大一个麻烦,两天多才解决,就是device这个参数的值不知道是什么,在linux中,磁带机一般是/dev/st0,我用/dev/st0可以正常的tar,但定义path的时候,device设置/dev/st0就一直报错ANR8420E错误,查《IBM Tivoli Storage Manager 消息》得知,就是device的值错误,弯弯饶,饶弯弯,终于在《IBM Tivoli Storage Manager for Linux 快速入门》中看到,原来需要一些配置,象我这种只连接了一个磁带机的,运行/opt/Tivoli/tsm/devices/bin下的autoconf文件,就会生成/dev/tsmscsi/mt0,用这个做device的值就可以了. 配置步骤二
11. 定义设备类devclass:
Def devclass newdevclass library=newlibrary devtype=4mm format=dds4c estcapacity=40G
定义了一个newdevclass的设备类,属于newlibrary库,使用4mm磁带,规格dds4C,C表示压缩,容量40G.
12. 定义一个新的存储池newpool:
Def stgpool newpool newdevclass maxscratch=0
定义了一个属于newdevclass设备类的存储池newpool,不使用临时卷.
13. 给磁带做label:
Label libvolume newlibrary linuxtsm1 overwrite=yes
Label了一个linuxtsm1的磁带,覆盖了原由的label.如此反复几次,label所有要用的磁带
14. 把已经label好的磁带分配给存储池:
Def volume newpool linuxtsm1
把linuxtsm1分配给newpool这个存储池.
15. 定义一个位置在硬盘上的存储池,以实现高速备份的目的:
Def stg diskpool disk maxsize=100M nextpool=newpool
定义了一个diskpool池,属于disk类,最大能存放的单个文件大小100M,超过100M的直接放到下一个存储池newpool,迁移时也迁移到newpool.
定义这个存储池的目的是为了实现高速备份,因为硬盘速度毕竟比磁带快多了,但要限制单个文件的大小,防止太大的文件写入导致空间不够,引起备份过程中就要迁移,很不好,下一个存储池就可以指向磁带存储池newpool.这个存储池对备份性能的提高很有作用.
16. 给diskpool存储池定义一个在硬盘上的卷:
Def vol diskpool /home/diskvol formatsize=5000
定义了一个在/home目录下的卷,名称diskvol,大小5000M,属于diskpool池,
17. 定义一个新的domain:
Def domain newdomain
18. 定义一个新的policyset:
Def policyset newdomain newset
定义了一个新的策略设置newset,属于newdomain
19. 定义一个新的管理类newmgclass
Def mgmtclass newdomain newset newmgclass
定义了一个新的管理类newmgclass,属于newdomain域的newset策略设置
20. 定义一个新的copygroup组standard
Def copygroup newdomain newset newmgclass destination=diskpool verdeleted=0 retonly=0
定义了一个新的copygroup组standard,这里不用写名字,默认就是standard,这个拷贝组的目标存储池是diskpool,就是说有什么要备份的,先写到diskpool存储池.并且,关闭verdeleted 和 retonly 这两个选项,这两个选项的作用分别是:
verdeleted 当源文件不存在时,保留备份文件的版本个数
retonly 最后一个非活动版本的保留天数
由于我使用RMAN来给ORACLE做备份,版本控制由RMAN来做,所以这两个参数一定要关闭,不然搞不好会把RMAN备份的东西给删除的。