Nettoyage de la base Derby sur ODA
- commencer par arrêter les services qui peuvent modifier la base Derby :
systemctl stop initdcscontroller.service
systemctl stop initdcsagent.service
-
définir la variable d'environnement JAVA
export JAVA_HOME=/opt/oracle/dcs/java/1.8.0_251 -
aller dans le répertoire où se trouve le client derby qui va nous permettre de nous connecter à la bae
cd /opt/oracle/dcs/repo/db-derby-10.14.2.0-bin/ -
définir la variable DERBY_HOME
export DERBY_HOME=/opt/oracle/dcs/repo/db-derby-10.14.2.0-bin/ -
définir la variable CLASSPATH pour la commande java de connexion à la base :
export CLASSPATH=${DERBY_HOME}/lib/derby.jar:${DERBY_HOME}/lib/derbynet.jar:${DERBY_HOME}/lib/derbyclient.jar:${DERBY_HOME}/lib/derbytools.jar:${DERBY_HOME}/lib/derbyoptionaltools.jar -
faire une sauvegarde de la base avant de la modifier
tar -czf /root/DBDerby-20250911.tar /opt/oracle/dcs/repo/ -
aller dans le répertoire juste avant node_0
cd /opt/oracle/dcs/repo -
exécuter l'outil de connexion ij pour établir la connexion à la base node_0
$JAVA_HOME/bin/java -cp $CLASSPATH org.apache.derby.tools.ij ij version 10.14 ij> connect 'jdbc:derby:node_0'; ij> show tables; -
afficher l'ID de la base DBORA12, il sera utilisé pour nettoyer la table ATTACHED_NETWORKS
ij> select id, name from db where name='DBORA12'; ID |NAME ------------------------------------------------------------------------------------ b42277db-6d18-4f6f-93e0-4d8f2e15663a |DBORA12 -
vérifier le contenu de la table ATTACHED_NETWORKS
ij> select * from ATTACHED_NETWORKS where DB_ID='b42277db-6d18-4f6f-93e0-4d8f2e15663a'; DB_ID |ATTACHED_NETWORK ------------------------------------------------------------------------------------ b42277db-6d18-4f6f-93e0-4d8f2e15663a |fa7de051-08b5-438d-ab1c-9ebfd3b3714d
1 row selected
- Suppression de cette ligne
```sql
ij> delete from ATTACHED_NETWORKS where db_id='b42277db-6d18-4f6f-93e0-4d8f2e15663a';
1 row inserted/updated/deleted
-
extraire l'ID du stockage pour l'utiliser plus tard
ij> select ID,NAME from DBSTORAGEDETAILS where NAME='DBORA12'; ID |NAME ---------------------------------------------------------------------------------- b3f76433-c3d2-4ada-9796-62b42ab50f4e |DBORA12 <<<<========= -
Vérifier le contenu de la table DBSTORAGELOCATIONS
select * FROM APP.DBSTORAGELOCATIONS WHERE name='DBORA12'; => doit retourner 1 ligne -
Supprimer le contenu de la table DBSTORAGELOCATIONS
DELETE FROM APP.DBSTORAGELOCATIONS WHERE name='DBORA12'; -
vérifier le contenu de la table DBSTORAGEDETAILS_VOLS, la requête doit retourner 3 lignes. le paramètre DBSTORAGEDETAILS_ID vient de la requête plus haut
ij> select * FROM APP.DBSTORAGEDETAILS_VOLS WHERE DBSTORAGEDETAILS_ID = 'b3f76433-c3d2-4ada-9796-62b42ab50f4e'; DBSTORAGEDETAILS_ID |DGNAME |FSMOUNTPOINT |INITIALVOLSIZE |VOLNAME |VOLTYPE ------------------------------------------------------------------------------------------------------------------- b3f76433-c3d2-4ada-9796-62b42ab50f4e |Data |/u02/app/oracle/oradata/DBORA12 |100 |datDBORA12 |Data b3f76433-c3d2-4ada-9796-62b42ab50f4e |Reco |/u03/app/oracle/ |NULL |reco |Reco b3f76433-c3d2-4ada-9796-62b42ab50f4e |Reco |/u04/app/oracle/redo/DBORA12/ |4 |rdoDBORA12 |Redo
3 rows selected
- supprimer les 3 lignes
```sql
ij> DELETE FROM APP.DBSTORAGEDETAILS_VOLS WHERE DBSTORAGEDETAILS_ID = 'b3f76433-c3d2-4ada-9796-62b42ab50f4e';
3 rows inserted/updated/deleted
- nettoyer la table DBSTORAGEDETAILS
ij> select ID,NAME from DBSTORAGEDETAILS where NAME='DBORA12'; ID |NAME ----------------------------------------------------- b3f76433-c3d2-4ada-9796-62b42ab50f4e |DBORA12
1 row selected
ij> delete FROM APP.DBSTORAGEDETAILS WHERE name='DBORA12'; 1 row inserted/updated/deleted
- nettoyer la table DB
```sql
ij> select ID, NAME, STATUS from DB where name='DBORA12';
ID |NAME |STATUS
------------------------------------------------------
b42277db-6d18-4f6f-93e0-4d8f2e15663a |DBORA12 |Failed
1 row selected
ij> delete from DB where name='DBORA12';
1 row inserted/updated/deleted
ij> commit;
ij> exit;
-
redémarrer les services DCS :
systemctl start initdcsagent.service systemctl start initdcscontroller.service -
vérifier le résultat avec la commande odacli. labase DBORA12 ne devrait plus figurer dans la liste des bases