As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode migrar dados para destinos de banco de dados Oracle usando AWS DMS, seja de outro banco de dados Oracle ou de um dos outros bancos de dados suportados. É possível utilizar Secure Sockets Layer (SSL) para criptografar as conexões entre o endpoint do Oracle e a instância de replicação. Para obter mais informações sobre o uso de SSL com um endpoint Oracle, consulte. Usando SSL com AWS Database Migration Service AWS DMS também suporta o uso da criptografia transparente de dados (TDE) da Oracle para criptografar dados em repouso no banco de dados de destino, pois o Oracle TDE não exige uma chave ou senha de criptografia para gravar no banco de dados.
Para obter informações sobre as versões do Oracle que oferecem AWS DMS suporte como destino, consulteMetas para AWS DMS.
Ao utilizar o Oracle como destino, pressupomos que os dados devam ser migrados para o esquema ou usuário utilizado para a conexão de destino. Se você quiser migrar dados para um esquema diferente, use uma transformação de esquema. Por exemplo, suponha que seu endpoint de destino se conecte ao usuário RDSMASTER
e você queira migrar do usuário PERFDATA1
para PERFDATA2
. Nesse caso, crie uma transformação como a seguinte.
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "rename",
"rule-target": "schema",
"object-locator": {
"schema-name": "PERFDATA1"
},
"value": "PERFDATA2"
}
Ao usar o Oracle como destino, AWS DMS migra todas as tabelas e índices para os espaços de tabela padrão e de índice no destino. Para migrar tabelas e índices para diferentes espaços para tabela de índices e tabelas, utilize uma transformação de espaço para tabela para fazer isso. Por exemplo, suponha que você tenha um conjunto de tabelas no esquema INVENTORY
atribuído a alguns espaços de tabela na origem do Oracle. Para a migração, você deseja atribuir todas essas tabelas a um único espaço de tabela INVENTORYSPACE
no destino. Nesse caso, crie uma transformação como a seguinte.
{
"rule-type": "transformation",
"rule-id": "3",
"rule-name": "3",
"rule-action": "rename",
"rule-target": "table-tablespace",
"object-locator": {
"schema-name": "INVENTORY",
"table-name": "%",
"table-tablespace-name": "%"
},
"value": "INVENTORYSPACE"
}
Para obter mais informações sobre transformações, consulte Especificando regras de seleção e transformações de tabelas usando JSON.
Se o Oracle for origem e destino, será possível preservar as atribuições de tablespace de tabela ou índice existentes definindo o atributo de conexão extra de origem Oracle, enableHomogenousTablespace=true
. Para ter mais informações, consulte Configurações de endpoint ao usar o Oracle como fonte para AWS DMS
Para obter detalhes adicionais sobre como trabalhar com bancos de dados Oracle como alvo AWS DMS, consulte as seções a seguir:
Tópicos
- Limitações do Oracle como alvo para AWS Database Migration Service
- Privilégios da conta de usuário necessários para utilizar o Oracle como destino
- Configurando um banco de dados Oracle como destino para AWS Database Migration Service
- Configurações de endpoint ao usar o Oracle como destino para AWS DMS
- Tipos de dados de destino do Oracle
Limitações do Oracle como alvo para AWS Database Migration Service
Veja a seguir as limitações ao utilizar o Oracle como destino para a migração de dados:
-
AWS DMS não cria esquema no banco de dados Oracle de destino. Você deve criar todos os esquemas que deseja no banco de dados de destino do Oracle. O nome do esquema já deve existir para o destino do Oracle. As tabelas do esquema de origem são importadas para o usuário ou esquema, que é AWS DMS usado para se conectar à instância de destino. Para migrar vários esquemas, crie várias tarefas de replicação. Também é possível migrar dados para diferentes esquemas em um destino. Para fazer isso, você precisa usar as regras de transformação do esquema nos mapeamentos da AWS DMS tabela.
-
AWS DMS não suporta a
Use direct path full load
opção de tabelas com INDEXTYPE CONTEXT. Como solução, use o carregamento de matriz. -
Com a opção de aplicar o lote otimizado, o carregamento na tabela de alterações líquidas usa um caminho direto, que não é compatível com o tipo XML. Como solução, use o modo de aplicação transacional.
-
As strings vazias migradas de bancos de dados de origem podem ser tratadas de forma diferente pelo destino do Oracle (convertido em strings de um espaço, por exemplo). Isso pode resultar na AWS DMS validação relatando uma incompatibilidade.
-
É possível expressar o número total de colunas por tabela compatível com o modo de aplicação otimizado em lote, utilizando a seguinte fórmula:
2 *
columns_in_original_table
+columns_in_primary_key
<= 999Por exemplo, se a tabela original tiver 25 colunas e a sua chave primária consistir em 5 colunas, o número total de colunas será 55. Se uma tabela exceder o número suportado de colunas, todas as alterações serão aplicadas no one-by-one modo.
-
AWS DMS não oferece suporte ao banco de dados autônomo no Oracle Cloud Infrastructure (OCI).
-
No modo de aplicação transacional, um alvo Oracle pode processar instruções DML de até 32 KB de tamanho. Embora esse limite seja suficiente para muitos casos de uso, instruções DML que excedam 32 KB falharão com o erro: “ORA-01460: conversão não implementada ou não razoável solicitada”. Para resolver esse problema, você deve habilitar o recurso de aplicação em lote definindo a configuração da
BatchApplyEnabled
tarefa comotrue
. A aplicação em lote reduz o tamanho geral da declaração, permitindo que você ignore a limitação de 32 KB. Para obter mais informações, consulte Configurações de tarefa de metadados de destino.
Privilégios da conta de usuário necessários para utilizar o Oracle como destino
Para usar um alvo Oracle em uma AWS Database Migration Service tarefa, conceda os seguintes privilégios no banco de dados Oracle. É possível conceder esses privilégios à conta do usuário especificada nas definições do banco de dados Oracle do AWS DMS.
-
SELECT ANY TRANSACTION
-
SELECT on V$NLS_PARAMETERS
-
SELECT on V$TIMEZONE_NAMES
-
SELECT on ALL_INDEXES
-
SELECT on ALL_OBJECTS
-
SELECT on DBA_OBJECTS
-
SELECT on ALL_TABLES
-
SELECT on ALL_USERS
-
SELECT on ALL_CATALOG
-
SELECT on ALL_CONSTRAINTS
-
SELECT on ALL_CONS_COLUMNS
-
SELECT on ALL_TAB_COLS
-
SELECT on ALL_IND_COLUMNS
-
DROP ANY TABLE
-
SELECT ANY TABLE
-
INSERT ANY TABLE
-
UPDATE ANY TABLE
-
CREATE ANY VIEW
-
DROP ANY VIEW
-
CREATE ANY PROCEDURE
-
ALTER ANY PROCEDURE
-
DROP ANY PROCEDURE
-
CREATE ANY SEQUENCE
-
ALTER ANY SEQUENCE
-
DROP ANY SEQUENCE
-
DELETE ANY TABLE
Para os requisitos a seguir, conceda estes privilégios adicionais:
-
Para utilizar uma lista de tabela específica, conceda SELECT em qualquer tabela replicada e ALTER em qualquer tabela replicada.
-
Para permitir que um usuário crie uma tabela no espaço de tabela padrão, conceda o privilégio GRANT UNLIMITED TABLESPACE.
-
Para fazer logon, conceda o privilégio CREATE SESSION.
-
Ao utilizar um caminho direto (que é o padrão para carga máxima),
GRANT LOCK ANY TABLE to
.dms_user
; -
Se o esquema for diferente ao utilizar o modo de preparação de tabela “DROP e CREATE”,
GRANT CREATE ANY INDEX to
.dms_user
; -
Para alguns cenários de carga máxima, é possível escolher a opção “DROP and CREATE table” ou “TRUNCATE before loading” em que um esquema de tabela de destino é diferente daquele do usuário do DMS. Nesse caso, conceda DROP ANY TABLE.
-
Para armazenar alterações em tabelas de alterações ou em uma tabela de auditoria em que o esquema da tabela de destino é diferente daquele do usuário do DMS, conceda CREATE ANY TABLE e CREATE ANY INDEX.
Privilégios de leitura necessários para o AWS Database Migration Service banco de dados de destino
A conta AWS DMS do usuário deve receber permissões de leitura para as seguintes tabelas do DBA:
-
SELECT on DBA_USERS
-
SELECT on DBA_TAB_PRIVS
-
SELECT on DBA_OBJECTS
-
SELECT on DBA_SYNONYMS
-
SELECT on DBA_SEQUENCES
-
SELECT on DBA_TYPES
-
SELECT on DBA_INDEXES
-
SELECT on DBA_TABLES
-
SELECT on DBA_TRIGGERS
-
SELECT on SYS.DBA_REGISTRY
Se algum dos privilégios necessários não puder ser concedido a V$xxx, conceda-o a V_$xxx.
Avaliações de pré-migração
Para utilizar as avaliações de pré-migração listadas em Avaliações do Oracle com o Oracle como destino, adicione as seguintes permissões ao usuário do banco de dados dms_user
no banco de dados de destino:
GRANT SELECT ON V_$INSTANCE TO dms_user;
GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;
Configurando um banco de dados Oracle como destino para AWS Database Migration Service
Antes de usar um banco de dados Oracle como destino de migração de dados, você deve fornecer uma conta de usuário Oracle para AWS DMS o. A conta de usuário deve ter privilégios de leitura/gravação no banco de dados Oracle, como especificado na seção Privilégios da conta de usuário necessários para utilizar o Oracle como destino.
Configurações de endpoint ao usar o Oracle como destino para AWS DMS
É possível utilizar as configurações de endpoint para configurar o banco de dados de destino do Oracle de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de destino usando o AWS DMS console ou usando o create-endpoint
comando no AWS CLI, com a sintaxe --oracle-settings '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o Oracle como destino.
Nome | Descrição |
---|---|
|
Defina esse atributo como um caractere de escape. Esse caractere de escape permite que um único caractere curinga se comporte como um caractere normal em expressões de mapeamento de tabela. Para obter mais informações, consulte Curingas no mapeamento de tabela. Valor padrão: nulo Valores válidos: qualquer caractere que não seja um caractere curinga Example: |
|
Quando definido como Valor padrão: Valores válidos: Example: |
|
Quando definido como Uma limitação na especificação dessa configuração de carga paralela é que a tabela de destino não pode ter restrições nem índices. Para obter mais informações sobre essa limitação, consulte Habilitar restrições após uma carga paralela de caminho direto Valor padrão: Valores válidos: Example: |
|
Quando definido como Valor padrão: Valores válidos: Example: |
|
Especifica se o comprimento de uma coluna de caracteres está em bytes ou em caracteres. Para indicar que o comprimento da coluna de caracteres está em caracteres, defina esse atributo como Valor padrão: não definido como Valores válidos: Example: |
|
AWS DMS adiciona um espaço extra para replicar uma string vazia ao migrar para um destino Oracle. Em geral, o Oracle não tem notação para uma string vazia. Ao inserir uma string vazia em varchar2, você carrega strings vazias como NULL. Para inserir os dados como NULL no Oracle, defina esse atributo como FALSE. Valor padrão: Valores válidos: Example: |
Tipos de dados de destino do Oracle
Um banco de dados Oracle de destino usado com AWS DMS suporta a maioria dos tipos de dados Oracle. A tabela a seguir mostra os tipos de dados de destino da Oracle que são suportados durante o uso AWS DMS e o mapeamento padrão dos tipos de AWS DMS dados. Para obter mais informações sobre como visualizar o tipo de dados mapeado da origem, consulte a seção relativa à origem que você está usando.
AWS DMS tipo de dados |
Tipo de dados do Oracle |
---|---|
BOOLEAN |
NUMBER (1) |
BYTES |
RAW (tamanho) |
DATA |
DATETIME |
TIME |
TIMESTAMP (0) |
DATETIME |
TIMESTAMP (escala) |
INT1 |
NUMBER (3) |
INT2 |
NUMBER (5) |
INT4 |
NUMBER (10) |
INT8 |
NUMBER (19) |
NUMERIC |
NUMBER (p,s) |
REAL4 |
FLOAT |
REAL8 |
FLOAT |
STRING |
Com indicação de data: DATE Com indicação de tempo: TIMESTAMP Com indicação de time stamp: TIMESTAMP Com indicação de time stamp com fuso horário: TIMESTAMP WITH TIMEZONE Com indicação de time stamp com fuso horário local: TIMESTAMP WITH LOCAL TIMEZONE Com indicação de intervalo de tempo em anos e meses: INTERVAL YEAR TO MONTH Com indicação de intervalo de tempo em dias e segundos: INTERVAL DAY TO SECOND Se comprimento > 4.000: CLOB Em todos os outros casos: VARCHAR2 (comprimento) |
UINT1 |
NUMBER (3) |
UINT2 |
NUMBER (5) |
UINT4 |
NUMBER (10) |
UINT8 |
NUMBER (19) |
WSTRING |
Se o comprimento > 2000: NCLOB Em todos os outros casos: NVARCHAR2 (comprimento) |
BLOB |
BLOB Para usar esse tipo de dados com AWS DMS, você deve habilitar o uso de BLOBs para uma tarefa específica. Os tipos de dados BLOB são compatíveis somente com tabelas que possuem uma chave primária |
CLOB |
CLOB Para usar esse tipo de dados com AWS DMS, você deve habilitar o uso de CLOBs para uma tarefa específica. Durante uma captura de dados de alteração (CDC), os tipos de dados CLOB são compatíveis somente em tabelas que incluem uma chave primária. STRING Um tipo de VARCHAR2 dados Oracle na origem com um tamanho declarado maior que 4000 bytes mapeia por meio do AWS DMS CLOB para uma STRING no destino Oracle. |
NCLOB |
NCLOB Para usar esse tipo de dados com AWS DMS, você deve habilitar o uso de NCLOBs para uma tarefa específica. Durante uma captura de dados de alteração (CDC), os tipos de dados NCLOB são compatíveis somente com tabelas que possuem uma chave primária. WSTRING Um tipo de VARCHAR2 dados Oracle na origem com um tamanho declarado maior que 4000 bytes mapeia por meio do AWS DMS NCLOB para um WSTRING no destino Oracle. |
XMLTYPE |
O tipo de dados de destino XMLTYPE só é relevante em tarefas de Oracle-to-Oracle replicação. Quando o banco de dados de origem é o Oracle, os tipos de dados de origem são replicados como estão para o destino do Oracle. Por exemplo, um tipo de dados XMLTYPE na origem é criado como um tipo de dados XMLTYPE no destino. |