Realização de tarefas comuns de banco de dados para instâncias de banco de dados
Veja a seguir como executar determinadas tarefas comuns de DBA relacionadas aos bancos de dados nas instâncias de bancos de dados do Amazon RDS que executam o Oracle. Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para as instâncias de banco de dados. O Amazon RDS também restringe o acesso a alguns procedimentos e tabelas do sistema que exigem privilégios avançados.
Tópicos
- Alteração do nome global de um banco de dados
- Criação e uso de espaços de tabela
- Definição do espaço de tabela padrão
- Definição do espaço de tabela temporário padrão
- Criar um espaço de tabela temporário no armazenamento de instância
- Adicionar um arquivo temporário ao armazenamento de instância em uma réplica de leitura
- Descartar arquivos temporários em uma réplica de leitura
- Verificação de um banco de dados
- Definição da recuperação distribuída
- Definição do fuso horário do banco de dados
- Trabalhar com tabelas externas do Oracle
- Gerar relatórios de performance com o AWR (Automatic Workload Repository)
- Ajuste de vínculos de banco de dados para uso com instâncias de bancos de dados em uma VPC
- Definir a edição padrão para uma instância de banco de dados
- Habilitar a auditoria para a tabela SYS.AUD$
- Desabilitar a auditoria para a tabela SYS.AUD$
- Limpar criações de índice online interrompidas
- Ignorar blocos corrompidos
- Redimensionar espaços de tabela, arquivos de dados e arquivos temporários
- Limpar a lixeira
- Definir os valores padrão exibidos para a redação completa
Alteração do nome global de um banco de dados
Para alterar o nome global de um banco de dados, use o procedimento rdsadmin.rdsadmin_util.rename_global_name
do Amazon RDS. O procedimento rename_global_name
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar2 |
— |
Sim |
O novo nome global do banco de dados. |
O banco de dados deve estar aberto para que a alteração de nome ocorra. Para ter mais informações sobre como alterar o nome global de um banco de dados, consulte ALTER DATABASE
O exemplo a seguir altera o nome global de um banco de dados para new_global_name
.
EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => '
new_global_name
');
Criação e uso de espaços de tabela
O Amazon RDS só oferece suporte a arquivos gerenciados Oracle (OMF) para arquivos de dados, arquivos de log e arquivos de controle. Ai criar arquivos de dados e arquivos de log, você não pode especificar os nomes dos arquivos físicos.
Por padrão, se você não especificar o tamanho de um arquivo de dados, os espaços de tabela serão criados com um tamanho padrão de AUTOEXTEND ON
e sem um tamanho máximo. No exemplo a seguir, o tablespace users1
é autoextensível.
CREATE TABLESPACE
users1
;
Devido a essas configurações padrão, espaços de tabela podem crescer ao ponto de consumirem todo o armazenamento alocado. Recomendamos que você especifique um tamanho máximo apropriado em espaços de tabela permanentes e temporários e que monitore cuidadosamente o uso do espaço.
O exemplo a seguir cria um espaço de tabela chamado users2
com um tamanho inicial de 1 gigabyte. Como o tamanho do arquivo de dados é especificado, mas AUTOEXTEND ON
não é especificado, o espaço de tabela não é autoextensível.
CREATE TABLESPACE
users2
DATAFILE SIZE1G
;
O exemplo a seguir cria um espaço de tabela chamado users3
com um tamanho inicial de 1 gigabyte, extensão automática ativada e um tamanho máximo de 10 gigabytes.
CREATE TABLESPACE
users3
DATAFILE SIZE1G
AUTOEXTEND ON MAXSIZE10G
;
O exemplo a seguir cria um espaço de tabela temporário chamado temp01
:
CREATE TEMPORARY TABLESPACE
temp01
;
É possível redimensionar um espaço de tabela de arquivos grandes usando ALTER TABLESPACE
. Você pode especificar o tamanho em quilobytes (K), megabytes (M), gigabytes (G) ou terabytes (T). O exemplo a seguir redimensiona um espaço de tabela de arquivos grandes chamado users_bf
para 200 MB.
ALTER TABLESPACE
users_bf
RESIZE200M
;
O exemplo a seguir acrescenta um arquivo de dados adicional a um espaço de tabela de arquivos pequenos chamado users_sf
.
ALTER TABLESPACE
users_sf
ADD DATAFILE SIZE100000M
AUTOEXTEND ON NEXT250m
MAXSIZEUNLIMITED
;
Definição do espaço de tabela padrão
Para definir o espaço padrão tabela padrão, use o procedimento rdsadmin.rdsadmin_util.alter_default_tablespace
do Amazon RDS. O procedimento alter_default_tablespace
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar |
— |
Sim |
O nome do espaço de tabela padrão. |
O exemplo a seguir define o espaço de tabela padrão como users2
:
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => '
users2
');
Definição do espaço de tabela temporário padrão
Para definir o espaço de tabela temporário padrão, use o procedimento rdsadmin.rdsadmin_util.alter_default_temp_tablespace
do Amazon RDS. O procedimento alter_default_temp_tablespace
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar |
— |
Sim |
O nome do espaço de tabela temporário padrão. |
O exemplo a seguir define o espaço de tabela temporário padrão como temp01
.
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => '
temp01
');
Criar um espaço de tabela temporário no armazenamento de instância
Para criar um espaço de tabela temporário no armazenamento de instância, use o procedimento rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace
do Amazon RDS. O procedimento create_inst_store_tmp_tblspace
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar |
— |
Sim |
O nome do espaço de tabela temporário. |
O exemplo a seguir cria o espaço de tabela temporário temp01
no armazenamento de instância.
EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => '
temp01
');
Importante
Quando você executa rdsadmin_util.create_inst_store_tmp_tblspace
, o espaço de tabela temporário recém-criado não é automaticamente definido como o espaço de tabela temporário padrão. Para defini-lo como padrão, consulte Definição do espaço de tabela temporário padrão.
Para ter mais informações, consulte Armazenar dados temporários em um armazenamento de instância do RDS for Oracle.
Adicionar um arquivo temporário ao armazenamento de instância em uma réplica de leitura
Quando você cria um espaço de tabela temporário em uma instância de banco de dados principal, a réplica de leitura não cria arquivos temporários. Suponha que exista um espaço de tabela temporário vazio em sua réplica de leitura por um dos seguintes motivos:
-
Você removeu um arquivo temporário do espaço de tabela em sua réplica de leitura. Para ter mais informações, consulte Descartar arquivos temporários em uma réplica de leitura.
-
Você criou um espaço de tabela temporário na instância de banco de dados primária. Nesse caso, o RDS para Oracle sincroniza os metadados com a réplica de leitura.
Você pode adicionar um arquivo temporário ao espaço de tabela temporário vazio e armazená-lo no armazenamento de instância. Para criar um arquivo temporário no armazenamento de instância, use o procedimento rdsadmin.rdsadmin_util.add_inst_store_tempfile
do Amazon RDS. Você pode usar esse procedimento somente em uma réplica de leitura. O procedimento tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar |
— |
Sim |
O nome do espaço da tabela temporário em sua réplica de leitura. |
No exemplo a seguir, o espaço de tabela temporário vazio temp01
existe na réplica de leitura. Execute o comando a seguir para criar um arquivo temporário para esse espaço de tabela e armazená-lo no armazenamento de instância.
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => '
temp01
');
Para ter mais informações, consulte Armazenar dados temporários em um armazenamento de instância do RDS for Oracle.
Descartar arquivos temporários em uma réplica de leitura
Não é possível descartar um espaço de tabela temporário em uma réplica de leitura. Você pode alterar o armazenamento de arquivos temporários em uma réplica de leitura do Amazon EBS para o armazenamento de instância ou do armazenamento de instância para o Amazon EBS. Para conseguir isso, faça o seguinte:
-
Descarte os arquivos temporários atuais no espaço de tabela temporário na réplica de leitura.
-
Crie arquivos temporários em outro armazenamento.
Para descartar os arquivos temporários, use o procedimento rdsadmin.rdsadmin_util. drop_replica_tempfiles
do Amazon RDS. Você pode usar esse procedimento somente em réplicas de leitura. O procedimento drop_replica_tempfiles
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar |
— |
Sim |
O nome do espaço da tabela temporário em sua réplica de leitura. |
Suponha que um espaço de tabela temporário chamado temp01
resida no armazenamento de instância da réplica de leitura. Descarte todos os arquivos temporários nesse espaço de tabela executando o comando a seguir.
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => '
temp01
');
Para ter mais informações, consulte Armazenar dados temporários em um armazenamento de instância do RDS for Oracle.
Verificação de um banco de dados
Para verificar um banco de dados, use o procedimento rdsadmin.rdsadmin_util.checkpoint
do Amazon RDS. O procedimento checkpoint
não tem parâmetros.
O exemplo a seguir verifica o banco de dados.
EXEC rdsadmin.rdsadmin_util.checkpoint;
Definição da recuperação distribuída
Para definir a recuperação distribuída, use os procedimentos rdsadmin.rdsadmin_util.enable_distr_recovery
e disable_distr_recovery
do Amazon RDS. Os procedimentos não têm parâmetros.
O exemplo a seguir habilita a recuperação distribuída.
EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;
O exemplo a seguir desabilita a recuperação distribuída.
EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;
Definição do fuso horário do banco de dados
Você pode definir o fuso horário do banco de dados Oracle do Amazon RDS das seguintes maneiras:
-
A opção
Timezone
A opção
Timezone
altera o fuso horário no nível do host e afeta todas as colunas e valores de data, comoSYSDATE
. Para ter mais informações, consulte Fuso horário da Oracle. -
O procedimento do Amazon RDS
rdsadmin.rdsadmin_util.alter_db_time_zone
O procedimento
alter_db_time_zone
altera o fuso horário para apenas alguns tipos de dados e não alteraSYSDATE
. Existem restrições adicionais na definição do fuso horário, listadas na documentação do Oracle.
nota
Você também pode definir o fuso horário padrão para o Oracle Scheduler. Para ter mais informações, consulte Definir o fuso horário para trabalhos do Oracle Scheduler.
O procedimento alter_db_time_zone
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar2 |
— |
Sim |
O novo fuso horário como uma região nomeada ou um deslocamento absoluto do Tempo Universal Coordenado (UTC). Os deslocamentos válidos variam de -12:00 a +14:00. |
O exemplo a seguir altera o fuso horário para UTC mais 3 horas.
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '
+3:00
');
O exemplo a seguir altera o fuso horário para o fuso horário de África/Algiers.
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '
Africa/Algiers
');
Depois de alterar o fuso horário usando o procedimento alter_db_time_zone
, reinicie a instância de banco de dados para que a alteração entre em vigor. Para ter mais informações, consulte Reinicializar uma instância de banco de dados . Para obter informações sobre como atualizar fusos horários, consulte Considerações sobre fuso horário.
Trabalhar com tabelas externas do Oracle
Tabelas externas do Oracle são tabelas com dados que não estão no banco de dados. Em vez disso, os dados estão em arquivos externos que o banco de dados pode acessar. Usando tabelas externas, você pode acessar dados sem carregá-los no banco de dados. Para ter mais informações sobre tabelas externas, consulte Managing External Tables
Com o Amazon RDS, você pode armazenar arquivos de tabela externos em objetos de diretório. Você pode criar um objeto de diretório ou pode usar um objeto predefinido no banco de dados Oracle, como o diretório DATA_PUMP_DIR. Para obter informações sobre como criar os objetos de diretório, consulte Criar e eliminar diretórios no espaço de armazenamento de dados principal. Você pode consultar a visualização ALL_DIRECTORIES a fim de listar os objetos de diretório para a instância de banco de dados Oracle do Amazon RDS.
nota
Os objetos de diretório apontam para o espaço de armazenamento físico de dados principal (volume do Amazon EBS) usado pela instância. O espaço usado, juntamente com arquivos de dados, logs redo, auditoria, rastreamento e outros arquivos, conta em relação ao armazenamento alocado.
Você pode mover um arquivo de dados externo de um banco de dados Oracle para outro usando o pacote DBMS_FILE_TRANSFER
Depois de mover o arquivo de dados externo, você poderá criar uma tabela externa com ele. O seguinte exemplo cria uma tabela externa que usa o arquivo emp_xt_file1.txt
no diretório USER_DIR1.
CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;
Suponhamos que você queira migrar dados que estejam em uma instância de banco de dados Oracle do Amazon RDS para um arquivo de dados externo. Nesse caso, você pode preencher o arquivo de dados externo criando uma tabela externa e selecionando os dados da tabela no banco de dados. Por exemplo, a instrução SQL a seguir cria a tabela externa orders_xt
consultando a tabela orders
no banco de dados.
CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;
Neste exemplo, os dados são preenchidos no arquivo orders_xt.dmp
no diretório DATA_PUMP_DIR.
Gerar relatórios de performance com o AWR (Automatic Workload Repository)
Para reunir dados de performance e gerar relatórios, a Oracle recomenda o AWR (Automatic Workload Repository). O AWR requer o Oracle Database Enterprise Edition e uma licença para os pacotes de Diagnóstico e Ajuste. Para ativar o AWR, defina o parâmetro de inicialização CONTROL_MANAGEMENT_PACK_ACCESS
como DIAGNOSTIC
ou DIAGNOSTIC+TUNING
.
Trabalhar com relatórios do AWR no RDS
Para gerar relatórios do AWR, é possível executar scripts como awrrpt.sql
. Esses scripts são instalados no servidor host do banco de dados. No Amazon RDS, não é possível ter acesso direto ao host. No entanto, é possível obter cópias de scripts SQL de outra instalação do Oracle Database.
Também é possível usar o AWR executando procedimentos no pacote PL/SQL SYS.DBMS_WORKLOAD_REPOSITORY
. É possível usar esse pacote para gerenciar linhas de base e snapshots e também para exibir relatórios do ASH e do AWR. Por exemplo, para gerar um relatório do AWR em formato de texto, execute o procedimento DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
. No entanto, não é possível acessar esses relatórios da AWR a partir do AWS Management Console.
Ao trabalhar com o AWR, recomendamos usar os procedimentos rdsadmin.rdsadmin_diagnostic_util
. É possível usar esses procedimentos para gerar o seguinte:
-
Relatórios do AWR
-
Relatórios do ASH (Active Session History)
-
Relatórios do ADDM (Automatic Database Diagnostic Monitor)
-
Arquivos de despejo do Oracle Data Pump Export de dados do AWR
Os procedimentos rdsadmin_diagnostic_util
salvam os relatórios no sistema de arquivos da instância de banco de dados. É possível acessar esses relatórios no console. Também é possível acessar relatórios usando os procedimentos rdsadmin.rds_file_util
e acessar relatórios copiados para o Amazon S3 usando a opção Integração do S3. Para ter mais informações, consulte Leitura de arquivos no diretório de uma instância de banco de dados e Integração do Amazon S3.
É possível usar os procedimentos rdsadmin_diagnostic_util
nas seguintes versões de mecanismo de banco de dados do Amazon RDS for Oracle:
-
Todas as versões do Oracle Database 21c
-
19.0.0.0.ru-2020-04.rur-2020-04.r1 e versões posteriores do Oracle Database 19c
Para conferir um blog que explica como trabalhar com relatórios de diagnóstico em cenários de replicação, consulte Gerar relatórios do AWR para réplicas de leitura do Amazon RDS para Oracle
Parâmetros comuns para o pacote do utilitário de diagnóstico
Normalmente, você usa os seguintes parâmetros ao gerenciar o AWR e o ADDM com o pacote rdsadmin_diagnostic_util
.
Parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
|
— |
Sim |
O ID do snapshot inicial. |
|
|
— |
Sim |
O ID do snapshot final. |
|
|
|
Não |
O diretório no qual gravar o relatório ou para o qual exportar o arquivo. Se você especificar um diretório não padrão, o usuário que executa os procedimentos |
|
|
— |
Não |
Uma string que pode ser usada para distinguir entre backups para indicar a finalidade ou o uso de backups, como Você pode especificar até 30 caracteres. Os caracteres válidos são As etiquetas não precisam ser exclusivas, portanto, vários backups podem ter a mesma etiqueta. Se você não especificar uma etiqueta, o RMAN atribuirá uma etiqueta padrão automaticamente usando o formato O parâmetro
|
|
|
|
Não |
O formato do relatório. Os valores válidos são |
|
|
— |
Não |
Um identificador de banco de dados (DBID) válido mostrado na visualização |
Normalmente, você usa os seguintes parâmetros ao gerenciar o ASH com o pacote rdsadmin_diagnostic_util.
Parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
|
— |
Sim |
A hora de início da análise do ASH. |
|
|
— |
Sim |
A hora final da análise do ASH. |
|
|
|
Não |
A duração dos slots (em segundos) usados na seção "Atividade superior" do relatório do ASH. Se esse parâmetro não for especificado, o intervalo de tempo entre |
|
|
Nulo |
Não |
O ID da sessão. |
|
|
Nulo |
Não |
O ID do SQL. |
|
|
Nulo |
Não |
O nome da classe de espera. |
|
|
Nulo |
Não |
O hash do nome do serviço. |
|
|
Nulo |
Não |
O nome do módulo. |
|
|
Nulo |
Não |
O nome da ação. |
|
|
Nulo |
Não |
O ID específico do aplicativo da sessão do banco de dados. |
|
|
Nulo |
Não |
O ponto de entrada PL/SQL. |
Gerar um relatório do AWR
Para gerar um relatório do AWR, use o procedimento rdsadmin.rdsadmin_diagnostic_util.awr_report
.
O exemplo a seguir gera um relatório do AWR para o intervalo de snapshot 101–106. O arquivo de texto de saída é chamado de awrrpt_101_106.txt
. É possível acessar esse relatório no AWS Management Console.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
O exemplo a seguir gera um relatório HTML para o intervalo de snapshot 63–65. O arquivo HTML de saída é chamado de awrrpt_63_65.html
. O procedimento grava o relatório no diretório de banco de dados não padrão chamado de AWR_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
Extrair dados do AWR em um arquivo de despejo
Para extrair dados do AWR em um arquivo de despejo, use o procedimento rdsadmin.rdsadmin_diagnostic_util.awr_extract
.
O exemplo a seguir extrai o intervalo de snapshot 101–106. O arquivo de despejo de saída é chamado de awrextract_101_106.dmp
. É possível acessar esse arquivo por meio do console.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
O exemplo a seguir extrai o intervalo de snapshot 63–65. O arquivo de despejo de saída é chamado de awrextract_63_65.dmp
. O arquivo é armazenado no diretório de banco de dados não padrão chamado de AWR_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
Gerar um relatório do ADDM
Para gerar um relatório do ADDM, use o procedimento rdsadmin.rdsadmin_diagnostic_util.addm_report
.
O exemplo a seguir gera um relatório do ADDM para o intervalo de snapshot 101–106. O arquivo de texto de saída é chamado de addmrpt_101_106.txt
. É possível acessar o relatório por meio do console.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
O exemplo a seguir gera um relatório do ADDM para o intervalo de snapshot 63–65. O arquivo de texto de saída é chamado de addmrpt_63_65.txt
. O arquivo é armazenado no diretório de banco de dados não padrão chamado de ADDM_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
Gerar um relatório do ASH
Para gerar um relatório do ASH, use o procedimento rdsadmin.rdsadmin_diagnostic_util.ash_report
.
O exemplo a seguir gera um relatório do ASH que inclui os dados de 14 minutos atrás até a hora atual. O nome do arquivo de saída usa o formato ashrpt
, onde begin_time
end_time
.txt
e begin_time
usam o formato end_time
YYYYMMDDHH24MISS
. É possível acessar o arquivo por meio do console.
BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /
O exemplo a seguir gera um relatório do ASH que inclui os dados de 18 de novembro de 2019 às 18:07 a 18 de novembro de 2019 às 18h15. O nome do relatório HTML de saída é ashrpt_20190918180700_20190918181500.html
. O relatório é armazenado no diretório de banco de dados não padrão chamado de AWR_RPT_DUMP
.
BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'), end_time => TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'), report_type => 'html', dump_directory => 'AWR_RPT_DUMP'); END; /
Acessar relatórios do AWR no console ou na CLI
Para acessar relatórios do AWR ou exportar arquivos de despejo, é possível usar o AWS Management Console ou a AWS CLI. Para ter mais informações, consulte Como baixar um arquivo de log de banco de dados.
Ajuste de vínculos de banco de dados para uso com instâncias de bancos de dados em uma VPC
Para usar links de banco de dados Oracle com instâncias de bancos de dados do Amazon RDS na mesma nuvem privada virtual (VPC) ou em VPCs emparelhadas, as duas instâncias de bancos de dados devem ter uma rota válida entre elas. Verifique a rota válida entre as instâncias de bancos de dados usando suas tabelas de roteamento da VPC e a lista de controle de acesso (ACL) à rede.
O grupo de segurança de cada instância de banco de dados deve permitir a entrada e a saída da outra instância de banco de dados. As regras de entrada e saída podem se referir a security groups da mesma VPC ou de uma VPC emparelhada. Para ter mais informações, consulte Atualização dos seus grupos de segurança para referenciar grupos de segurança na VPC emparelhada.
Se você tiver configurado um servidor DNS personalizado usando os conjuntos de opções DHCP na sua VPC, seu servidor DNS personalizado deverá ser capaz de resolver o nome do destino do vínculo de banco de dados. Para ter mais informações, consulte Configuração de um servidor DNS personalizado.
Para ter mais informações sobre como usar vínculos de banco de dados com o Oracle Data Pump, consulte Importar usando o Oracle Data Pump.
Definir a edição padrão para uma instância de banco de dados
Você pode redefinir objetos de banco de dados em um ambiente privado chamado de edição. Você pode usar a redefinição com base na edição para atualizar os objetos de banco de dados de um aplicativo com tempo de inatividade mínimo.
Você pode definir a edição padrão de uma instância de banco de dados Oracle do Amazon RDS usando o procedimento do Amazon RDS rdsadmin.rdsadmin_util.alter_default_edition
.
O exemplo a seguir define a edição padrão para a instância de banco de dados Oracle do Amazon RDS como RELEASE_V1
.
EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');
O exemplo a seguir define a edição padrão para a instância de banco de dados Oracle do Amazon RDS como o padrão Oracle.
EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');
Para ter mais informações sobre a redefinição com base na edição Oracle, consulte About editions and edition-based redefinition
Habilitar a auditoria para a tabela SYS.AUD$
Para habilitar a auditoria na tabela de trilha de auditoria de banco de dados SYS.AUD$
, use o procedimento rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table
do Amazon RDS. A única propriedade de auditoria com suporte é ALL
. Não é possível auditar ou não auditar instruções ou operações individuais.
A habilitação da auditoria tem suporte para instâncias de banco de dados Oracle que executam as seguintes versões:
-
Oracle Database 21c (21.0.0)
-
Oracle Database 19c (19.0.0)
O procedimento audit_all_sys_aud_table
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
booliano |
true |
Não |
Defina como |
A consulta a seguir retorna a configuração de auditoria atual para SYS.AUD$
para um banco de dados:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
Os comandos a seguir habilitam a auditoria de ALL
em SYS.AUD$
BY ACCESS
.
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);
O comando a seguir habilita a auditoria de ALL
em SYS.AUD$
BY SESSION
.
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);
Para ter mais informações, consulte AUDIT (traditional auditing)
Desabilitar a auditoria para a tabela SYS.AUD$
Para desabilitar a auditoria na tabela de trilha de auditoria de banco de dados SYS.AUD$
, use o procedimento rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table
do Amazon RDS. Este procedimento não usa parâmetros.
A consulta a seguir retorna a configuração de auditoria atual para SYS.AUD$
para um banco de dados:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
O comando a seguir desabilita a auditoria de ALL
em SYS.AUD$
.
EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;
Para ter mais informações, consulte NOAUDIT (traditional auditing)
Limpar criações de índice online interrompidas
Para limpar criações de índice online com falha, use o procedimento rdsadmin.rdsadmin_dbms_repair.online_index_clean
do Amazon RDS.
O procedimento online_index_clean
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
binary_integer |
|
Não |
O ID do objeto do índice. Normalmente, é possível usar o ID do objeto do texto do erro ORA-08104. |
|
binary_integer |
|
Não |
Especifique Especifique |
O exemplo a seguir limpa uma criação de índice online com falha:
declare is_clean boolean; begin is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean( object_id => 1234567890, wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait ); end; /
Para ter mais informações, consulte ONLINE_INDEX_CLEAN function
Ignorar blocos corrompidos
Para ignorar blocos corrompidos durante as verificações de índices e tabelas, use o pacote rdsadmin.rdsadmin_dbms_repair
.
Os procedimentos a seguir encapsulam a funcionalidade do procedimento sys.dbms_repair.admin_table
e não usam parâmetros:
-
rdsadmin.rdsadmin_dbms_repair.create_repair_table
-
rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table
-
rdsadmin.rdsadmin_dbms_repair.drop_repair_table
-
rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table
-
rdsadmin.rdsadmin_dbms_repair.purge_repair_table
-
rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table
Os seguintes procedimentos usam o mesmo parâmetro que seus equivalentes no pacote DBMS_REPAIR
para bancos de dados Oracle:
-
rdsadmin.rdsadmin_dbms_repair.check_object
-
rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys
-
rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks
-
rdsadmin.rdsadmin_dbms_repair.rebuild_freelists
-
rdsadmin.rdsadmin_dbms_repair.segment_fix_status
-
rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks
Para ter mais informações sobre como lidar com a corrupção de banco de dados, consulte DBMS_REPARE
exemplo Responder a blocos corrompidos
Este exemplo mostra o fluxo de trabalho básico para responder a blocos corrompidos. Suas etapas dependerão do local e da natureza da corrupção do bloco.
Importante
Antes de tentar reparar blocos corrompidos, revise atentamente a documentação DBMS_REPARE
Como ignorar blocos corrompidos durante as verificações de índices e tabelas
-
Execute os procedimentos a seguir para criar tabelas de reparo se elas ainda não existirem.
EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
-
Execute os procedimentos a seguir para verificar registros existentes e depurá-los, caso seja apropriado.
SELECT COUNT(*) FROM SYS.REPAIR_TABLE; SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE; SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE; SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE; EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
-
Execute o procedimento a seguir para verificar blocos corrompidos.
SET SERVEROUTPUT ON DECLARE v_num_corrupt INT; BEGIN v_num_corrupt := 0; rdsadmin.rdsadmin_dbms_repair.check_object ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', corrupt_count => v_num_corrupt ); dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt)); END; / COL CORRUPT_DESCRIPTION FORMAT a30 COL REPAIR_DESCRIPTION FORMAT a30 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION FROM SYS.REPAIR_TABLE; SELECT SKIP_CORRUPT FROM DBA_TABLES WHERE OWNER = '&corruptionOwner' AND TABLE_NAME = '&corruptionTable';
-
Use o procedimento
skip_corrupt_blocks
para habilitar ou desabilitar a ação de ignorar as tabelas afetadas. Dependendo da situação, também pode ser necessário extrair dados para uma nova tabela e, depois, descartar a tabela que contém o bloco corrompido.Execute o procedimento a seguir para permitir que sejam ignoradas as tabelas corrompidas.
begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.skip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
Execute o procedimento a seguir para não permitir que sejam ignoradas as tabelas corrompidas.
begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
-
Quando tiver concluído todos os trabalhos de reparação, execute os procedimentos a seguir para descartar as tabelas reparadas.
EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;
Redimensionar espaços de tabela, arquivos de dados e arquivos temporários
Por padrão, espaços de tabela Oracle são criados com a opção de extensão automática ativada e sem um tamanho máximo. Devido a essas configurações padrão, os espaços de tabela às vezes podem aumentar demais. Recomendamos que você especifique um tamanho máximo apropriado em espaços de tabela permanentes e temporários e que monitore cuidadosamente o uso do espaço.
Redimensionar espaços de tabela permanentes
Para redimensionar um espaço de tabela permanente em uma instância de banco de dados do RDS para Oracle, use qualquer um dos seguintes procedimentos do Amazon RDS:
-
rdsadmin.rdsadmin_util.resize_datafile
-
rdsadmin.rdsadmin_util.autoextend_datafile
O procedimento resize_datafile
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O identificador do arquivo de dados a ser redimensionado. |
|
varchar2 |
— |
Sim |
O tamanho do arquivo de dados. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). |
O procedimento autoextend_datafile
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O identificador do arquivo de dados a ser redimensionado. |
|
varchar2 |
— |
Sim |
O estado do recurso de extensão automática. Especifique |
|
varchar2 |
— |
Não |
O tamanho do próximo incremento do arquivo de dados. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). |
|
varchar2 |
— |
Não |
O espaço máximo em disco permitido para extensão automática. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). Você pode especificar |
O exemplo a seguir redimensiona o arquivo de dados de 4 MB a 500 MB.
EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');
O exemplo a seguir desativa a opção de extensão automática do arquivo de dados 4. Ele também ativa a extensão automática para o arquivo de dados 5, com um incremento de 128 MB e sem tamanho máximo.
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');
Redimensionar espaços de tabela temporários
Para redimensionar espaços de tabela temporários em uma instância do RDS para Oracle, inclusive uma réplica de leitura, use qualquer um dos seguintes procedimentos do Amazon RDS:
-
rdsadmin.rdsadmin_util.resize_temp_tablespace
-
rdsadmin.rdsadmin_util.resize_tempfile
-
rdsadmin.rdsadmin_util.autoextend_tempfile
O procedimento resize_temp_tablespace
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
varchar2 |
— |
Sim |
O nome do espaço de tabela temporário a ser redimensionado. |
|
varchar2 |
— |
Sim |
O nome do espaço de tabela. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). |
O procedimento resize_tempfile
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O identificador do arquivo temporário a ser redimensionado. |
|
varchar2 |
— |
Sim |
O tamanho do arquivo temporário. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). |
O procedimento autoextend_tempfile
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
— |
Sim |
O identificador do arquivo temporário a ser redimensionado. |
|
varchar2 |
— |
Sim |
O estado do recurso de extensão automática. Especifique |
|
varchar2 |
— |
Não |
O tamanho do próximo incremento do arquivo temporário. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). |
|
varchar2 |
— |
Não |
O espaço máximo em disco permitido para extensão automática. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). Você pode especificar |
Os exemplos a seguir redimensionam um espaço de tabela temporário chamado TEMP
para o tamanho de 4 GB.
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');
O exemplo a seguir redimensiona um espaço de tabela temporário com base no arquivo temporário com o identificador de arquivo 1
para o tamanho de 2 MB.
EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');
O exemplo a seguir desativa a opção de extensão automática do arquivo temporário 1. Ele também define o tamanho máximo de extensão automática do arquivo temporário de 2 a 10 GB, com um incremento de 100 MB.
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');
Para ter mais informações sobre réplicas de leitura para instâncias de banco de dados Oracle, consulte Trabalhar com réplicas de leitura do Amazon RDS para Oracle.
Limpar a lixeira
Quando você remove uma tabela, o banco de dados Oracle não remove imediatamente o espaço de armazenamento. O banco de dados renomeia a tabela e coloca ela e todos os objetos associados em uma lixeira. A limpeza da lixeira remove esses itens e libera o espaço de armazenamento.
Para limpar toda a lixeira, use o procedimento rdsadmin.rdsadmin_util.purge_dba_recyclebin
do Amazon RDS. No entanto, este procedimento não pode limpar a lixeira de objetos SYS
e RDSADMIN
. Se você precisar limpar esses objetos, entre em contato com o AWSSupport.
O exemplo a seguir limpa toda a lixeira.
EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;
Definir os valores padrão exibidos para a redação completa
Para alterar os valores exibidos padrão para a redação completa na instância Oracle do Amazon RDS, use o procedimento rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val
do Amazon RDS. Observe que você cria uma política de redação com o pacote DBMS_REDACT
do PL/SQL, conforme explicado na documentação do Oracle Database. O procedimento dbms_redact_upd_full_rdct_val
especifica os caracteres a serem exibidos para diferentes tipos de dados afetados por uma política existente.
O procedimento dbms_redact_upd_full_rdct_val
tem os seguintes parâmetros.
Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição |
---|---|---|---|---|
|
número |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
binary_float |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
binary_double |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
char |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
varchar2 |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
nchar |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
nvarchar2 |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
date |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
timestamp |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
timestamp with time zone |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
blob |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
clob |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
|
nclob |
Null |
Não |
Modifica o valor padrão para colunas do tipo de dados |
O exemplo a seguir altera o valor editado padrão para * referente ao tipo de dados CHAR
:
EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');
O exemplo a seguir altera os valores editados padrão para tipos de dados NUMBER
, DATE
e CHAR
:
BEGIN rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val( p_number_val=>1, p_date_val=>to_date('1900-01-01','YYYY-MM-DD'), p_varchar_val=>'X'); END; /
Depois de alterar os valores padrão para a redação completa com o procedimento dbms_redact_upd_full_rdct_val
, reinicialize a instância de banco de dados para que a alteração seja implementada. Para ter mais informações, consulte Reinicializar uma instância de banco de dados .