存储 频道

TSM 5.3 + LINUX +ORACLE安装配置

TSM自身数据库的备份

  TSM使用数据库来记录备份的一些信息,所以这个数据库显得很重要,不容有失,要每天备份,同样需要设置计划任务来自动备份,而且需要设置3个计划任务,两个用来每天备份数据库到两个磁带上,一个用来删除旧的备份版本。

  这里有个需要注意的,我在这里也饶了一天.TSM的数据库,不能够备份到以前已使用过的磁带上,就是说,我昨天在TSM1磁带上备份了数据库,今天还想备份到这个磁带上,很不好意思,不允许,这怎么办?难道我每天要拿一个新的磁带来备份数据库吗?不用,可以每天使用del volhistory命令把过期的就的数据库备份删除掉。

  所以这就是为什么我要用3个计划任务来备份新的数据库和删除旧的数据库了,我希望保持2天的数据库,所以用两个磁带,两个计划任务来备份数据库,如果需要保留N天的,需要用N个磁带,N个计划任务了.

  其实,还有其他的方法,在我的生产环境中,数据库是直接备份到硬盘上的,,备份到一个file类型的volume里面的,这种类型的volume不受上面说的限制,缺点是备份放置的地方有隐患,万一服务器坏了就完了.

  下面说我的方法吧,备份数据库的命令是:
Backup db type=full devclass=dbclass volumename=tsm1

  其中,type=full是指完全备份,devclass是指用什么设备类,volumename是指用哪个卷.在这里,备份数据库只需要指定一个设备类,这个设备类下面不需要存储池,为了管理清楚点,我新建一个设备类dbclass,并且专门label了两个磁带tsm1,tsm2来备份数据库:

Def devclass dbclass library=newlibrary devtype=4mm format=dds4c estcapacity=40G
Label libvolume newlibrary tsm1 overwrite=yes
Label libvolume newlibrary tsm2 overwrite=yes

  准备好了之后,定义一个管理任务dbbackup1,备份数据库到TSM1磁带上,每天的22:00:00执行,今天开始执行,每两天一次:

Def sch dbbackup1 type=a cmd=”backup db type=full devclass=dbclass volume=tsm1” startdate=today starttime=22:00:00 period=2 active=yes

  再定义一个管理任务dbbackup2,备份数据库到TSM2磁带上,每天的22:00:00执行,明天开始执行,每两天一次:

Def sch dbbackup2 type=a cmd=”backup db type=full devclass=dbclass volume=tsm2” startdate=today+1 starttime=22:00:00 period=2 active=yes

  这样就实现了今天备份数据库到TSM1,明天到TSM2,后天又TSM1,再后天又TSM2,但还需要一个任务来实现删除过期的数据库版本:

Del volh todate=today-2 type=dbbackup

  这是删除过期版本的命令,意思是删除掉前两天的数据库备份,那么任务命令是:
def sch delolddb type=a cmd=” Del volh todate=today-2 type=dbbackup” startdate=today starttime=21:00:00 period=1 active=yes

  每天的21点执行,一天一次.一定要放在备份数据库之前执行,如果放在之后执行,会出错的,除非把命令修改掉.

  到此为止,所有计划实现的目标已基本作到,所有的细节设置全部采用默认,没有进一步设置.

  由于我也是初学TSM,错误在所难免,希望大家能予以指正.另外,在TSM自身数据库的备份方法上,还可以把该数据库备份到硬盘上,成为一个文件的形式,但我觉得不是很保险,故此选择了用磁带来备。谢谢~!

0
相关文章