Ejecución de tareas comunes de base de datos para instancias de base de datos - Amazon Relational Database Service

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.

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

p_new_global_name

varchar2

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 la documentación de Oracle.

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 SIZE 1G;

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 SIZE 1G AUTOEXTEND ON MAXSIZE 10G;

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 RESIZE 200M;

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 SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

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

tablespace_name

varchar

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

tablespace_name

varchar

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

p_tablespace_name

varchar

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

p_tablespace_name

varchar

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:

  1. Elimine los archivos temporales actuales en el espacio de tablas temporal de la réplica de lectura.

  2. 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

p_tablespace_name

varchar

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, como SYSDATE. 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 cambia SYSDATE. En la documentación de Oracle se 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

p_new_tz

varchar2

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 en la documentación de Oracle.

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 o el paquete UTL_FILE. El archivo de datos externos se traslada de un directorio en la base de datos de origen al directorio especificado en la base de datos de destino. Para obtener más información acerca del uso de DBMS_FILE_TRANSFER, consulte Importación mediante Oracle Data Pump.

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

  • 12.2.0.1.ru-2020-04.rur-2020-04.r1 Oracle Database 12c versión 2 (12.2) y versiones posteriores

  • 12.1.0.2.v20 Oracle Database 12c versión 1 (12.1) 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

begin_snap_id

NUMBER

El ID de la instantánea inicial.

end_snap_id

NUMBER

El ID de la instantánea final.

dump_directory

VARCHAR2

BDUMP

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 rdsadmin_diagnostic_util debe tener permisos de escritura para el directorio.

p_tag

VARCHAR2

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 incremental o daily.

Puede especificar hasta 30 caracteres. Los caracteres válidos son a-z, A-Z, 0-9, un guión bajo (_), un guión (-) y un punto (.). La etiqueta no distingue entre mayúsculas y minúsculas. RMAN siempre almacena las etiquetas en mayúsculas, independientemente del caso que se haya usado al ingresarlas.

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 TAGYYYYMMDDTHHMMSS, donde YYYY es el año, MM es el mes, DD es el día, HH es la hora (en formato de 24 horas), MM son los minutos y SS son los segundos La fecha y la hora indican cuándo RMAN inició la copia de seguridad. Por ejemplo, una copia de seguridad con la etiqueta predeterminada TAG20190927T214517 indica una copia de seguridad que se inició el 2019-09-27 a las 21:45:17.

El parámetro p_tag es compatible con las siguientes versiones del motor para bases de datos de RDS for Oracle:

  • Oracle Database 21c (21.0.0)

  • Base de datos Oracle 19c (19.0.0), que usa 19.0.0.0.ru-2021-10.rur-2021-10.r1 y versiones posteriores

  • Base de datos Oracle 12c versión 2 (12.2), que usa 12.2.0.1.ru-2021-10.rur-2021-10.r1 y versiones posteriores

  • Base de datos Oracle 12c versión 1 (12.1), que usa 12.1.0.2.V26 y versiones posteriores

report_type

VARCHAR2

HTML

No

El formato del informe. Los valores válidos son TEXT y HTML.

dbid

NUMBER

No

Un identificador de base de datos válido (DBID) que se muestra en la vista DBA_HIST_DATABASE_INSTANCE de Oracle. Si no se especifica este parámetro, RDS utiliza el DBID actual, que se muestra en la vista V$DATABASE.DBID.

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

begin_time

DATE

La hora de inicio del análisis ASH.

end_time

DATE

La hora de finalización del análisis ASH.

slot_width

NUMBER

0

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 begin_time y end_time utiliza no más de 10 ranuras.

sid

NUMBER

Null

No

El ID de sesión.

sql_id

VARCHAR2

Null

No

El ID de SQL.

wait_class

VARCHAR2

Null

No

El nombre de la clase de espera.

service_hash

NUMBER

Null

No

El hash del nombre del servicio.

module_name

VARCHAR2

Null

No

El nombre del módulo.

