Script de commande d'utilitaire de nettoyage de base de données
L'utilitaire de nettoyage de base de données (dbclean) supprime des objets inutilisés ou obsolètes de la base de données.
Avant de commencer
Exécutez cet utilitaire à partir de Utility server Docker container. Pour plus d'informations, voir Exécution des utilitaires à partir de Utility server Docker container.
Valeurs des paramètres
- object
- Obligatoire. Nom de l'objet à supprimer. Pour plus d'informations sur les noms d'objet, voir Objets de l'utilitaire de nettoyage de la base de données .
- type
- Obligatoire. Type d'objet que vous voulez supprimer. Pour plus d'informations sur le type à indiquer avec un objet, voir Objets de l'utilitaire de nettoyage de la base de données.
- instancexml
- Obligatoire. Chemin d'accès absolu au fichier de configuration HCL Commerce.
- db
- Facultatif : nom de la base de données, codé en tant qu'URL de modèle JDBC de type 4. Si vous laissez cette zone vide, l'utilitaire lit les informations de la base de données à partir de l'instance.
- dbuser
- Facultatif : ID connexion de l'administrateur qui a créé le schéma ou de l'administrateur de site de la base de données. Si ce paramètre n'est pas indiqué, c'est l'ID de l'utilisateur appelant l'utilitaire qui est utilisé.
- dbschema
- Facultatif : nom du schéma de la base de données. Ce paramètre permet à un utilisateur d'exécuter l'utilitaire dbschema à l'aide d'un ID utilisateur autre que celui spécifié pour le paramètre dbuser.
- dbpasswd
- Facultatif : mot de passe associé à l'ID connexion indiqué par le paramètre dbuser ou dbschema. Si vous n'indiquez rien, le système vous invite à saisir le mot de passe.
- dbtype
- Facultatif : type de la base de données. La valeur par défaut est DB2. Vous pouvez également spécifier oracle.
- check_object_only
-
Facultatif : Lorsque l'option check_object_only est paramétrée sur yes, elle observe chacune des tables enfant et vérifie si elles sont affectées si leur table parent est supprimée. Si elles sont affectées, l'utilitaire dbclean restreint les suppressions, ce qui signifie que la table parent ne peut pas être supprimée. Si elles ne sont pas affectées, la table parent peut être supprimée. Par exemple, si un objet OrderItem doit être supprimé, cela peut avoir une incidence sur le propriétaire de l'objet OrderItem, qui peut être un utilisateur invité ne disposant que de cet objet OrderItem. Dans ce cas, l'objet OrderItem peut être nettoyé à l'aide de dbclean. L'utilitaire n'effectue aucun contrôle si vous conservez la valeur no (la valeur par défaut) pour ce paramètre. Cette information se trouve dans le fichier journal.
N'incluez pas ce paramètre lorsque vous exécutez l'utilitaire en mode déconnecté.
- validation
-
Facultatif : nombre de lignes supprimées dans chaque validation. La valeur par défaut est 1000.Si le paramètre offlinemode est défini sur yes, l'utilitaire utilise deux nombres de validations. Un pour la table racine, et l'autre pour toutes les tables enfant. Le nombre de validations pour la table racine utilise la valeur spécifiée pour le paramètre commit ou la valeur par défaut si aucune valeur n'est spécifiée. Le nombre de validations pour les tables enfant est déterminé par une formule.
Cette formule utilise les valeurs spécifiées pour les paramètres commit et max. La valeur du paramètrechild_commit_count = (commit * commit); while (childCommitCnt >= max) { childCommitCnt /= 2; } if(0 == childCommitCnt) { childCommitCnt = commit; }maxdéfinit la limite pour la taille des fichiers à supprimer dans l'opération de nettoyage des données. Cette valeur est utilisée dans la formule pour assurer que le nombre de validations est suffisamment grand pour éviter la survalidation qui peut affecter les performances de la base de données. La valeur du paramètre commit est utilisée pour faire en sorte que le nombre de validations ne soit pas trop élevé par rapport à la valeur du paramètremax. En veillant à ce que le nombre de validations ne soit pas trop élevé, l'utilitaire peut éviter toute consommation rapide des ressources, tel que le fichier journal des transactions. - max
-
Facultatif : le nombre maximal d'objets à supprimer pour l'ensemble de l'exécution est déterminé par le paramètre commit ainsi que par cette valeur de paramètre max. La valeur par défaut est 100000. Le nombre maximum de lignes est supprimé en fonction d'un multiple de la valeur de validation qui atteint ou dépasse la valeur du paramètre max.
Par exemple, si vous spécifiez la valeur max sur 35 et commit sur 20, les suppressions ont lieu toutes les 20 lignes. Le nombre maximal de lignes supprimées est 40 car 40 est le nombre le plus proche qui est un multiple de commit dépassant la valeur du paramètre max. Si vous indiquez la valeur max sur 20 et commit sur 35, le nombre maximal de lignes supprimées est 35.
- log
- Facultatif : chemin d'accès et nom du fichier journal dans lequel l'utilitaire enregistre ses activités. La personne qui exécute l'utilitaire doit disposer des droits d'écriture sur le chemin indiqué et ce chemin doit déjà exister. Si ce paramètre n'est pas indiqué, le fichier journal DBClean.timestamp.log est créé dans le répertoire suivant : WC_eardir/xml/logs/DBClean/.
- loglevel
- Facultatif : Niveau de journalisation à effectuer lors du nettoyage de la base de données. Les niveaux de journal disponibles sont les suivants : NONE, ERROR, WARNING, NORMAL, INFO/VERBOSE ou DEBUG. La valeur par défaut est NONE.
- days
- Facultatif : nombre minimal de jours d'existence de l'enregistrement à supprimer.
- nom
- Facultatif : ID objet à supprimer. Ce paramètre est requis si la valeur member a été affectée au paramètre organization, et la valeur organization au paramètre type.
- jdbcDriver
- Facultatif : pilote JDBC à utiliser. La valeur par défaut dépend du type de la base de données. Par exemple, si vous utilisez DB2, le pilote JDBC peut être com.ibm.db2.jcc.DB2Driver. Si vous utilisez Oracle, le pilote JDBC peut être oracle.jdbc.OracleDriver.
- jdbcUrlPrefix
- Facultatif : préfixe URL pour le pilote JDBC spécifié. La valeur par défaut dépend du type de la base de données. Par exemple, si vous utilisez DB2, le préfixe d'URL JDBC peut être jdbc:db2://.
- jdbcCustomizer
-
Facultatif : indique l'emplacement du fichier de personnalisation à utiliser avec l'utilitaire de nettoyage de la base de données. Vous pouvez spécifier les valeurs de paramètres jdbcDriver et jdbcUrlPrefix au format argument=value sur chaque ligne dans le fichier.
Ce paramètre est obsolète. Envisagez d'utiliser le paramètre
paramfileà la place.La valeur par défaut est
jdbcDriver=com.ibm.db2.jcc.DB2Driver jdbcUrlPrefix=jdbc:db2://. D'autres combinaisons sont possibles mais n'ont pas été testées. - sqlmode
-
Facultatif : vous pouvez définir les valeurs suivantes pour ce paramètre :
- 1
- Mode direct. L'instruction DELETE extraite de la table CLEANCONF est exécutée directement sans aucune modification de l'utilitaire. Le jeu de résultats de la requête SQL est validé dans la base de données jusqu'à ce que la valeur du paramètre max soit atteinte. Lorsque vous définissez la valeur du paramètre sqlmode sur 1, veillez à définir également la valeur du paramètre commit sur 1.
- 0
- Mode par défaut. Comportement par défaut de l'utilitaire, tous les paramètres étant respectés, y compris le compteur des validations. Le comportement par défaut de l'utilitaire dbclean peut améliorer les instructions SQL extraites de la table CLEANCONF.
N'incluez pas ce paramètre lorsque vous exécutez l'utilitaire en mode déconnecté.
- dbauser
- Facultatif : nom d'utilisateur administrateur de la base de données. Si le nom de l'administrateur de base de données n'est pas compris en tant que paramètre sur la ligne de commande, le nom est extrait du fichier instance_name.xml. Si le nom n'est pas inclus dans ce fichier, vous êtes invité à entrer la valeur lorsque vous exécutez l'utilitaire.
- dbapasswd
- Facultatif : mot de passe de l'administrateur de base de données. Si le mot de passe de l'administrateur de base de données n'est pas compris en tant que paramètre sur la ligne de commande, le mot de passe est extrait du fichier instance_name.xml. Si le mot de passe n'est pas inclus dans ce fichier, vous êtes invité à entrer la valeur lorsque vous exécutez l'utilitaire.
- sqlParam%
-
Facultatif : indique que la valeur de ce paramètre est de remplacer un marqueur de paramètre dans l'instruction SQL pour l'objet qui est stocké dans la table de base CLEANCONF. Le caractère % dans le paramètre représente l'indice du marqueur de paramètre. L'indice doit commencer à 1. Le paramètre sqlParam% ne peut pas être utilisé avec les paramètres SQL de jours et de nom. Si plusieurs sqlParam% sont utilisés pour des marqueurs de paramètres, vous devez augmenter l'indice de manière séquentielle pour le paramètre sqlParam% dans votre commande de l'utilitaire. Par exemple, vous pouvez inclure les paramètres sqlParam% suivants dans la ligne de commande :
Ces paramètres peuvent être liés aux marqueurs de paramètres correspondants,-sqlParam1 0 -sqlParam2 2 -sqlParam3 41,2et3, dans l'instruction SQL suivante :
Une fois que la commande d'utilitaire est exécutée, les marqueurs de paramètres sont remplacés par les valeurs de sqlParam% dans la commande. Par exemple,delete from member where member_id in (select users_id from users where (current_timestamp - lastupdatetimestamp)> ? and users_id > ? and not exists (select 1 from orders where orders_id=?))delete from member where member_id in (select users_id from users where (current_timestamp - lastupdatetimestamp)> 0 and users_id > 2 and not exists (select 1 from orders where orders_id=4)) - paramfile
-
Facultatif : indique le chemin d'accès au fichier de paramètres qui comprend les arguments et les valeurs de ligne de commande. Chaque argument et chaque valeur doit être au format
argument=valueavec un seul argument et une seule valeur sur chaque ligne de ce fichier. Tous les mots de passe dans ce fichier de paramètres doivent être chiffrés. - offlinemode
- Facultatif : Indique que le nettoyage de base de données doit s'exécuter hors connexion et utiliser les suppressions d'exécution et explicites pour nettoyer la base de données. En exécutant l'utilitaire hors ligne, vous pouvez réduire l'impact sur les performances de la suppression de hiérarchies de tables profondément et largement imbriquées d'objets utilisateur. Pour plus d'informations sur l'exécution de cet utilitaire en mode hors connexion, voir Utilitaire de nettoyage de la base de données. Vous pouvez définir les valeurs suivantes pour ce paramètre :
- oui
- L'utilitaire de nettoyage de la base de données fonctionne en mode hors ligne. L'utilitaire ne peut pas détecter si votre environnement est déconnecté. L'utilitaire vous invite à confirmer que votre environnement est déconnecté.
- non
- L'utilitaire de nettoyage de la base de données fonctionne en mode en ligne. Il s'agit de la valeur par défaut.
Avant d'exécuter l'utilitaire en mode hors connexion, examinez les considérations et limitations suivantes : - prunelevel
-
Facultatif : entier indiquant le nombre de niveaux sous la table racine dans une hiérarchie de tables où l'utilitaire recherche les enregistrements d'objet à supprimer. Si une table, et toute table enfant qui est vérifiée, ne comprend pas les objets à supprimer, la table est retirée de l'opération de nettoyage. Le retrait des tables réduit la taille de l'opération de nettoyage, ce qui peut améliorer l'efficacité du processus de nettoyage. Vous pouvez utiliser ce paramètre uniquement lorsque vous exécutez l'utilitaire hors ligne. Quand vous augmentez le nombre de niveaux hiérarchiques à vérifier, davantage de tables et d'enregistrements sont inclus dans le processus de vérification et le nombre de contrôles augmente, ce qui peut affecter les performances de l'utilitaire. La valeur par défaut est 2.
Pour plus d'informations sur la façon dont l'utilitaire contrôle et nettoie les tables lorsque l'utilitaire fonctionne hors ligne, consultez Utilitaire de nettoyage de la base de données.
- threadCount
- Facultatif : indique le nombre maximal d'unités d'exécution que l'utilitaire peut exécuter simultanément. Vous pouvez utiliser ce paramètre uniquement lorsque vous exécutez l'utilitaire hors ligne.
- validatedel
-
Facultatif : indique si l'utilitaire confirme que les objets sont supprimés de la base de données. Vous pouvez utiliser ce paramètre uniquement lorsque vous exécutez l'utilitaire hors ligne. Vous pouvez définir les valeurs suivantes pour ce paramètre :
- oui
- Exécuter le contrôle de validation.
- non
- Ne pas exécuter le contrôle de validation. Il s'agit de la valeur par défaut.
- Pour la progression du nettoyage, reportez-vous au fichier journal DBClean.timestamp.log, situé dans le parent du répertoire WC_eardir/xml/logs/DBClean. Le niveau de journalisation du nettoyage peut être l'un des suivants : NONE (aucun), ERROR (erreurs), WARNING (avertissements), NORMAL, INFO/VERBOSE (info/détaillé) ou DEBUG (débogage). Par défaut, ce niveau est défini à DEBUG.
- Si une erreur irrécupérable se produit pendant le nettoyage, reportez-vous au fichier utilities_root/instances/instance_name/logs/DBClean/System.timestamp.Properties. L'utilitaire de nettoyage de la base de données s'arrête automatiquement et les propriétés JVM sont stockées dans ce fichier.
- Si vous souhaitez supprimer des fichiers obsolètes, associés à des ressources de données, exécutez le script suivant : utilities_root/instances/instance_name/logs/DBClean/clean.asset.object.type.timestamp.sh
Exemple : Suppression des objets d'utilisateur
./dbclean.sh -object user -type registered -instancexml /opt/WebSphere/CommerceServer90/instances/demo/xml/demo.xml -db CD040302 -commit 500 -max 8000 -check_object_only yesExemple : Mode hors ligne
./dbclean.sh -object user -type registered -instancexml /opt/WebSphere/CommerceServer90/instances/demo/xml/demo.xml -db CD040302 -commit 500 -max 8000 -dbschema wcs -dbauser Tomsmith -dbauserpwd myadminpassword -dbuser johnsmith -dbpasswd mypasword -offlinemode yes -validatedel yes -prunelevel 2