Exécution de tâches de base de données courantes pour Amazon RDS pour les instances de base de données DB2 - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécution de tâches de base de données courantes pour Amazon RDS pour les instances de base de données DB2

Vous pouvez effectuer certaines tâches DBA courantes liées aux bases de données sur votre RDS pour les instances de base de données DB2. Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell aux instances de base de données. De plus, l'utilisateur principal ne peut pas exécuter de commandes ou SYSADM d'SYSMAINTutilitaires nécessitant des SYSCTRL autorisations.

Gestion des pools de tampons

Vous pouvez créer, modifier ou supprimer des pools de mémoire tampon pour une base de données RDS pour DB2. La création, la modification ou la suppression de pools de tampons nécessitent une SYSADMIN autorité de niveau supérieur, qui n'est pas accessible à l'utilisateur principal. Utilisez plutôt les procédures stockées Amazon RDS.

Vous pouvez également vider les piscines tampons.

Création d'un pool de mémoire tampon

Pour créer un pool de mémoire tampon pour votre base de données RDS pour DB2, appelez la procédure rdsadmin.create_bufferpool stockée. Pour plus d'informations, consultez la CREATE BUFFERPOOLdéclaration contenue dans la IBM Db2 documentation.

Pour créer un pool de mémoire tampon
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_user using master_password"
  2. Créez un pool de mémoire tampon en appelantrdsadmin.create_bufferpool. Pour de plus amples informations, veuillez consulter rdsadmin.create_bufferpool.

    db2 "call rdsadmin.create_bufferpool( 'database_name', 'buffer_pool_name', buffer_pool_size, 'immediate', 'automatic', page_size, number_block_pages, block_size)"

Modification d'un pool de mémoire tampon

Pour modifier un pool de mémoire tampon pour votre base de données RDS pour DB2, appelez la procédure rdsadmin.alter_bufferpool stockée. Pour plus d'informations, consultez la ALTER BUFFERPOOLdéclaration contenue dans la IBM Db2 documentation.

Pour modifier un pool de mémoire tampon
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Modifiez un pool de mémoire tampon en appelantrdsadmin.alter_bufferpool. Pour de plus amples informations, veuillez consulter rdsadmin.alter_bufferpool.

    db2 "call rdsadmin.alter_bufferpool( 'database_name', 'buffer_pool_name', buffer_pool_size, 'immediate', 'automatic', change_number_blocks, number_block_pages, block_size)"

Supprimer un pool de mémoire tampon

Pour supprimer un pool de mémoire tampon pour votre base de données RDS pour DB2, appelez la procédure rdsadmin.drop_bufferpool stockée. Pour plus d'informations, consultez la section Suppression de pools de mémoire tampon dans la IBM Db2 documentation.

Important

Assurez-vous qu'aucun tablespace n'est attribué au pool de mémoire tampon que vous souhaitez supprimer.

Pour supprimer un pool de mémoire tampon
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_user using master_password"
  2. Supprimez un pool de mémoire tampon en appelantrdsadmin.drop_bufferpool. Pour de plus amples informations, veuillez consulter rdsadmin.drop_bufferpool.

    db2 "call rdsadmin.drop_bufferpool( 'database_name', 'buffer_pool_name')"

Rinçage des piscines tampons

Vous pouvez vider les pools de mémoire tampon pour forcer un point de contrôle afin que RDS pour DB2 enregistre des pages de la mémoire vers le stockage.

Note

Il n'est pas nécessaire de vider les pools de mémoire tampon. DB2 écrit les journaux de manière synchrone avant de valider les transactions. Les pages sales se trouvent peut-être toujours dans un pool de mémoire tampon, mais Db2 les écrit dans le stockage de manière asynchrone. Même si le système s'arrête de façon inattendue, lorsque vous redémarrez la base de données, DB2 effectue automatiquement une restauration après incident. Lors de la reprise après incident, Db2 écrit les modifications validées dans la base de données ou annule les modifications pour les transactions non validées.

Pour vider les pools de mémoire tampon
  1. Connectez-vous à votre base de données DB2 à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez rds_database_alias, master_username et master_password par vos propres informations.

    db2 connect to rds_database_alias user master_username using master_password
  2. Videz les piscines tampons.

    db2 flush bufferpools all

Gestion du stockage

