Procedimentos armazenados para bancos de dados do RDS para Db2 - Amazon Relational Database Service

Procedimentos armazenados para bancos de dados do RDS para Db2

Os procedimentos integrados armazenados descritos neste tópico gerenciam bancos de dados do Amazon RDS para Db2. Para executar esses procedimentos, o usuário principal deve primeiro se conectar ao banco de dados rdsadmin.

Esses procedimentos armazenados são usados em diversas tarefas. Essa lista não é exaustiva.

Consulte os seguintes procedimentos integrados armazenados para obter informações sobre sintaxe, parâmetros, notas de uso e exemplos.

rdsadmin.create_database

Cria um banco de dados.

Sintaxe

db2 "call rdsadmin.create_database( 'database_name', 'database_page_size', 'database_code_set', 'database_territory', 'database_collation', 'database_autoconfigure_str', 'database_non-restrictive')"

Parâmetros

nota

Esse procedimento armazenado não valida a combinação dos parâmetros obrigatórios. Ao chamar rdsadmin.get_task_status, a função definida pelo usuário pode exibir um erro devido a uma combinação inválida de database_codeset, database_territory e database_collation. Para ter mais informações, consulte Choosing the code page, territory, and collation for your database na documentação do IBM Db2.

O seguinte parâmetro é obrigatório:

database_name

O nome do banco de dados a ser criado. O tipo de dados é varchar.

Os seguintes parâmetros são opcionais:

database_page_size

O tamanho padrão da página do banco de dados. Valores válidos: 4096, 8192, 16384, 32768. O tipo de dados é integer. O padrão é “”. 8192.

Importante

O Amazon RDS é compatível com a atomicidade de gravação para páginas de 4 KiB, 8 KiB e 16 KiB. Por outro lado, páginas de 32 KiB correm o risco de interromper gravações ou de dados parciais serem gravados no disco. Se estiver usando páginas de 32 KiB, recomendamos habilitar a recuperação para um ponto no tempo e os backups automatizados. Caso contrário, você corre o risco de não conseguir se recuperar de páginas interrompidas. Para obter mais informações, consulte Introdução aos backups e Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS.

database_code_set

O conjunto de códigos do banco de dados. O tipo de dados é varchar. O padrão é “”. UTF-8.

database_territory

O código de duas letras do país para o banco de dados. O tipo de dados é varchar. O padrão é “”. US.

database_collation

A sequência de agrupamentos determina como as strings de caracteres armazenadas no banco de dados são classificadas e comparadas. O tipo de dados é varchar.

Valores válidos:

  • COMPATIBILITY: uma sequência de agrupamento do IBM Db2 Versão 2.

  • EBCDIC_819_037: página de código ISO Latin, agrupamento; CCSID 037 (inglês dos EUA EBCDIC).

  • EBCDIC_819_500: página de código ISO Latin, agrupamento; CCSID 500 (EBCDIC internacional).

  • EBCDIC_850_037: página de código ASCII Latin, agrupamento; CCSID 037 (inglês dos EUA EBCDIC).

  • EBCDIC_850_500: página de código ASCII Latin, agrupamento; CCSID 500 (EBCDIC internacional).

  • EBCDIC_932_5026: página de código ASCII Japanese, agrupamento; CCSID 5026 (EBCDIC em inglês dos EUA).

  • EBCDIC_932_5035: página de código ASCII Japanese, agrupamento; CCSID 5035 (EBCDIC internacional).

  • EBCDIC_1252_037: página de código Windows Latin, agrupamento; CCSID 037 (inglês dos EUA EBCDIC).

  • EBCDIC_1252_500: página de código Windows Latin, agrupamento; CCSID 500 (EBCDIC internacional).

  • IDENTITY: agrupamento padrão. As strings são comparadas byte por byte.

  • IDENTITY_16BIT: o esquema de codificação de compatibilidade para UTF-16: sequência de agrupamento de 8 bits (CESU-8). Para ter mais informações, consulte o Unicode Technical Report #26 do site do Unicode Consortium.

  • NLSCHAR: somente para uso com a página de código Thai (CP874).

  • SYSTEM: se você usar SYSTEM, o banco de dados usará a sequência de agrupamento automaticamente para database_codeset e database_territory.

O padrão é “”. IDENTITY.

Além disso, o RDS para Db2 é compatível com os seguintes grupos de agrupamentos: language-aware-collation e locale-sensitive-collation. Para ter mais informações, consulte Choosing a collation for a Unicode database na documentação do IBM Db2.

database_autoconfigure_str

A sintaxe do comando AUTOCONFIGURE, por exemplo, 'AUTOCONFIGURE APPLY DB'. O tipo de dados é varchar. O padrão é uma string vazia ou nula.

Para ter mais informações, consulte AUTOCONFIGURE command na documentação do IBM Db2.

database_non-restrictive

A concessão de autoridades e privilégios padrão dentro do banco de dados. O tipo de dados é varchar. O padrão é “”. N.

Valores válidos:

  • N: o banco de dados criado é restritivo e não concede autoridades nem privilégios.

  • Y: o banco de dados criado não é restritivo e concede um conjunto de permissões ao grupo especial PUBLIC. Para acessar mais informações, consulte Default privileges granted on creating a database na documentação do IBM Db2.

Observações de uso

Se você planeja modificar o parâmetro db2_compatibility_vector, modifique-o antes de criar um banco de dados. Para obter mais informações, consulte Configuração do parâmetro db2_compatibility_vector.

Considerações especiais:

  • O comando CREATE DATABASE enviado à instância do Db2 usa a opção RESTRICTIVE.

  • O RDS para Db2 usa somente tablespaces AUTOMATIC STORAGE.

  • O RDS para Db2 usa os valores padrão para NUMSEGS e DFT_EXTENT_SZ.

  • O RDS para Db2 usa criptografia de armazenamento e não comporta a criptografia de banco de dados.

Para ter mais informações sobre essas considerações, consulte CREATE DATABASE command na documentação do IBM Db2.

Antes de chamar rdsadmin.create_database, é necessário se conectar ao banco de dados rdsadmin. No seguinte exemplo, substitua master_username e master_password pelas informações da instância de banco de dados do RDS para Db2:

