Para executar uma tarefa do DTS entre contas da Alibaba Cloud, a conta proprietária da instância de banco de dados deve conceder permissão de acesso aos recursos de nuvem à conta que cria a tarefa. Para isso, crie uma função do RAM, anexe a política AliyunDTSRolePolicy e atualize a política de confiança.
Limitações
-
A sincronização bidirecional entre contas é compatível apenas com os seguintes tipos de instância:
Instâncias ou clusters do ApsaraDB RDS for MySQL
Instâncias do Tair (Enterprise Edition)
Instâncias de conjunto de réplicas ou clusters fragmentados do ApsaraDB for MongoDB
Em tarefas de sincronização bidirecional entre contas, as contas dos bancos de dados de origem e de destino devem concluir a autorização do RAM separadamente.
Não há suporte para sincronização entre contas de tipos de nuvem diferentes, como entre uma conta da Finance Cloud e uma conta de nuvem governamental.
Faça login no console do RAM usando a conta da Alibaba Cloud (conta raiz), e não um usuário do RAM. O uso de um usuário do RAM pode causar erros de autorização durante a criação da tarefa do DTS.
Pré-requisitos
Antes de começar, verifique se o DTS tem as permissões necessárias para acessar os recursos de nuvem. Para mais detalhes, consulte Conceder permissões ao DTS para acessar recursos de nuvem.
Bancos de dados compatíveis
O acesso entre contas depende da combinação entre Database type e Connection type. A configuração do banco de dados de origem não afeta os tipos de banco de dados disponíveis para o banco de dados de destino.
Bancos de dados de origem
Bancos de dados de origem
|
Database type |
Connection type |
|
MySQL |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS |
|
PolarDB for MySQL |
Alibaba Cloud Instance |
|
Tair/Redis |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS; Cloud Enterprise Network (CEN); Database Gateway |
|
SQL Server |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway |
|
PostgreSQL |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway |
|
MongoDB |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS; Cloud Enterprise Network (CEN) |
|
Oracle |
Express Connect, VPN Gateway, or Smart Access Gateway |
|
PolarDB (Compatible with Oracle) |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway |
|
PolarDB for PostgreSQL |
Alibaba Cloud Instance |
|
PolarDB-X 1.0 |
Alibaba Cloud Instance |
|
PolarDB-X 2.0 |
Alibaba Cloud Instance |
|
DB2 for iSeries (AS/400) |
Express Connect, VPN Gateway, or Smart Access Gateway |
|
DB2 for LUW |
Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS |
|
MariaDB |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS |
|
ApsaraDB OceanBase for MySQL |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS |
|
SLS |
Alibaba Cloud Instance |
|
AnalyticDB for MySQL 3.0 |
Alibaba Cloud Instance |
|
Kafka |
Alibaba Cloud Instance; Express Connect, VPN Gateway, or Smart Access Gateway; Self-managed Database on ECS |
Bancos de dados de destino
Bancos de dados de destino
|
Database type |
Connection type |
|
MySQL |
Alibaba Cloud Instance |
|
PolarDB for MySQL |
Alibaba Cloud Instance |
|
AnalyticDB for MySQL 3.0 |
Alibaba Cloud Instance |
|
Tair/Redis |
Alibaba Cloud Instance |
|
ClickHouse |
Alibaba Cloud Instance |
|
SelectDB |
Alibaba Cloud Instance |
|
MongoDB |
Alibaba Cloud Instance |
Cenários entre contas
Existem três cenários possíveis, dependendo de qual banco de dados está em outra conta. Cada cenário define qual conta configure a autorização do RAM, qual ID de conta deve constar na política de confiança e qual conta cria a tarefa do DTS.
|
Cenário |
Configuração de origem |
Configuração de destino |
Quem configure a autorização do RAM |
ID da conta na política de confiança |
Quem cria a tarefa do DTS |
|
Banco de dados de origem entre contas |
Replicate Data Across Alibaba Cloud Accounts = Yes |
Replicate Data Across Alibaba Cloud Accounts = No |
Conta do banco de dados de origem (Conta A) |
ID da conta do banco de dados de destino (Conta B) |
Conta do banco de dados de destino (Conta B) |
|
Banco de dados de destino entre contas |
Replicate Data Across Alibaba Cloud Accounts = No |
Replicate Data Across Alibaba Cloud Accounts = Yes |
Conta do banco de dados de destino (Conta B) |
ID da conta do banco de dados de origem (Conta A) |
Conta do banco de dados de origem (Conta A) |
|
Bancos de dados de origem e destino entre contas |
Replicate Data Across Alibaba Cloud Accounts = Yes |
Replicate Data Across Alibaba Cloud Accounts = Yes |
Conta do banco de dados de origem (Conta A) e conta do banco de dados de destino (Conta B) — cada uma independentemente |
ID da conta da tarefa do DTS (Conta C) |
Conta designada (Conta C) |
Antes de configurar a autorização do RAM
Reúna os IDs das contas necessários antes de iniciar. Acesse a página Security SettingsSecurity SettingsSecurity Settings de cada conta relevante e anote o Account ID.
O que você precisa depende do seu cenário:
Banco de dados de origem entre contas: ID da Conta A (conta do banco de dados de origem) e ID da Conta B (conta do banco de dados de destino, que também cria a tarefa)
Banco de dados de destino entre contas: ID da Conta A (conta do banco de dados de origem, que também cria a tarefa) e ID da Conta B (conta do banco de dados de destino)
Bancos de dados de origem e destino entre contas: ID da Conta A (conta do banco de dados de origem), ID da Conta B (conta do banco de dados de destino) e ID da Conta C (conta designada para criar a tarefa)
Use esses IDs na política de confiança nas etapas a seguir.
Cenário 1: Banco de dados de origem entre contas
A Conta A (proprietária do banco de dados de origem) configure a autorização do RAM. A Conta B (proprietária do banco de dados de destino) cria a tarefa do DTS.
Etapa 1: Criar uma função do RAM
Faça login no console do RAM usando a Conta A.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users. O uso de Users impede que o DTS acesse a instância de banco de dados.

Clique em Create Role.
-
No painel Create Role:
Em Principal Type, selecione Cloud Account.

Defina Principal Name como Other Account e insira o ID da Conta B.

Clique em OK.
Insira um nome para a função do RAM (por exemplo,
ram-for-dts) e clique em OK.
Etapa 2: Conceder permissões à função do RAM
A partir da página de confirmação de criação da função do RAM
-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
na aba Permissions para confirmar a adição da permissão.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta A.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users.

-
Clique na função do RAM criada.

-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
na aba Permissions para confirmar a adição da permissão.
Etapa 3: Atualizar a política de confiança
A política de confiança concede à Conta B permissão para usar essa função do RAM e permite que o DTS a assuma em nome da Conta B. O campo RAM especifica quem pode assumir a função; o campo Service permite que o DTS faça requisições usando a identidade dessa conta. Ambos os campos devem conter o ID da Conta B.
A partir da página de confirmação de concessão de permissão
-
Clique na aba Trust Policy.

Clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo existente pelo seguinte:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta B (a conta do banco de dados de destino). <details> <summary>Exemplo (clique para expandir)</summary>{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::164682176356****:root" ], "Service": [ "164682176356****@dts.aliyuncs.com" ] } } ], "Version": "1" }</details>
-
Clique em OK.
Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Isso ocorre quando você insere o ID da Conta A em vez do ID da Conta B. Corrija o ID e salve novamente.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta A.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users.

-
Clique na função do RAM criada.

-
Clique na aba Trust Policy.

Clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo existente pelo seguinte:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta B.{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::164682176356****:root" ], "Service": [ "164682176356****@dts.aliyuncs.com" ] } } ], "Version": "1" }</details>
-
Clique em OK.
Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Corrija o ID e salve novamente.
Ao configurar a tarefa do DTS
Quando a Conta B criar a tarefa do DTS, defina Replicate Data Across Alibaba Cloud Accounts como Yes para o banco de dados de origem. Na seção Source Database, insira o ID da Conta A no campo Alibaba Cloud Account.
Cenário 2: Banco de dados de destino entre contas
A Conta B (proprietária do banco de dados de destino) configure a autorização do RAM. A Conta A (proprietária do banco de dados de origem) cria a tarefa do DTS.
Etapa 1: Criar uma função do RAM
Faça login no console do RAM usando a Conta B.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users. O uso de Users impede que o DTS acesse a instância de banco de dados.

Clique em Create Role.
-
No painel Create Role:
Em Principal Type, selecione Cloud Account.

Defina Principal Name como Other Account e insira o ID da Conta A.

Clique em OK.
Insira um nome para a função do RAM (por exemplo,
ram-for-dts) e clique em OK.
Etapa 2: Conceder permissões à função do RAM
A partir da página de confirmação de criação da função do RAM
-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
na aba Permissions para confirmar a adição da permissão.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta B.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users.

-
Clique na função do RAM criada.

-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
na aba Permissions para confirmar a adição da permissão.
Etapa 3: Atualizar a política de confiança
Ambos os campos da política devem conter o ID da Conta A (a conta do banco de dados de origem, que cria a tarefa do DTS).
A partir da página de confirmação de concessão de permissão
-
Clique na aba Trust Policy.

Clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo existente pelo seguinte:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta A (a conta do banco de dados de origem). <details> <summary>Exemplo (clique para expandir)</summary>{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::164682176356****:root" ], "Service": [ "164682176356****@dts.aliyuncs.com" ] } } ], "Version": "1" }</details>
-
Clique em OK.
Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Isso ocorre quando você insere o ID da Conta B em vez do ID da Conta A. Corrija o ID e salve novamente.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta B.
-
No painel de navegação à esquerda, escolha Identities > Roles.
ImportanteEscolha Identities > Roles, e não Identities > Users.

-
Clique na função do RAM criada.

-
Clique na aba Trust Policy.

Clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo existente pelo seguinte:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta A.{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::164682176356****:root" ], "Service": [ "164682176356****@dts.aliyuncs.com" ] } } ], "Version": "1" }</details>
-
Clique em OK.
Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Corrija o ID e salve novamente.
Ao configurar a tarefa do DTS
Quando a Conta A criar a tarefa do DTS, defina Replicate Data Across Alibaba Cloud Accounts como Yes para o banco de dados de destino. Na seção Destination Database, insira o ID da Conta B no campo Alibaba Cloud Account.
Cenário 3: Bancos de dados de origem e destino entre contas
Tanto a Conta A (proprietária do banco de dados de origem) quanto a Conta B (proprietária do banco de dados de destino) devem configure a autorização do RAM independentemente. A Conta C é a conta designada para criar a tarefa do DTS. Em ambos os casos, a política de confiança deve conter o ID da Conta C.
Etapa 1: A Conta A configure a autorização do RAM
-
Crie uma função do RAM.
Faça login no console do RAM usando a Conta A.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users. O uso de Users impede que o DTS acesse a instância de banco de dados.Clique em Create Role.
-
No painel Create Role:
Em Principal Type, selecione Cloud Account.

Defina Principal Name como Other Account e insira o ID da Conta C.

Clique em OK.
Insira um nome para a função do RAM (por exemplo,
ram-for-dts) e clique em OK.
-
Conceda permissões à função do RAM.
A partir da página de confirmação de criação da função do RAM
-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

Insira
AliyunDTSRolePolicyna caixa de texto Policy Name.-
Clique em OK.
Clique no ícone
no lado direito da aba Permission para atualizar a página. Verifique se a autorização precisa foi bem-sucedida.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta A.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users.Clique na função do RAM criada.

Na aba Permissions, clique em Precise Permission.

No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
para confirmar a adição da permissão.
-
-
Atualize a política de confiança. Ambos os campos da política devem conter o ID da Conta C (a criadora da tarefa do DTS).
A partir da página de confirmação de concessão de permissão
-
Clique na aba Trust Policy.

Na aba Trust Policy, clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo do editor de políticas pelo código a seguir.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua os dois espaços reservados
<Alibaba Cloud account ID>pelo ID da conta da Alibaba Cloud que você usará para criar a tarefa do DTS. -
Clique em OK para salvar a política de confiança.
Se o valor
"<Alibaba Cloud account ID>@dts.aliyuncs.com"na seçãoServicedo código mudar automaticamente para"dts.aliyuncs.com"após salvar a política de confiança, isso indica que o<Alibaba Cloud account ID>está incorreto. Você deve inserir o ID da conta usada para criar a tarefa do DTS, e não o ID da conta do banco de dados de origem.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta A.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users.Clique na função do RAM criada.

Clique na aba Trust Policy.

Clique em Edit Trust Policy.
Na aba JSON, substitua o conteúdo existente pelo seguinte: ``
json { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }``-
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta C. Clique em OK. > Note: Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Corrija o ID e salve novamente.
-
Etapa 2: A Conta B configure a autorização do RAM
Repita o mesmo processo de três etapas usando a Conta B (proprietária do banco de dados de destino). A política de confiança também deve conter o ID da Conta C.
-
Crie uma função do RAM.
Faça login no console do RAM usando a Conta B.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users. O uso de Users impede que o DTS acesse a instância de banco de dados.Clique em Create Role.
-
No painel Create Role:
Em Principal Type, selecione Cloud Account.

Defina Principal Name como Other Account e insira o ID da Conta C.

Clique em OK.
Insira um nome para a função do RAM (por exemplo,
ram-for-dts) e clique em OK.
-
Conceda permissões à função do RAM.
A partir da página de confirmação de criação da função do RAM
-
Na aba Permissions, clique em Precise Permission.

-
No painel Precise Permission, defina Policy Type como System Policy.

Insira
AliyunDTSRolePolicyna caixa de texto Policy Name.-
Clique em OK.
Clique no ícone
no lado direito da aba Permission para atualizar a página. Verifique se a autorização precisa foi bem-sucedida.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta B.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users.Clique na função do RAM criada.

Na aba Permissions, clique em Precise Permission.

No painel Precise Permission, defina Policy Type como System Policy.

No campo Policy Name, insira
AliyunDTSRolePolicy.Clique em OK.
Clique no ícone de atualização
para confirmar a adição da permissão.
-
-
Atualize a política de confiança. Ambos os campos da política devem conter o ID da Conta C.
A partir da página de confirmação de concessão de permissão
-
Clique na aba Trust Policy.

Na aba Trust Policy, clique em Edit Trust Policy.
-
Na aba JSON, substitua o conteúdo do editor de políticas pelo código a seguir.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" } -
Substitua os dois espaços reservados
<Alibaba Cloud account ID>pelo ID da conta da Alibaba Cloud que você usará para criar a tarefa do DTS. -
Clique em OK para salvar a política de confiança.
Se o valor
"<Alibaba Cloud account ID>@dts.aliyuncs.com"na seçãoServicedo código mudar automaticamente para"dts.aliyuncs.com"após salvar a política de confiança, isso indica que o<Alibaba Cloud account ID>está incorreto. Você deve inserir o ID da conta usada para criar a tarefa do DTS, e não o ID da conta do banco de dados de destino.
A partir da lista de funções do RAM
Faça login no console do RAM usando a Conta B.
No painel de navegação à esquerda, escolha Identities > Roles.
> Important: Escolha Identities > Roles, e não Identities > Users.Clique na função do RAM criada.

Clique na aba Trust Policy.

Clique em Edit Trust Policy.
Na aba JSON, substitua o conteúdo existente pelo seguinte: ``
json { "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<Alibaba Cloud account ID>:root" ], "Service": [ "<Alibaba Cloud account ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }``-
Substitua ambos os espaços reservados
<Alibaba Cloud account ID>pelo ID da Conta C. Clique em OK. > Note: Se o valor de
Servicemudar automaticamente para"dts.aliyuncs.com"após salvar, o ID da conta está incorreto. Corrija o ID e salve novamente.
-
Ao configurar a tarefa do DTS
Quando a Conta C criar a tarefa do DTS, defina Replicate Data Across Alibaba Cloud Accounts como Yes tanto para o banco de dados de origem quanto para o de destino. Na seção Source Database, insira o ID da Conta A no campo Alibaba Cloud Account. Na seção Destination Database, insira o ID da Conta B no campo Alibaba Cloud Account.
Próximos passos
Após concluir a autorização do RAM, crie a tarefa do DTS entre contas. Para mais detalhes, consulte Configurar uma tarefa entre contas.