Migrar dados do Db2 por meio do Amazon S3 para o Amazon RDS para Db2
Com essa abordagem de migração, primeiro salve dados de uma única tabela em um arquivo de dados que é colocado em um bucket do Amazon S3. Depois, use o comando LOAD
Salvar dados no Amazon S3
Para salvar dados de uma única tabela no Amazon S3, use um utilitário de banco de dados para extrair os dados do sistema de gerenciamento de banco de dados (DBMS) em um arquivo CSV. Depois, faça upload de cada arquivo de dados no Amazon S3.
Para armazenar arquivos de dados no Amazon S3, são necessários os seguintes componentes da AWS:
-
Um bucket do Amazon S3 para armazenar arquivos de backup: se você já tiver um bucket do S3, poderá usá-lo. Se você não tiver um bucket do S3, consulte Criar um bucket no Guia do usuário do Amazon S3.
-
Um perfil do IAM para acessar o bucket do S3: se você já tem um perfil do IAM, pode usá-lo. Se não tiver um perfil, consulte Etapa 2: Criar um perfil do IAM e associar a política do IAM.
-
Uma política do IAM com relações de confiança e permissões anexadas ao perfil do IAM: consulte mais informações em Etapa 1: criar uma política do IAM.
-
O perfil do IAM adicionado à instância de banco de dados do RDS para Db2: consulte mais informações em Etapa 3: Adicionar o perfil do IAM à instância de banco de dados do RDS para Db2.
Carregar dados em tabelas do RDS para Db2
Depois de salvar os arquivos de dados no Amazon S3, é possível carregar os dados desses arquivos em tabelas individuais na instância de banco de dados do RDS para Db2.
Como carregar dados da tabela do Db2 na tabela do banco de dados do RDS para Db2
-
Conecte-se ao banco de dados
rdsadmin
usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substituamaster_username
emaster_password
por suas próprias informações.db2 connect to rdsadmin user
master_username
usingmaster_password
-
Catalogue um alias de acesso ao armazenamento que aponte para o bucket do Amazon S3 onde os arquivos salvos são armazenados. Anote o nome desse alias para uso na próxima etapa. Só é necessário realizar essa etapa uma vez se planeja carregar várias tabelas de arquivos de dados armazenados no mesmo bucket do Amazon S3.
O exemplo a seguir cataloga um alias chamado
my_s3_alias
, que concede a um usuário chamadojorge_souza
acesso a um bucket denominadoamzn-s3-demo-bucket
.db2 "call rdsadmin.catalog_storage_access(?, '
my_s3_alias
', 'amzn-s3-demo-bucket
', 'USER', 'jorge_souza
')"Para ter mais informações sobre esse procedimento armazenado, consulte rdsadmin.catalog_storage_access.
-
Execute o comando
LOAD
usando o alias de acesso ao armazenamento que aponta para o bucket do Amazon S3.nota
Se o comando
LOAD
gerar um erro, talvez seja necessário criar um endpoint de gateway da VPC para o Amazon S3 e adicionar regras de saída ao grupo de segurança. Para ter mais informações, consulte Erro de E/S de arquivo.O exemplo a seguir carrega dados de um arquivo chamado
my_s3_datafile.csv
em uma tabela chamadamy_db2_table
. O exemplo pressupõe que o arquivo de dados esteja no bucket do Amazon S3 para o qual o alias chamandomy_s3_alias
aponta.db2 "load from db2remote://
my_s3_alias
//my_s3_datafile.csv
of DEL insert intomy_db2_table
";O exemplo a seguir carrega LOBs de um arquivo de dados chamado
my_table1_export.ixf
em uma tabela denominadamy_db2_table
. O exemplo pressupõe que o arquivo de dados esteja no bucket do Amazon S3 para o qual o alias chamandomy_s3_alias
aponta.db2 "call sysproc.admin_cmd('load from "db2remote://
my_s3_alias
//my_table1_export.ixf
" of ixf lobs from "db2remote://my_s3_alias
//" xml from "db2remote://my_s3_alias
//" modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride messages on server replace into "my_schema
"."my_db2_table
" nonrecoverable indexing mode incremental allow no access')"Repita essa etapa para cada arquivo de dados do bucket do Amazon S3 que você deseja carregar em uma tabela na instância de banco de dados do RDS para Db2.
Para ter mais informações sobre o comando
LOAD
, consulte Comando LOAD.