Db2 utilise le stockage automatique pour gérer le stockage physique des objets de base de données tels que les tables, les index et les fichiers temporaires. Au lieu d'allouer manuellement de l'espace de stockage et de suivre les chemins de stockage utilisés, le stockage automatique permet au système Db2 de créer et de gérer les chemins de stockage selon les besoins. Cela peut simplifier l'administration des bases de données DB2 et réduire le risque d'erreurs dues à des erreurs humaines. Pour plus d'informations, consultez la section Stockage automatique dans la IBM Db2 documentation.

Avec RDS pour DB2, vous pouvez augmenter dynamiquement la taille de stockage grâce à l'extension automatique des volumes logiques et du système de fichiers. Pour de plus amples informations, veuillez consulter Utilisation du stockage pour les instances de base de données Amazon RDS.

Gestion des tablespaces

Vous pouvez créer, modifier ou supprimer des tablespaces pour une base de données RDS pour DB2. La création, la modification ou la suppression de tablespaces nécessitent une SYSADM autorité de niveau supérieur, qui n'est pas accessible à l'utilisateur principal. Utilisez plutôt les procédures stockées Amazon RDS.

Création d'un tablespace

Pour créer un tablespace pour votre base de données RDS pour DB2, appelez la procédure stockée. rdsadmin.create_tablespace Pour plus d'informations, consultez la CREATE TABLESPACEdéclaration contenue dans la IBM Db2 documentation.

Important

Pour créer un espace disque logique, vous devez disposer d'un pool de mémoire tampon de même taille de page à associer au tablespace. Pour de plus amples informations, veuillez consulter Gestion des pools de tampons.

Pour créer un tablespace
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Créez un tablespace en appelant. rdsadmin.create_tablespace Pour de plus amples informations, veuillez consulter rdsadmin.create_tablespace.

    db2 "call rdsadmin.create_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_initial_size, tablespace_increase_size, 'tablespace_type')"

Modification d'un tablespace

Pour modifier un tablespace pour votre base de données RDS pour DB2, appelez la procédure stockée. rdsadmin.alter_tablespace Vous pouvez utiliser cette procédure stockée pour modifier le pool de mémoire tampon d'un espace disque logique, abaisser le seuil maximal ou mettre un espace disque logique en ligne. Pour plus d'informations, consultez la ALTER TABLESPACEdéclaration contenue dans la IBM Db2 documentation.

Pour modifier un tablespace
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Modifiez un tablespace en appelant. rdsadmin.alter_tablespace Pour de plus amples informations, veuillez consulter rdsadmin.alter_tablespace.

    db2 "call rdsadmin.alter_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', buffer_pool_size, tablespace_increase_size, 'max_size', 'reduce_max', 'reduce_stop', 'reduce_value', 'lower_high_water', 'lower_high_water_stop', 'switch_online')"

Supprimer un tablespace

Pour supprimer un tablespace pour votre base de données RDS pour DB2, appelez la procédure stockée. rdsadmin.drop_tablespace Avant de supprimer un tablespace, supprimez d'abord tous les objets qu'il contient, tels que des tables, des index ou des objets volumineux (LOB). Pour plus d'informations, consultez la section Supprimer les espaces de table dans la IBM Db2 documentation.

Pour supprimer un tablespace
  1. Connectez-vous à la rdsadmin base de données à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Supprimez un tablespace en appelant. rdsadmin.drop_tablespace Pour de plus amples informations, veuillez consulter rdsadmin.drop_tablespace.

    db2 "call rdsadmin.drop_tablespace( 'database_name', 'tablespace_name')"

Vérifier l'état d'un tablespace

Vous pouvez vérifier l'état d'un tablespace à l'aide de la cast commande.

Pour vérifier l'état d'un tablespace
  1. Connectez-vous à votre base de données DB2 à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez rds_database_alias, master_username et master_password par vos propres informations.

    db2 connect to rds_database_alias user master_username using master_password
  2. Renvoie un résultat récapitulatif.

    Pour un résultat récapitulatif :

    db2 "select cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"

Renvoyer des informations détaillées sur les tablespaces