db2 connect to rdsadmin user master_username using master_password

Para ter informações sobre como conferir o status de criação de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.create_database, consulte Erros de procedimentos armazenados.

Exemplos

O seguinte exemplo cria um banco de dados chamado TESTJP com uma combinação correta dos parâmetros database_code_set, database_territory e database_collation para o Japão:

db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"

rdsadmin.deactivate_database

Desativa um banco de dados.

Sintaxe

db2 "call rdsadmin.deactivate_database( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados a ser desativado. O tipo de dados é varchar.

Observações de uso

É possível desativar bancos de dados para conservar recursos de memória ou para fazer outras alterações na configuração do banco de dados. Para colocar os bancos de dados desativados novamente on-line, chame o procedimento armazenado rdsadmin.activate_database.

Não é possível desativar um banco de dados em uma instância de banco de dados de origem durante a replicação chamando o procedimento armazenado rdsadmin.deactivate_database.

Para ter informações sobre como conferir o status de desativação de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.deactivate_database, consulte Erros de procedimentos armazenados.

Exemplos

O exemplo a seguir desativa um banco de dados chamado TESTDB.

db2 "call rdsadmin.deactivate_database(?, 'TESTDB')"

rdsadmin.activate_database

Ativa um banco de dados.

Para obter informações sobre as diferenças entre rdsadmin.reactivate_database e rdsadmin.activate_database, consulte Observações de uso.

Sintaxe

db2 "call rdsadmin.activate_database( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados a ser ativado. O tipo de dados é varchar.

Observações de uso

Todos os bancos de dados são ativados por padrão quando são criados. Se você desativar um banco de dados em uma instância de banco de dados autônoma para conservar recursos de memória ou fazer outras alterações na configuração do banco de dados, chame o procedimento rdsadmin.activate_database armazenado para ativar o banco de dados novamente.

Esse procedimento armazenado ativa somente um banco de dados que esteja em uma instância de banco de dados autônoma e que foi desativado ao chamar o procedimento armazenado rdsadmin.deactivate_database. Para ativar um banco de dados em uma instância de banco de dados de origem de réplica, é necessário chamar o procedimento armazenado rdsadmin.reactivate_database.

Para ter informações sobre como conferir o status de ativação de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.activate_database, consulte Erros de procedimentos armazenados.

Exemplos

O exemplo a seguir ativa um banco de dados chamado TESTDB.

db2 "call rdsadmin.activate_database(?, 'TESTDB')"

rdsadmin.reactivate_database

Reativa um banco de dados.

Para ter informações sobre as diferenças entre rdsadmin.activate_database e rdsadmin.reactivate_database, consulte Observações de uso.

Sintaxe

db2 "call rdsadmin.reactivate_database( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados a ser reativado. O tipo de dados é varchar.

Observações de uso

Quando você chama o procedimento armazenado rdsadmin.reactivate_database, primeiro ele desativa o banco de dados chamando o procedimento armazenado rdsadmin.deactivate_database e, depois, ativa o banco de dados chamando o procedimento armazenado rdsadmin.activate_database.

Depois de fazer alterações nas configurações do banco de dados, talvez seja necessário reativar um banco de dados em uma instância de banco de dados do RDS para Db2. Para determinar se você precisa reativar um banco de dados, conecte-se a ele e execute db2 get db cfg show detail.

Para um banco de dados em uma instância de banco de dados autônoma, você pode usar o procedimento armazenado rdsadmin.reactivate_database para reativar o banco de dados. Ou, se você já chamou o procedimento armazenado rdsadmin.deactivate_database, você pode chamar o procedimento armazenado rdsadmin.activate_database em vez disso.

Em relação a um banco de dados em uma instância de banco de dados de origem de réplica, é necessário usar o procedimento armazenado rdsadmin.reactivate_database para reativar o banco de dados.

Para ter informações sobre como conferir o status de reativação de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.reactivate_database, consulte Erros de procedimentos armazenados.

Exemplos

O exemplo a seguir reativa um banco de dados chamado TESTDB.

db2 "call rdsadmin.reactivate_database(?, 'TESTDB')"

rdsadmin.drop_database

Remove um banco de dados.

Sintaxe

db2 "call rdsadmin.drop_database('database_name')"

Parâmetros

O seguinte parâmetro é obrigatório:

database_name

O nome do banco de dados a ser descartado. O tipo de dados é varchar.

Observações de uso

Será possível descartar um banco de dados chamando rdsadmin.drop_database somente se as seguintes condições forem atendidas:

  • Você não especificou o nome do banco de dados ao criar a instância de banco de dados do RDS para Db2 usando o console do Amazon RDS ou a AWS CLI. Para obter mais informações, consulte Criar uma instância de banco de dados.

  • Você criou o banco de dados chamando o procedimento armazenado rdsadmin.create_database.

  • Você restaurou o banco de dados por meio de uma imagem off-line ou de backup chamando o procedimento armazenado rdsadmin.restore_database.

Antes de chamar rdsadmin.drop_database, é necessário se conectar ao banco de dados rdsadmin. No seguinte exemplo, substitua master_username e master_password pelas informações da instância de banco de dados do RDS para Db2:

db2 connect to rdsadmin user master_username using master_password

Para ter informações sobre como conferir o status de descarte de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.drop_database, consulte Erros de procedimentos armazenados.

Exemplos

O seguinte exemplo descarta um banco de dados chamado TESTDB:

db2 "call rdsadmin.drop_database('TESTDB')"

rdsadmin.update_db_param

Atualiza parâmetros do banco de dados.

Sintaxe

db2 "call rdsadmin.update_db_param( 'database_name', 'parameter_to_modify', 'changed_value', 'restart_database')"

Parâmetros

Os seguintes parâmetros são obrigatórios:

database_name

O nome do banco de dados para o qual executar a tarefa. O tipo de dados é varchar.

parameter_to_modify

O nome do parâmetro a ser modificado. O tipo de dados é varchar. Para obter mais informações, consulte Parâmetros do Amazon RDS para Db2.

changed_value

O valor para o qual o valor de parâmetro será alterado. O tipo de dados é varchar.

O seguinte parâmetro é opcional:

restart_database

Especifica se o RDS deve reiniciar o banco de dados se uma reinicialização for necessária. O tipo de dados é varchar. Para modificar logprimary e logfilsiz, defina esse parâmetro como 'YES'.

Observações de uso

Para ter informações sobre como conferir o status de atualização dos parâmetros do banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.update_db_param, consulte Erros de procedimentos armazenados.

Exemplos

Exemplo 1: atualização de um parâmetro

O seguinte exemplo atualiza o parâmetro archretrydelay para 100 para um banco de dados chamado TESTDB:

db2 "call rdsadmin.update_db_param( 'TESTDB', 'archretrydelay', '100')"

Exemplo 2: adiamento da validação de objetos

O seguinte exemplo adia a validação de objetos criados em um banco de dados chamado TESTDB para evitar a verificação de dependências:

db2 "call rdsadmin.update_db_param( 'TESTDB', 'auto_reval', 'deferred_force')"

rdsadmin.set_configuration

Define configurações específicas do banco de dados.

Sintaxe

db2 "call rdsadmin.set_configuration( 'name', 'value')"

Parâmetros

Os seguintes parâmetros são obrigatórios:

name

O nome do ajuste de configurações. O tipo de dados é varchar.

valor

O valor da configuração. O tipo de dados é varchar.

Observações de uso

A tabela a seguir mostra as configurações que podem ser controladas com rdsadmin.set_configuration.

Nome Descrição

RESTORE_DATABASE_NUM_BUFFERS

O número de buffers a serem criados durante uma operação de restauração. Esse valor deve ser menor que o tamanho total de memória da classe de instância de banco de dados. Se essa configuração não estiver definida, o Db2 determinará o valor a ser usado durante a operação de restauração. Para acessar mais informações, consulte RESTORE DATABASE command na documentação do IBM Db2.

RESTORE_DATABASE_PARALLELISM

O número de manipuladores de buffer a serem criados durante uma operação de restauração. Esse valor deve ser menor que o dobro do número de vCPUs da instância de banco de dados. Se essa configuração não estiver definida, o Db2 determinará o valor a ser usado durante a operação de restauração. Para acessar mais informações, consulte RESTORE DATABASE command na documentação do IBM Db2.

RESTORE_DATABASE_NUM_MULTI_PATHS

O número de caminhos (ou fluxos de E/S) a serem usados durante uma operação de restauração do Amazon S3. Para usar essa configuração, você deve ter vários arquivos de backup. Esse valor pode melhorar a performance ao restaurar bancos de dados com grandes volumes de dados, pois restaura vários arquivos de backup de banco de dados paralelamente. Recomendamos definir esse valor para que corresponda ao número de arquivos de backup do banco de dados. Para acessar mais informações, consulte BACKUP DATABASE command na documentação do IBM Db2.

USE_STREAMING_RESTORE

Especifica se os dados de backup devem ser transmitidos diretamente durante a restauração, em vez de primeiro baixar o backup inteiro para sua instância de banco de dados do RDS para Db2 e depois extraí-lo. Definir USE_STREAMING_RESTORE como TRUE reduz significativamente os requisitos de armazenamento e pode melhorar a performance da restauração. Essa configuração requer o mecanismo IBM Db2 versão 11.5.9.0.sb00063198.r1 ou posterior e conectividade com o Amazon S3 por meio da interface de rede elástica (ENI) do seu banco de dados. Para acessar mais informações, consulte Remote storage, na documentação do IBM Db2.

Exemplos

Exemplo 1: especificação do número de buffers a serem criados

O exemplo a seguir define a configuração RESTORE_DATABASE_NUM_BUFFERS como 150.

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_BUFFERS', '150')"

Exemplo 2: especificação do número de manipuladores de buffer a serem criados

O exemplo a seguir define a configuração RESTORE_DATABASE_PARALLELISM como 8.

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_PARALLELISM', '8')"

Exemplo 3: especificar o número de caminhos ou fluxos de I/O a serem usados durante a restauração

O exemplo a seguir define a configuração RESTORE_DATABASE_NUM_MULTI_PATHS como 5.

db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_MULTI_PATHS', '5')"

Exemplo 4: definir a restauração para transmitir dados de backup

O exemplo a seguir define a configuração USE_STREAMING_RESTORE como TRUE.

db2 "call rdsadmin.set_configuration( 'USE_STREAMING_RESTORE', 'TRUE')"

rdsadmin.show_configuration

Exibe as configurações atuais que você pode definir usando o procedimento armazenado rdsadmin.set_configuration.

Sintaxe

db2 "call rdsadmin.show_configuration( 'name')"

Parâmetros

O seguinte parâmetro é opcional:

name

O nome da configuração sobre a qual exibir informações. O tipo de dados é varchar.

Os seguintes nomes de configuração são válidos:

  • RESTORE_DATABASE_NUM_BUFFERS: o número de buffers a serem criados durante uma operação de restauração.

  • RESTORE_DATABASE_PARALLELISM: o número de manipuladores de buffer a serem criados durante uma operação de restauração.

  • RESTORE_DATABASE_NUM_MULTI_PATHS: o número de caminhos (ou fluxos de E/S) a serem usados durante uma operação de restauração do Amazon S3.

  • USE_STREAMING_RESTORE: especifica se os dados de backup devem ser transmitidos diretamente durante a restauração, em vez de primeiro baixar o backup inteiro para sua instância de banco de dados do RDS para Db2 e depois extraí-lo.

Observações de uso

Se você não especificar o nome de uma configuração, rdsadmin.show_configuration exibirá as informações de todas as configurações que você pode definir usando o procedimento armazenado rdsadmin.set_configuration.

Exemplos

O exemplo a seguir exibe informações sobre a configuração RESTORE_DATABASE_PARALLELISM atual.

db2 "call rdsadmin.show_configuration( 'RESTORE_DATABASE_PARALLELISM')"

rdsadmin.backup_database

Faz backup de um banco de dados de uma instância de banco de dados do RDS para Db2 para um bucket do Amazon S3.

Sintaxe

db2 "call rdsadmin.backup_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', 'backup_type', 'compression_option', 'util_impact_priority', 'num_files', 'parallelism', 'num_buffers')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

Os seguintes parâmetros de entrada são obrigatórios:

database_name

O nome do banco de dados de destino em uma instância de banco de dados do RDS para Db2 para backup. O tipo de dados é varchar.

O banco de dados deve existir na instância de banco de dados. Você não pode fazer backup do banco de dados rdsadmin.

s3_bucket_name

O nome do bucket do Amazon S3 onde você deseja que o backup resida. O tipo de dados é varchar.

O bucket do S3 deve existir antes de chamar rdsadmin.backup_database, estar na mesma Região da AWS que o banco de dados de destino na instância de banco de dados do RDS para Db2 da qual você deseja fazer backup e estar acessível por meio do perfil do IAM anexado à instância de banco de dados.

s3_prefix

O prefixo do caminho para o Amazon S3 em que o RDS para Db2 faz upload dos arquivos de backup. O tipo de dados é varchar.

O prefixo é limitado a 1.024 caracteres. Não deve incluir uma barra inicial ou final (/). Devido a uma limitação de streaming do IBM para o Amazon S3, recomendamos que o prefixo inclua subdiretórios.

Para melhorar o gerenciamento de arquivos, o RDS para Db2 cria diretórios extras após s3_prefix. O RDS para Db2 faz upload de todos os arquivos de backup para s3_prefix/dbi_resource_id/db_name. Se você definir num_files como maior que 1, o diretório db_name conterá mais de um arquivo de backup.

Veja a seguir um exemplo de localização do Amazon S3 para arquivos de backup. No exemplo, backups/daily é o valor definido para o parâmetro s3_prefix.

backups/daily/db-5N7FXOY4GDP7RG2NSH2ZTAI2W4/SAMPLEDB
backup_type

O tipo de backup que determina se o banco de dados permanece disponível durante o backup. O tipo de dados é varchar.

Valores válidos:

  • OFFLINE: o banco de dados fica indisponível durante o backup. Esse tipo é mais rápido, mas causa tempo de inatividade.

  • ONLINE: o banco de dados permanece disponível durante o backup. Por padrão, ONLINE é definido como INCLUDE LOGS.

Os seguintes parâmetros são opcionais:

compression_option

O tipo de algoritmo de compactação usado que afeta o tempo de backup, o uso da CPU e os custos de armazenamento. O tipo de dados é varchar. O padrão é “”. NONE.

Valores válidos:

  • NONE: o maior tamanho de arquivo, o menor uso da CPU e os menores custos de armazenamento.

  • STANDARD: compactação padrão do Db2. Usa libdb2compr.so.

  • ZLIB: compactação aprimorada do Db2. Usa libdb2zcompr.so, mas consome mais CPU e é o custo de armazenamento mais caro.

util_impact_priority

A configuração que controla o impacto do backup nos recursos do sistema. O tipo de dados é integer. Valores válidos: 1 a 100 (de baixo para alto). O padrão é “”. 50.

Valores mais baixos reduzem o impacto do backup nos recursos do sistema, mas podem aumentar o tempo necessário para fazer backup do banco de dados. Valores mais altos podem concluir o backup do banco de dados mais rapidamente, mas podem afetar outras operações. O impacto real depende da utilização geral do sistema e da configuração de util_impact_lim. É possível visualizar e modificar a configuração util_impact_lim em grupos de parâmetros. Para obter mais informações, consulte Parâmetros do Amazon RDS para Db2.

num_files

O número de fluxos de upload paralelos para o Amazon S3. O tipo de dados é integer. Valores válidos: 1 a 256.

Recomendamos que você defina esse parâmetro somente após observar a performance do backup no padrão que o Amazon RDS calcula automaticamente. Valores mais altos podem melhorar a performance de backups grandes, especialmente com conexões de alta largura de banda, mas, em determinado momento, eles degradam a performance. Além disso, leve em conta os recursos disponíveis do sistema e a capacidade da rede.

paralelismo

O número de espaços para tabela que o utilitário de backup pode ler paralelamente. O tipo de dados é integer. Valores válidos: 1 a 256.

Recomendamos que você defina esse parâmetro somente após observar a performance do backup no padrão que o mecanismo do Db2 calcula automaticamente como o valor ideal. Se você definir esse parâmetro, o Amazon RDS validará em relação aos processadores disponíveis e não executará a solicitação de backup se a capacidade de processamento for insuficiente.

num_buffers

O número de buffers a serem usados. O tipo de dados é integer. Valores válidos: 1 a 268435456.

Recomendamos que você defina esse parâmetro somente após observar a performance do backup no padrão que o Amazon RDS calcula automaticamente com base na memória. Se você definir esse parâmetro, o Amazon RDS validará em relação à memória disponível e não executará a solicitação de backup se a memória disponível for insuficiente. Se você estiver fazendo backup em vários locais (num_files está definido como mais de 1), um número maior de buffers poderá melhorar a performance. Se você não definir compression_option como NONE, poderá melhorar a performance aumentando num_buffers e parallelism.

Observações de uso

Esse procedimento armazenado cria tarefas de backup assíncronas que transmitem o backup do seu banco de dados diretamente para o bucket do Amazon S3 usando a integração do Amazon S3. Você pode fazer backups do seu servidor local ou de uma instância de banco de dados do RDS para Db2, transmiti-los para o Amazon S3 e, depois, restaurá-los onde quiser. Para acessar informações sobre como restaurar um banco de dados para uma instância de banco de dados do RDS para Db2, consulte rdsadmin.restore_database.

Antes de chamar o procedimento armazenado, examine estas considerações:

Antes de chamar rdsadmin.backup_database, é necessário se conectar ao banco de dados rdsadmin. No seguinte exemplo, substitua master_username e master_password pelas informações da instância de banco de dados do RDS para Db2:

db2 connect to rdsadmin user master_username using master_password

Depois de fazer backup do banco de dados, não se esqueça de encerrar a conexão.

terminate

Para acessar informações sobre como conferir o status do backup de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.backup_database, consulte Erros de procedimentos armazenados.

Exemplos

Todos os exemplos fazem backup de um banco de dados chamado MYDB para o bucket do Amazon S3 chamado amzn-s3-demo-bucket e definem o prefix como backups/daily.

Exemplo 1: especificar o banco de dados offline e indisponível com utilização média e um único fluxo de upload

No exemplo a seguir, o banco de dados está offline, o que é mais rápido, mas significa que o banco de dados não está disponível durante o backup. O exemplo não compacta os arquivos, tem impacto médio nos recursos do sistema e usa um único fluxo de upload para o Amazon S3.

db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 50, 1)"

Exemplo 2: especificar o banco de dados on-line e disponível com compactação aprimorada, utilização média e poucos fluxos de upload paralelos

No exemplo a seguir, o banco de dados está on-line e disponível durante o backup. O exemplo executa uma compactação aprimorada, o que ocasiona um tamanho de arquivo pequeno, mas consome muita CPU. Ele tem um impacto um pouco maior do que a média nos recursos do sistema e usa cinco fluxos de upload para o Amazon S3.

db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'ONLINE', 'ZLIB', 60, 5)"

Exemplo 3: especificar o banco de dados offline e indisponível com padrões e cálculos do sistema

No exemplo a seguir, o banco de dados está offline, o que é mais rápido, mas significa que o banco de dados não está disponível durante o backup. O exemplo usa a compactação padrão dos arquivos e o impacto nos recursos do sistema. Ele também permite que o RDS para Db2 calcule o número de fluxos de upload paralelos para o Amazon S3, espaços para tabela para leitura paralela e buffers para uso.

db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE')"

Exemplo 4: especificar o banco de dados offline e indisponível sem compactação, alta utilização e cálculos personalizados

No exemplo a seguir, o banco de dados está offline, o que é mais rápido, mas significa que o banco de dados não está disponível durante o backup. O exemplo não compacta os arquivos, tem impacto alto nos recursos do sistema e usa vinte fluxos de upload para o Amazon S3. Ele define o número máximo de espaços para tabela a serem lidos em paralelo, o que pode fazer com que a solicitação de backup falhe se a capacidade de processamento for insuficiente. Ele também define o número máximo de buffers a serem usados, o que pode fazer com que a solicitação de backup falhe se a memória for insuficiente.

db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 90, 20, 256, 268435456)"

rdsadmin.restore_database

Restaura um banco de dados de um bucket do Amazon S3 para a instância de banco de dados do RDS para Db2.

Sintaxe

db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', restore_timestamp, 'backup_type')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

Os seguintes parâmetros de entrada são obrigatórios:

database_name

O nome do banco de dados de destino a ser restaurado no RDS para Db2. O tipo de dados é varchar.

Por exemplo, se o nome do banco de dados de origem for TESTDB e você definir database_name como NEWDB, o Amazon RDS restaurará NEWDB como o banco de dados de origem.

s3_bucket_name

O nome do bucket do Amazon S3 onde reside o backup. O tipo de dados é varchar.

s3_prefix

O prefixo a ser usado para correspondência de arquivos durante o download. O tipo de dados é varchar.

Se esse parâmetro estiver vazio, todos os arquivos no bucket do Amazon S3 serão processados. Veja a seguir um exemplo de prefixo:

backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
restore_timestamp

O carimbo de data e hora da imagem de backup do banco de dados. O tipo de dados é varchar.

O carimbo de data e hora está incluído no nome do arquivo de backup. Por exemplo, 20230615010101 é o carimbo de data e hora do nome do arquivo. SAMPLE.0.rdsdb.DBPART000.20230615010101.001.

backup_type

O tipo de backup. O tipo de dados é varchar. Valores válidos: OFFLINE, ONLINE.

Use ONLINE para migrações com tempo de inatividade quase zero. Para obter mais informações, consulte Migrar do Linux para Linux com quase zero tempo de inatividade para o Amazon RDS para Db2.

Observações de uso

Você pode usar esse procedimento armazenado para migrar um banco de dados do Db2 para uma instância de banco de dados do RDS para Db2. Para obter mais informações, consulte Usar serviços da AWS para migrar dados do Db2 para o Amazon RDS para Db2. Também é possível usar esse procedimento armazenado para criar várias cópias do mesmo banco de dados com nomes de banco de dados diferentes que usam a mesma imagem de restauração.

Antes de chamar o procedimento armazenado, examine estas considerações:

  • Antes de restaurar um banco de dados, é necessário provisionar espaço de armazenamento para a instância de banco de dados do RDS para Db2 maior que o banco de dados Db2 original no disco. Se você habilitar USE_STREAMING_RESTORE, ao restaurar o backup, o Amazon RDS transmitirá os arquivos de backup diretamente do bucket do S3 para a instância de banco de dados do RDS para Db2. Se você hão habilitar USE_STREAMING_RESTORE, deverá provisionar espaço de armazenamento para a instância de banco de dados do RDS para Db2 igual ou maior que a soma do tamanho do backup mais o tamanho do banco de dados Db2 original no disco. Para obter mais informações, consulte Insufficient disk space.

  • Ao restaurar o backup, o Amazon RDS extrai o arquivo de backup na instância de banco de dados do RDS para Db2. Cada arquivo de backup deve ter 5 TB ou menos. Se um arquivo de backup exceder 5 TB, você deverá dividi o arquivo de backup em arquivos menores.

  • Para restaurar todos os arquivos usando o procedimento armazenado rdsadmin.restore_database, não inclua o sufixo do número do arquivo após o carimbo de data e hora nos nomes dos arquivos. Por exemplo, o s3_prefix backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101 restaura os seguintes arquivos:

    SAMPLE.0.rdsdb.DBPART000.20230615010101.001 SAMPLE.0.rdsdb.DBPART000.20230615010101.002 SAMPLE.0.rdsdb.DBPART000.20230615010101.003 SAMPLE.0.rdsdb.DBPART000.20230615010101.004 SAMPLE.0.rdsdb.DBPART000.20230615010101.005
  • O RDS para Db2 não permite armazenamento não automático. Para obter mais informações, consulte Tablespaces not restored.

  • O RDS para Db2 não permite rotinas não protegidas. Para obter mais informações, consulte Non-fenced routines not allowed.

  • Para melhorar a performance das operações de restauração do banco de dados, é possível configurar o número de buffers, manipuladores de buffer e o número de caminhos de backup a serem usados pelo RDS. Para otimizar o uso do armazenamento e potencialmente melhorar a performance, você também pode transmitir diretamente um backup do Amazon S3. Para conferir a configuração atual, use rdsadmin.show_configuration. Para alterar a configuração, use rdsadmin.set_configuration.

