Tareas comunes para bases de datos
Puede crear, eliminar o restaurar bases de datos en su instancia de base de datos de RDS para Db2. Crear, eliminar o restaurar bases de datos requiere una autoridad SYSADM
de nivel superior, algo que no está disponible para el usuario maestro. En su lugar, utilice procedimientos almacenados de Amazon RDS.
También puede realizar tareas de administración habituales, como la monitorización, el mantenimiento y la recopilación de información sobre sus bases de datos.
Temas
- Creación de una base de datos
- Configuración de los ajustes para una base de datos
- Modificación de los parámetros en una base de datos
- Configuración de la retención de registros
- Desactivación de una base de datos
- Activación de una base de datos
- Eliminación de una base de datos
- Restauración de una base de datos
- Enumeración de bases de datos
- Recopilación de información sobre las bases de datos
- Forzado a las aplicaciones a salir de bases de datos
- Generación de informes de rendimiento
Creación de una base de datos
Para crear una base de datos en su instancia de base de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.create_database
. Para obtener más información, consulte Comando CREATE DATABASE
nota
Si tiene previsto modificar el parámetro db2_compatibility_vector
, modifíquelo antes de crear una base de datos. Para obtener más información, consulte Establecimiento del parámetro db2_compatibility_vector.
Para crear una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
Cree una base de datos llamando a
rdsadmin.create_database
. Para obtener más información, consulte rdsadmin.create_database.db2 "call rdsadmin.create_database('
database_name
')" -
(Opcional) Cree bases de datos adicionales llamando a
rdsadmin.create_database
para cada base de datos que desee crear. Cada instancia de base de datos de Db2 puede contener hasta 50 bases de datos. Para obtener más información, consulte rdsadmin.create_database.db2 "call rdsadmin.create_database('
database_name
')" -
(Opcional) Confirme que la base de datos se haya creado mediante uno de estos métodos:
-
Llamar a
rdsadmin.list_databases
. Para obtener más información, consulte rdsadmin.list_databases. -
Ejecute los siguientes comandos SQL:
db2 "select varchar(r.task_type,25) as task_type, r.database_name, varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name, varchar(bson_to_json(task_input_params),256) as input_params, varchar(r.task_output,1024) as task_output from table(rdsadmin.get_task_status(null,null,'create_database')) as r order by created_at desc"
-
Configuración de los ajustes para una base de datos
A fin de configurar los ajustes de una base de datos en su instancia de base de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.set_configuration
. Por ejemplo, puede configurar el número de búferes o manipuladores de búferes que se van a crear durante una operación de restauración.
Configuración de los ajustes de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(Opcional) Compruebe cuál es la configuración actual llamando a
rdsadmin.show_configuration
. Para obtener más información, consulte rdsadmin.show_configuration.db2 "call rdsadmin.show_configuration('
name
')" -
Configure los ajustes de la base de datos llamando a
rdsadmin.set_configuration
. Para obtener más información, consulte rdsadmin.set_configuration.db2 "call rdsadmin.set_configuration( '
name
', 'value
')"
Modificación de los parámetros en una base de datos
Amazon RDS para Db2 utiliza tres tipos de parámetros: parámetros de configuración del administrador de bases de datos, variables de registro y parámetros de configuración de bases de datos. Puede actualizar los dos primeros tipos mediante grupos de parámetros, y el último tipo mediante el procedimiento almacenado rdsadmin.update_db_param.
nota
Solo puede modificar los valores de los parámetros existentes. No se pueden añadir parámetros nuevos que no sean compatibles en RDS para Db2.
Para obtener más información sobre estos parámetros y sobre cómo modificar sus valores, consulte Parámetros de Amazon RDS para Db2.
Configuración de la retención de registros
Para configurar el tiempo que Amazon RDS retiene los archivos de registro de las bases de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.set_archive_log_retention
.
Configuración de la retención de registros de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(Opcional) Compruebe cuál es la configuración actual de retención de registros llamando a
rdsadmin.show_archive_log_retention
. Para obtener más información, consulte rdsadmin.show_archive_log_retention.db2 "call rdsadmin.show_archive_log_retention( ?, '
database_name
')" -
Configure la retención de registros para la base de datos llamando a
rdsadmin.set_archive_log_retention
. Para obtener más información, consulte rdsadmin.set_archive_log_retention.db2 "call rdsadmin.set_archive_log_retention( ?, '
database_name
', 'archive_log_retention_hours
')"
Desactivación de una base de datos
Cuando cree una base de datos en su instancia de bases de datos de RDS para Db2, Amazon RDS la activa de manera predeterminada. Puede desactivar las bases de datos que utilice con poca frecuencia para conservar los recursos de memoria.
Desactivación de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
Desactive una base de datos llamando a
rdsadmin.deactivate_database
. Para obtener más información, consulte rdsadmin.deactivate_database.db2 "call rdsadmin.deactivate_database( ?, '
database_name
')"
Activación de una base de datos
Cuando cree una base de datos en su instancia de bases de datos de RDS para Db2, Amazon RDS la activa de manera predeterminada. Puede desactivar las bases de datos que utilice con poca frecuencia para conservar los recursos de memoria y, posteriormente, activar una base de datos desactivada.
Activación de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
Active una base de datos llamando a
rdsadmin.activate_database
. Para obtener más información, consulte rdsadmin.activate_database.db2 "call rdsadmin.activate_database( ?, '
database_name
')"
Eliminación de una base de datos
Para eliminar una base de datos de su instancia de base de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.drop_database
. Para obtener más información, consulte Dropping databases
nota
Solo puede eliminar una base de datos llamando al procedimiento almacenado si se cumplen las siguientes condiciones: Para obtener más información, consulte Notas de uso para rdsadmin.drop_database
.
Eliminación de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
Elimine una base de datos llamando a
rdsadmin.drop_database
. Para obtener más información, consulte rdsadmin.drop_database.db2 "call rdsadmin.drop_database('
database_name
')"
Restauración de una base de datos
Para mover una base de datos de un bucket de Amazon S3 a su instancia de bases de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.restore_database
. Para obtener más información, consulte Comando RESTORE DATABASE
Para restaurar una base de datos de
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(Opcional) Compruebe cuál es la configuración actual para optimizar la operación de restauración llamando a
rdsadmin.show_configuration
. Para obtener más información, consulte rdsadmin.show_configuration.db2 "call rdsadmin.show_configuration('
name
')" -
Configure los ajustes para optimizar la operación de restauración llamando a
rdsadmin.set_configuration
. Establecer estos valores de forma explícita puede mejorar el rendimiento al restaurar bases de datos con grandes volúmenes de datos. Para obtener más información, consulte rdsadmin.set_configuration.db2 "call rdsadmin.set_configuration( '
name
', 'value
')" -
Restaure la base de datos llamando a
rdsadmin.restore_database
. Para obtener más información, consulte rdsadmin.restore_database.db2 "call rdsadmin.restore_database( ?, '
database_name
', 's3_bucket_name
', 's3_prefix
',restore_timestamp
, 'backup_type
')" -
(Opcional) Confirme que la base de datos se ha restaurado llamando a
rdsadmin.list_databases
y comprobando que la base de datos restaurada aparece en la lista. Para obtener más información, consulte rdsadmin.list_databases. -
Ponga la base de datos de nuevo en línea y aplique registros de transacciones adicionales llamando a
rdsadmin.rollforward_database
. Para obtener más información, consulte rdsadmin.rollforward_database.db2 "call rdsadmin.rollforward_database( ?, '
database_name
', 's3_bucket_name
',s3_prefix
, 'rollfoward_to_option
', 'complete_rollforward
')" -
Si ha configurado
complete_rollforward
comoFALSE
en el paso anterior, lo último que debe hacer para volver a poner la base de datos en línea es llamar ardsadmin.complete_rollforward
. Para obtener más información, consulte rdsadmin.complete_rollforward.db2 "call rdsadmin.complete_rollforward( ?, '
database_name
')"
Enumeración de bases de datos
Puede enumerar todas las bases de datos que se ejecutan en Amazon RDS para Db2 llamando a la función definida por el usuario rdsadmin.list_databases
.
Enumeración de sus bases de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
Haga una lista de sus bases de datos llamando a
rdsadmin.list_databases
. Para obtener más información, consulte rdsadmin.list_databases.db2 "select * from table(rdsadmin.list_databases())"
Recopilación de información sobre las bases de datos
Para recopilar información sobre las bases de datos, llame al procedimiento almacenado rdsadmin.db2pd_command
. Esta información puede ayudarle a supervisar sus bases de datos o a solucionar problemas.
Recopilación de información sobre una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
Recopile información sobre la base de datos llamando a
rdsadmin.db2pd_command
. Para obtener más información, consulte rdsadmin.db2pd_command.db2 "call rdsadmin.db2pd_command('
db2pd_cmd
')"
Forzado a las aplicaciones a salir de bases de datos
Para obligar a las aplicaciones a salir de sus bases de datos de RDS para Db2, llame al procedimiento almacenado rdsadmin.force_application
. Antes de realizar el mantenimiento de las bases de datos, saque las aplicaciones de sus bases de datos.
Forzado a las aplicaciones a salir de una base de datos
-
Conéctese a la base de datos
rdsadmin
con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por su propia información.db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
Fuerce a las aplicaciones a salir de una base de datos llamando a
rdsadmin.force_application
. Para obtener más información, consulte rdsadmin.force_application.db2 "call rdsadmin.force_application( ?, '
applications
')"
Generación de informes de rendimiento
Puede generar informes de rendimiento con un procedimiento o un script. Para obtener información sobre el uso de un procedimiento, consulte DBSUMMARY procedure ‐ Generate a summary report of system and application performance metrics
Db2 incluye un archivo db2mon.sh
en su directorio ~sqllib/sample/perf
. La ejecución del script produce un amplio informe de métricas de SQL de bajo costo. Para descargar el archivo db2mon.sh
y los archivos de script relacionados, consulte el directorio perf
Para generar informes de rendimiento con el script
-
Conéctese a su base de datos Db2 con el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. En el siguiente ejemplo, sustituya
master_username
ymaster_password
por su propia información.db2 connect to rdsadmin
master_username
usingmaster_password
-
Cree un grupo de búferes denominado
db2monbp
con un tamaño de página de 4096 mediante una llamada ardsadmin.create_bufferpool
. Para obtener más información, consulte rdsadmin.create_bufferpool.db2 "call rdsadmin.create_bufferpool('
database_name
','db2monbp',4096)" -
Cree un espacio de tablas temporal con el nombre
db2montmptbsp
que utilice el grupo de búferesdb2monbp
mediante una llamada ardsadmin.create_tablespace
. Para obtener más información, consulte rdsadmin.create_tablespace.db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
-
Abra el script
db2mon.sh
y modifique la línea sobre la conexión a una base de datos.-
Elimine la siguiente línea.
db2 -v connect to $dbName
-
Sustituya la línea del paso anterior por la línea siguiente. En el siguiente ejemplo, sustituya
master_username
ymaster_password
por el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2.db2 -v connect to $dbName user
master_username
usingmaster_password
-
Elimine las siguientes líneas.
db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
-
-
Ejecute el script
db2mon.sh
para generar un informe a intervalos específicos. En el siguiente ejemplo, sustituyaabsolute_path
por la ruta completa al archivo de script,rds_database_alias
con el nombre de su base de datos, y sustituyaseconds
por el número de segundos (0 a 3600) entre la generación de informes.absolute_path
/db2mon.shrds_database_alias
seconds
| tee -a db2mon.outEjemplos
El siguiente ejemplo muestra que el archivo de script se encuentra en el directorio
perf
, situado bajo el directoriohome
./home/db2inst1/sqllib/samples/perf/db2mon.sh
rds_database_alias
seconds
| tee -a db2mon.out -
Elimine el grupo de búferes y el espacio de tabla que se han creado para el archivo
db2mon.sh
. En el siguiente ejemplo, sustituyamaster_username
ymaster_password
por el nombre de usuario y la contraseña maestros de su instancia de base de datos de RDS para Db2. Sustituyadatabase_name
por el nombre de su base de datos. Para obtener más información, consulte rdsadmin.drop_tablespace y rdsadmin.drop_bufferpool.db2 connect to rdsadmin user
master_username
usingmaster_password
db2 "call rdsadmin.drop_tablespace('database_name
','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name
','db2monbp')"