Maison > base de données > Oracle > le corps du texte

Exemple détaillé de migration de synchronisation des données Oracle via LogMiner

WBOY
Libérer: 2022-03-30 11:16:55
avant
2048 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur Oracle, qui présente principalement les problèmes liés à la migration de la synchronisation des données Oracle via LogMiner. Voici une introduction à la façon de réaliser la synchronisation des données Oracle. J'espère que cela sera utile à tout le monde.

Exemple détaillé de migration de synchronisation des données Oracle via LogMiner

Tutoriel recommandé : "Tutoriel Oracle"

Écrit devant

Récemment, j'ai étudié comment réaliser la synchronisation des données entre les bases de données Oracle, et il y a en effet relativement peu d'informations sur Internet. Le meilleur outil de synchronisation de base de données Oracle est : GoldenGate, et GoldenGate est payant. Alors, existe-t-il un bon moyen de synchroniser les données Oracle ? C'est vrai, LogMiner est utilisé pour implémenter la migration de la synchronisation des données Oracle.

Processus de mise en œuvre

1. Créer un répertoire

Créez le répertoire /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR sur le serveur pour stocker les informations du dictionnaire de la base de données, comme indiqué ci-dessous.

mkdir -p /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR
Copier après la connexion

2. Configurez LogMiner

Connectez-vous au serveur en tant qu'utilisateur Oracle et connectez-vous à la base de données Oracle en tant qu'administrateur de base de données, comme indiqué ci-dessous.

sqlplus /nolog
conn  / as sysdba
Copier après la connexion

Ensuite, créez la configuration du dossier de dictionnaire comme indiqué ci-dessous.

CREATE DIRECTORY utlfile AS '/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR';alter system set utl_file_dir='/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR' scope=spfile;
Copier après la connexion

Remarque : Puisque utl_file_dir n'existe que dans les fichiers, la portée est écrite en mode fichier "spfile", pas les deux.

3. Activez le mode d'ajout de journal

alter database add supplemental log data;
Copier après la connexion

Ce n'est qu'après l'avoir activé que vous pourrez voir l'enregistrement de l'opération DML, sinon vous ne pourrez voir que le DML

4. Redémarrez la base de données

SHUTDOWN IMMEDIATE;  STARTUP;
Copier après la connexion

5. . Créez un utilisateur de synchronisation de données

Créez un utilisateur de synchronisation de données s'il y en a déjà un, vous pouvez l'ignorer et accorder des autorisations directement.

create user SYNC identified by SYNC;  #如果存在用户,则不需要再次创建,直接授权即可GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;
Copier après la connexion

6. Créer un dictionnaire de données

Passez à l'utilisateur qui souhaite synchroniser les données, connectez-vous en tant qu'administrateur de base de données et créez un fichier de dictionnaire de données comme indiqué ci-dessous.

conn SYNC/SYNC@orcl as sysdba;  EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');
Copier après la connexion

La commande permettant de créer un dictionnaire de données peut également être implémentée via du code Java. Si elle est implémentée à l'aide de code Java, vous pouvez d'abord vous connecter à la base de données Oracle via JDBC, puis exécuter la commande suivante.

BEGIN
dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');  END;
Copier après la connexion

7. Ajoutez les fichiers journaux qui doivent être analysés

Cette étape peut être effectuée sur la ligne de commande Oracle ou implémentée à l'aide du code Java.

Utilisez l'instruction SQL pour réaliser comme indiqué ci-dessous.

EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);
Copier après la connexion

Lors de l'utilisation de l'analyse de code Java, l'instruction SQL utilisée est la suivante.

BEGIN  
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);  END;
Copier après la connexion

8. Afficher le fichier journal en cours d'utilisation

SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;
Copier après la connexion

Celui avec le statut CURRENT est le fichier journal actuellement utilisé

9 Utilisez Lominer pour analyser le journal

EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora');
Copier après la connexion

Les instructions SQL utilisées lors de l'utilisation du code Java. analyse Comme indiqué ci-dessous.

BEGIN
dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); END;
Copier après la connexion

10. Afficher les résultats de l'analyse

SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
Copier après la connexion
Copier après la connexion

Remarque : Les résultats de l'analyse dans la vue v$logmnr_contents n'existent que pendant la durée de vie de la session lorsque nous exécutons le processus 'dbms_logmrn.start_logmnr'. nouveaux journaux, vous devez rajouter le fichier journal d'analyse et utiliser LogMiner pour l'analyser.

11. Foire aux questions

(1) Si l'exception « l'identifiant 'SYS.DBMS_LOGMNR' doit être déclaré » se produit, vous devez accorder à l'utilisateur l'autorisation EXECUTE_CATALOG_ROLE après avoir créé l'utilisateur, comme indiqué ci-dessous.

GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;
Copier après la connexion

(2) À ce stade, vous devez spécifier l'utilisateur correspondant pour seg_owner dans l'instruction de requête. Par exemple, si j'utilise l'utilisateur SYNC pour analyser via LogMiner, vous devez spécifier seg_owner comme utilisateur SYNC, comme indiqué. ci-dessous.

SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
Copier après la connexion
Copier après la connexion

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal