Vous pouvez répliquer des données à partir d' Oracle avec Data Replication.
Pour configurer la réplication des données Oracle , configurez d'abord votre base de données Oracle en tant que source, puis créez une connexion.
Versions prises en charge
Oracle 19c R1 (19.1)+
Restriction
Vous ne pouvez répliquer que certains types de données Oracle . Voir Types de données Oracle pris en charge.
Configuration d' Oracle en tant que source
Avant de démarrer une réplication avec une connexion Oracle , vous devez vous assurer que les exigences de base de données, de comptes utilisateur et de schéma sont satisfaites.
Configurez une base de données Oracle . Lorsque vous configurez une connexion Oracle , vous êtes invité à indiquer le nom de la base de données Oracle à partir de laquelle vous souhaitez que Data Replication réplique les données. Avant de créer la connexion, vérifiez que cette base de données Oracle existe et que vous créez et configurez un utilisateur de base de données qui y a accès. Data Replication prend en charge les tables de mappage qui se trouvent dans plusieurs schémas dans la même base de données. Vérifiez que Oracle XStream est activé via le paramètre
enable_goldengate_replication
.Une partie de la configuration XStream Oracle doit être préparée à l'avance avant de créer une connexion Oracle .
Activez
enable_goldengate_replication
. Vous devez définir le paramètre systèmeenable_goldengate_replication
sur votre base de données source pour activer la fonction de réplication XStream dans Oracle. Vous pouvez utiliser l'instruction suivante:ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH
Toutes les instances d' Oracle RAC doivent avoir le même paramètre. Reportez-vous à la documentationOracle pour comprendre l'impact de l'activation de ce paramètre sur votre base de données.
Créez un compte utilisateur pour la base de données Oracle.
Lorsque vous répliquez des données à partir de bases de données Oracle , Data Replication traite les journaux de base de données. Vous pouvez configurer Data Replication pour la capture locale, où les journaux sont traités dans la même base de données que les schémas que vous répliquez. Vous pouvez également configurer Data Replication pour utiliser une connexion XStream Oracle distincte afin de traiter les journaux dans une autre base de données. Si vous utilisez la capture locale, vous avez besoin d'une connexion Oracle unique. Si vous utilisez une base de données Oracle XStream distincte pour le traitement des journaux, vous aurez besoin de deux connexions Oracle : une pour vous connecter à la base de données qui contient le schéma que vous répliquez et une pour vous connecter à la base de données dans laquelle Oracle XStream traite les journaux. Cette base de données de traitement des journaux peut être une base de données en aval Oracle .
Passez en revue les privilèges requis pour les utilisateurs Oracle . Avant de configurer des connexions Oracle , passez en revue la liste des privilèges requis par les utilisateurs Oracle . Vous devez accorder ces privilèges aux utilisateurs en exécutant des scripts SQL.
Les exemples de script suivants permettent de fournir les privilèges appropriés à l'utilisateur de la base de données Oracle et à l'utilisateur de la base de données de traitement des journaux.
Exemple de script createuser-ora-nodba.sql
Copiez ce script et remplacez les valeurs entre crochets. Exécutez ce script pour créer un utilisateur de base de données Oracle pour la réplication des données à partir d' Oracle.
/* _______________________________________________________ {COPYRIGHT-TOP} _____
** Licensed Materials - Property of IBM
** IBM Data Replication Cartridge for IBM Cloud Pak for Data
** 5900ASF
**
** (c) Copyright IBM Corp. 2001, 2022 All rights reserved.
**
** The following sample of source code ("Sample") is owned by International
** Business Machines Corporation or one of its subsidiaries ("IBM") and is
** copyrighted and licensed, not sold. You may use, copy, modify, and
** distribute the Sample in any form without payment to IBM.
**
** The Sample code is provided to you on an "AS IS" basis, without warranty of
** any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
** IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do
** not allow for the exclusion or limitation of implied warranties, so the above
** limitations or exclusions may not apply to you. IBM shall not be liable for
** any damages you suffer as a result of using, copying, modifying or
** distributing the Sample, even if IBM has been advised of the possibility of
** such damages.
* ________________________________________________________ {COPYRIGHT-END} _____*/
--This script does not grant dba to the data replication user.
-- create user
CREATE user <user> identified by <password>
default tablespace <tablespace_name> temporary tablespace <temporary_tablespace_name>;
-- Grant basic roles
grant connect to <user>;
grant resource to <user>;
grant select_catalog_role to <user>;
grant unlimited tablespace to <user>;
-- Table DDL permissions
grant create any table to <user>;
grant alter any table to <user>;
grant drop any table to <user>;
grant lock any table to <user>;
-- Table DML permissions
grant select any table to <user>;
grant flashback any table to <user>;
grant insert any table to <user>;
grant update any table to <user>;
grant delete any table to <user>;
-- Index and view DDL permissions
grant create any index to <user>;
grant alter any index to <user>;
grant drop any index to <user>;
grant create any view to <user>;
grant drop any view to <user>;
-- Procedure permissions
grant create any procedure to <user>;
grant execute any procedure to <user>;
-- Permission to perform select on the v_$ tables
grant select any dictionary to <user>;
-- General system views
grant select on sys.v_$database to <user>;
grant select on sys.v_$controlfile to <user>;
grant select on sys.v_$version to <user>;
grant select on sys.nls_database_parameters to <user>;
-- Archive and redo logs
grant select on sys.v_$log to <user>;
grant select on sys.v_$logfile to <user>;
grant select on sys.v_$archived_log to <user>;
grant select on sys.v_$log_history to <user>;
-- Sessions and transactions
grant alter session to <user>;
grant select on sys.v_$session to <user>;
grant select on sys.gv_$session to <user>;
grant select on sys.v_$transaction to <user>;
grant select on sys.v_$mystat to <user>;
-- Tables, indexes, columns and related views
grant select on sys.all_coll_types to <user>;
grant select on sys.all_type_attrs to <user>;
grant select on sys.dba_tables to <user>;
grant select on sys.dba_tab_comments to <user>;
grant select on sys.dba_tab_columns to <user>;
grant select on sys.dba_col_comments to <user>;
grant select on sys.dba_indexes to <user>;
grant select on sys.dba_ind_columns to <user>;
grant select on sys.all_constraints to <user>;
grant select on sys.dba_constraints to <user>;
grant select on sys.all_cons_columns to <user>;
grant select on sys.dba_cons_columns to <user>;
grant select on sys.tab$ to <user>;
grant select on sys.ind$ to <user>;
grant select on sys.lob$ to <user>;
grant select on sys.col$ to <user>;
grant select on sys.icol$ to <user>;
grant select on sys.coltype$ to <user>;
grant select on sys.attrcol$ to <user>;
grant select on sys.ccol$ to <user>;
grant select on sys.cdef$ to <user>;
-- Miscellaneous other objects
grant select on sys.obj$ to <user>;
grant select on sys.dba_mviews to <user>;
grant select on sys.dba_objects to <user>;
grant select on sys.dba_sequences to <user>;
grant select on sys.hist_head$ to <user>;
grant select on sys.resource_cost to <user>;
-- Storage
grant select on sys.dba_tablespaces to <user>;
grant select on sys.dba_rollback_segs to <user>;
-- Permissions
grant select on sys.dba_users to <user>;
grant select on sys.dba_sys_privs to <user>;
grant select on sys.dba_tab_privs to <user>;
grant select on sys.dba_profiles to <user>;
grant select on sys.dba_roles to <user>;
grant select on sys.user$ to <user>;
grant select on user_role_privs to <user>;
exit;
Exemple de script createuser-ora-xstream.sql
Copiez ce script et remplacez les valeurs entre crochets. Exécutez l'exemple de script createuser-ora-nodba.sql
avant d'exécuter createuser-ora-xstream.sql
. Si vous configurez Data Replication pour utiliser une capture locale dans laquelle les journaux sont traités dans la même base de données que les schémas que vous répliquez, exécutez createuser-ora-nodba.sql
et createuser-ora-xstream.sql
sur la même base de données et utilisez la même valeur pour <user>
. Si vous préférez que les journaux de processus Oracle XStream se trouvent dans une base de données distincte des schémas que vous répliquez, spécifiez éventuellement un utilisateur différent et exécutez le script sur la base de données.
/* _______________________________________________________ {COPYRIGHT-TOP} _____
** Licensed Materials - Property of IBM
** IBM Data Replication Cartridge for IBM Cloud Pak for Data
** 5900ASF
**
** (c) Copyright IBM Corp. 2001, 2022 All rights reserved.
**
** The following sample of source code ("Sample") is owned by International
** Business Machines Corporation or one of its subsidiaries ("IBM") and is
** copyrighted and licensed, not sold. You may use, copy, modify, and
** distribute the Sample in any form without payment to IBM.
**
** The Sample code is provided to you on an "AS IS" basis, without warranty of
** any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR
** IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do
** not allow for the exclusion or limitation of implied warranties, so the above
** limitations or exclusions may not apply to you. IBM shall not be liable for
** any damages you suffer as a result of using, copying, modifying or
** distributing the Sample, even if IBM has been advised of the possibility of
** such damages.
* ________________________________________________________ {COPYRIGHT-END} _____*/
-- This script is a continuation of createuser-ora-nodba.sql script with
-- additional changes needed for data replication user as well as XStream Log
-- Processing Database user. Process all needed privileges from the script
-- createuser-ora-nodba.sql prior to continuing with this script.
-- XStream privileges on data replication User
-- Expected to be used for DBMS_CAPTURE_ADM.BUILD
-- to define XStream Capture initialization points
grant execute on DBMS_CAPTURE_ADM to <user>;
-- Optional privilege that is expected to be used on
-- the target engine required for Recursion Prevention
-- in Bidirectional replication.
grant execute on DBMS_XSTREAM_ADM to <user>;
-- Enable enable_goldengate_replication
-- You need to set the enable_goldengate_replication system parameter on your source
-- database to enable XStream replication capability in Oracle.
ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH;
-- to enable the enable_goldengate_replication system parameter.
-- All instances in Oracle RAC must have the same setting. Refer to Oracle documentation
-- for further understanding on the impact of enabling this parameter on your database.
-- Setting up Oracle XStream user account.
-- Most work in data replication is done using the Oracle user account.
-- When data replication needs to interact with Oracle XStream it will use the Oracle XStream account.
-- An Oracle XStream account needs sufficient privileges to comply with Oracle XStream user requirements.
-- In a Pluggable database environment, the Oracle user account has all the granted access to the
-- Pluggable database when replication is configured for a pluggable database, whereas the XStream
-- user account has to be defined in the root container database as per Oracle XStream requirements.
-- All Oracle XStream related objects are defined and managed in the container database in this case.
CALL DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => <Log Processing Database User>,
privilege_type => 'CAPTURE');
exit;
Configurez la base de données de traitement des journaux. Lorsque vous créez un actif Data Replication , vous êtes invité à indiquer le nom de la base de données de traitement des journaux Oracle que vous souhaitez que Data Replication utilise. Cette base de données sert une base de données sortante XStream à laquelle Data Replication se connecte et se connecte pour traiter les enregistrements de changement logique fournis par l'API XStream Oracle . Pour la capture XStream et le serveur sortant Oracle local, il s'agit de la même base de données que précédemment. Pour les bases de données connectables, la base de données de traitement des journaux est la base de données de conteneur racine. Pour la capture en aval, la base de données de traitement des journaux est la base de données en aval. La base de données de traitement des journaux requiert également enable_goldengate_replication.
Facultatif: configurez une base de données de traitement des journaux en aval. Un certain nombre d'étapes sont requises pour configurer la capture en aval en temps réel ou la capture en aval du journal d'archivage. Consultez la documentation Oracle XStream pour configurer les liens de base de données et le transfert de fichiers journaux.
Configurez le compte utilisateur Oracle XStream. La plupart du travail dans Data Replication est effectué à l'aide du compte utilisateur Oracle . Lorsque Data Replication doit interagir avec Oracle XStream, il utilise le compte Oracle XStream. Un compte XStream Oracle a besoin de privilèges suffisants pour se conformer aux exigences utilisateur d' Oracle XStream. Dans un environnement de base de données connectable, le compte utilisateur Oracle dispose de tous les droits d'accès à la base de données connectable lorsque la réplication est configurée pour une base de données connectable. Toutefois, le compte utilisateur XStream doit être défini dans la base de données du conteneur racine conformément aux exigences XStream d' Oracle . Tous les composants liés à Oracle XStream sont définis et gérés dans la base de données de conteneur racine dans ce cas. Vous pouvez utiliser DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE pour accorder des privilèges de compte utilisateur XStream. Les données d'identification de la base de données sortante Oracle XStream sont sensibles à la casse. Pour plus d'informations, consultez la documentationOracle.
Créez un schéma ou choisissez-en un existant pour vos tables de métadonnées de base de données. Vous devez spécifier ce schéma lorsque vous configurez Data Replication.
Connexion à Oracle dans un projet
Pour la connectivité privée, pour vous connecter à une base de données qui n'est pas externalisée sur Internet (par exemple, derrière un pare-feu), vous devez configurer une connexion sécurisée.
Pour se connecter à Oracle dans un projet dans Cloud Pak for Data as a Service, voir ConnexionOracle.
Démarrage de Data Replication
Pour créer un actif Data Replication :
- Cliquez sur l'onglet Actifs dans le projet.
- Cliquez sur Nouvel actif > Répliquer les données.
- Entrez un nom.
- Cliquez sur Connexions.
- Sur la page Options de source, sélectionnez un Oracle existant dans la liste des connexions ou cliquez sur Ajouter une connexion pour créer une nouvelle connexion.
- Les connexions Oracle requièrent des paramètres supplémentaires. Vous disposez de deux options XStream Oracle : a. Sélectionnez Capture locale pour traiter les journaux dans la même base de données que la connexion source. a. Choisissez une connexion XStream Oracle distincte pour traiter les journaux dans une base de données distincte. i. Si vous ne sélectionnez pas Capture en aval en temps réel, vos options incluent PDB/CDB et la capture en aval des journaux archivés. i. Si vous sélectionnez Capture en aval en temps réel, une connexion XStream Oracle distincte est utilisée pour traiter les journaux dans une autre base de données.
- Cliquez sur Sélectionner des données, sélectionnez un schéma et éventuellement une table dans le schéma.
- Sur la page Options de la cible, sélectionnez la connexion Oracle dans la liste.
- Sur la page Révision, révisez le résumé, puis cliquez sur Créer.
Rubrique parent : Connexions Data Replication prises en charge