È possibile replicare i dati da Oracle con Data Replication.
Per impostare la replica per i dati Oracle , configurare prima il database Oracle come origine, quindi creare una connessione.
Versioni supportate
Oracle 19c R1 (19.1)+
Limitazione
È possibile replicare solo alcuni tipi di dati Oracle . Vedere Tipi di dati Oracle supportati.
Configurazione di Oracle come origine
Prima di avviare una replica con una connessione Oracle , è necessario verificare che i requisiti di database, account utente e schema siano soddisfatti.
Configurare un database Oracle . Quando si configura una connessione Oracle , viene richiesto il nome del database Oracle da cui si desidera che Data Replication replichi i dati. Prima di creare la connessione, accertarsi che questo database Oracle esista e che sia stato creato e configurato un utente del database che ha accesso ad esso. Data Replication supporta le tabelle di associazione che si trovano in più schemi all'interno dello stesso database. Verificare che Oracle XStream sia abilitato tramite il parametro
enable_goldengate_replication
.Alcune delle configurazioni Oracle XStream devono essere preparate in anticipo prima di creare una connessione Oracle .
Abilitare
enable_goldengate_replication
. È necessario impostare il parametro di sistemaenable_goldengate_replication
sul proprio database di origine per abilitare la funzione di replica XStream in Oracle. È possibile utilizzare la seguente istruzione:ALTER SYSTEM SET enable_goldengate_replication=TRUE SCOPE=BOTH
tutte le istanze in Oracle RAC devono avere la stessa impostazione. Consultare la documentazioneOracle per capire l'impatto dell'attivazione di questo parametro sul database.
Creare un account utente per il database Oracle .
Quando si replicano i dati dai database Oracle , Data Replication elabora i log del database. È possibile configurare Data Replication per l'acquisizione locale, in cui i log vengono elaborati nello stesso database degli schemi che si stanno replicando. In alternativa, è possibile configurare Data Replication per utilizzare una connessione XStream Oracle separata per elaborare i log in un database differente. Se si utilizza l'acquisizione locale, è necessaria una singola connessione Oracle . Se si utilizza un database XStream Oracle separato per l'elaborazione dei log, saranno necessarie due connessioni Oracle : una per la connessione al database che contiene lo schema che si sta replicando e una per la connessione al database in cui Oracle XStream elabora i log. Questo database di elaborazione log può essere un database downstream Oracle .
Rivedere i privilegi richiesti per utenti Oracle . Prima di configurare le connessioni Oracle , rivedere l'elenco di privilegi richiesti dagli utenti Oracle . È necessario concedere questi privilegi agli utenti eseguendo script SQL.
I seguenti script di esempio possono fornire privilegi appropriati all'utente del database Oracle e all'utente del database di elaborazione log.
Script di esempio createuser-ora-nodba.sql
Copiare questo script e sostituire i valori tra parentesi angolari. Eseguire questo script per creare un utente del database Oracle per replicare i dati da 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;
Script di esempio createuser-ora-xstream.sql
Copiare questo script e sostituire i valori tra parentesi angolari. Eseguire lo script di esempio createuser-ora-nodba.sql
prima di eseguire createuser-ora-xstream.sql
. Se si configura Data Replication per utilizzare una cattura locale in cui i log vengono elaborati nello stesso database degli schemi replicati, eseguire createuser-ora-nodba.sql
e createuser-ora-xstream.sql
sullo stesso database e utilizzare lo stesso valore per <user>
. Se si preferisce avere i log del processo XStream di Oracle in un database separato dagli schemi replicati, specificare facoltativamente un utente differente ed eseguire lo script sul database.
/* _______________________________________________________ {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;
Configurare il database di elaborazione log. Quando si crea un asset Data Replication , viene richiesto il nome del database di elaborazione log Oracle che si desidera venga utilizzato da Data Replication . Questo database serve un database in uscita XStream a cui si connette Data Replication e si collega per elaborare i record di modifica logici forniti dall'API XStream Oracle . Per l'acquisizione XStream Oracle locale e il server in uscita, questo è lo stesso database di prima. Per i database collegabili, il database di elaborazione log è il database del contenitore root. Per l'acquisizione a valle, il database di elaborazione log è il database a valle. Il database di elaborazione log richiede anche enable_goldengate_replication.
Facoltativo: configurare un database di elaborazione log downstream. Sono necessari diversi passi per configurare l'acquisizione downstream in tempo reale o l'acquisizione downstream dei log di archivio. Consultare la documentazione XStream di Oracle per configurare i collegamenti del database e il trasferimento del file di log.
Impostare l'account utente Oracle XStream. La maggior parte delle operazioni in Data Replication viene eseguita utilizzando l'account utente Oracle . Quando Data Replication deve interagire con Oracle XStream, utilizza l'account Oracle XStream. Un account XStream Oracle necessita di privilegi sufficienti per soddisfare i requisiti dell'utente XStream Oracle . In un ambiente di database collegabile, l'account utente Oracle ha tutto l'accesso concesso al database collegabile quando la replica è configurata per un database collegabile. Tuttavia, l'account utente XStream deve essere definito nel database del contenitore root in conformità con i requisiti XStream di Oracle . In questo caso, tutti i componenti correlati a XStream di Oracle sono definiti e gestiti nel database del contenitore root. È possibile utilizzare DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE per concedere i privilegi dell'account utente XStream. Le credenziali del database in uscita Oracle XStream sono sensibili al maiuscolo / minuscolo. Per ulteriori informazioni, consultare la documentazioneOracle.
Creare uno schema o scegliere uno schema esistente per le tabelle di metadati del database. È necessario specificare questo schema quando si configura Data Replication.
Connessione a Oracle in un progetto
Per la connettività privata, per stabilire una connessione a un database che non sia esternalizzato a internet (ad esempio, dietro un firewall), devi configurare una connessione sicura.
Per connettersi a Oracle in un progetto in Cloud Pak for Data as a Service, vedere Connessione aOracle.
Avvio di Data Replication
Per creare un asset Data Replication :
- Fare clic sulla scheda Asset nel progetto.
- Fare clic su Nuovo asset> Replica dati.
- Immettere un nome.
- Fare clic su Connessioni.
- Nella pagina Opzioni origine, selezionare un Oracle esistente dall'elenco delle connessioni o fare clic su Aggiungi connessione per creare una nuova connessione.
- Le connessioni Oracle richiedono parametri aggiuntivi. Sono disponibili due opzioni XStream Oracle : a. Selezionare Cattura locale per elaborare i log nello stesso database della connessione di origine. a. Scegliere una connessione XStream Oracle separata per elaborare i log in un database separato. i. Se non si seleziona Acquisizione downstream in tempo reale, le opzioni includono PDB/CDB e l'acquisizione downstream dei log archiviati. i. Se si seleziona Acquisizione downstream in tempo reale, viene utilizzata una connessione XStream Oracle separata per elaborare i log in un database differente.
- Fare clic su Seleziona dati, selezionare uno schema e, facoltativamente, una tabella dallo schema.
- Nella pagina Opzioni di destinazione, selezionare la connessione Oracle dall'elenco.
- Nella pagina Revisione, rivedere il riepilogo, quindi fare clic su Crea.
Argomento principale: Connessioni Data Replication supportate