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.
Procedimentos armazenados
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
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 #26do site do Unicode Consortium. -
NLSCHAR: somente para uso com a página de código Thai (CP874). -
SYSTEM: se você usarSYSTEM, o banco de dados usará a sequência de agrupamento automaticamente paradatabase_codesetedatabase_territory.
O padrão é “”.
IDENTITY.Além disso, o RDS para Db2 é compatível com os seguintes grupos de agrupamentos:
language-aware-collationelocale-sensitive-collation. Para ter mais informações, consulte Choosing a collation for a Unicode databasena 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 especialPUBLIC. Para acessar mais informações, consulte Default privileges granted on creating a databasena 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 DATABASEenviado à instância do Db2 usa a opçãoRESTRICTIVE. -
O RDS para Db2 usa somente tablespaces
AUTOMATIC STORAGE. -
O RDS para Db2 usa os valores padrão para
NUMSEGSeDFT_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
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 usermaster_usernameusingmaster_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 usermaster_usernameusingmaster_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 modificarlogprimaryelogfilsiz, 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 |
|---|---|
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
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 paras3_prefix/dbi_resource_id/db_name. Se você definirnum_filescomo maior que1, o diretóriodb_nameconterá 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âmetros3_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 comoINCLUDE 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. Usalibdb2compr.so. -
ZLIB: compactação aprimorada do Db2. Usalibdb2zcompr.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:1a100(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çãoutil_impact_limem 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:1a256.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:1a256.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:1a268435456.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_filesestá definido como mais de1), um número maior de buffers poderá melhorar a performance. Se você não definircompression_optioncomoNONE, poderá melhorar a performance aumentandonum_bufferseparallelism.
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:
-
Você só pode fazer backup de um banco de dados por vez.
-
Você não pode realizar um backup e uma restauração juntos em uma instância de banco de dados.
-
A criptografia do lado do servidor do Amazon S3 com a AWS KMS (SSE-KMS) não é aceita. Mesmo que o bucket do S3 esteja definido como SSE-KMS, os arquivos enviados ao bucket do S3 não usarão a criptografia SSE-KMS.
-
Para transmitir os arquivos de backup para o Amazon S3, você já deve ter configurado a integração. Para obter mais informações, consulte Integrar uma instância de banco de dados do Amazon RDS para Db2 ao Amazon S3.
-
Para que uma instância de banco de dados do RDS para Db2 interaja com o Amazon S3, é necessário ter uma VPC e um endpoint do gateway do Amazon S3 para uso pelas sub-redes privadas. Para obter mais informações, consulte Etapa 1: Criar um endpoint do gateway da VPC para o Amazon S3 e Etapa 2: Confirmar se o endpoint do gateway da VPC para o Amazon S3 existe.
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 usermaster_usernameusingmaster_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
TESTDBe você definirdatabase_namecomoNEWDB, o Amazon RDS restauraráNEWDBcomo 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
ONLINEpara 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 habilitarUSE_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, os3_prefixbackupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101restaura 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_BACKUPcom o carimbo de data/hora no formatoYYYY-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. SeFALSE, o banco de dados permanecerá em um estadoROLL-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
db2pdque 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 -
-pagesnota
-pages summaryO é compatível. -
-pdcollection -
-repeat -
-stack -
-totalmem
A subopção
filenão é compatível; por exemplo,db2pd -db testdb -tcbstats file=tcbstat.out.O uso da opção
stacksnã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
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:ALLouapplication_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
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 é0e 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'')')"