Para colocar o banco de dados on-line e aplicar logs de transações adicionais após a restauração do banco de dados, consulte rdsadmin.rollforward_database.

Para ter informações sobre como conferir o status de restauração de um banco de dados, consulte rdsadmin.get_task_status.

Para ver as mensagens de erro exibidas ao chamar rdsadmin.restore_database, consulte Erros de procedimentos armazenados.

Exemplos

O seguinte exemplo restaura um backup off-line com um ou vários arquivos que têm o s3_prefix backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101:

db2 "call rdsadmin.restore_database( ?, 'SAMPLE', 'amzn-s3-demo-bucket', 'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101', 20230615010101, 'OFFLINE')"

rdsadmin.rollforward_database

Coloca o banco de dados on-line e aplica logs de transações adicionais depois de restaurar um banco de dados chamando rdsadmin.restore_database.

Sintaxe

db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name', s3_prefix, 'rollforward_to_option', 'complete_rollforward')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

Os seguintes parâmetros de entrada são obrigatórios:

database_name

O nome do banco de dados no qual a operação deve ser realizada. O tipo de dados é varchar.

s3_bucket_name

O nome do bucket do Amazon S3 onde reside o backup. O tipo de dados é varchar.

s3_prefix

O prefixo a ser usado para correspondência de arquivos durante o download. O tipo de dados é varchar.

Se esse parâmetro estiver vazio, todos os arquivos no bucket do S3 serão baixados. O seguinte exemplo é de um prefixo:

backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101

Os seguintes parâmetros de entrada são opcionais:

rollforward_to_option

O ponto até o qual você pretende efetuar roll forward. O tipo de dados é varchar. Valores válidos: END_OF_LOGS, END_OF_BACKUP com o carimbo de data/hora no formato YYYY-MM-DD-HH.MM.SS. O padrão é “”. END_OF_LOGS.

complete_rollforward

Especifica se o processo de efetuar roll forward deve ser concluído. O tipo de dados é varchar. O padrão é “”. TRUE.

Se TRUE, após a conclusão, o banco de dados estará on-line e acessível. Se FALSE, o banco de dados permanecerá em um estado ROLL-FORWARD PENDING.

Observações de uso

Você pode usar rds.rollforward_database para fazer um backup on-line com a inclusão de logs produzidos no ambiente on-premises em vários cenários diferentes.

Cenário 1: restaurar o banco de dados, aplicar roll forward nos logs incluídos e colocar o banco de dados on-line

Após a conclusão de rdsadmin.restore_database(), use a sintaxe no Exemplo 1 para colocar o banco de dados com logs de transação on-line.

Cenário 2: colocar o banco de dados on-line, mas não aplicar roll forward nos logs incluídos.

Após a conclusão de rdsadmin.restore_database(), use a sintaxe no Exemplo 2 para colocar o banco de dados com logs de transação on-line.

Cenário 3: aplicar roll forward nos logs incluídos no backup e aplicar logs de transação adicionais à medida que eles forem produzidos no ambiente on-premises

Após a conclusão de rdsadmin.restore_database(), use a sintaxe no Exemplo 3 ou Exemplo 4 para aplicar roll forward nos logs sem colocar o banco de dados on-line.

Se você definir complete_rollforward como FALSE, o banco de dados estará em um estado ROLL-FORWARD PENDING e off-line. Para colocar o banco de dados on-line, é necessário chamar rdsadmin.complete_rollforward.

Para ter informações sobre como conferir o status da realização de roll forward do banco de dados, consulte rdsadmin.rollforward_status.

Exemplos

Exemplo 1: colocar o banco de dados com logs de transação on-line

O seguinte exemplo efetua roll forward em um backup on-line do banco de dados com logs de transações e, depois, coloca o banco de dados on-line:

db2 "call rdsadmin.rollforward_database( ?, null, null, 'END_OF_LOGS', 'TRUE')"

Exemplo 2: colocação do banco de dados sem logs de transações online

O seguinte exemplo avança para um backup on-line do banco de dados sem logs de transações e, depois, coloca o banco de dados on-line:

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/, 'END_OF_BACKUP', 'TRUE')"

Exemplo 3: sem colocação do banco de dados com logs de transações online

O seguinte exemplo efetua roll forward em um backup on-line do banco de dados com logs de transações e, depois, não coloca o banco de dados on-line:

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', null, 'onlinebackup/TESTDB', 'END_OF_LOGS', 'FALSE')"

Exemplo 4: sem colocação do banco de dados com logs de transações adicionais online

O seguinte exemplo efetua roll forward em um backup on-line do banco de dados com logs de transações adicionais e, depois, não coloca o banco de dados on-line.

db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/S0000155.LOG', 'END_OF_LOGS', 'FALSE')"

rdsadmin.rollforward_status

Retorna a saída de ROLLFORWARD DATABASE database_name QUERY STATUS.

Sintaxe

db2 "call rdsadmin.rollforward_status( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados no qual a operação deve ser realizada. O tipo de dados é varchar.

Observações de uso

Depois de chamar rdsadmin.rollforward_database, você pode chamar rdsadmin.rollforward_status para verificar o status da aplicação de roll forward no banco de dados.

Para ter informações sobre como conferir o status desse procedimento armazenado, consulte rdsadmin.get_task_status.

rdsadmin.complete_rollforward

Coloca o banco de dados on-line de um estado ROLL-FORWARD PENDING.

Sintaxe

db2 "call rdsadmin.complete_rollforward( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados que você deseja colocar on-line. O tipo de dados é varchar.

Observações de uso

