Comment utiliser la table de flashback oracle de 12c

Très semblable à Flashback Query est le tableau Flashback d'Oracle 12c. En fait, les deux sont construits sur la même technologie sous-jacente. Flashback Table est capable de clignotant arrière changements de ligne ou la table entière si elle a été accidentellement laissé tomber.

Gardez les exigences suivantes à l'esprit:

  • Le paramètre UNDO_RETENTION va contrôler comment loin vous pouvez flasher la table.

  • Vous devez utiliser une fonctionnalité appelée le mouvement de la ligne qui doit être activée sur une table vous voulez un retour de flamme rangées. (Les prochaines étapes montrent comment activer le mouvement de la ligne.)

  • Si vous voulez être en mesure de retour de flamme d'une table à partir d'une goutte, vous devez avoir votre paramètre RecycleBin réglé sur ON. Ce paramètre est activé par défaut, mais notez que si elle a été désactivé il nécessite un rebond de base de données pour le rallumer.

Prenons un exemple à propos de la suppression accidentelle de certaines lignes d'une table. Ils étaient très facile de récupérer parce que leur identification n'a pas été difficile. Cependant, supposons que vous souhaitez récupérer une mise à jour accidentelle. Mises à jour sont plus difficiles à récupérer avec Flashback Query. Vous pouvez le faire, mais vous pourriez être en mesure de rendre plus facile sur vous-même en clignotant arrière de la table entière.

Flashback Table fonctionne sur l'ensemble du tableau, et pas seulement certaines lignes, alors assurez-vous que la mise de la table entière dans le temps ne va pas causer d'autres problèmes.

Pour utiliser Flashback tableau, suivez ces étapes:

  1. Vous devez avoir rangée mouvement Activé- pour lui permettre, le type

    Vous devriez voir ceci:

    Tableau modifié.

    Comme une note côté, vous ne devez pas permettre le déplacement de la ligne avant de modifier vos données. Vous pouvez le faire après le fait.

  2. Voir ce que vos données ressemble en tapant

    Vous devriez voir quelque chose comme ceci:

    DEPARTMENT_NAMEMANAGER_ID ------------------------------ ---------- Administration200Marketing 201Purchasing 114Human Resources203Shipping 121IT Relations 103Public 204Sales 145Executive 100Finance108Accounting 20511 lignes sélectionnées.

    À “ gâcher ” les données, tapez la commande suivante:

    lt; mettre à jour departmentsset manager_id = 205where manager_id est pas nul engagement>



    Vous voyez qui devraient quelque chose comme ceci:

    11 rangées updated.Commit complet.
  3. Regardez à nouveau vos données en tapant

    Vous devriez voir quelque chose comme ceci:

    DEPARTMENT_NAMEMANAGER_ID ------------------------------ ---------- Administration205Marketing 205Purchasing 205Human Resources205Shipping 205IT Relations 205Public 205Sales 205Executive 205Finance205Accounting 20511 lignes sélectionnées.
  4. Flashback tous les changements sur les lignes, le type

    Vous devriez voir quelque chose comme ceci:

    Flashback complète.
  5. Vérifiez à nouveau vos données en tapant

    Vous devriez voir quelque chose comme ceci:

DEPARTMENT_NAMEMANAGER_ID ------------------------------ ---------- Administration200Marketing 201Purchasing 114Human Resources203Shipping 121IT Relations 103Public 204Sales 145Executive 100Finance108Accounting 20511 lignes sélectionnées.

Les données est de retour où il était à l'estampille indiquée.

Le prochain exercice vous aide si vous avez accidentellement laissé tomber votre table. Il utilise la fonction mentionnée ci-dessus appelé le RecycleBin. Il fonctionne un peu comme la Corbeille sur un ordinateur de bureau Windows. Vous pouvez restaurer un objet à quoi elle ressemblait avant qu'il a été abandonné.

Pour l'exemple suivant, vous commencez par faire une copie de la table des employés à travailler avec. La raison pour laquelle vous faites une copie est que dans le schéma de démonstration fourni avec la base de données, il ya beaucoup de l'intégrité référentielle, ce qui vous empêche de tomber tables en premier lieu (l'une des nombreuses raisons intégrité référentielle est une bonne idée! ).

  1. Pour faire une copie de votre table des employés, le type

    Vous voyez quelque chose comme ceci:

    Tableau créé.
  2. “ accidentellement ” déposer la nouvelle table emp en tapant

    -

    Vous voyez quelque chose comme ceci:

    Tableau chuté.
  3. Interrogez votre RecycleBin pour voir ce que vous pouvez récupérer - Type

    lt; select object_name, original_name, l'exploitation, droptimefrom user_recyclebin->

    Vous voyez quelque chose comme ceci:

    OBJECT_NAME ORIGINAL_NAME FONCTIONNEMENT DROPTIME ------------------------------ --------------- - ------------------- -------- BIN $ 5BtB5dF6GmXgQ1ABqMC8yg == $ 0 EMP DROP 16/08/2013: 21: 02: 12

    Remarquez le drôle de nom commençant par BIN $. Avec le RecycleBin allumé, ce qui se passe réellement lors d'une chute est l'objet est renommé. Vous pouvez toujours interroger la table d'origine en utilisant ce nom!

    Cela peut être utile si vous souhaitez restaurer quelques lignes plutôt que de l'ensemble du tableau. Vous pouvez interroger ces lignes ou de faire un “ CREATE TABLE AS sélectionnez ” de les stocker dans une nouvelle table tout à fait.

  4. Pour Undrop votre table, le type

    lt; Table flashback emp à avant goutte>

    Vous voyez ceci:

    Flashback complète.

    Vous pouvez maintenant interroger à nouveau votre table.

Bien clignotant retour à la table avant une chute ne remet tous les privilèges et indices, les indices garder le nom BIN $. Vous pouvez donner vos index sauvegarder le nom original avec une commande de changement de nom si vous voulez.


» » » Comment utiliser la table de flashback oracle de 12c