Pour renvoyer des informations détaillées sur les tablespaces
  1. Connectez-vous à votre base de données DB2 à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez rds_database_alias, master_username et master_password par vos propres informations.

    db2 connect to rds_database_alias user master_username using master_password
  2. Renvoie des informations sur tous les tablespaces de la base de données pour un membre ou pour tous les membres.

    Pour un membre :

    db2 "select cast(member as smallint) as member, cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "

    Pour tous les membres :

    db2 "select cast(member as smallint) as member cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "

Répertorier l'état et le groupe de stockage d'un tablespace

Pour répertorier l'état et le groupe de stockage d'un tablespace, exécutez l'instruction SQL suivante :

db2 "SELECT varchar(tbsp_name, 30) as tbsp_name, varchar(TBSP_STATE, 30) state, tbsp_type, varchar(storage_group_name,30) storage_group FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"

Lister les espaces disque logiques d'une table

Pour répertorier les espaces disque logiques d'une table, exécutez l'instruction SQL suivante. Dans l'exemple suivant, remplacez SCHEMA_NAME et TABLE_NAME par les noms de votre schéma et de votre table.

db2 "SELECT VARCHAR(SD.TBSPACE,30) AS DATA_SPACE, VARCHAR(SL.TBSPACE,30) AS LONG_SPACE, VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE FROM SYSCAT.DATAPARTITIONS P JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID WHERE TABSCHEMA = 'SCHEMA_NAME' AND TABNAME = 'TABLE_NAME'"

Répertorier les conteneurs de tablespaces

Pour répertorier les conteneurs d'un espace disque logique
  1. Connectez-vous à votre base de données DB2 à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez rds_database_alias, master_username et master_password par vos propres informations.

    db2 connect to rds_database_alias user master_username using master_password
  2. Renvoie une liste de tous les conteneurs d'espaces disque logiques de la base de données ou de conteneurs de tablespaces spécifiques.

    Pour tous les conteneurs de tablespaces :

    db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"

    Pour des conteneurs de tablespaces spécifiques :

    db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"

Génération de rapports de performance

Vous pouvez générer des rapports de performance à l'aide d'une procédure ou d'un script. Pour plus d'informations sur l'utilisation d'une procédure, voir DBSUMMARYprocédure ‐ Générer un rapport récapitulatif des mesures de performance du système et de l'application dans la IBM Db2 documentation.

Db2 inclut un db2mon.sh fichier dans son ~sqllib/sample/perf répertoire. L'exécution du script produit un rapport détaillé et peu coûteux sur les métriques SQL. Pour télécharger le db2mon.sh fichier et les fichiers de script associés, consultez le perfrépertoire dans le référentiel IBM db2-samplesGitHub.

Pour générer des rapports de performance à l'aide du script
  1. Connectez-vous à votre base de données DB2 à l'aide du nom d'utilisateur principal et du mot de passe principal de votre instance de base de données RDS pour DB2. Dans l'exemple suivant, remplacez master_username et master_password par vos propres informations.

    db2 connect to rdsadmin user master_username using master_password
  2. Créez un pool de mémoire tampon nommé db2monbp avec une taille de page de 4096 en appelantrdsadmin.create_bufferpool. Pour de plus amples informations, veuillez consulter rdsadmin.create_bufferpool.

    db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
  3. Créez un tablespace temporaire nommé db2montmptbsp qui utilise le pool de db2monbp mémoire tampon en appelant. rdsadmin.create_tablespace Pour de plus amples informations, veuillez consulter rdsadmin.create_tablespace.

    db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
  4. Ouvrez le db2mon.sh script et modifiez la ligne concernant la connexion à une base de données.

    1. Supprimez la ligne suivante.

      db2 -v connect to $dbName
    2. Remplacez la ligne de l'étape précédente par la ligne suivante. Dans l'exemple suivant, remplacez master_username et master_password par le nom d'utilisateur principal et le mot de passe principal de votre instance de base de données RDS pour DB2.

      db2 -v connect to $dbName user master_username using master_password
  5. Accédez au répertoire dans lequel se trouve le script. Dans l'exemple suivant, remplacez le répertoire par le nom du répertoire dans lequel se trouve le script.

    cd directory
  6. Exécutez le db2mon.sh script pour générer un rapport à des intervalles spécifiés. Dans l'exemple suivant, remplacez rds_database_alias et seconds par le nom de votre base de données et le nombre de secondes (0 à 3 600) entre la génération du rapport.

    ./db2mon.sh rds_database_alias seconds | tee -a db2mon.out