Académique Documents
Professionnel Documents
Culture Documents
Cette section décrit les implémentations spéci ques à Amazon RDS de certaines tâches DBA courantes pour les instances DB
exécutant le moteur de base de données Oracle. Pour o rir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell
aux instances DB et limite l'accès à certaines tables et procédures système qui requièrent des privilèges avancés.
Pour plus d'informations sur l'utilisation des chiers journaux Oracle sur Amazon RDS, consultez Fichiers journaux de base de données
Oracle
Tâches
Présentation
Activation et désactivation de session restreinte
Vidage du pool partagé
Vidage du cache de tampons
Déconnexion d'une session (pour version 11.2.0.3.v1 et ultérieure)
Arrêt d'une session
Nouvelle dénomination du nom global (pour version 11.2.0.3.v1 et ultérieure)
Attribution de privilèges à des utilisateurs non-maîtres
Modi cation des travaux DBMS_SCHEDULER
Journaux
Changement de chiers journaux en ligne
Ajout, suppression et redimensionnement de journaux redo en ligne
Déconnexion forcée d'une session (pour version 11.2.0.3.v1 et ultérieure)
Conservation des journaux redo archivés (pour version 11.2.0.2.v7 et ultérieure)
Dé nition d'une journalisation supplémentaire (pour version 11.2.0.3.v1 et ultérieure)
Bases de données
Création et redimensionnement des espaces de table et des chiers de données
Con guration d'un espace de table par défaut
Con guration d'un espace de table temporaire par défaut
Point de contrôle de la base de données
Dé nition d'une récupération distribuée (pour version 11.2.0.3.v1 et ultérieure)
Attribution des privilèges SELECT ou EXECUTE aux objets SYS (pour version 11.2.0.3.v1 et ultérieure)
Dé nition du fuseau horaire de la base de données
Utilisation d'AWR (Automatic Workload Repository)
Réglage des liens de base de données pour une utilisation avec les instances DB dans un VPC
Création de répertoires dans l'espace principal de stockage des données (pour version 11.2.0.4.v1 et ultérieure)
A chage et lecture de chiers dans un répertoire d'instance DB (pour version 11.2.0.3.v1 et ultérieure)
Copy
LOGINS
ALLOWED
exec rdsadmin.rdsadmin_util.restricted_session(true);
LOGINS
RESTRICTED
exec rdsadmin.rdsadmin_util.restricted_session(false);
LOGINS
ALLOWED
La méthode Amazon RDS suivante déconnecte la session en cours en terminant le processus serveur dédié. Notez que la base de
données doit être ouverte pour pouvoir utiliser cette méthode. Pour plus d'informations sur la déconnexion d'une session consultez la
documentation Oracle.
Vous devez spéci er à la fois le SID et le numéro de série de la session. Pour obtenir ces valeurs, interrogez la vue V$SESSION. Par
exemple, la requête suivante a che toutes les sessions de l'utilisateur AWSUSER :
Copy
Si vous utilisez une version 11.2.0.3.v1 ou supérieure, vous pouvez spéci er PROCESS comme valeur du paramètre method. Cela vous
permet d'arrêter les processus associés à une session. Vous ne devez faire ce choix que si l'arrêt de la session n'a pas abouti.
La méthode Amazon RDS suivante modi e le nom global de la base de données. Notez que la base de données doit être ouverte pour
que la modi cation du nom soit e ective. Pour plus d'informations sur la modi cation du nom global d'une base de données,
consultez la documentation Oracle.
Méthode Oracle Méthode Amazon RDS
L'exemple suivant crée un utilisateur non-maître user1 et attribue les privilèges CREATE SESSION et SELECT pour la base de données
sh.sales :
Copy
Vous pouvez attribuer des privilèges d'objet explicites pour les objets du schéma SYS à l'aide des rôles SELECT_CATALOG_ROLE et
EXECUTE_CATALOG_ROLE. Le rôle SELECT_CATALOG_ROLE accorde aux utilisateurs les privilèges SELECT sur les vues du dictionnaire de
données et le rôle EXECUTE_CATALOG_ROLE accorde aux utilisateurs les privilèges EXECUTE pour les packages et les procédures du
dictionnaire de données.
Copy
Copy
GRANT EXECUTE_CATALOG_ROLE TO user1;
Pour a cher les autorisations que les rôles SELECT_CATALOG_ROLE et EXECUTE_CATALOG_ROLE accordent, utilisez la requête
suivante :
Copy
Vous pouvez modi er les fenêtres et les travaux DBMS_SCHEDULER par défaut en suivant la documentation Oracle, mais vous n'avez
pas besoin de pré xer WINDOW_NAME avec le nom de schéma SYS. Par exemple, avec une base de données Oracle locale, vous
pouvez procéder comme suit :
Copy
execute dbms_scheduler.set_attribute('MONDAY_WINDOW','RESOURCE_PLAN','');
Pour une instance DB Amazon RDS, vous incluez le nom de schéma SYS :
Copy
execute dbms_scheduler.set_attribute('SYS.MONDAY_WINDOW','RESOURCE_PLAN','');
Changement de chiers journaux en ligne
Vous pouvez utiliser la méthode Amazon RDS suivante pour échanger les chiers journaux.
Une instance Amazon RDS nouvellement créée à l'aide du moteur de base de données Oracle possède quatre journaux redo en ligne
de 128 Mo. Notez que dans les cas où vous voulez ajouter plus de journaux, les mêmes restrictions s'appliquent à la dénomination des
chiers physiques comme pour les journaux redo en ligne.
Utilisez les procédures suivantes pour ajouter ou supprimer les journaux redo :
exec rdsadmin.rdsadmin_util.drop_logfile(group#);
Si vous utilisez une version 11.2.0.3.v1 ou ultérieure, vous pouvez spéci er le modi cateur de taille également. Par exemple, la
commande suivante ajoute un chier journal de 100 Mo :
exec rdsadmin.rdsadmin_util.add_logfile('100M');
exemple
L'exemple suivant montre comment vous pouvez utiliser les procédures fournies par Amazon RDS pour redimensionner vos journaux
redo en ligne en modi ant leur taille par défaut en 512 Mo.
Copy
# Start with four 128m logs.
SQL>select GROUP#, BYTES, STATUS from v$log;
4 rows selected.
SQL>exec rdsadmin.rdsadmin_util.add_logfile(536870912);
SQL>exec rdsadmin.rdsadmin_util.add_logfile(536870912);
SQL>exec rdsadmin.rdsadmin_util.add_logfile(536870912);
SQL>exec rdsadmin.rdsadmin_util.add_logfile(536870912);
8 rows selected.
SQL>exec rdsadmin.rdsadmin_util.drop_logfile(1);
SQL>exec rdsadmin.rdsadmin_util.drop_logfile(3);
SQL>exec rdsadmin.rdsadmin_util.drop_logfile(4);
8 rows selected.
SQL>exec rdsadmin.rdsadmin_util.switch_logfile;
#
SQL>select GROUP#, BYTES, STATUS from v$log;
GROUP# BYTES STATUS
2 134217728 ACTIVE
5 536870912 CURRENT
6 536870912 UNUSED
7 536870912 UNUSED
8 536870912 UNUSED
5 rows selected.
SQL>exec rdsadmin.rdsadmin_util.checkpoint;
5 rows selected.
# Checkpointing clears log group 2 so that its status is now INACTIVE allowing us to drop the final log group 2:
SQL>exec rdsadmin.rdsadmin_util.drop_logfile(2);
# Now, there are four 512m logs. Oracle using Oracle Managed Files (OMF) will automatically remove the old logfiles from the file sys
4 rows selected.
La méthode Amazon RDS suivante place la base de données en mode FORCE LOGGING ou la retire de ce mode. En mode FORCE
LOGGING, Oracle enregistre toutes les modi cations apportées à la base de données, à l'exception de celles des espaces de table
temporaires et des segments temporaires. Pour plus d'informations sur la journalisation forcée, consultez la documentation Oracle.
Vous pouvez conserver les journaux redo archivés sur votre instance DB pour les utiliser avec des produits comme Oracle LogMiner
(DBMS_LOGMNR). Une fois que vous avez conservé les journaux redo, vous pouvez utiliser LogMiner pour analyser les journaux
comme expliqué dans la documentation Oracle. Notez que vous devez vous assurer que votre instance DB comporte un stockage
alloué su sant pour stocker les journaux conservés.
Utilisez la méthode Amazon RDS rdsadmin.rdsadmin_util.set_con泙guration pour conserver les journaux redo archivés. L'exemple suivant
montre comment conserver les journaux redo pendant 24 heures :
Copy
Si vous devez déterminer la quantité d'espace utilisée par votre instance DB dans les dernières X heures, vous pouvez exécuter la
requête suivante, en remplaçant X par le nombre d'heures :
Copy
select sum(blocks * block_size) bytes from v$archived_log where first_time >=sysdateX/24 and dest_id=1;
La méthode Amazon RDS suivante active la journalisation supplémentaire, y compris la journalisation supplémentaire minimale. Oracle
Database n'active pas la journalisation supplémentaire par défaut. La journalisation supplémentaire garantit que LogMiner et les
produits qui utilisent la technologie auront les informations su santes pour prendre en charge les lignes chaînées et les di érentes
organisations de stockage, telles que les tables de cluster. Pour plus d'informations sur la journalisation supplémentaire, consultez la
documentation Oracle.
Amazon RDS ne prend en charge qu'Oracle Managed Files (OMF) pour les chiers de données, les chiers journaux et les chiers de
contrôle. Lors de la création de chiers de données et de chiers journaux, vous ne pouvez pas spéci er les noms de chiers
physiques.
Comme le privilège système Oracle ALTER DATABASE n'est pas disponible sur Amazon RDS, vous devez utiliser ALTER TABLESPACE
pour redimensionner un espace de table. L'exemple suivant redimensionne un espace de table de grand chier nommé users2 en
200 Mo :
Pour les espaces de table de petits chiers, vous devez ajouter un chier de données supplémentaire, comme dans l'exemple suivant :
ALTER TABLESPACE users2 ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;
Attribution des privilèges SELECT ou EXECUTE aux objets SYS (pour version 11.2.0.3.v1 et ultérieure)
En règle générale, vous pouvez utiliser grant select_catalog_role ou grant execute_catalog_role pour accorder des
privilèges. Si vous devez accorder des privilèges à un seul objet au lieu d'utiliser un rôle qui peut contenir plusieurs objets, vous pouvez
utiliser la méthode Amazon RDS grant_sys_object. La procédure suivante transfère les privilèges existants tels que SELECT et
EXECUTE via un rôle vers un autre compte. Notez qu'elle n'attribue que les privilèges que le compte maître a déjà via un rôle ou une
attribution directe.
Pour pouvoir attribuer des privilèges sur un objet, votre compte doit avoir ces privilèges directement attribués avec l'option appropriée
ou via un rôle accordé avec WITH ADMIN OPTION. Dans le cas le plus fréquent, vous voudrez attribuer SELECT sur une vue DBA à
laquelle a été attribué le rôle SELECT_CATALOG_ROLE. Si ce rôle n'est pas déjà directement attribué à votre utilisateur avec WITH
ADMIN OPTION, vous ne pourrez pas transférer le privilège. Si vous disposez du privilège DBA, vous pouvez accorder le rôle
directement à un autre utilisateur.
Copy
Dans l'exemple précédent, comme WITH ADMIN OPTION a été utilisé lors de l'attribution de l'accès à « user1 », « user1 » peut accorder
l'accès aux objets SYS attribués à SELECT_CATALOG_ROLE.
Notez que les objets déjà attribués à PUBLIC n'ont pas besoin d'être réattribués, mais si vous utilisez la procédure grant_sys_object
pour réattribuer l'accès, la procédure n'échouera pas. Notez aussi que les noms d'objet doivent être orthographiés correctement tels
qu'ils apparaissent dans DBA_OBJECTS (la plupart des objets SYS étant dé nis en MAJUSCULES, il est recommandé d'utiliser cette
solution en premier).
Dé nition du fuseau horaire de la base de données
Vous pouvez modi er le fuseau horaire d'une base de données de deux façons, avec la commande
rdsadmin_util.alter_db_time_zone ou avec l'option Fuseau horaire Oracle. La commande
rdsadmin_util.alter_db_time_zone modi e le fuseau horaire pour certains types de date uniquement et ne modi e pas
SYSDATE ; elle doit être utilisée avec les versions 11.2.0.2.v4 ou ultérieure. L'option Timezone modi e le fuseau horaire au niveau de
l'hôte et impacte toutes les valeurs et colonnes date, telles que SYSDATE.
Après avoir modi é le fuseau horaire, vous devez redémarrer l'instance DB pour que la modi cation prenne e et.
Il existe des restrictions supplémentaires sur la dé nition des fuseaux horaires, répertoriées dans la documentation Oracle.
Si vous utilisez Oracle Enterprise Edition et voulez utiliser AWR, vous pouvez l'activer en modi ant le paramètre
CONTROL_MANAGEMENT_PACK_ACCESS.
Oracle AWR inclut plusieurs scripts de génération d'états, tels que awrrpt.sql, qui sont installés sur le serveur hôte. Comme vous n'avez
pas accès aux répertoires de l'hôte, vous pouvez télécharger les scripts depuis Oracle ou les générer à l'aide d'Oracle Enterprise
Manager (OEM).
Réglage des liens de base de données pour une utilisation avec les instances DB dans un VPC
Pour utiliser les liens de base de données Oracle avec les instances DB à l'intérieur d'un VPC, les deux instances doivent être dans le
même VPC ou vous devez créer un groupe de sécurité EC2 ou VPC dont les deux instances DB sont membres. Par exemple, lors de
l'utilisation d'Oracle Data Pump et d'Oracle DBLinks pour déplacer les données entre instances DB, ces dernières doivent être
membres du groupe de sécurité VPC ou EC2, ou se trouver dans le même VPC. Pour plus d'informations sur l'utilisation des liens de
base de données avec Oracle Data Pump, consultez Oracle Data Pump.
Création de répertoires dans l'espace principal de stockage des données (pour version 11.2.0.4.v1 et ultérieure)
Une instance DB est fournie avec un ensemble de répertoires ; vous pouvez créer des répertoires supplémentaires à l'aide de la
méthode Amazon RDS suivante. La méthode create_directory() vous permet de créer jusqu'à 10 répertoires, tous situés dans
votre espace principal de stockage des données. L'exemple suivant utilise la méthode pour créer un répertoire nommé « MY DIR ».
Vous pouvez a cher les répertoires en interrogeant la vue DBA_DIRECTORIES. Notez que le système a choisi le nom du chemin réel de
l'hôte automatiquement :
Copy
DIRECTORY_PATH
/rdsdbdata/userdirs/01
Le nom utilisateur maître de l'instance DB a les privilèges de lecture et d'écriture dans le nouveau répertoire, et peut accorder l'accès à
d'autres utilisateurs. Notez que les privilèges « execute » ne sont pas disponibles pour les répertoires d'une instance DB. Les
répertoires sont créés dans votre espace principal de stockage des données et consomment de l'espace, ainsi que de la bande
passante d'E/S.
Vous pouvez supprimer un répertoire que vous avez créé avec la commande Oracle drop directory. La suppression d'un répertoire
ne supprime pas son contenu ; comme la méthode create_directory() peut réutiliser les noms de chemin, les chiers des
répertoires supprimés peuvent apparaître dans un répertoire nouvellement créé. Avant de supprimer un répertoire, vous devez
utiliser UTL_FILE.FREMOVE pour supprimer les chiers du répertoire.
A chage et lecture de chiers dans un répertoire d'instance DB (pour version 11.2.0.3.v1 et ultérieure)
Vous pouvez utiliser la méthode Amazon RDS RDSADMIN.RDS_FILE_UTIL.LISTDIR() pour a cher les chiers d'un répertoire d'instance
DB (depuis DBA_DIRECTORIES) auxquels vous avez accès :
Copy
Si vous rechercher un texte que vous voulez lire, vous pouvez utiliser la méthode Amazon RDS
RDSADMIN.RDS_FILE_UTIL.READ_TEXT_FILE(). L'exemple suivant lit le chier 泙lename.log du répertoire DATA_PUMP_DIR :
Copy
Conditions d'utilisation | © 2017, Amazon Web Services, Inc. ou ses a liés. Tous droits réservés.