@author: Felipe Donoso Bastias, fdonoso@cl.ibm.com fecha: 14-10-2016
Esto fue algo que se realizó un cliente de mi actual empresa para
Realizar una recuperación en el tiempo (PTR). El cliente solicitaba
restaurar una base de datos en particular llamada BD1 a
un punto determinado en el tiempo (10:00 hrs del 13-09-2016). La base
de datos en cuestión existe en un servidor llamado (PROD) y la
procederemos a restaurar en el equipo QA con el nombre de BD2. Los pasos llevados a cabo para realizar esto son los
siguientes:
Tener en cuenta que el ejecutable a usar tdpsqlc quedará en la ruta: c:\progra~1\tivoli\tsm\tdpsql\
1.- Como primer paso se procede a restaurar la base de datos usando la opcion /recovery=no
(de ese modo quedará esperando o en modo restoring para luego aplicar
los transaction logs). Para el caso de este cliente se tuvo que ocupar
la opción stripe en 1.
tdpsqlc restore BD1 /BackupMethod=legacy /recovery=no /strip=1 /object=20160912221502\0000686C /TSMOPTFile="C:\Program Files\Tivoli\TSM\TDPSql\dsm_restore_c030.opt"
/TSMPassword=eyre1205 /sqlauth=sql /SQLUser=systsm /SQLPassword=xxxx
/fromsqlserver=PROD /SqlServer=tcp:QA
/logfile=C:\temp\restore.log /into=BD2
/replace /mountwait=yes
Al terminar de restaurar la base de datos esta quedará con el estado restoring lo cual está correcto (a modo ejemplo):
2.- Luego se debe obtener el OBJECTID de los respaldos de
logs de transaccion para poder realizar la aplicación de estos. Para
obtener el objectid desde la consola de TSM se ejecuta la siguiente
consulta con los siguientes filtros:
tsm: TSMPREVIRED> select HL_NAME,BACKUP_DATE from backups WHERE NODE_NAME='PV1RPRSQC030_LOG' and BACKUP_DATE like '%2016-09-13%' and HL_NAME like '%\BD1\%' and BACKUP_DATE >= '2016-09-12 22:15:00.000000'
tsm: TSMPREVIRED> select HL_NAME,BACKUP_DATE from backups WHERE NODE_NAME='PV1RPRSQC030_LOG' and BACKUP_DATE like '%2016-09-13%' and HL_NAME like '%\BD1\%' and BACKUP_DATE >= '2016-09-12 22:15:00.000000'
La anterior consulta devolverá el OBJECTID el cual tiene un formato similar a esto: 20160913025623\000048EC
Recordar que dicho Object ID también se puede sacar desde
la herramienta misma de TDP revisando la columna OBJECT ID
correspondiente a los respaldos de logs que queramos aplicar, ejemplo:
Como dato adicional es probable que el restore de los logs
de transacción requiera del uso de un nuevo OPT (en general cuando se ocupa tivoli para respaldar bases, se utiliza un opt distinto para el respaldo de los transaction logs). Frente a eso es quizás necesario ejecutar lo siguiente (tomando en cuenta que el
opt lleva por nombre C:\Users\tsm_admin\Desktop\dsm_30_logs.opt):
C:\Program Files\Tivoli\TSM\baclient>dsmc -optfile=C:\Users\tsm_admin\Desktop\dsm_30_logs.opt
3.- Luego de identificados los object id de los respaldos
de transactions logs se procede hacer restore de estos usando la opción log=*. Se debe indicar en el /object todos los objectid que contengan
los respaldos de logs de transaccion que necesitaremos aplicar (estos pueden ir dividos por ","). Importante aqui el uso del comando stopat para indicar a que momento se dejará la base de datos.
No olvidar ocupar la opción /recovery=yes para que deje abierta y operativa la base de datos.
los respaldos de logs de transaccion que necesitaremos aplicar (estos pueden ir dividos por ","). Importante aqui el uso del comando stopat para indicar a que momento se dejará la base de datos.
No olvidar ocupar la opción /recovery=yes para que deje abierta y operativa la base de datos.
tdpsqlc restore BD1 recovery=yes log=* /stopat="09/13/2016 10:00:00"
/object=20160913025623\000048EC,20160913035626\00005BB0,20160913045619\000040FC,20160913055720\000057FC,20160913065607\000065EC,20160913075604\00006F50,20160913085606\00006C84
/TSMOPTFile="C:\Users\tsm_admin\Desktop\dsm_30_logs.opt" /sqlauth=sql
/SQLUser=systsm /SQLPassword=xxx /fromsqlserver=PROD
/SqlServer=tcp:QA /mountwait=yes /into=Restore_PO
Esos son todos los pasos ya que al ejecutar el comando
anterior la base de datos quedará operativa (sin el status RESTORING).
Aún así si llegase a quedar dicho status en la base aún se puede
ejecutar el siguiente comando para dejarla lista y operativa:
RESTORE DATABASE BD2 WITH RECOVERY
GO
GO
Esos son todos los pasos necesarios.
Saludos.
Para mayor información acerca de los comandos pueden
recurrir al siguiente link: Restoring data by using the command-line
interface http://www.ibm.com/support/knowledgecenter/SS8TDQ_7.1.6/ve.user/t_vesql_recovercli.html