Le Blog de C-quad

Teradata : débloquer une table bloquée suite à un fastload

Teradata fourni une base de données massivement parallèle que j’utilise dans le cadre mes prestations. Teradata n’est en aucun cas une solution de base de données libre et cela se ressent par la pauvreté de documentations disponibles sur le web.

Je me permet donc de faire un écart et de partager mes connaissances sur un outil propriétaire.

Teradata mets à disposition de ces clients un outil nommé fastload qui permet de charger un fichier dans la base de données.  Je ne vais pas détailler l’utilisation du fastload mais plutot ce qu’il faut faire lorsque l’on est confronté à cette erreur :

*** Failure 2652 Operation not allowed: database.table is being loaded.

Ce cas se produit principalement quand un fastload a été effectué mais que celui ci n’est pas terminé (incident, mise en pause, etc …)

Je vous conseille donc dans un premier temps de vérifier si c’est bien cette situation dans la table QryLog :

select StartTime,SessionID,UserName,DefaultDatabase,LogonSource,ClientAddr,ErrorCode,ErrorText,StatementType,QueryText
from dbc.QryLog
where StartTime between '2011-03-09 02:00:00' AND '2011-03-09 05:00:00'
and Querytext like '%database.table%'
and AppID='FASTLOAD';

Cette requête d’exemple est bien sur à adapter en fonction de vos besoins. Le champs qui nous intéresse vraiement est « QueryText ».

Donc si vous retrouvez bien dans cette table un début de fastload, sans le « end fastload » c’est que vous êtes bien dans le cas d’un fastload non terminé.

Il faut donc le terminer pour débloquer la table :

$ fastload << ! 
logon bdd/user,password;

BEGIN LOADING database.table 
ERRORFILES database.table_E1, 
 database.table_E2;
end loading ;
logoff;
!

il faut bien sur remplacer « database.table » et les tables d’erreurs par les informations que vous aurez récupéré dans la table QryLog.

Laisser un commentaire