什么是转储
指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程
这些备用的数据文本称为后备副本或后援副本。
转储方法静态转储
当系统中无运行事务时进行转储,转储开始时数据库处于一致状态,转储期间不允许对数据库的任何存取、修改活动。1
优点:实现简单。
缺点:降低了数据库的可用性——>转储必须等用户事务结束;新的事务必须等转储结束。
动态转储转储操作与用户事务并发进行,转储期间允许对数据库进行存取或修改。
优点:不用等待正在进行的用户事务结束;不会影响新事务的运行
缺点:不能保证副本中的数据正确有效
利用动态转储得到的副本进行故障恢复
1、需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件
2、后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态。
海量和增量转储海量转储:每次转储全部数据库
增量转储:只转储上次转储后更新过的数据
二者比较:
从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便
但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用有效。
转储策略1、定期进行数据转储,制作后备副本。但是转储又是十分耗费时间和资源的,不能频繁进行。
2、DBA应该根据数据库使用情况确定适当的转储周期和方法
Eg:每天晚上进行动态增量转储;每周进行一次动态海量转储;每月进行一次静态海量转储。
DSMSERV DUMPDB命令如果出现灾难性错误(例如恢复日志毁坏),可使用此命令作为转储、重新初始化和重新装入服务器数据库的第一个步骤,而不能使用 DSMSERV RESTORE DB 命令。DSMSERV DUMPDB 处理期间不允许其它服务器活动。
DSMSERV DUMPDB 处理完成以后,执行下列步骤:
发出 DSMSERV LOADFORMAT 命令可重新初始化数据库和恢复日志。
发出 DSMSERV LOADDB 命令可重新装入数据库。
如有必要,发出 DSMSERV AUDITDB 命令可定位和更正任何数据库的不一致性。
注意:
DSMSERV LOADDB 命令的输出结束处的消息指示是否必须审计数据库。如果停止服务器时服务器无反应,则不需要 DSMSERV AUDITDB 命令。
**注意:**DSMSERV DUMPDB 命令只支持使用手工库(在 DEFINE LIBRARY 命令中 LIBTYPE=MANUAL)。
必须具有一个包括对此设备类的定义的设备配置文件和任何需要的库和驱动器。您还必须通过使用服务器选项文件中的 DEVCONFIG 选项指定该设备配置文件的名称。如果先前在服务器选项文件中包括了 DEVCONFIG 选项,然后启动了服务器,则设备配置文件应是可用的。如果设备配置文件已经丢失或从未创建,请进行以下操作之一:
如果可重新启动服务器,则重新启动服务器并发出 BACKUP DEVCONFIG 命令。
如果无法重新启动服务器,则用编辑器手工创建设备配置文件。关于如何手工创建设备配置文件的信息,请参阅管理员指南。
在转储数据库之前,请考虑下列各项:
在将数据库转储到顺序存取介质之前,请估计需要多少介质。如果无法启动服务器,则使用现有数据库卷的大小。
如果可启动服务器,则通过这些步骤估计其大小:
发出 QUERY DB 命令。
从 QUERY DB 命令的输出,将已使用的页面数乘以 4096 字节,确定数据库所占用的空间。
将步骤 2 的乘积除以单个介质的容量,可估计所需的介质数。
如果可能,且如果需要,使用 LABEL LIBVOL 命令对其它磁带卷标号。
转储时,使用临时卷可确保有空间可用于存储数据库。不管使用专用卷还是临时卷,都在转储期间记录每个已安装卷的标签名称和序列。DSMSERV DUMPDB 命令使用的卷不记录在顺序卷历史记录信息中。
如果没有足够的预先标号的专用或临时卷用于转储数据库,则您将需要安装并启动第二个服务器并使用它为磁带卷标号(使用 LABEL LIBVOL 命令)。
转储进程中不访问服务器恢复日志。因此,转储时未写到数据库的数据库条目是不记录的。在灾难性故障后的恢复期间,可能无法恢复最新的数据库更新。2
注意:
当装入或恢复数据库时,将更改服务器到服务器通信验证令牌。验证令牌是数据库的一种属性,它并不存储在数据库本身。令牌的一部分是数据库的安装日期与时间。对于那些已对服务器到服务器通信定义的服务器,必须发出带有 FORCESYNC=YES 的 UPDATE SERVER 命令。
参数DEVclass
指定与数据库转储将被写入的卷关联的设备类名称。
Scratch
指定临时卷是否可用于转储数据库。 缺省值是 YES。
Yes
可使用临时卷。如果在 VOLUMENAMES 参数上包括了一系列卷,则仅在已指定的卷上的空间不足以转储数据库的情况下才使用临时卷。如果与指定的设备类关联的设备类型为 FILE,则将基于某个时间戳记生成临时卷的文件名。
No
不能使用临时卷。必须在 VOLUMENAMES 参数上包括一系列卷,才能包含所有的数据库数据。
VOLumenames
指定要用于转储数据库的卷。此参数是可选的,但如果 SCRATCH=NO,则必须指定此参数。如果不指定此参数而指定或假定了 SCRATCH=YES,则使用临时卷。
Tivoli Storage Manager 并不将 DSMSERV DUMPDB 命令对卷的使用记录在卷历史记录文件中。因此,必须记录已使用的卷名,并在将来的 DSMSERV LOADDB 命令中以绝对相同的次序指定它们。
可能的值有:
volume_name
要用于转储数据库的一个或多个卷的名称。可指定多个卷名,以逗号分隔各卷名,其间无空格。将按这些卷列出的次序使用它们。
FILE:file_name
包含一系列要用于转储数据库的卷的文件名称。在文件中,每个卷名都分别在一行输入。以使用这些卷的次序列出这些卷。
示例任务 1
将数据库转储到名为 DB0001、DB0002 和 DB0003 的以前标号的磁带:
停止服务器。
请确保已在服务器选项文件中指定了 DEVCONFIG 选项。设备配置文件必须包含设备类、库和转储操作所需的驱动器定义。
发出 DSMSERV DUMPDB 命令。
命令
dsmserv dumpdb devclass=tapeclassvolumenames=db0001,db0002,db0003
任务 2
使用名为 ADSM.VOLLIST 的文件中列出的磁带转储数据库。
命令
dsmserv dumpdb devclass=tapeclass volnames=file:adsm.vollist