action_name

VARCHAR2

Null

No

El nombre de la acción.

client_id

VARCHAR2

Null

No

El ID específico de la aplicación de la sesión de base de datos.

plsql_entry

VARCHAR2

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 ashrptbegin_timeend_time.txt, donde begin_time y end_time utilizan el formato 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.

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 en la documentación de Oracle.

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)

  • Base de datos Oracle 12c versión 2 (12.2)

  • Oracle Database 12c Versión 1 (12.1.0.2.v14) y versiones posteriores

El procedimiento audit_all_sys_aud_table tiene los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

p_by_access

booleano

true

No

Establézcalo en true para auditar BY ACCESS. Establézcalo en false para auditar BY SESSION.

nota

En una base de datos de contenedores (CDB) de un inquilino único, funcionan las siguientes operaciones, pero ningún mecanismo visible por el cliente puede detectar el estado actual de las operaciones. La información de auditoría no está disponible desde la PDB. Para obtener más información, consulte Limitaciones de las CDB de RDS para Oracle.

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) en la documentación de Oracle.

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) en la documentación de Oracle.

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

object_id

entero_binario

ALL_INDEX_ID

No

El ID de objeto del índice. Por lo general, puede usar el ID de objeto del texto de error ORA-08104.

wait_for_lock

entero_binario

rdsadmin.rdsadmin_dbms_repair.lock_wait

No

Especifique rdsadmin.rdsadmin_dbms_repair.lock_wait, el valor predeterminado, para intentar obtener un bloqueo en el objeto subyacente y volver a intentarlo hasta que se alcance un límite interno si el bloqueo falla.

Especifique rdsadmin.rdsadmin_dbms_repair.lock_nowait para intentar obtener un bloqueo en el objeto subyacente, pero sin volver a intentarlo si falla el bloqueo.

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 en la documentación de Oracle.

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 en la documentación de Oracle.

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
  1. 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;
  2. 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;
  3. 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';
  4. 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';
  5. 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

p_data_file_id

número

El identificador del archivo de datos que se va a cambiar de tamaño.

p_size

varchar2

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

p_data_file_id

número

El identificador del archivo de datos que se va a cambiar de tamaño.

p_autoextend_state

varchar2

El estado de la característica de ampliación automática. Especifique ON para ampliar el archivo de datos automáticamente y OFF para desactivar la ampliación automática.

p_next

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).

p_maxsize

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 UNLIMITED para eliminar el límite de tamaño del archivo.

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

p_temp_tablespace_name

varchar2

El nombre del espacio de tabla temporal al que se va a cambiar el tamaño.

p_size

varchar2

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

p_temp_file_id

número

El identificador del archivo temporal al que se va a cambiar el tamaño.

p_size

varchar2

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

p_temp_file_id

número

El identificador del archivo temporal al que se va a cambiar el tamaño.

p_autoextend_state

varchar2

El estado de la característica de ampliación automática. Especifique ON para ampliar el archivo temporal automáticamente y OFF para desactivar la ampliación automática.

p_next

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).

p_maxsize

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 UNLIMITED para eliminar el límite de tamaño del archivo.

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

p_number_val

number

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos NUMBER.

p_binfloat_val

binary_float

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos BINARY_FLOAT.

p_bindouble_val

binary_double

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos BINARY_DOUBLE.

p_char_val

char

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos CHAR.

p_varchar_val

varchar2

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos VARCHAR2.

p_nchar_val

nchar

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos NCHAR.

p_nvarchar_val

nvarchar2

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos NVARCHAR2.

p_date_val

date

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos DATE.

p_ts_val

Marca de tiempo

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos TIMESTAMP.

p_tswtz_val

timestamp with time zone

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos TIMESTAMP WITH TIME ZONE.

p_blob_val

blob

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos BLOB.

p_clob_val

clob

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos CLOB.

p_nclob_val

nclob

Nulo

No

Modifica el valor predeterminado de las columnas del tipo de datos NCLOB.

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.