Se você chamou rdsadmin.rollforward_database com complete_rollforward definido como FALSE, o banco de dados está em um estado ROLL-FORWARD PENDING e offline. Para concluir o processo de roll forward e colocar o banco de dados on-line, chame rdsadmin.complete_rollforward.

Para ter informações sobre como conferir o status da realização de roll forward, consulte rdsadmin.rollforward_status.

Exemplos

O seguinte exemplo coloca o banco de dados TESTDB on-line:

db2 "call rdsadmin.complete_rollforward( ?, 'TESTDB')"

rdsadmin.db2pd_command

Coleta informações sobre um banco de dados do RDS para Db2.

Sintaxe

db2 "call rdsadmin.db2pd_command('db2pd_cmd')"

Parâmetros

O seguinte parâmetro de entrada é obrigatório:

db2pd_cmd

O nome do comando db2pd que você deseja executar. O tipo de dados é varchar.

O parâmetro deve começar com um hífen. Para ver uma lista de parâmetros, consulte db2pd - Monitor and troubleshoot Db2 database command na documentação do IBM Db2.

As seguintes opções não são compatíveis:

  • -addnode

  • -alldatabases

  • -alldbp

  • -alldbs

  • -allmembers

  • -alm_in_memory

  • -cfinfo

  • -cfpool

  • -command

  • -dbpartitionnum

  • -debug

  • -dump

  • -everything

  • -file | -o

  • -ha

  • -interactive

  • -member

  • -pages

    nota

    -pages summaryO é compatível.

  • -pdcollection

  • -repeat

  • -stack

  • -totalmem

A subopção file não é compatível; por exemplo, db2pd -db testdb -tcbstats file=tcbstat.out.

O uso da opção stacks não é compatível; por exemplo, db2pd -edus interval=5 top=10 stacks.

Observações de uso

Esse procedimento armazenado reúne informações que podem ajudar no monitoramento e na solução de problemas de bancos de dados do RDS para Db2.

O procedimento armazenado usa o utilitário db2pd da IBM para executar vários comandos. O utilitário db2pd exige a autorização SYSADM, que o usuário principal do RDS para Db2 não tem. No entanto, com o procedimento armazenado do Amazon RDS, o usuário principal pode usar o utilitário para executar vários comandos. Para ter mais informações sobre o utilitário, consulte db2pd - Monitor and troubleshoot Db2 database command na documentação do IBM Db2.

A saída é restrita a no máximo 2 GB.

Para ter informações sobre como conferir o status da coleta de informações sobre o banco de dados, consulte rdsadmin.get_task_status.

Exemplos

Exemplo 1: retorno do tempo de atividade da instância de banco de dados

O seguinte exemplo exibe o tempo de atividade de uma instância de banco de dados do RDS para Db2:

db2 "call rdsadmin.db2pd_command('-')"

Exemplo 2: retorno do tempo de atividade do banco de dados

O seguinte exemplo exibe o tempo de atividade de um banco de dados chamado TESTDB:

db2 "call rdsadmin.db2pd_command('-db TESTDB -')"

Exemplo 3: retorno do uso de memória da instância de banco de dados

O seguinte exemplo exibe o uso de memória de uma instância de banco de dados do RDS para Db2:

db2 "call rdsadmin.db2pd_command('-dbptnmem')"

Exemplo 4: retorno de conjuntos de memória da instância de banco de dados e do banco de dados

O seguinte exemplo exibe os conjuntos de memória de uma instância de banco de dados do RDS para Db2 e um banco de dados denominado TESTDB:

db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"

rdsadmin.force_application

Força a retirada das aplicações de um banco de dados do RDS para Db2.

Sintaxe

db2 "call rdsadmin.force_application( ?, 'applications')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

aplicações

As aplicações cuja retirada de um banco de dados do RDS para Db2 você deseja forçar. O tipo de dados é varchar. Valores válidos: ALL ou application_handle.

Separe os nomes de várias aplicações com vírgulas. Exemplo: “application_handle_1, application_handle_2”.

Observações de uso

Esse procedimento armazenado força a retirada de todas as aplicações de um banco de dados para que você possa realizar a manutenção.

O procedimento armazenado usa o comando FORCE APPLICATION da IBM. O comando FORCE APPLICATION exige autorização SYSADM, SYSMAINT ou SYSCTRL, que o usuário principal do RDS para Db2 não tem. No entanto, com o procedimento armazenado do Amazon RDS, o usuário principal pode usar o comando. Para ter mais informações, consulte FORCE APPLICATION command na documentação do IBM Db2.

Para ter informações sobre como conferir o status da retirada forçada de aplicações de um banco de dados, consulte rdsadmin.get_task_status.

Exemplos

Exemplo 1: especificação de todas as aplicações

O seguinte exemplo força a retirada de todas as aplicações de um banco de dados do RDS para Db2:

db2 "call rdsadmin.force_application( ?, 'ALL')"

Exemplo 2: especificação de várias aplicações

O seguinte exemplo força a retirada de todos os manipuladores de aplicações 9991, 8891 e 1192 de um banco de dados do RDS para Db2:

db2 "call rdsadmin.force_application( ?, '9991, 8891, 1192')"

rdsadmin.set_archive_log_retention

Configura o intervalo de tempo (em horas) para retenção dos arquivos de log do banco de dados do RDS para Db2 especificado.

Sintaxe

db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

Os seguintes parâmetros de entrada são obrigatórios:

database_name

O nome do banco de dados cuja retenção de logs será configurada. O tipo de dados é varchar.

archive_log_retention_hours

O número de horas de retenção dos arquivos de log. O tipo de dados é smallint. O padrão é 0 e o máximo é 168 (sete dias).

Se o valor for 0, o Amazon RDS não reterá os arquivos de log.

Observações de uso

Por padrão, o RDS para Db2 retém os logs por cinco minutos. Recomendamos que, se você usar ferramentas de replicação, como o AWS DMSpara captura de dados de alteração (CDC) ou IBM Q Replication, defina a retenção de logs nessas ferramentas como mais de cinco minutos.

É possível visualizar a configuração atual de retenção de logs chamando rdsadmin.show_archive_log_retention.

