Ejecución de tareas comunes de base de datos para instancias de base de datos
A continuación, puede encontrar cómo realizar ciertas tareas comunes de DBA relacionadas con las bases de datos en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. Amazon RDS también restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados.
Temas
- Cambio del nombre global de una base de datos
- Creación y especificación del tamaño de los espacios de tablas
- Configuración del espacio de tabla predeterminado
- Configuración del espacio de tabla temporal predeterminado
- Creación de un espacio de tablas temporal en el almacén de instancias
- Adición de un archivo temporal al almacén de instancias en una réplica de lectura
- Eliminación de archivos temporales en una réplica de lectura
- Creación de un punto de comprobación de una base de datos
- Configuración de la recuperación distribuida
- Configuración de la zona horaria de la base de datos
- Uso de tablas externas de Oracle
- Generación de informes de rendimiento con Automatic Workload Repository (AWR)
- Ajuste de los enlaces de base de datos para usarlos con las instancias de bases de datos de una VPC
- Configuración de la edición predeterminada para una instancia de base de datos
- Activación de la auditoría para la tabla SYS.AUD$
- Desactivación de la auditoría para la tabla SYS.AUD$
- Limpieza de construcciones interrumpidas de índices en línea
- Omisión de bloques dañados
- Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales
- Depuración de la Papelera de reciclaje
- Configuración de los valores mostrados de forma predeterminada para la redacción completa
Cambio del nombre global de una base de datos
Utilice el procedimiento de Amazon RDS para cambiar el nombre global de una base de dato rdsadmin.rdsadmin_util.rename_global_name
. El procedimiento rename_global_name
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar2 |
— |
Sí |
El nuevo nombre global de la base de datos. |
La base de datos debe estar abierta para que se produzca el cambio de nombre. Para obtener más información acerca de cómo cambiar el nombre global de una base de datos, consulte ALTER DATABASE
En el siguiente ejemplo se cambia el nombre global de una base de datos a new_global_name
.
EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => '
new_global_name
');
Creación y especificación del tamaño de los espacios de tablas
Amazon RDS solo admite los archivos administrados de Oracle (OMF) para los archivos de datos, los archivos de registro y los archivos de control. Cuando se crean archivos de datos y archivos de registro, no se pueden especificar los nombres de los archivos físicos.
De forma predeterminada, si no especifica el tamaño de archivo de datos, los espacios de tabla se crean con el tamaño predeterminado de AUTOEXTEND ON
y sin tamaño máximo. En el siguiente ejemplo, el espacio de tablas users1
es ampliable automáticamente.
CREATE TABLESPACE
users1
;
Debido a estos valores predeterminados, los espacios de tabla pueden llegar a consumir todo el almacenamiento asignado. Recomendamos que especifique un tamaño máximo adecuado para los espacios de tabla permanentes y temporales, y que monitorice cuidadosamente el uso del espacio.
En el siguiente ejemplo, se crea un espacio de tabla denominado users2
con un tamaño inicial de 1 gigabyte. Dado que se especifica el tamaño de un archivo de datos, pero no se especifica AUTOEXTEND ON
, el espacio de tablas no se puede ampliar automáticamente.
CREATE TABLESPACE
users2
DATAFILE SIZE1G
;
En el siguiente ejemplo, se crea un espacio de tabla denominado users3
con un tamaño inicial de 1 gigabyte, con la ampliación automática activada y un tamaño máximo de 10 gigabytes.
CREATE TABLESPACE
users3
DATAFILE SIZE1G
AUTOEXTEND ON MAXSIZE10G
;
En el siguiente ejemplo, se crea un espacio de tabla temporal denominado temp01
.
CREATE TEMPORARY TABLESPACE
temp01
;
Puede cambiar el tamaño de un espacio de tabla bigfile utilizando ALTER TABLESPACE
. Puede especificar el tamaño en kilobytes (K), megabytes (M), gigabytes (G) o terabytes (T). En el siguiente ejemplo, se cambia el tamaño de un espacio de tabla bigfile denominado users_bf
a 200 MB.
ALTER TABLESPACE
users_bf
RESIZE200M
;
En el siguiente ejemplo, se añade un archivo de datos adicional a un espacio de tabla smallfile denominado users_sf
.
ALTER TABLESPACE
users_sf
ADD DATAFILE SIZE100000M
AUTOEXTEND ON NEXT250m
MAXSIZEUNLIMITED
;
Configuración del espacio de tabla predeterminado
Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla predeterminad rdsadmin.rdsadmin_util.alter_default_tablespace
. El procedimiento alter_default_tablespace
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar |
— |
Sí |
El nombre del espacio de tabla predeterminado. |
En el siguiente ejemplo se establece el espacio de tabla predeterminado en users2
:
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => '
users2
');
Configuración del espacio de tabla temporal predeterminado
Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla temporal predeterminad rdsadmin.rdsadmin_util.alter_default_temp_tablespace
. El procedimiento alter_default_temp_tablespace
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar |
— |
Sí |
El nombre del espacio de tabla temporal predeterminado. |
En el siguiente ejemplo se establece el espacio de tabla temporal predeterminado en temp01
.
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => '
temp01
');
Creación de un espacio de tablas temporal en el almacén de instancias
Utilice el procedimiento rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace
de Amazon RDS para crear un espacio de tabla temporal en el almacén de instancias. El procedimiento create_inst_store_tmp_tblspace
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar |
— |
Sí |
El nombre del espacio de tabla temporal. |
En el siguiente ejemplo, se crea el espacio de tablas temporal temp01
en el almacén de instancias.
EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => '
temp01
');
importante
Cuando se ejecuta rdsadmin_util.create_inst_store_tmp_tblspace
, el espacio de tabla temporal recién creado no se establece automáticamente como el espacio de tabla temporal predeterminado. Para configurarlo como predeterminado, consulte Configuración del espacio de tabla temporal predeterminado.
Para obtener más información, consulte Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle.
Adición de un archivo temporal al almacén de instancias en una réplica de lectura
Cuando crea un espacio de tabla temporal en una instancia de base de datos principal, la réplica de lectura no crea archivos temporales. Supongamos que existe un espacio de tablas temporal vacío en la réplica de lectura por cualquiera de los siguientes motivos:
-
Eliminó un archivo temporal del espacio de tablas de su réplica de lectura. Para obtener más información, consulte Eliminación de archivos temporales en una réplica de lectura.
-
Creó un nuevo espacio de tablas temporal en la instancia de base de datos principal. En este caso, RDS para Oracle sincroniza los metadatos con la réplica de lectura.
Puedes añadir un archivo temporal al espacio de tablas temporal vacío y almacenar el archivo temporal en el almacén de instancias. Utilice el procedimiento rdsadmin.rdsadmin_util.add_inst_store_tempfile
de Amazon RDS para crear un archivo temporal en el almacén de instancias. Este procedimiento solo se puede utilizar en una réplica de lectura. El procedimiento tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar |
— |
Sí |
El nombre del espacio de tabla temporal de la réplica de lectura. |
En el siguiente ejemplo, el espacio de tabla temporal vacío temp01
existe en la réplica de lectura. Ejecute el siguiente comando para crear un archivo temporal para este espacio de tabla y almacénelo en el almacén de instancias.
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => '
temp01
');
Para obtener más información, consulte Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle.
Eliminación de archivos temporales en una réplica de lectura
No puede eliminar un espacio de tabla temporal existente en una réplica de lectura. Puede cambiar el almacenamiento del archivo temporal en una réplica de lectura de Amazon EBS al almacén de instancias o del almacén de instancias a Amazon EBS. Para lograr estos objetivos, haga lo siguiente:
-
Elimine los archivos temporales actuales en el espacio de tablas temporal de la réplica de lectura.
-
Cree nuevos archivos temporales en un almacenamiento diferente.
Utilice el procedimiento rdsadmin.rdsadmin_util. drop_replica_tempfiles
de Amazon RDS para eliminar archivos temporales. Este procedimiento solo se puede utilizar en réplicas de lectura. El procedimiento drop_replica_tempfiles
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar |
— |
Sí |
El nombre del espacio de tabla temporal de la réplica de lectura. |
Suponga que un espacio de tablas temporal denominado temp01
reside en el almacén de instancias de su réplica de lectura. Elimine todos los archivos temporales de este espacio de tabla ejecutando el siguiente comando.
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => '
temp01
');
Para obtener más información, consulte Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle.
Creación de un punto de comprobación de una base de datos
Utilice el procedimiento de Amazon RDS para crear un punto de comprobación de la base dato rdsadmin.rdsadmin_util.checkpoint
. El procedimiento checkpoint
no tiene ningún parámetro.
En el siguiente ejemplo, se crea un punto de comprobación de la base de datos.
EXEC rdsadmin.rdsadmin_util.checkpoint;
Configuración de la recuperación distribuida
Utilice los procedimientos rdsadmin.rdsadmin_util.enable_distr_recovery
y disable_distr_recovery
de Amazon RDS para configurar la recuperación distribuida. Los procedimientos no tienen ningún parámetro.
En el siguiente ejemplo se activa la recuperación distribuida.
EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;
En el siguiente ejemplo se desactiva la recuperación distribuida.
EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;
Configuración de la zona horaria de la base de datos
Puede definir la zona horaria de la base de datos de Amazon RDS for Oracle de las siguientes maneras:
-
La opción
Timezone
La opción
Timezone
cambia la zona horaria en el nivel del host y afecta a todos los valores y columnas de fecha, comoSYSDATE
. Para obtener más información, consulte Zona horaria Oracle. -
El procedimiento de Amazon RDS
rdsadmin.rdsadmin_util.alter_db_time_zone
El procedimiento
alter_db_time_zone
solo cambia la zona horaria de determinados tipos de datos y no cambiaSYSDATE
. En la documentación de Oraclese especifican otras restricciones para configurar la zona horaria.
nota
También puede establecer la zona horaria predeterminada para Oracle Scheduler. Para obtener más información, consulte Configuración de zona horaria para trabajos de Oracle Scheduler.
El procedimiento alter_db_time_zone
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar2 |
— |
Sí |
La nueva zona horaria expresada como una región con nombre o un desfase absoluto con relación a la hora universal coordinada (UTC). Los desfases válidos oscilan entre -12:00 y +14:00. |
En el siguiente ejemplo se cambia la zona horaria a UTC más tres horas.
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '
+3:00
');
En el siguiente ejemplo, se cambia la zona horaria a la de la región África/Argel.
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '
Africa/Algiers
');
Después de cambiar la zona horaria utilizando el procedimiento alter_db_time_zone
, reinicie su instancia de base de datos para que el cambio surta efecto. Para obtener más información, consulte Reinicio de una instancia de base de datos. Para obtener información acerca de cómo actualizar las zonas horarias, consulte Consideraciones sobre la zona horaria.
Uso de tablas externas de Oracle
Las tablas externas de Oracle son tablas con datos no incluidos en la base de datos. Los datos se encuentran en archivos externos a los que la base de datos puede acceder. Las tablas externas le permiten acceder a datos sin cargarlos en la base de datos. Para obtener más información sobre las tablas externas, consulte la sección Managing External Tables
Amazon RDS le permite almacenar archivos de tablas externas en objetos de directorio. Puede crear un objeto de directorio o utilizar uno predefinido en la base de datos Oracle como, por ejemplo, el directorio DATA_PUMP_DIR. Para obtener información sobre la creación de objetos de directorio, consulte Creación y eliminación de directorios en el espacio de almacenamiento de datos principal. Puede consultar la vista ALL_DIRECTORIES para elaborar una lista de los objetos de directorio de la instancia de base de datos de Oracle en Amazon RDS.
nota
Los objetos de directorio apuntan hacia el espacio de almacenamiento de datos principal (volumen de Amazon EBS) utilizado por la instancia. El espacio utilizado, junto con los archivos de datos, registros REDO, archivos de auditoría, de seguimiento y de otro tipo, cuenta a la hora de calcular el almacenamiento asignado.
Puede desplazar un archivo de datos externos de una base de datos Oracle a otra base de datos utilizando el paquete DBMS_FILE_TRANSFER
Después de trasladar el archivo de datos externos, este le permite crear una tabla externa. En el siguiente ejemplo se crea una tabla externa que usa el archivo emp_xt_file1.txt
en el directorio 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;
Suponga que quiere trasladar datos de una instancia de base de datos de Oracle en Amazon RDS a un archivo de datos externos. En ese caso, puede rellenar el archivo de datos externos creando una tabla externa y seleccionando los datos de la tabla en la base de datos. Por ejemplo, la siguiente instrucción SQL crea la tabla externa orders_xt
mediante la consulta a la tabla orders
de la base de datos.
CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;
En este ejemplo, los datos se rellenan en el archivo orders_xt.dmp
del directorio DATA_PUMP_DIR.
Generación de informes de rendimiento con Automatic Workload Repository (AWR)
Para recopilar datos de rendimiento y generar informes, Oracle recomienda Automatic Workload Repository (AWR). AWR requiere Oracle Database Enterprise Edition y una licencia para los paquetes Diagnostics and Tuning. Para habilitar AWR, establezca el parámetro de inicialización CONTROL_MANAGEMENT_PACK_ACCESS
en DIAGNOSTIC
o DIAGNOSTIC+TUNING
.
Trabajar con informes de AWR en RDS
Para generar informes de AWR, puede ejecutar scripts como awrrpt.sql
. Estos scripts se instalan en el servidor host de la base de datos. En Amazon RDS, no tiene acceso directo al host. Sin embargo, puede obtener copias de scripts SQL desde otra instalación de Oracle Database.
También puede utilizar AWR ejecutando procedimientos en el paquete SYS.DBMS_WORKLOAD_REPOSITORY
PL/SQL. Puede utilizar este paquete para administrar bases de referencia e instantáneas, así como para mostrar informes ASH y AWR. Por ejemplo, para generar un informe AWR en formato de texto, ejecute el procedimiento DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
. Sin embargo, no puede acceder a estos informes de AWR desde la AWS Management Console.
Cuando se trabaja con AWR, se recomienda utilizar los procedimientos rdsadmin.rdsadmin_diagnostic_util
. Puede utilizar estos procedimientos para generar lo siguiente:
-
Informes AWR
-
Informes de Historial de Sesiones Activas (ASH)
-
Informes del Monitor de diagnóstico automático de bases de datos (ADDM)
-
Archivos de volcado de datos AWR de Oracle Data Pump Export
Los procedimientos rdsadmin_diagnostic_util
guardan los informes en el sistema de archivos de instancia de base de datos. Puede acceder a estos informes desde la consola. También puede acceder a los informes mediante los procedimientos rdsadmin.rds_file_util
y puede acceder a los informes que se copian en Amazon S3 mediante la opción Integración de S3. Para obtener más información, consulte Lectura de archivos de un directorio de instancia de base de datos y Integración de Amazon S3.
Puede utilizar los procedimientos rdsadmin_diagnostic_util
en las siguientes versiones del motor para bases de datos de Amazon RDS for Oracle:
-
Todas las versiones de Oracle Database 21c
-
19.0.0.0.ru-2020-04.rur-2020-04.r1 Oracle Database 19c y versiones posteriores
Para ver un blog que explica cómo trabajar con los informes de diagnóstico en un escenario de replicación, consulte Generate AWR reports for Amazon RDS for Oracle read replicas
Parámetros comunes para el paquete de utilidad de diagnóstico
Normalmente se utilizan los siguientes parámetros al administrar AWR y ADDM con el paquete rdsadmin_diagnostic_util
.
Parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
|
— |
Sí |
El ID de la instantánea inicial. |
|
|
— |
Sí |
El ID de la instantánea final. |
|
|
|
No |
El directorio en el que se escribe el informe o el archivo de exportación. Si especifica un directorio no predeterminado, el usuario que ejecuta los procedimientos |
|
|
— |
No |
Una cadena que se puede usar para distinguir entre las copias de seguridad para indicar el propósito o el uso de las copias de seguridad, como Puede especificar hasta 30 caracteres. Los caracteres válidos son Las etiquetas no tienen que ser únicas, por lo que varias copias de seguridad pueden tener la misma etiqueta. Si no se especifica una etiqueta, RMAN asigna de forma automática una etiqueta predeterminada con el formato El parámetro
|
|
|
|
No |
El formato del informe. Los valores válidos son |
|
|
— |
No |
Un identificador de base de datos válido (DBID) que se muestra en la vista |
Normalmente, se utilizan los siguientes parámetros al administrar ASH con el paquete rdsadmin_diagnostic_util.
Parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
|
— |
Sí |
La hora de inicio del análisis ASH. |
|
|
— |
Sí |
La hora de finalización del análisis ASH. |
|
|
|
No |
Duración de las ranuras (en segundos) utilizadas en la sección «Actividad principal» del informe ASH. Si no se especifica este parámetro, el intervalo de tiempo entre |
|
|
Null |
No |
El ID de sesión. |
|
|
Null |
No |
El ID de SQL. |
|
|
Null |
No |
El nombre de la clase de espera. |
|
|
Null |
No |
El hash del nombre del servicio. |
|
|
Null |
No |
El nombre del módulo. |
|
|
Null |
No |
El nombre de la acción. |
|
|
Null |
No |
El ID específico de la aplicación de la sesión de base de datos. |
|
|
Null |
No |
El punto de entrada PL/SQL. |
Generación de un informe AWR
Para generar un informe AWR, utilice el procedimiento rdsadmin.rdsadmin_diagnostic_util.awr_report
.
En el ejemplo siguiente se genera un informe AWR para el rango de instantáneas 101–106. El archivo de texto de salida se denomina awrrpt_101_106.txt
. Puede obtener acceso a este informe desde la AWS Management Console.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
En el ejemplo siguiente se genera un informe HTML para el rango de instantáneas 63–65. El archivo HTML de salida se denomina awrrpt_63_65.html
. El procedimiento escribe el informe en el directorio de base de datos no predeterminado denominado AWR_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
Extracción de datos de AWR en un archivo de volcado
Para extraer datos de AWR en un archivo de volcado, utilice el procedimiento rdsadmin.rdsadmin_diagnostic_util.awr_extract
.
En el siguiente ejemplo se extrae el rango de instantáneas 101–106. El archivo de volcado de salida se denomina awrextract_101_106.dmp
. Puede acceder a este archivo a través de la consola.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
En el siguiente ejemplo se extrae el rango de instantáneas 63–65. El archivo de volcado de salida se denomina awrextract_63_65.dmp
. El archivo se almacena en el directorio de base de datos no predeterminado denominado AWR_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
Generación de un informe ADDM
Para generar un informe ADDM, utilice el procedimiento rdsadmin.rdsadmin_diagnostic_util.addm_report
.
En el ejemplo siguiente se genera un informe ADDM para el rango de instantáneas 101–106. El archivo de texto de salida se denomina addmrpt_101_106.txt
. Puede acceder al informe a través de la consola.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
En el ejemplo siguiente se genera un informe ADDM para el rango de instantáneas 63–65. El archivo de texto de salida se denomina addmrpt_63_65.txt
. El archivo se almacena en el directorio de base de datos no predeterminado denominado ADDM_RPT_DUMP
.
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
Generación de un informe ASH
Para generar un informe ASH, utilice el procedimiento rdsadmin.rdsadmin_diagnostic_util.ash_report
.
En el ejemplo siguiente se genera un informe ASH que incluye los datos desde hace 14 minutos hasta la hora actual. El nombre del archivo de salida utiliza el formato ashrpt
, donde begin_time
end_time
.txt
y begin_time
utilizan el formato end_time
YYYYMMDDHH24MISS
. Puede acceder al archivo a través de la consola.
BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /
En el siguiente ejemplo se genera un informe ASH que incluye los datos del 18 de noviembre de 2019, a las 6:07 PM hasta el 18 de noviembre de 2019, a las 6:15 PM. El nombre del informe HTML de salida es ashrpt_20190918180700_20190918181500.html
. El informe se almacena en el directorio de base de datos no predeterminado denominado 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; /
Acceso a los informes de AWR desde la consola o la CLI
Para acceder a informes de AWR o exportar archivos de volcado, puede utilizar la AWS Management Console o la AWS CLI. Para obtener más información, consulte Descarga de un archivo de registro de base de datos.
Ajuste de los enlaces de base de datos para usarlos con las instancias de bases de datos de una VPC
Para utilizar enlaces de base de datos Oracle con instancias de bases de datos de Amazon RDS dentro de la misma nube virtual privada (VPC) o VPC interconectadas, debe existir una ruta válida entre las dos instancias de bases de datos. Compruebe que existe una ruta válida entre las instancias de bases de datos utilizando las tablas de enrutamiento de VPC y la lista de control de acceso (ACL) de red.
El grupo de seguridad de cada instancia de base de datos debe permitir la entrada y la salida desde la otra instancia de base de datos. Las reglas de entrada y salida pueden referirse a grupos de seguridad de la misma VPC o de una VPC interconectada. Para obtener más información, consulte Actualización de los grupos de seguridad para que hagan referencia a grupos de la VPC del mismo nivel.
Si ha configurado un servidor DNS personalizado mediante los conjuntos de opciones de DHCP en la VPC, el servidor DNS personalizado debe ser capaz de resolver el nombre del destino del enlace de base de datos. Para obtener más información, consulte Configuración de un servidor DNS personalizado.
Para obtener más información acerca del uso de los enlaces de base de datos con Oracle Data Pump, consulte Importación mediante Oracle Data Pump.
Configuración de la edición predeterminada para una instancia de base de datos
Puede redefinir objetos de la base de datos en un entorno privado llamado edición. Puede utilizar la redefinición basada en la edición para actualizar los objetos de la base de datos de una aplicación con un tiempo de inactividad mínimo.
Puede definir la edición predeterminada de una instancia de base de datos de Oracle en Amazon RDS mediante el uso del procedimiento rdsadmin.rdsadmin_util.alter_default_edition
de Amazon RDS.
En el siguiente ejemplo se define la edición predeterminada de la instancia de base de datos de Oracle en Amazon RDS en RELEASE_V1
.
EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');
En el siguiente ejemplo se vuelve a definir la edición predeterminada de la instancia de base de datos de Oracle en Amazon RDS como la edición predeterminada de Oracle.
EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');
Para obtener más información sobre la redefinición basada en la edición de Oracle, consulte About Editions and Edition-Based Redefinition
Activación de la auditoría para la tabla SYS.AUD$
Utilice el procedimiento SYS.AUD$
de Amazon RDS para activar la auditoría en la tabla de prueba de auditoría de base datos rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table
. La única propiedad de auditoría admitida es ALL
. No puede auditar o no auditar declaraciones u operaciones individuales.
La activación de la auditoría se admite en instancias de base de datos Oracle que ejecutan las siguientes versiones:
-
Oracle Database 21c (21.0.0)
-
Oracle Database 19c (19.0.0)
El procedimiento audit_all_sys_aud_table
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
booleano |
true |
No |
Establézcalo en |
La siguiente consulta devuelve la configuración de auditoría actual de SYS.AUD$
para una base de datos.
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
Los siguientes comandos activan la auditoría de ALL
en 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);
Los siguientes comandos activan la auditoría de ALL
en SYS.AUD$
BY SESSION
.
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);
Para más información, consulte AUDIT (Traditional Auditing)
Desactivación de la auditoría para la tabla SYS.AUD$
Utilice el procedimiento SYS.AUD$
de Amazon RDS para desactivar la auditoría en la tabla de prueba de auditoría de base de datos rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table
. Este procedimiento no acepta parámetros.
La siguiente consulta devuelve la configuración de auditoría actual de SYS.AUD$
para una base de datos:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
El siguiente comando desactiva la auditoría de ALL
en SYS.AUD$
.
EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;
Para más información, consulte NO AUDIT (Traditional Auditing)
Limpieza de construcciones interrumpidas de índices en línea
Para limpiar construcciones de índices online fallidas, utilice el procedimiento de Amazon RDS rdsadmin.rdsadmin_dbms_repair.online_index_clean
.
El procedimiento online_index_clean
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
entero_binario |
|
No |
El ID de objeto del índice. Por lo general, puede usar el ID de objeto del texto de error ORA-08104. |
|
entero_binario |
|
No |
Especifique Especifique |
El siguiente ejemplo limpia una construcción de índice online fallida:
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 obtener más información, consulte ONLINE_INDEX_CLEAN Function
Omisión de bloques dañados
Para omitir bloques dañados durante análisis de índice y tablas, utilice el paquete rdsadmin.rdsadmin_dbms_repair
.
Los siguientes procedimientos encapsulan la funcionalidad del procedimiento sys.dbms_repair.admin_table
y no toman 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
Los siguientes procedimientos toman los mismos parámetros que sus contrapartes en el paquete DBMS_REPAIR
para bases de datos de 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 obtener más información sobre la gestión de daños en la base de datos, consulte DBMS_REPAIR
ejemplo Respuesta a bloques dañados
En este ejemplo se muestra el flujo de trabajo básico para responder a bloques dañados. Sus pasos dependerán de la ubicación y la naturaleza del daño de sus bloques.
importante
Antes de intentar reparar bloques dañados, revise detenidamente la documentación de DBMS_REPAIR
Para omitir bloques dañados durante análisis de índices y tablas
-
Ejecute los siguientes procedimientos para crear tablas de reparación si aún no existen.
EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
-
Ejecute los siguientes procedimientos para verificar los registros existentes y purgarlos, si corresponde.
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;
-
Ejecute el siguiente procedimiento para verificar si hay bloques dañados.
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';
-
Utilice el procedimiento
skip_corrupt_blocks
para habilitar o desactivar la omisión de daños de las tablas afectadas. En función de la situación, es posible que también necesite extraer datos en una tabla nueva y, a continuación, soltar la tabla que contiene el bloque dañado.Ejecute el siguiente procedimiento para habilitar la omisión de daños en tablas afectadas.
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';
Ejecute el siguiente procedimiento para desactivar la omisión de daños.
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';
-
Cuando haya completado todo el trabajo de reparación, ejecute los siguientes procedimientos para eliminar las tablas de reparación.
EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;
Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales
De forma predeterminada, los espacios de tabla de Oracle se crean con la ampliación automática activada y sin tamaño máximo. Debido a estos valores predeterminados, los espacios de tabla pueden llegar a ser demasiado grandes en algunos casos. Recomendamos que especifique un tamaño máximo adecuado para los espacios de tabla permanentes y temporales, y que monitorice cuidadosamente el uso del espacio.
Redimensionamiento de espacios de tabla permanentes
Para cambiar el tamaño de un espacio de tabla permanente en una instancia de base de datos de RDS para Oracle, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
-
rdsadmin.rdsadmin_util.resize_datafile
-
rdsadmin.rdsadmin_util.autoextend_datafile
El procedimiento resize_datafile
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
número |
— |
Sí |
El identificador del archivo de datos que se va a cambiar de tamaño. |
|
varchar2 |
— |
Sí |
El tamaño del archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). |
El procedimiento autoextend_datafile
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
número |
— |
Sí |
El identificador del archivo de datos que se va a cambiar de tamaño. |
|
varchar2 |
— |
Sí |
El estado de la característica de ampliación automática. Especifique |
|
varchar2 |
— |
No |
El tamaño del incremento del siguiente archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). |
|
varchar2 |
— |
No |
El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar |
En el ejemplo siguiente, se cambia el tamaño del archivo de datos de 4 a 500 MB.
EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');
En el siguiente ejemplo, se desactiva la ampliación automática del archivo de datos 4. También se activa la ampliación automática para el archivo de datos 5, con un incremento de 128 MB y sin tamaño máximo.
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');
Redimensionamiento de espacios de tabla temporales
Para redimensionar un espacio de tabla temporal en una instancia de base de datos de RDS para Oracle, incluida una réplica de lectura, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
-
rdsadmin.rdsadmin_util.resize_temp_tablespace
-
rdsadmin.rdsadmin_util.resize_tempfile
-
rdsadmin.rdsadmin_util.autoextend_tempfile
El procedimiento resize_temp_tablespace
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
varchar2 |
— |
Sí |
El nombre del espacio de tabla temporal al que se va a cambiar el tamaño. |
|
varchar2 |
— |
Sí |
El tamaño del espacio de tabla. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). |
El procedimiento resize_tempfile
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
número |
— |
Sí |
El identificador del archivo temporal al que se va a cambiar el tamaño. |
|
varchar2 |
— |
Sí |
El tamaño del archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). |
El procedimiento autoextend_tempfile
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
número |
— |
Sí |
El identificador del archivo temporal al que se va a cambiar el tamaño. |
|
varchar2 |
— |
Sí |
El estado de la característica de ampliación automática. Especifique |
|
varchar2 |
— |
No |
El tamaño del incremento del siguiente archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). |
|
varchar2 |
— |
No |
El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar |
Los siguientes ejemplos cambian el tamaño de un espacio de tabla temporal llamado TEMP
hasta 4 GB.
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');
El siguiente ejemplo cambia el tamaño de un espacio de tabla temporal en función del archivo temporal con el identificador de archivo 1
hasta los 2 MB.
EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');
En el siguiente ejemplo, se desactiva la ampliación automática del archivo temporal 1. También se establece el tamaño máximo de ampliación automática del archivo temporal de 2 a 10 GB, con un incremento de 100 MB.
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');
Para obtener más información acerca de las réplicas de lectura para las instancias de base de datos de Oracle, consulte Trabajo con las réplicas de lectura para Amazon RDS para Oracle.
Depuración de la Papelera de reciclaje
Cuando se elimina una tabla, la base de datos Oracle no elimina inmediatamente su espacio de almacenamiento. La base de datos cambia el nombre de la tabla y la coloca junto con los objetos asociados en una papelera de reciclaje. Al eliminar la papelera de reciclaje, se eliminan estos elementos y se libera su espacio de almacenamiento.
Para eliminar toda la papelera de reciclaje, utilice el procedimiento rdsadmin.rdsadmin_util.purge_dba_recyclebin
de Amazon RDS. Sin embargo, este procedimiento no puede eliminar la papelera de reciclaje de objetos SYS
y RDSADMIN
. Si necesita eliminar estos objetos, contáctese con AWS Support.
En el ejemplo siguiente se elimina toda la papelera de reciclaje.
EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;
Configuración de los valores mostrados de forma predeterminada para la redacción completa
Para cambiar los valores mostrados de forma predeterminada para la redacción completa en la instancia de Oracle de Amazon RDS, use el procedimiento de Amazon RDS rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val
. Tenga en cuenta que crea una política de redacción con el paquete PL/SQL DBMS_REDACT
, tal y como se explica en la documentación de Oracle Database. El procedimiento dbms_redact_upd_full_rdct_val
especifica los caracteres que se mostrarán para los diferentes tipos de datos afectados por una política actual.
El procedimiento dbms_redact_upd_full_rdct_val
tiene los siguientes parámetros.
Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción |
---|---|---|---|---|
|
number |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
binary_float |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
binary_double |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
char |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
varchar2 |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
nchar |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
nvarchar2 |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
date |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
Marca de tiempo |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
timestamp with time zone |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
blob |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
clob |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
|
nclob |
Nulo |
No |
Modifica el valor predeterminado de las columnas del tipo de datos |
El siguiente ejemplo cambia el valor redactado predeterminado a * para el tipo de datos CHAR
:
EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');
El siguiente ejemplo cambia los valores redactados predeterminados para los tipos de datos NUMBER
, DATE
y 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; /
Después de modificar los valores predeterminados para la redacción completa con el procedimiento dbms_redact_upd_full_rdct_val
, reinicie la instancia de base de datos para que el cambio surta efecto. Para obtener más información, consulte Reinicio de una instancia de base de datos.