Não é possível definir a configuração de retenção de logs no banco de dados rdsadmin.

Exemplos

Exemplo 1: configuração do tempo de retenção

O exemplo a seguir define o tempo de retenção de logs de um banco de dados chamado TESTDB como 24 horas.

db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"

Exemplo 2: desativação do tempo de retenção

O exemplo a seguir desativa o tempo de retenção de logs de um banco de dados chamado TESTDB.

db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '0')"

rdsadmin.show_archive_log_retention

Exibe a configuração atual de retenção de logs do banco de dados especificado.

Sintaxe

db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados cuja configuração de retenção de logs será mostrada. O tipo de dados é varchar.

Exemplos

O exemplo a seguir mostra a configuração de tempo de retenção de logs de um banco de dados chamado TESTDB.

db2 "call rdsadmin.show_archive_log_retention( ?, 'TESTDB')"

rdsadmin.list_archive_log_information

Retorna detalhes sobre os arquivos de log de arquivamento, como o tamanho, a data e a hora de criação e o nome dos arquivos de log individuais para o banco de dados especificado. Também retorna a quantidade total de armazenamento usada pelos arquivos de log no banco de dados.

Sintaxe

db2 "call rdsadmin.list_archive_log_information( ?, 'database_name')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

O seguinte parâmetro de entrada é obrigatório:

database_name

O nome do banco de dados para o qual listar as informações de log de arquivamento. O tipo de dados é varchar.

Exemplos

O exemplo a seguir retorna informações de log de arquivamento para um banco de dados chamado TESTDB.

db2 "call rdsadmin.list_archive_log_information( ?, 'TESTDB')"

rdsadmin.fgac_command

Executa comandos de controle de acesso refinado (FGAC).

Sintaxe

db2 "call rdsadmin.fgac_command( ?, 'database_name', 'fgac_cmd')"

Parâmetros

O seguinte parâmetro de saída é obrigatório:

?

Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro aceita apenas ?.

Os seguintes parâmetros de entrada são obrigatórios:

database_name

O nome do banco de dados no qual você deseja executar comandos do FGAC. O tipo de dados é varchar.

fgac_cmd

O comando de controle de acesso refinado que você deseja executar. O tipo de dados é varchar.

Os seguintes comandos são válidos:

  • ALTER MASK: altera uma máscara de coluna existente no controle de acesso por linha e coluna (RCAC).

  • ALTER PERMISSION: altera as propriedades de uma permissão de linha existente no RCAC.

  • ALTER SECURITY POLICY: altera uma política de segurança existente para o RCAC.

  • ALTER SECURITY LABEL: altera as propriedades de um rótulo de segurança existente no controle de acesso baseado em rótulos (LBAC).

  • ALTER TABLE: altera a estrutura da tabela, incluindo a adição de controles RCAC ou LBAC.

  • CREATE MASK: cria uma máscara de coluna para o RCAC.

  • CREATE PERMISSION: cria uma permissão de linha para o RCAC.

  • CREATE SECURITY LABEL: cria um rótulo de segurança para o LBAC.

  • CREATE SECURITY POLICY: cria uma política de segurança para o RCAC.

  • DROP MASK: elimina uma máscara de coluna existente.

  • DROP PERMISSION: elimina uma permissão de linha existente.

  • DROP SECURITY LABEL: elimina um rótulo de segurança do LBAC.

  • DROP SECURITY POLICY: elimina uma política de segurança existente do RCAC.

  • GRANT EXEMPTION ON RULE: permite que um usuário ignore regras específicas do LBAC.

  • GRANT SECURITY LABEL: atribui um rótulo de segurança do LBAC a um usuário.

  • REVOKE EXEMPTION ON RULE: remove a isenção de um usuário das regras do LBAC.

  • REVOKE SECURITY LABEL: remove um rótulo de segurança do LBAC de um usuário.

Observações de uso

Esse procedimento armazenado controla o acesso em nível de linha ou coluna aos dados da tabela em seu banco de dados em uma instância de banco de dados do RDS para Db2. O RDS para Db2 comporta dois tipos de FGAC no banco de dados:

  • Controle de acesso baseado em rótulo (LBAC)

  • Controle de acesso por linha e coluna (RCAC)

Antes de chamar o procedimento armazenado, examine estas considerações:

  • Para realizar o escape de aspas simples (‘), use uma aspa simples adicional. Os exemplos a seguir mostram como realizar o escape de 'apple', 'banana' e 'fruit'.

    db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
    db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITTREE TREE(''fruit'' ROOT, ''apple'' UNDER ''fruit'', ''banana'' UNDER ''fruit'')')"
  • Para realizar o escape de colchetes ([ ]), use uma barra invertida (\). O exemplo a seguir mostra como realizar o escape de [''apple'',''banana''].

    db2 "call rdsadmin.fgac_command( ?, ' testdb', 'CREATE SECURITY LABEL COMPONENT FRUITARRAY ARRAY\[''apple'',''banana''\]')"

Exemplos

Todos os exemplos a seguir executam comandos do FGAC em um banco de dados chamado testdb.

Exemplo 1: criar um rótulo de segurança chamado FRUITSET

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"

Exemplo 2: criar uma máscara para a coluna EMP_ID que é habilitada quando EMP_ID é definido como menos de três

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK id_MASK ON EMPLOYEE FOR COLUMN EMP_ID RETURN CASE WHEN (EMP_ID < 3) THEN EMP_ID ELSE NULL END ENABLE')"

Exemplo 3: criar uma máscara para a coluna DEPARTMENT que é habilitada quando SESSION_USER é definido como security_user

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK DEPARTMENT_MASK ON EMPLOYEE FOR COLUMN DEPARTMENT RETURN CASE WHEN SESSION_USER = ''security_user'' THEN DEPARTMENT ELSE NULL END ENABLE')"

Exemplo 4: criar um rótulo de segurança chamado treelabel

db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT treelabel TREE(''COMPANY'' ROOT, ''HR'' UNDER ''COMPANY'', ''FINANCE'' UNDER ''COMPANY'', ''IT'' UNDER ''COMPANY'')')"