Admin 1
Admin 1
Darryl Balaski Ce document contient des informations exclusives et est protégé par le droit d'auteur et d'autres lois sur la
propriété intellectuelle. Vous pouvez copier et imprimer ce document uniquement pour votre usage personnel dans
le cadre d'un cours de formation Oracle. Le document ne peut en aucun cas être modifié ou altéré. Sauf lorsque
Contributeurs techniques et votre utilisation constitue une "utilisation équitable" en vertu de la loi sur le droit d'auteur, vous ne pouvez pas utiliser,
réviseurs partager, télécharger, télécharger, copier, imprimer, afficher, exécuter, reproduire, publier, concéder sous licence,
publier, transmettre ou distribuer ce document dans son intégralité ou en partie sans l'autorisation expresse d'Oracle.
Marc Fuller
James Spiller Les informations contenues dans ce document sont susceptibles d'être modifiées sans préavis et ne sont pas
garanties sans erreur. Si vous trouvez des erreurs, veuillez nous les signaler par écrit.
Jim Womack
Avis de droits restreints
Éditeurs Si cette documentation est remise au gouvernement des ÉtatsUnis ou à toute personne utilisant la
Pavithran Adka documentation au nom du gouvernement des ÉtatsUnis, l'avis suivant s'applique :
Joseph Fernández UTILISATEURS FINAUX DU GOUVERNEMENT DES ÉTATSUNIS : programmes Oracle (y compris tout
système d'exploitation, logiciel intégré, tout programme intégré, installé ou activé sur le matériel fourni, et les
modifications de ces programmes) et documentation informatique Oracle ou autres données Oracle fournies ou
1008022021 consultées par les utilisateurs finaux du gouvernement des ÉtatsUnis sont des "logiciels informatiques commerciaux"
ou de la "documentation de logiciels informatiques commerciaux" conformément au règlement fédéral sur les
acquisitions applicable et aux réglementations supplémentaires spécifiques à l'agence. A ce titre, l'utilisation, la
reproduction, la duplication, la diffusion, l'affichage, la divulgation, la modification, la préparation d'œuvres dérivées
et/ou l'adaptation i) des programmes Oracle (y compris tout système d'exploitation, logiciel intégré, tout programme
intégré, installé ou activé sur le matériel informatique et modifications de ces programmes), ii) la documentation
informatique Oracle et/ou iii) d'autres données Oracle, est soumise aux droits et limitations spécifiés dans la licence
contenue dans le contrat applicable. Les conditions régissant l'utilisation des services cloud d'Oracle par le
gouvernement américain sont définies par le contrat applicable pour ces services. Aucun autre droit n'est accordé au
gouvernement américain.
Avis de marque
Oracle et Java sont des marques déposées d'Oracle et/ou de ses filiales. Les autres noms peuvent être des marques
déposées de leurs propriétaires respectifs.
Intel et Intel Inside sont des marques ou des marques déposées d'Intel Corporation. Toutes les marques SPARC sont
utilisées sous licence et sont des marques ou des marques déposées de SPARC International, Inc. AMD, Epyc et le
logo AMD sont des marques ou des marques déposées d'Advanced Micro Devices. UNIX est une marque déposée
de The Open Group.
Cette documentation peut fournir un accès ou des informations sur le contenu, les produits et les services de
tiers. Oracle Corporation et ses sociétés affiliées ne sont pas responsables et déclinent expressément toute garantie
de quelque nature que ce soit concernant le contenu, les produits et les services de tiers, sauf indication contraire dans
un accord applicable entre vous et Oracle.
Oracle Corporation et ses sociétés affiliées ne seront pas responsables des pertes, coûts ou dommages encourus
en raison de votre accès ou de votre utilisation du contenu, des produits ou des services tiers, sauf tel qu'énoncé
dans un accord applicable entre vous et Oracle.
Machine Translated by Google
Contenu
Objectifs 12
Architecture du serveur de base de données Oracle : Présentation 13
Base de données de conteneur Oracle mutualisée : introduction 14
Base de données de conteneurs mutualisée Oracle : Architecture 15
iii
Machine Translated by Google
iv
Machine Translated by Google
Objectifs 72
Connexion à l'instance de base de données 73
Oracle Net Services : présentation 74
Utilisation des services de base de données pour gérer les charges de travail 812
v
Machine Translated by Google
11 Configuration d'Oracle Connection Manager pour le multiplexage et les objectifs de contrôle d'accès 112
Oracle Connection Manager : Présentation 113 Processus d'Oracle Connection Manager 114 Oracle
Connection Manager : Architecture 115 Utilisation des règles de filtrage 116 Implémentation du
contrôle d'accès intranet 117 Implémentation du contrôle d'accès Internet 118 Utilisation du
multiplexage de session 119 Configuration d'Oracle Connection Manager 1110 Configuration du fichier
[Link] 1111 Exemple de fichier [Link] 1112 Configuration des clients 1113 Configuration du
serveur de base de données 11 14 Configuration du serveur de base de données pour le multiplexage
(facultatif) 1115 Utilisation de l'utilitaire de contrôle d'Oracle Connection Manager 1116 Examen des
fonctionnalités d'Oracle Connection Manager 1117 Résumé 1118 Présentation de la pratique 1119
vi
Machine Translated by Google
Objectifs 142
Modification du mode PDB 143
Modification des paramètres PDB 144
Impact de la modification des paramètres d'initialisation 145
Modification des paramètres d'initialisation : exemple 146
Utilisation de la commande ALTER SYSTEM dans un PDB 147
Configuration du nom d'hôte et du numéro de port par PDB 148
Suppression des PDB 149
Sommaire 1410
Aperçu de la pratique 1411
Objectifs 152
Architecture de stockage de base de données 153
Structures logiques et physiques de la base de données 155
Segments, étendues et blocs 157
Tablespaces et fichiers de données 158
Tablespaces par défaut dans une base de données de conteneur mutualisée 159
Tablespaces SYSTEM et SYSAUX 1510
Types de segments 1511
Stockage des données de table 1512
Contenu du bloc de base de données 1513
vii
Machine Translated by Google
viii
Machine Translated by Google
1729
Objectifs 182
Annuler les données : Présentation 183
Résumé 1818
Aperçu de la pratique 1819
Objectifs 192
Comptes utilisateur de la base de données 193
Résumé 1917
Aperçu de la pratique 1918
ix
Machine Translated by Google
X
Machine Translated by Google
Sommaire 2231
Aperçu de la pratique 2232
Résumé 239
Objectifs 242
Chargeur SQL : révision 243
xii
Machine Translated by Google
25 Transport de données
Objectifs 252
Clients d'exportation et d'importation de pompe de données 253
xii
Machine Translated by Google
Objectifs 272
Infrastructure de maintenance proactive de la base de données 273
Résumé 2710
Objectifs 292
Activités de gestion du rendement 293
Considérations relatives à la planification des performances 294
Maintenance de la base de données 296
Objectifs 302
Alertes générées par le serveur 303
xiii
Machine Translated by Google
xiv
Machine Translated by Google
Objectifs
Exemple
PGA
Serveur
Structures de la mémoire
processus
(Zone globale du système)
Processus
Serveur
Utilisateur
processus
Il existe trois structures principales dans l'architecture du serveur Oracle Database : les structures de mémoire, les
processus et les structures de stockage. Un système de base de données Oracle de base se compose d'une base de données
Oracle et d'une instance de base de données.
La base de données comprend à la fois des structures physiques et des structures logiques. Comme les structures physiques et
logiques sont séparées, le stockage physique des données peut être géré sans affecter l'accès aux structures de stockage logiques.
• Conteneur : une collection logique de données ou de métadonnées au sein de l'architecture mutualisée. • Base de données enfichable
(PDB) : une collection portable de schémas, d'objets de schéma et d'objets non schématiques.
– Processus d'arrièreplan
– Gestion de la mémoire partagée et de certaines structures de mémoire
– Certaines des métadonnées Oracle
Au niveau physique, la base de données de conteneur mutualisée (CDB) possède une instance de base de données et des
fichiers de base de données, tout comme une base de données non conteneur.
de mémoire
• Métadonnées Oracle dans plusieurs dictionnaires de données
Un CDB regroupant plusieurs applications a une instance, un ensemble de processus d'arrièreplan, une allocation SGA et un dictionnaire
de données dans le conteneur racine, commun à tous les PDB, chaque PDB conservant son propre dictionnaire de données d'application.
Lorsque des applications doivent être corrigées ou mises à niveau, l'opération de maintenance n'est effectuée qu'une seule fois sur la
CDB, et par conséquent, toutes les applications sont mises à jour en même temps.
Fichiers de Fichiers de
CDB
contrôle journalisation
• Mémoire partagée/processus
• Métadonnées Oracle
• Fichiers de contrôle
Vous pouvez concevoir votre base de données comme une base de données de conteneur mutualisée (CDB). Un CDB, comme illustré dans
la diapositive, est composé d'un conteneur racine, d'une base de données enfichable de départ (PDB de départ) et d'une ou plusieurs bases
de données enfichables créées par l'utilisateur (simplement appelées PDB). Pour un utilisateur ou une application, les PDB apparaissent
logiquement comme des bases de données distinctes.
• Le conteneur racine, nommé CDB$ROOT, contient plusieurs fichiers de données. Le magasin de fichiers de données Oracle
les métadonnées fournies et les utilisateurs communs (utilisateurs connus dans chaque conteneur). Ces informations
sont partagées avec tous les PDB.
• Le PDB de départ, nommé PDB$SEED, est un modèle de PDB fourni par le système contenant plusieurs
fichiers de données que vous pouvez utiliser pour créer de nouveaux PDB.
• Le PDB créé par l'utilisateur contient plusieurs fichiers de données qui contiennent les données et le code requis pour
prendre en charge une application (par exemple, une application Ressources Humaines). Les utilisateurs interagissent uniquement
avec les PDB, et non avec la PDB de départ ou le conteneur racine. Par exemple, dans la diapositive, il y a deux PDB : un pour
l'organisation commerciale (appelé SALES) et un autre pour le service des ressources humaines (appelé HR). Vous pouvez créer
plusieurs PDB dans un CDB. L'un des objectifs de l'architecture mutualisée est que chaque PDB entretienne une relation un à un
avec une application.
I1
I2 I1 I2 I3
D1
D2
Stockage local
Stockage partagé
Chaque instance de base de données est associée à une seule base de données. S'il existe plusieurs bases de données
sur le même serveur, il existe une instance de base de données distincte pour chaque base de données. Une instance de
base de données ne peut pas être partagée. Une base de données Oracle Real Applications Cluster (RAC) possède
généralement plusieurs instances sur des serveurs distincts pour la même base de données partagée. Dans ce modèle, la
même base de données est associée à chaque instance RAC, ce qui répond à l'exigence qu'au plus une seule base de
données soit associée à une instance.
Serveur
Serveur A Serveur B Serveur C
Le partitionnement est une architecture de niveau de données dans laquelle les données sont partitionnées horizontalement sur
des bases de données indépendantes. Chaque base de données dans une telle configuration est appelée une partition. Toutes les
partitions constituent une seule base de données logique, appelée base de données partitionnée ou SDB.
Le partitionnement horizontal consiste à diviser une table de base de données en plusieurs partitions afin que chaque partition contienne la
table avec les mêmes colonnes mais un sousensemble de lignes différent. Le diagramme de la diapositive montre un tableau non
partitionné sur la gauche avec les lignes représentées par différentes couleurs. Sur la droite, les mêmes données de table sont affichées
horizontalement réparties sur trois partitions ou bases de données indépendantes. Chaque partition de la table logique réside dans un fragment
spécifique. Nous appelons une telle table une table fragmentée.
Le partitionnement est une architecture de base de données sans partage car les partitions ne partagent pas les ressources physiques telles
que le processeur, la mémoire ou les périphériques de stockage. Les fragments sont également faiblement couplés en termes de logiciels ; ils
n'exécutent pas de clusterware.
Du point de vue d'un administrateur de base de données, un SDB se compose de plusieurs bases de données qui peuvent être gérées
collectivement ou individuellement. Cependant, du point de vue d'un développeur d'applications, un SDB ressemble à une base de données
unique : le nombre de fragments et la distribution des données entre eux sont complètement transparents pour les applications de base de
données.
[Link]
Résumé
Dans cette leçon, vous devriez avoir appris à :
• Lister les principaux composants architecturaux d'Oracle Database
• Décrire l'architecture mutualisée
Objectifs
• Décrire les outils utilisés pour accéder à une base de données Oracle
• Vous connectez les applications clientes à une base de données Oracle en vous connectant à son instance de base de
données, et non à sa base de données.
• Une session utilisateur est une entité logique qui représente l'état de la connexion de l'utilisateur actuel à l' instance de base de
données.
Vous connectez les applications clientes aux instances de base de données (et non aux bases de données).
Une connexion est la voie de communication physique entre un processus client et une instance de base de données.
Une session utilisateur est une entité logique qui représente l'état de la connexion de l'utilisateur actuel à l'instance de
base de données. Une session dure du moment où l'utilisateur est authentifié par l'instance de base de données jusqu'au
moment où l'utilisateur se déconnecte ou quitte l'application cliente.
En tant qu'administrateur de base de données, vous pouvez rapidement démarrer SQL*Plus et vous connecter à un
conteneur racine sans mot de passe à l'aide de la commande $ sqlplus / as sysdba. Cette commande vous permet de vous
connecter à la base de données en tant qu'utilisateur SYS avec le privilège SYSDBA. Certaines règles s'appliquent : vous
devez être sur la même machine que l'instance de base de données et l'utilisateur actuel du système d'exploitation doit être
membre du groupe privilégié OSDBA.
manières de se connecter à une PDB ; cependant, l'utilisation de la syntaxe Easy Connect dans SQL*Plus est la plus
simple car elle est déjà activée par défaut sur le serveur de base de données et ne nécessite aucune configuration côté
client. Cette syntaxe prend uniquement en charge le protocole TCP (pas de SSL). Il ne prend pas en charge les options de
connexion avancées telles que le basculement au moment de la connexion, le routage source et l'équilibrage de charge.
Si vous démarrez à partir d'une invite de commande, vous pouvez démarrer SQL*Plus et vous connecter en même temps :
$ sqlplus hr/hr@[Link]/[Link]
Le port d'écoute et le nom du service sont facultatifs. Si le port d'écoute n'est pas fourni, Oracle Net suppose
que le port par défaut 1521 est utilisé. Si le nom du service n'est pas fourni, Oracle Net suppose que le nom du
service de base de données et le nom d'hôte fournis dans la chaîne de connexion sont identiques.
Par exemple, en supposant que l'écouteur utilise TCP pour écouter sur le port 1521, la chaîne de connexion cidessus
peut être raccourcie.
• Les outils Oracle Database ont chacun leur propre objectif et certaines opérations peuvent être
effectuée dans plus d'un outil. • Le
choix d'un outil pour une tâche se résume souvent à une préférence personnelle.
• Les outils incluent :
– SQL*Plus
– Développeur SQL
– Ligne de commande du développeur SQL (SQLcl)
– Assistant de configuration de base de données (DBCA)
– Base de données Oracle Enterprise Manager Express (EM Express)
– Oracle Enterprise Manager Cloud Control
– Base de données Oracle Management Cloud Express (OMX)
– Autres tels que Listener Control, Oracle Net Configuration Assistant, Oracle Net
Manager, ADR Command Interpreter, SQL*Loader, Oracle Data Pump Import et
Exportation de la pompe de données Oracle
• Développeur SQL : utilisez cet outil d'interface utilisateur graphique (GUI) pour accéder à une base de données et
effectuer des actions DBA. •
Ligne de commande du développeur SQL (SQLcl) : utilisez cet outil pour accéder à une base de données. •
Assistant de configuration de base de données (DBCA) : utilisez cet outil graphique pour créer des bases de données. Pour utiliser
DBCA, vous devez être sur le serveur pour lancer l'outil depuis le système d'exploitation hébergeant la CDB.
• Oracle Enterprise Manager Database Express (EM Express) : utilisez cet outil graphique pour effectuer
tâches d'administration de base de données sur une instance de base de données à la fois.
• Oracle Enterprise Manager Cloud Control (EM Cloud Control) : utilisez cet outil graphique pour
effectuer des tâches d'administration de base de données sur plusieurs cibles (instances de base de données, écouteurs,
etc.) en même temps.
• Oracle Management Cloud Database Express (OMX) : utilisez cette interface graphique pour effectuer des tâches d'administration
de base de données. OMX remplace EM Express avec un sousensemble de fonctionnalités dans la version initiale.
• Autres : de nombreux utilitaires spécialisés sont utilisés pour faciliter l'administration de la base de données. Ceux utilisés dans ce
cours peuvent inclure Listener Control (lsnrctl), Oracle Net Configuration Assistant (netca), Oracle Net Manager (netmgr),
ADR Command Interpreter (adcri), SQL*Loader (sqlldr), Oracle Data Pump Import (impdp) , et Oracle Data Pump Export
(expdp). Cette liste ne couvre pas tous les utilitaires disponibles.
EM EM Oracle
SQL
Sujet SQL*Plus SQLcl DBCA Base de données Nuage Universel
Développeur Contrôle Installateur
Exprimer
Oui
Créer un Oui (PDB Oui (PDB
Oui Oui Oui (PDB Oui
CDB ou PDB uniquement) uniquement)
uniquement)
Explorer
l'instance,
Oui Oui Oui Non Oui Oui Non
l'architecture et
les PDB de CDB
Le tableau vous montre en un coup d'œil quel outil peut être utilisé pour effectuer quelles tâches.
SQL*Plus
• Exemple 1 : à partir d'une ligne de commande, vous pouvez démarrer SQL*Plus, vous connecter et montrer à l'utilisateur
sous lequel vous êtes connecté :
Nom de fichier
Nom d'utilisateur et
mot de passe Identifiant de connexion
SQL*Plus
SQL*Plus est un programme de ligne de commande que vous utilisez pour soumettre des instructions SQL et PL/SQL à une base
de données Oracle. SQL*Plus est installé avec Oracle Database et se trouve dans le répertoire $ORACLE_HOME/bin. Vous pouvez
démarrer SQL*Plus à partir de la ligne de commande ou du menu Démarrer sur un client Windows. Utilisez l'interface de ligne de
commande SQL*Plus pour exécuter les commandes SQL*Plus, SQL et PL/SQL afin d'effectuer les opérations suivantes :
• Entrez, modifiez, exécutez, stockez, récupérez et enregistrez des commandes SQL et des blocs PL/SQL
•
Formater, calculer, stocker et imprimer les résultats des requêtes
• Répertorier les définitions de colonne pour
n'importe quelle table • Envoyer des messages et accepter les réponses d'un utilisateur
final • Effectuer l'administration de la base de données
Lors de l'appel d'un fichier de script SQL depuis SQL*Plus, vous disposez des options suivantes :
• Option 1 : appelez le script à partir de la ligne de commande lorsque vous appelez SQL*Plus pour la première fois :
$ sqlplus hr/hr@HRPDB @[Link]
• Option 2 : appelez le script depuis une session SQL*Plus simplement en utilisant l'opérateur « @ » :
SQL> @[Link]
Lorsqu'un script est enregistré à partir de SQL*Plus à l'aide de la commande SAVE, l'extension .sql est automatiquement
fournie. Vous pouvez alors exécuter le script sans fournir l'extension au moment de l'exécution, par exemple : SQL> @script
Vous pouvez appeler SQL*Plus à partir d'un script shell ou d'un fichier BAT en appelant sqlplus et en utilisant la syntaxe de
script du système d'exploitation pour transmettre les paramètres. Par exemple, supposons que vous ayez le script shell suivant :
# Nom de ce fichier : batch_sqlplus.sh
commettre;
arrêter
EOF
$ ./batch_sqlplus.sh
Pour plus d'informations
Pour savoir comment démarrer SQL*Plus, voir « Démarrage de SQL Plus » dans SQL*Plus Users Guide and Reference.
Oracle SQL Developer (SQL Developer) est un outil graphique pour les développeurs de bases de données et les DBA
et s'installe avec Oracle Database. Vous pouvez choisir d'afficher plusieurs volets différents dans l'interface SQL
Developer, comme un volet Connexions et DBA. Vous utilisez le premier pour définir des connexions aux bases de
données et utilisez le second pour effectuer des opérations DBA. Vous ne devez ajouter que les connexions pour lesquelles
l'utilisateur de la base de données associée dispose de privilèges DBA ou au moins de privilèges pour les opérations de
navigateur DBA souhaitées sur la base de données spécifiée.
Certaines opérations de type développeur que vous pouvez effectuer avec SQL Developer incluent :
• Développer des scripts dans les langages SQL et PL/SQL • Parcourir des objets de base de
données • Exécuter des instructions SQL et des scripts SQL Modifier et déboguer des instructions
PL/SQL
•
Oracle SQL Developer est un outil qui permet la navigation graphique autonome et le développement d'objets de schéma de
base de données, ainsi que l'exécution de tâches administratives de base de données.
SQL Developer permet aux utilisateurs disposant de privilèges d'administrateur de base de données d'afficher et de
modifier certaines informations relatives aux DBA et d'effectuer des opérations DBA. Pour effectuer des opérations DBA, utilisez le
navigateur DBA, qui est similaire au navigateur Connexions en ce sens qu'il comporte des nœuds pour toutes les connexions de
base de données définies. Si le navigateur DBA n'est pas visible, sélectionnez Affichage, puis DBA. Vous ne devez ajouter que les
connexions pour lesquelles l'utilisateur de la base de données associée dispose de privilèges DBA, ou au moins de privilèges pour
les opérations de navigateur DBA souhaitées sur la base de données spécifiée.
du planificateur
•
Configuration de la sécurité comme les paramètres d'audit, les profils, les rôles et les utilisateurs
• Configuration du stockage pour les journaux d'archivage, les fichiers de contrôle, les fichiers de données, les groupes de journaux redo, les tablespaces,
et groupes d'espaces de table temporaires
• DBCA peut être lancé par Oracle Universal Installer ou invoqué après l'installation du logiciel.
installée.
L'assistant de configuration de base de données (DBCA) est un outil que vous pouvez utiliser pour effectuer les opérations suivantes :
de base de données Oracle RAC DBCA peut être lancé par Oracle
Universal Installer (OUI), selon le type d'installation que vous sélectionnez. Vous pouvez également lancer DBCA en tant qu'outil autonome à tout
moment après l'installation d'Oracle Database.
Reportezvous au Guide de l'administrateur de la base de données Oracle et à Oracle Database 2 Day DBA pour obtenir des
informations détaillées.
Console Auditeur
partagé
Serveur Répartiteur
Obtenir le rapport Commun
Rapports
Serveur Web Oracle Cadre
Demande
Base de données Oracle
Servlet EM Express
Exemple
• Authentification
• Gestion de session •
Compression • Mise en
cache Gestionnaire de fichiers
Obtenir des fichiers shell
Manager Database Express (EM Express) est un outil léger que vous pouvez utiliser pour gérer une CDB et toutes ses PDB (à
l'exception de la PDB de départ). Il fournit une solution de gestion basée sur un navigateur prête à l'emploi, la surveillance des
performances, la gestion de la configuration, l'administration, les diagnostics et le réglage.
Architecture
EM Express utilise une console Web, communiquant avec le serveur Web intégré disponible en XML
BD.
Au fur et à mesure que les demandes de la console sont traitées, le servlet EM Express gère les demandes, y compris
l'authentification, la gestion de session, la compression et la mise en cache. Le servlet transmet les demandes de rapports au
Common Reporting Framework et les actions nécessitant des fichiers shell au gestionnaire de fichiers.
Cette architecture est illustrée dans la diapositive.
EM Express est disponible uniquement lorsque la base de données est ouverte. Cela signifie qu'Enterprise Manager
Database Express ne peut pas être utilisé pour démarrer l'instance de base de données. D'autres opérations nécessitant que la
base de données change d'état, telles que l'activation ou la désactivation du mode ARCHIVELOG, ne sont pas non plus
disponibles dans EM Express.
EM Express est configurable d'un simple clic dans Database Configuration Assistant (DBCA).
EM Express est un servlet construit sur Oracle XML DB. Le portefeuille par défaut Oracle XML DB a un certificat autosigné, et
certains navigateurs existants considèrent les certificats autosignés comme non fiables car ils ne sont pas signés par une autorité
de certification (autorité de certification) de confiance. Cependant, le certificat autosigné est toujours sécurisé, car il garantit que
le trafic est chiffré entre le serveur Oracle XML DB et le client (navigateur). Par conséquent, saisissez une exception de sécurité
pour l'URL EM Express dans votre navigateur Web.
Exigences
EM Express utilise un port HTTPS global pour se connecter et gérer les nonCDB, les CDB et les PDB.
À partir d'Oracle Database 12c Release 2, vous pouvez définir un port global qui permet à Enterprise Manager
Database Express d'accéder à la CDB et à toutes les PDB sur ce port unique.
Intergiciel Rétrofacturation et
Gestion Planification des capacités
Exadata et
Base de données
Exalogique
Gestion
Gestion
Oracle Enterprise Manager Cloud Control (EM Cloud Control) est la plateforme de gestion sur site d'Oracle, offrant un
emplacement unique pour gérer tous vos déploiements Oracle, qu'ils soient dans vos centres de données ou dans Oracle Cloud.
Grâce à une intégration approfondie avec la pile de produits d'Oracle, EM Cloud Control fournit une prise en charge de la gestion
et de l'automatisation pour les applications, les bases de données, les intergiciels, le matériel et les systèmes d'ingénierie Oracle.
Les principaux objectifs de la conception d'Enterprise Manager Cloud Control 13c incluent :
•
Fournir une solution complète de gestion cloud intégrée pour une combinaison de configurations cloud sur
site et de solutions Oracle Cloud Services (Hybrid Cloud)
• Offrir une gestion améliorée des systèmes d'ingénierie
• Amélioration de la gestion des intergiciels et des bases de données
•
Maintenir une plateforme robuste à l'échelle du cloud
• Gestion du cloud : fournit une gestion complète du cycle de vie du cloud pour les clouds sur site et les services PaaS sur
Oracle Cloud
• Rétrofacturation et planification de la capacité : fournit une rétrofacturation en fonction des types de cible et des utilisations
Entrepôt de référentiel de charge de travail automatique (AWR) pour consolider les rapports AWR de plusieurs bases
de données à travers l'entreprise
• Gestion des applications et de la qualité : fournit la relecture de la base de données, le serveur d'applications
Relecture, test d'application réel intégré au masquage des données et gestion de la base de
données de test qui inclut le modèle de données d'application
• Gestion de la base de données : assure la gestion des systèmes de base de données Oracle, y compris
gestion des performances et gestion du cycle de vie des modifications •
Gestion du middleware : Fournit une gestion complète des systèmes middleware • Gestion des
applications : Fournit la gestion des applications Fusion
Géré
Hôtes
Gestion d'Oracle
Service
Contrôle du nuage
Console
Gestion d'Oracle
Dépôt
Oracle Enterprise Manager Cloud Control est composé de quatre composants principaux, comme illustré dans la
diapositive :
• Référentiel de gestion Oracle (OMR)
• Service de gestion Oracle (OMS)
• Oracle Management Agent (OMA ou agent) avec des plugins spécifiques à la cible
• Console de contrôle cloud
L'agent de gestion Oracle s'exécute sur les hôtes, collecte des données de mesure sur ces environnements hôtes et
utilise des plugins pour surveiller la disponibilité, la configuration et les performances et pour gérer les cibles exécutées
sur l'hôte. Les agents communiquent avec Oracle Management Service pour télécharger les données de métrique
collectées par eux et leurs plugins. À son tour, l'OMS stocke les données qu'il collecte dans le référentiel de gestion
Oracle où il est possible d'y accéder par l'OMS pour des rapports et une surveillance automatisés et manuels. L'OMS
communique également avec les agents pour orchestrer la gestion de leurs cibles surveillées. En plus de coordonner
les agents, l'OMS exécute les pages Web de la console Cloud Control qui sont utilisées par les administrateurs et les
utilisateurs pour signaler, surveiller et gérer l'environnement informatique visible par Cloud Control via les agents et
leurs plugins.
Manager Cloud Control 13c a des capacités pour gérer intelligemment les services traditionnels et basés sur le cloud,
atténuant la nécessité d'utiliser plusieurs outils de gestion et de surveillance pour ce qui était auparavant deux environnements
disparates.
• Solution complète pour la gestion de la pile Oracle, y compris les systèmes d'ingénierie, avec intégration en temps réel
de la base de connaissances d'Oracle avec les environnements des clients
• Gestion et automatisation des performances de bout en bout
• Fonctionnalité Ops Center intégrée pour surveiller et gérer à la fois le matériel et les logiciels à partir d'une interface
unique
• Pratiques de gestion courantes applicables aux cibles sur site et aux cibles Oracle Cloud
•
Gestion de la qualité de service (QoS) pour assurer la livraison du meilleur service possible aux clients
internes et externes
•
Gestion du cycle de vie et du cloud pour un approvisionnement et des correctifs simplifiés des applications et des
platesformes
• Gouvernance des données et contrôles de conformité pour se conformer aux exigences internes et externes
normes et exigences
•
Possibilité de sauvegarder dans le cloud pour tirer parti de la capacité d'Oracle Cloud
• Option de cloud hybride pour déplacer les charges de travail et cloner les cibles entre sur site et Oracle
Nuage
La gestion de base de données implique la surveillance, l'administration et la maintenance des bases de données et
des groupes de bases de données dans votre entreprise et avec Enterprise Manager, vous recevez :
Un ensemble complet de fonctionnalités intégrées pour la gestion d'Oracle Database, qui vous permet de :
• Évolutivité qui vous permet de gérer une seule base de données ou des milliers d'instances de base de données. • Un
produit de gestion intuitif qui domine l'industrie en termes de facilité de déploiement et d'utilisation.
En utilisant Oracle Enterprise Manager Cloud Control, vous pouvez garder vos bases de données Oracle disponibles
et fonctionner efficacement.
Vous pouvez utiliser les outils d'administration disponibles pour gérer les objets de base de données et lancer des
opérations de base de données dans une base de données Oracle.
La liste suivante répertorie certaines des tâches d'administration de base de données que vous pouvez effectuer : •
Allouer de l'espace de stockage système et planifier les futurs besoins en espace de stockage.
• Utilisez Oracle Scheduler pour contrôler quand et où les différentes tâches se produisent dans la base de données
environnement.
• Migrez votre stockage de base de données pour utiliser Oracle Automatic Storage Management.
Résumé
• Décrire les outils utilisés pour accéder à une base de données Oracle
3
Création d'une base de données Oracle par
Utilisation de DBCA
Objectifs
• Créer une base de données à l'aide de l'assistant de configuration de base de données (DBCA) •
Il est important de planifier comment la structure de stockage logique de la base de données affectera les performances du système et les diverses
opérations de gestion de la base de données. Par exemple, avant de créer des tablespaces pour votre base de données, vous devez savoir combien
de fichiers de données constitueront le tablespace, quel type d'informations seront stockées dans chaque tablespace et où les fichiers de données
seront physiquement stockés. Des informations telles que la disponibilité du stockage en réseau (NAS) et la bande passante du réseau de stockage
privé sont importantes. Si des réseaux de stockage (SAN) doivent être utilisés, il est utile de savoir comment les volumes logiques sont configurés et
la taille de bande.
Lors de la planification du stockage logique global de la structure de la base de données, tenez compte des effets que cette structure aura lors de
la création et de l'exécution de la base de données. Vous pouvez avoir des objets de base de données qui ont des exigences de stockage
particulières en raison de leur type ou de leur taille.
Dans les environnements de bases de données distribuées, cette étape de planification est extrêmement importante. L'emplacement
physique des données fréquemment consultées affecte considérablement les performances des applications.
Au cours de la phase de planification, développez une stratégie de sauvegarde pour la base de données. Vous pouvez modifier la structure
de stockage logique ou la conception de la base de données pour améliorer l'efficacité de la sauvegarde. Les stratégies de sauvegarde
sont présentées dans une leçon ultérieure.
• Personnalisé :
– Base de données polyvalente (peutêtre une fonctionnalité combinée d'OLTP et d'entrepôt de données)
• Entrepôt de données :
– Données de recherche et de marketing
– Paiements d'impôts étatiques ou fédéraux
– Licences professionnelles (médecins, infirmières, etc.)
Différents types de bases de données ont leurs propres exigences spécifiques en matière d'instance et de stockage. Votre logiciel
de base de données Oracle inclut des modèles pour la création de ces différents types de bases de données.
Les caractéristiques de ces exemples sont les suivantes : • Usage
général : pour une utilisation à des fins générales ou de traitement des transactions, comme travailler avec des transactions et les
stocker pendant une durée moyenne.
• Personnalisé : pour les bases de données personnalisées qui ne correspondent pas à l'objectif général ou à l'entrepôt de données
modèle
• Entrepôt de données : pour stocker des données pendant de longues périodes et les récupérer lors d'opérations de lecture
• Le jeu de caractères est choisi au moment de la création de la base de données. Choisissez le jeu de
caractères qui répond le mieux aux besoins actuels et futurs de votre entreprise, car il peut être difficile
de modifier les jeux de caractères ultérieurement.
• La base de données Oracle prend en charge différentes classes de schémas de codage de caractères :
Lorsque les systèmes informatiques traitent des caractères, ils utilisent des codes numériques au lieu de la
représentation graphique du caractère. Un jeu de caractères codés associe des codes numériques à des caractères
qu'un ordinateur ou un terminal peut afficher et recevoir. Différents jeux de caractères prennent en charge différents
répertoires de caractères. Étant donné que les jeux de caractères sont généralement basés sur un script d'écriture
particulier, ils peuvent prendre en charge plusieurs langues. Cependant, les jeux de caractères basés sur des scripts sont
limités en ce sens qu'ils sont limités à des groupes de langues basés sur des scripts similaires. Les jeux de caractères
universels englobent la plupart des principaux scripts du monde moderne et offrent une solution plus utile à la prise en
charge multilingue. Pour plus d'informations sur les normes Unicode, consultez le site Web à l'adresse http:[Link].
La base de données Oracle prend en charge trois classes de schémas de codage : un octet, plusieurs octets à
largeur variable et universel. Choisissez le jeu de caractères correct qui répond le mieux aux besoins actuels et
futurs de votre entreprise, car il peut être difficile de modifier les jeux de caractères ultérieurement. Pour de meilleures
performances, choisissez un jeu de caractères qui évite la conversion du jeu de caractères et utilise le codage le plus
efficace pour les langues souhaitées. Les jeux de caractères à un octet offrent de meilleures performances que les jeux
de caractères multioctets, et ils sont également les plus efficaces en termes d'espace requis.
Cependant, les jeux de caractères à un octet limitent le nombre de langues que vous pouvez prendre en charge. Pour
choisir votre jeu de caractères de base de données correct, évaluez vos exigences commerciales actuelles et futures,
ainsi que vos exigences techniques (par exemple, les normes XML et Java nécessitent Unicode). En général, Oracle
recommande l'utilisation d'Unicode pour toutes les nouvelles bases de données, car il s'agit du jeu de caractères le plus
flexible et évite les conversions futures.
un jeu de caractères à un octet, chaque caractère occupe un octet. Les schémas de codage 7 bits à un octet peuvent définir
jusqu'à 128 (27) caractères ; Les schémas de codage 8 bits à un octet peuvent définir jusqu'à 256 (28) caractères.
• Oracle Net compare le paramètre client NLS_LANG au jeu de caractères sur le serveur.
NLS_LANG
Réseau Oracle
Client Serveur
Le paramètre NLS_LANG définit le schéma de codage des caractères d'un terminal client. Différents clients peuvent utiliser
différents schémas de codage. Les données transmises entre le client et le serveur sont converties automatiquement entre les
deux schémas de codage. Le schéma de codage de la base de données doit être un surensemble, ou équivalent, de tous les
schémas de codage des clients. La conversion est transparente pour l'application cliente.
Lorsque le jeu de caractères de la base de données et le jeu de caractères du client sont identiques, la base de données
suppose que les données envoyées ou reçues sont du même jeu de caractères, de sorte qu'aucune validation ou conversion
n'est effectuée.
La conversion du jeu de caractères peut être nécessaire dans un environnement client/serveur, si une application client réside
sur une plateforme différente de celle du serveur et si les platesformes n'utilisent pas les mêmes schémas de codage de
caractères. Les données de caractères transmises entre le client et le serveur doivent être converties entre les deux schémas
de codage. La conversion des caractères se produit automatiquement et de manière transparente via Oracle Net.
NLS_LANG=AL32UTF8
Réseau Oracle
Client Serveur
Les données non valides entrent généralement dans une base de données lorsque le paramètre NLS_LANG n'est pas défini correctement sur le client.
La valeur NLS_LANG doit refléter le codage des données entrantes.
Lorsque le paramètre NLS_LANG est défini correctement, la base de données peut convertir automatiquement les données entrantes du
système d'exploitation client.
Lorsque le paramètre NLS_LANG n'est pas défini correctement, les données entrant dans la base de données ne sont pas converties
correctement.
Par exemple, supposons que le jeu de caractères de la base de données est AL32UTF8, que le client est un système d'exploitation
Windows anglais (page de codes : WE8MSWIN1252) et que le paramètre NLS_LANG sur le client est AL32UTF8. Les données entrant
dans la base de données sont codées en WE8MSWIN1252 et ne sont pas converties en données AL32UTF8 car le paramètre NLS_LANG
sur le client correspond au jeu de caractères de la base de données.
Le serveur de base de données Oracle suppose qu'aucune conversion n'est nécessaire et des données non valides sont entrées dans la
base de données.
Tâche Description
Créer une base de données Créer et configurer une nouvelle base de données
Créer et gérer des modèles de conception de base de données Créer un fichier XML contenant les informations requises pour créer une
nouvelle base de données
Supprimer une base de données Arrêtez l'instance de base de données et supprimez tous les fichiers
de base de données
Gérer des bases de données enfichables dans une architecture multi Créer, supprimer et déconnecter des PDB
tenant
Modifier la configuration d'une base de données ou d'une PDB Configurer les options et les paramètres de sécurité
Oracle Database Configuration Assistant (DBCA) est un outil permettant de créer et de configurer une base de données Oracle.
DBCA peut être lancé par Oracle Universal Installer (OUI), selon le type d'installation que vous sélectionnez. Vous pouvez également
lancer DBCA en tant qu'outil autonome à tout moment après l'installation d'Oracle Database.
Vous pouvez exécuter DBCA en mode interactif ou en mode non interactif/silencieux. Le mode interactif fournit une interface
graphique et un flux de travail guidé pour créer et configurer une base de données.
Vous pouvez utiliser DBCA pour créer une base de données à partir d'un modèle fourni par Oracle ou d'un modèle que vous créez.
Un modèle DBCA est un fichier XML qui contient les informations requises pour créer une base de données.
Sélectionnez le modèle adapté au type de charge de travail que votre base de données prendra en charge. Si vous ne savez pas
lequel choisir, utilisez le modèle "Traitement des transactions à usage général OU en ligne". Vous pouvez également créer des modèles
personnalisés pour répondre aux exigences spécifiques de votre charge de travail.
Les informations contenues dans les modèles incluent les options de base de données, les paramètres d'initialisation et les attributs de stockage
(pour les fichiers de données, les espaces de table, les fichiers de contrôle et les fichiers de journalisation en ligne).
Les modèles peuvent être utilisés comme des scripts, mais ils sont plus puissants que les scripts car vous avez la possibilité de
dupliquer une base de données. La duplication permet de gagner du temps car vous copiez les fichiers d'une base de données
existante, appelée base de données initiale, aux emplacements appropriés.
Lorsqu'une base de données de conteneur mutualisée (CDB) existe, vous pouvez utiliser DBCA pour effectuer des opérations
de base de données enfichable (PDB) dans la CDB. Vous pouvez créer, supprimer et déconnecter un PDB.
Vous pouvez utiliser DBCA pour modifier la configuration d'une base de données existante. Par exemple, vous pouvez apporter des
modifications de configuration telles que :
• Ajouter des options de base de données qui n'ont pas été configurées
• Créer une nouvelle base de données nommée ORCL à l'aide du modèle à usage général
Vous pouvez également créer une base de données en utilisant le mode non interactif/silencieux de DBCA. Le mode non interactif/
silencieux vous permet de créer un script de création de base de données. Vous pouvez exécuter DBCA en mode non interactif/silencieux
en spécifiant des arguments de ligne de commande, un fichier de réponse ou les deux.
Consultez le Guide de l'administrateur de la base de données Oracle Database pour obtenir des informations détaillées sur la syntaxe
et les options des commandes du mode silencieux de l'assistant de configuration de base de données (DBCA).
Résumé
Dans cette leçon, vous devriez avoir appris à :
• Créer une base de données à l'aide de l'assistant de configuration de base de données (DBCA) •
Aperçu de la pratique
4
Création d'une base de données Oracle par
Utilisation d'une commande SQL
Objectifs
Après avoir terminé cette leçon, vous devriez être en mesure de créer une base de données de
conteneur (CDB) à l'aide de la commande CREATE DATABASE.
[Link]
Exemple
SGA
1 Exemple
Structures de processus
2
CDB Fichiers de données Fichiers de Fichiers de
contrôle journalisation
ANNULER
SYSTÈME
TEMP
SYSAUX
3 Racine CDB
À partir de la racine CDB,
exécutez [Link]
Fichiers de données
ou
ANNULER
[Link] et [Link] SYSTÈME
Vous pouvez créer une base de données de conteneur (CDB) à l'aide de la commande CREATE DATABASE. La clause
ENABLE PLUGGABLE DATABASE spécifie que la base de données est une base de données conteneur mutualisée et non
une nonCDB. L'opération crée les fichiers de contrôle pendant la phase de montage et les fichiers de journalisation et les
fichiers de données racine CDB pendant la phase d'ouverture. Les fichiers de données racine CDB sont utilisés pour l'espace
de table SYSTEM contenant le dictionnaire de métadonnées et de données fourni par Oracle, l'espace de table SYSAUX pour
le référentiel de charge de travail automatique (AWR) et l'espace de table d'annulation. Il crée également la graine CDB avec
ses propres fichiers de données utilisés pour les tablespaces SYSAUX, SYSTEM et undo. Vous pouvez utiliser la clause
SEED FILE_NAME_CONVERT pour définir l'emplacement des fichiers de données de la base de données enfichable initiale CDB.
La clause crée la graine CDB. Les fichiers de données de départ CDB peuvent être utilisés comme modèles pour la création
future de PDB. Si vous omettez cette clause, Oracle Managed Files (OMF) détermine les noms et les emplacements des fichiers
de départ CDB.
1. Démarrez l'instance : a.
Définissez ORACLE_SID=CDB1.
b. Créez le fichier [Link] et définissez les paramètres : –
CONTROL_FILES en noms de fichiers de contrôle CDB –
DB_NAME en un nom CDB –
ENABLE_PLUGGABLE_DATABASE sur TRUE
Vous trouverez cidessous les étapes détaillées pour créer un nouveau CDB à l'aide de SQL*Plus.
1. Avant de démarrer l'instance, créez un fichier de paramètres d'initialisation avec les paramètres :
DB_NAME, CONTROL_FILES si OMF n'est pas utilisé et DB_BLOCK_SIZE. Le nom de base de données global
de la racine CDB est le nom de base de données global du CDB. Le paramètre ENABLE_PLUGGABLE_DATABASE
défini sur TRUE est requis pour définir que l' instance est prête pour une création CDB et non une création non
CDB. Vous pouvez également utiliser le paramètre MAX_PDBS pour limiter le nombre de PDB dans la CDB.
Une façon de déclarer le répertoire pour les fichiers de données de départ PDB consiste à
utiliser la clause SEED FILE_NAME_CONVERT. La clause FILE_NAME_CONVERT spécifie le répertoire source
des fichiers de données racine CDB et le répertoire de départ CDB cible.
Le répertoire racine /u01/app/oradata/CDB1 et le répertoire de départ /u01/app/oradata/CDB1/seed doivent
exister.
Résumé
Dans cette leçon, vous devez avoir appris à créer une CDB à l'aide de la commande
CREATE DATABASE.
Aperçu de la pratique
5
Démarrage et arrêt d'un
Instance de base de données
Objectifs
OUVRIR
COMMENCEZ
COMMENCEZ
MONTAGE DE DÉMARRAGE
Instance démarrée
FERMETURE
Avant que les utilisateurs puissent se connecter à une instance de base de données, un administrateur de base de données doit démarrer
l'instance de base de données. L'instance de base de données et la base de données passent par des étapes au fur et à mesure que la base de
données est mise à la disposition des utilisateurs. L'instance de base de données est démarrée, la base de données est montée, puis la base de
données est ouverte, comme illustré dans la diapositive.
Vous pouvez utiliser la commande STARTUP dans SQL*Plus avec les options présentées dans la diapositive pour chaque étape.
L'option par défaut est OUVERT.
NOMOUNT : au cours de cette étape, le logiciel Oracle lit un fichier de paramètres d'initialisation, démarre des processus en arrière
plan, alloue de la mémoire à la SGA et ouvre le journal des alertes et les fichiers de trace. Une instance est généralement démarrée
uniquement en mode NOMOUNT lors de la création de la base de données, lors de la recréation des fichiers de contrôle ou dans certains
scénarios de sauvegarde et de restauration.
MOUNT : Au cours de cette étape, le logiciel Oracle associe la base de données (CDB) à l'instance de base de données précédemment
démarrée, ouvre et lit les fichiers de contrôle qui sont spécifiés dans le fichier de paramètres d'initialisation, et obtient les noms et les statuts
des fichiers de données et le rétablissement en ligne. fichiers journaux. Cependant, aucune vérification n'est effectuée pour vérifier l'existence
des fichiers de données et des fichiers de journalisation en ligne pour le moment. Démarrez en mode MOUNT pour effectuer certaines
opérations de maintenance, telles que renommer les fichiers de données et effectuer des récupérations complètes de la base de données.
OUVRIR : Le logiciel Oracle ouvre les fichiers de journalisation et les fichiers de données selon la liste enregistrée dans les fichiers de
contrôle. Démarrez en mode OPEN pour permettre aux utilisateurs de se connecter à l'instance de base de données. Les PDB ne sont pas,
par défaut, démarrés lorsque vous ouvrez la base de données.
• Parfois, vous devez arrêter l'instance de base de données (par exemple, pour modifier un
paramètre statique ou corrigez le serveur de base de données).
• Utilisez la commande SHUTDOWN pour arrêter l'instance de base de données dans différents modes : ABORT,
IMMEDIATE, NORMAL et TRANSACTIONAL.
transactions en cours
Mode ABORT : Si les autres modes d'arrêt ne fonctionnent pas, vous pouvez utiliser le mode ABORT. Le mode ABORT
effectue le moins de travail avant l'arrêt. Étant donné que ce mode place la base de données dans un état incohérent et nécessite
une récupération avant le démarrage, utilisezle uniquement lorsque cela est nécessaire. Il n'est pas conseillé de sauvegarder la
base de données dans cet état. Il est généralement utilisé lorsqu'aucune autre forme d'arrêt ne fonctionne, lorsqu'il y a des
problèmes avec le démarrage de l'instance de base de données ou lorsque vous devez arrêter immédiatement en raison d'une
situation imminente (comme un avis de panne de courant en quelques secondes).
Le mode ABORT est généralement le mode d'arrêt le plus rapide et le mode NORMAL est le plus lent. Les modes NORMAL
et TRANSACTIONNEL peuvent prendre beaucoup de temps selon le nombre de sessions et de transactions.
Ce qui suit se produit lors d'un arrêt en mode ABORT, d'un échec d'instance ou d'un démarrage d'instance de base de
données en mode FORCE : Les instructions SQL en cours de traitement par le serveur Oracle sont immédiatement
•
arrêtées.
• Le serveur Oracle n'attend pas que les utilisateurs actuellement connectés à la base de données
déconnecter.
• Les tampons de base de données et de rétablissement ne sont pas écrits sur le disque.
Mode IMMÉDIAT : Un arrêt en mode IMMÉDIAT est l'option la plus couramment utilisée.
•
Les instructions SQL en cours de traitement par l'instance de base de données ne sont pas terminées.
• Le serveur de base de données n'attend pas les utilisateurs actuellement connectés à la base de données
instance à déconnecter.
• Le serveur de base de données annule les transactions actives et déconnecte tous les utilisateurs connectés.
• Le serveur de base de données ferme et démonte la base de données avant d'arrêter la base de données
exemple.
Mode NORMAL : NORMAL est le mode d'arrêt par défaut si aucun mode n'est spécifié avec la commande SHUTDOWN.
• Le serveur Oracle attend que tous les utilisateurs se déconnectent avant de terminer l'arrêt. • Les tampons de
base de données et de rétablissement sont écrits sur le disque.
• Les processus d'arrièreplan sont terminés et le SGA est supprimé de la mémoire. • Le serveur Oracle
ferme et démonte la base de données avant d'arrêter l'instance.
Mode TRANSACTIONNEL : Un arrêt en mode TRANSACTIONNEL empêche les clients de perdre des données, y compris
les résultats de leur activité en cours.
• Aucun client ne peut démarrer une nouvelle transaction sur cette instance particulière.
• Un client est déconnecté lorsqu'il termine la transaction en cours. • Lorsque toutes les transactions sont
terminées, un arrêt se produit immédiatement.
Le schéma de cette diapositive montre les modes d'arrêt IMMÉDIAT, TRANSACTIONNEL et NORMAL.
Le diagramme de la diapositive suivante montre le mode d'arrêt ABORT (et l'échec de l'instance ou le mode
STARTUP FORCE). Notez que la base de données devient incohérente lorsque vous effectuez un arrêt ABORT,
alors qu'elle reste cohérente pendant les autres modes d'arrêt. Notez également que vous devez récupérer l'instance
de base de données après avoir effectué un arrêt ABORT, alors qu'avec les autres modes d'arrêt, vous n'avez pas
besoin de le faire.
Notez que la base de données devient incohérente lorsque vous effectuez un arrêt ABORT, alors qu'elle
reste cohérente pendant les autres modes d'arrêt. Notez également que vous devez récupérer l'instance de
base de données après avoir effectué un arrêt ABORT, alors qu'avec les autres modes d'arrêt, vous n'avez
pas besoin de le faire.
• La commande ALTER PLUGGABLE DATABASE permet de passer de n'importe quel mode ouvert à
un autre.
Modes ouverts
Démarrage d'un PDB et ouverture d'un PDB signifient la même chose, et vous trouverez les deux expressions
utilisées dans la documentation et les ressources en ligne. Lorsque vous ouvrez un PDB, le serveur de base de
données ouvre les fichiers de données pour ce PDB. Semblable à un CDB, un PDB a quatre niveaux d'ouverture, et
ces niveaux sont appelés modes ouverts. Les modes ouverts sont READ WRITE (la PDB est entièrement démarrée/
ouverte), READ ONLY, MIGRATE et MOUNTED (la PDB est arrêtée/fermée).
Exemples
Dans cet exemple, PDB1 est démarré (ouvert). Son mode ouvert passe de MOUNT à READ WRITE.
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN ;
Dans cet exemple, PDB1 est arrêté (fermé). Son mode ouvert est changé en MOUNT.
SQL> ALTER PLUGGABLE DATABASE PDB1 CLOSE ;
FERMER
Ouverture automatique
de l'APB COMMENCEZ
Après le redémarrage d'une instance CDB, les PDB sont par défaut conservés en mode monté. Si vous souhaitez
que les PDB s'ouvrent automatiquement à chaque redémarrage de la CDB, utilisez la clause SAVE STATE de la
commande ALTER PLUGGABLE DATABASE pour conserver le mode d'ouverture d'une PDB lors du redémarrage de
la CDB. La clause SAVE STATE enregistre le dernier état ouvert de la PDB. Ainsi, la PDB ne s'ouvrira après le
redémarrage de la CDB que si la PDB était à l'état ouvert lorsque la clause SAVE STATE a été utilisée pour enregistrer
le dernier état. Pour revenir au comportement par défaut, utilisez la clause DISCARD STATE.
Résumé
Dans cette leçon, vous devez avoir appris à : •
Démarrer et arrêter des bases de données Oracle
• Ouvrir et fermer des PDB
Aperçu de la pratique
Objectifs
Lorsque vous démarrez une instance de base de données, elle lit les paramètres de configuration de l'instance (paramètres
d'initialisation) à partir d'un fichier de paramètres d'initialisation (fichier de paramètres). Sur la plupart des platesformes, les fichiers de
paramètres sont stockés dans le répertoire $ORACLE_HOME/dbs par défaut.
Vous pouvez utiliser l'un des types de fichiers de paramètres suivants pour démarrer votre instance de base de données,
comme illustré dans la diapositive :
• Fichier de paramètres du serveur (SPFILE) : Un SPFILE est un fichier binaire qui est écrit et lu par le serveur de base de données.
Vous ne pouvez pas le modifier manuellement. Un SPFILE est préférable à un PFILE car vous pouvez modifier les paramètres
d'initialisation avec les commandes ALTER SYSTEM dans SQL*Plus, et les modifications persistent lorsque vous arrêtez et
démarrez l'instance de base de données. Il fournit également une base pour l'autoréglage par Oracle Database. Un SPFILE est
automatiquement créé pour vous par Database Configuration Assistant (DBCA) lorsque vous créez un CDB. Il réside sur le
serveur sur lequel l'instance Oracle s'exécute. Le nom par défaut du SPFILE, qui est automatiquement recherché au démarrage,
est SPFILE<SID>.ora.
• Fichier de paramètres d'initialisation de texte (PFILE) : Un PFILE est un fichier texte contenant des valeurs de paramètres dans des
paires nom/valeur, que le serveur de base de données peut lire pour démarrer l'instance de base de données.
Contrairement à un SPFILE, le serveur de base de données ne peut pas écrire et modifier un PFILE. Par
conséquent, pour modifier les valeurs des paramètres dans un PFILE et les faire persister lors de l'arrêt et du
démarrage, vous devez modifier manuellement le PFILE dans un éditeur de texte et redémarrer l'instance de base
de données pour actualiser les valeurs des paramètres. Votre installation inclut un exemple de fichier PFILE nommé
[Link] dans le répertoire par défaut des fichiers de paramètres. Vous pouvez utiliser ce fichier comme point de
départ pour un PFILE, ou vous pouvez créer un PFILE à partir du SPFILE. Si vous enregistrez votre PFILE sous
init<SID>.ora dans le répertoire par défaut, le serveur de base de données l'utilisera automatiquement si un SPFILE
n'est pas disponible. Si vous enregistrez le PFILE sous un nom différent, vous devrez le spécifier au démarrage.
Le serveur de base de données localise votre fichier de paramètres en examinant les noms de fichier dans le
répertoire $ORACLE_HOME/dbs dans l'ordre suivant :
1. SPFILE<SID>.ora, où SID est l'ID système et identifie le nom de l'instance (par
exemple, ORCL)
2. [Link]
3. init<SID>.ora (PFILE)
Paramètres d'initialisation
• Paramètres d'initialisation (paramètres) :
– Définir les limites de la base de données
• Les paramètres dérivés calculent leurs valeurs à partir des valeurs d'autres paramètres.
– Exemple : SESSIONS est dérivé de PROCESSES.
Les paramètres d'initialisation (paramètres) définissent les limites de la base de données, définissent les valeurs par défaut à l'échelle de la
base de données, spécifient les fichiers et les répertoires et affectent les performances. Le fichier de paramètres doit, au minimum, spécifier
le paramètre DB_NAME. Tous les autres paramètres ont des valeurs par défaut.
Certains paramètres sont dérivés, ce qui signifie que leurs valeurs sont calculées à partir des valeurs
d'autres paramètres. Normalement, vous ne devez pas modifier les valeurs des paramètres dérivés. Mais si vous le
faites, la valeur que vous spécifiez remplace la valeur calculée. Par exemple, la valeur par défaut du paramètre
SESSIONS est dérivée de la valeur du paramètre PROCESSES. Si la valeur de PROCESSES change, la valeur par
défaut de SESSIONS change également, sauf si vous la remplacez par une valeur spécifiée.
Voir
Passez en revue les informations sur le paramètre CONTROL_FILES. Oracle Database Reference est une
bonne source d'informations sur les paramètres. Dans cet exemple, vous apprendrez le type de données du
paramètre (chaîne), la syntaxe (CONTROL_FILES = nom de fichier, [, nom de fichier]...), la valeur par défaut
(selon le système d'exploitation), si elle est modifiable (non), si vous peut modifier sa valeur dans une PDB (non),
sa plage de valeurs (1 à 8 noms de fichiers), s'il s'agit d'un paramètre de base (oui), et des détails pour Oracle
Real Application Clusters (plusieurs instances doivent avoir la même valeur).
• Modifier les paramètres pour définir des limites de capacité ou améliorer les performances.
– SPFILE
– LES DEUX
• Utilisez le motclé DEFERRED pour définir ou modifier la valeur du paramètre pour les futures sessions qui se
connectent à la base de données.
modifiez les paramètres car vous souhaitez définir des limites de capacité ou améliorer les performances. Vous pouvez utiliser
les commandes ALTER SESSION ou ALTER SYSTEM dans SQL*Plus pour modifier les paramètres. Dans votre propre
environnement, vous ne modifierez probablement que les paramètres d'initialisation de base pour que votre base de données
fonctionne avec de bonnes performances.
L'augmentation des valeurs des paramètres peut améliorer les performances de votre système, mais l'augmentation de la plupart
des paramètres augmente également la taille de la SGA. Une SGA plus grande peut améliorer les performances de la base de
données jusqu'à un certain point. Un SGA trop volumineux peut dégrader les performances s'il est échangé dans et hors de la
mémoire. Vous devez définir les paramètres du système d'exploitation qui contrôlent les zones de travail de la mémoire virtuelle en
tenant compte de la taille SGA. La configuration du système d'exploitation peut également limiter la taille maximale de la SGA.
Avant de modifier un paramètre, vous devez interroger la vue V$PARAMETER pour savoir comment modifier un paramètre.
• La valeur de la colonne ISSES_MODIFIABLE vous indique si vous pouvez modifier le paramètre pour votre session en cours
(TRUE) ou non (FALSE) à l'aide de la commande ALTER SESSION. Vous pouvez modifier certains paramètres au niveau
de la session, mais pas tous. Les modifications sont appliquées à votre session en cours immédiatement (de manière
dynamique) et expirent lorsque vous fermez votre session.
Les paramètres avec une valeur TRUE sont appelés paramètres de niveau session.
Exemple : SQL> ALTER SESSION SET NLS_DATE_FORMAT ='mon jj aaaa';
• La valeur de la colonne ISSYS_MODIFIABLE vous indique quand une modification au niveau système du paramètre,
effectuée à l'aide de la commande ALTER SYSTEM, prend effet.
IMMÉDIAT signifie que la modification prendra effet immédiatement et sera appliquée à toutes les sessions
en cours.
DIFFÉRÉ signifie que le changement prendra effet dans les sessions suivantes.
FALSE signifie que la modification prendra effet dans les instances suivantes.
Vous pouvez modifier tous les paramètres au niveau du système à l'aide de la commande ALTER
SYSTEM, et la modification est appliquée à toutes les sessions.
Les paramètres avec la valeur FALSE sont appelés paramètres statiques. Pour les paramètres statiques, vous devez
arrêter et redémarrer l'instance de base de données pour implémenter la modification. De plus, l'instance de base
doit de
avoir
données
été
démarrée avec un SPFILE.
• La valeur de la colonne ISPDB_MODIFIABLE vous indique si vous pouvez (TRUE) ou ne pouvez pas (FALSE) modifier le
paramètre à l'intérieur d'un PDB. Dans une nonCDB, la valeur de cette colonne est NULL.
clause SCOPE avec la commande ALTER SYSTEM pour indiquer au système où mettre à jour le paramètre de niveau
système. Cet emplacement dicte combien de temps le changement restera en vigueur. La portée dépend également du
démarrage de l'instance de base de données à l'aide d'un PFILE ou d'un SPFILE. Scope peut avoir les valeurs suivantes : •
MEMORY : Cette valeur indique au système de modifier le paramètre uniquement en mémoire. Le
le changement prendra effet immédiatement, mais ne persistera pas dans les sessions suivantes. Si vous avez démarré
l' instance de base de données à l'aide d'un PFILE, il s'agit de la seule étendue que vous pouvez spécifier. Cette
spécification n'est pas autorisée pour les paramètres statiques.
• SPFILE : cette valeur indique au système de modifier le paramètre uniquement dans le SPFILE. La modification prendra effet
immédiatement et persistera après le redémarrage de l'instance de base de données. Il s'agit de la seule étendue
autorisée pour les paramètres statiques.
• BOTH : cette valeur indique au système de modifier le paramètre à la fois dans la mémoire et dans le SPFILE. La modification
prendra effet immédiatement et persistera après le redémarrage de l'instance de base de données. Si vous avez
démarré l'instance de base de données à l'aide d'un SPFILE, BOTH est la valeur par défaut.
clé DEFERED indique au système de rendre le changement de paramètre effectif uniquement pour les sessions futures.
Vous devez spécifier DEFERRED dans la commande ALTER SYSTEM si la valeur de la colonne ISSYS_MODIFIABLE est
DEFERRED. Si la valeur de cette colonne est IMMEDIATE, le motclé DEFERRED est facultatif. Si la valeur de cette colonne
est FALSE, vous ne pouvez pas spécifier DEFERRED dans l'instruction ALTER SYSTEM.
cell_offload_parameters chaîne
Vous pouvez également interroger la vue V$PARAMETER dans SQL*Plus pour afficher des informations sur un paramètre
d'initialisation. Par exemple, la requête suivante sur la vue V$PARAMETER renvoie des informations sur les paramètres dont
les noms contiennent le mot « pool ».
SQL> SELECT nom, valeur FROM v$paramètre WHERE nom LIKE '%pool%' ;
NOM VALEUR
taille_pool_partagée 0
taille_large_pool 0
taille_pool_java 0
streams_pool_size 0
shared_pool_reserved_size 15728640
…
9 lignes sélectionnées.
Les autres vues contenant des informations sur les paramètres incluent :
• V$SPPARAMETER : affiche des informations sur le contenu du SPFILE. Si vous n'avez pas utilisé de
SPFILE pour démarrer l'instance de base de données, chaque ligne de la vue contiendra FALSE dans la
colonne ISSPECIFIED.
• V$PARAMETER2 : affiche des informations sur les paramètres actuellement en vigueur pour la session, chaque valeur de
paramètre apparaissant sous la forme d'une ligne dans la vue. Une nouvelle session hérite des valeurs de paramètre des
valeurs à l'échelle de l'instance de base de données affichées dans la vue V$SYSTEM_PARAMETER2.
• V$SYSTEM_PARAMETER : affiche des informations sur les paramètres qui sont actuellement
effet pour l'instance de base de données
• V$SYSTEM_PARAMETER2 : affiche des informations sur les paramètres d'initialisation actuellement en vigueur pour
l'instance, chaque valeur de paramètre de liste apparaissant sous forme de ligne dans la vue.
Le répertoire racine ADR est appelé la base ADR. Son emplacement est défini par le paramètre
d'initialisation DIAGNOSTIC_DEST (par exemple, /u01/app/oracle).
L'emplacement d'un répertoire d'accueil ADR est donné par le chemin suivant, qui commence au répertoire
de base ADR : <ADR Base>/diag/product_type/db_id/instance_id
Par exemple : /
u01/app/oracle/diag/rdbms/orcl/ORCL
$ORACLE_BASE
$ORACLE_HOME/journal
ADR
Base
Établi de soutien
diagnostic
rdbms
BD
Nom
Vidages mémoire
ADR métadonnées Traces de processus
SID
Maison
de premier plan et d'arrière
Données du journal des alertes
plan , et données du journal des alertes
incdir_1 … incdir_n
Vidages
ADRCI [Link] alert_SID.log V$DIAG_INFO
d'incidents
ADR est un référentiel basé sur des fichiers pour les données de diagnostic de base de données telles que les traces, les
vidages d'incidents et les packages, le journal des alertes, les rapports Health Monitor, les vidages mémoire, etc. Il dispose
d'une structure de répertoires unifiée sur plusieurs instances et plusieurs produits, stockés en dehors de toute base de
données. Il est donc disponible pour le diagnostic des problèmes lorsque la base de données est en panne.
Le serveur de base de données Oracle, Automatic Storage Management (ASM), Cluster Ready Services (CRS) et d'autres
produits ou composants Oracle stockent toutes les données de diagnostic dans l'ADR. Chaque instance de chaque produit stocke les
données de diagnostic sous son propre répertoire d'accueil ADR. Par exemple, dans un environnement Real Application Clusters
avec stockage partagé et ASM, chaque instance de base de données et chaque instance ASM ont un répertoire de base dans l'ADR.
La structure de répertoire unifiée d'ADR, les formats de données de diagnostic cohérents entre les produits et les instances, et un
ensemble unifié d'outils permettent aux clients et au support Oracle de corréler et d'analyser les données de diagnostic sur plusieurs
instances.
Le répertoire racine ADR est appelé la base ADR. Son emplacement est défini par le paramètre d'initialisation
DIAGNOSTIC_DEST. Si ce paramètre est omis ou laissé à zéro, la base de données définit DIAGNOSTIC_DEST au démarrage
comme suit : Si la variable d'environnement ORACLE_BASE est définie, DIAGNOSTIC_DEST est défini sur $ORACLE_BASE.
Si la variable d'environnement ORACLE_BASE n'est pas définie, DIAGNOSTIC_DEST est défini sur $ORACLE_HOME/log.
• Le fichier journal des alertes est un journal chronologique des messages concernant l'instance de base de données et la
base de données, tels que :
– Tous les paramètres d'initialisation autres que ceux par défaut utilisés au démarrage
– Toutes les erreurs internes (ORA600), les erreurs de corruption de bloc (ORA1578) et les erreurs de blocage
(ORA60) qui s'est produit
– Les opérations administratives, telles que les instructions SQL CREATE, ALTER, DROP DATABASE
et TABLESPACE, et les instructions Enterprise Manager ou SQL*Plus STARTUP,
ARRÊT, ARCHIVAGE DU JOURNAL et RÉCUPÉRATION
• Vous pouvez visualiser le journal des alertes dans un éditeur de texte ou dans ADRCI.
Chaque instance de base de données possède un fichier alert_SID.log. Le fichier se trouve sur le serveur avec la base de
données et est stocké dans $ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace par défaut si $ORACLE_BASE est défini.
Oracle Database utilise le journal des alertes pour conserver un enregistrement de ces événements au lieu d'afficher les
informations sur la console d'un opérateur. De nombreux systèmes affichent également ces informations sur la console.
Si une opération administrative réussit, un message est écrit dans le journal des alertes comme « terminé » avec un
horodatage.
Enterprise Manager Cloud Control surveille le fichier journal des alertes et vous avertit des erreurs critiques. Vous pouvez
également afficher le journal pour voir les messages d'erreur et d'information non critiques. Étant donné que le fichier peut atteindre
une taille ingérable, vous pouvez périodiquement sauvegarder le fichier d'alerte et supprimer le fichier d'alerte actuel.
Lorsque la base de données tente à nouveau d'écrire dans le fichier d'alerte, elle en crée un nouveau.
ADRCI est un utilitaire de ligne de commande Oracle qui vous permet d'enquêter sur les problèmes, d'afficher les rapports de
vérification de l'état, de regrouper et de télécharger les données de premier échec vers le support Oracle. Vous pouvez également
utiliser l'utilitaire pour afficher les noms des fichiers de trace dans l'Automatic Diagnostic Repository (ADR) et le journal des alertes.
ADRCI dispose d'un jeu de commandes riche que vous pouvez utiliser de manière interactive ou dans des scripts.
– Informations sur l'erreur (contactez les services de support Oracle si une erreur interne se produit)
– Informations pouvant fournir des conseils pour le réglage d'applications ou d'une instance
• Chaque serveur et processus d'arrièreplan peuvent écrire dans un fichier de trace associé. • Les noms de
fichier de trace pour les processus d'arrièreplan sont nommés d'après leurs processus.
– Exception : fichiers de trace générés par les processus de file d'attente des travaux
• Oracle Database inclut une infrastructure avancée de diagnostic des pannes pour prévenir,
détecter, diagnostiquer et résoudre les problèmes.
– Les données de diagnostic de l'erreur (telles que les fichiers de suivi) sont immédiatement capturées et étiquetées avec le numéro
d'incident
• Les fichiers ADR peuvent être automatiquement purgés en définissant des paramètres de stratégie de rétention.
Fichiers de trace
Chaque serveur et processus d'arrièreplan peuvent écrire dans un fichier de trace associé. Lorsqu'un processus détecte une erreur interne, il
vide les informations sur l'erreur dans son fichier de trace. Si une erreur interne se produit et que des informations sont écrites dans un fichier de
trace, l'administrateur doit contacter les services de support Oracle.
Tous les noms de fichier des fichiers de trace associés à un processus d'arrièreplan contiennent le nom du processus qui a généré le fichier de
trace. La seule exception à cette règle concerne les fichiers de trace générés par les processus de file d'attente des travaux (Jnnn).
Des informations supplémentaires dans les fichiers de trace peuvent fournir des conseils pour le réglage des applications ou d'une instance.
Les processus d'arrièreplan écrivent toujours ces informations dans un fichier de trace, le cas échéant.
Oracle Database comprend une infrastructure avancée de diagnostic des pannes pour prévenir, détecter, diagnostiquer et résoudre les
problèmes. En particulier, les problèmes ciblés incluent les erreurs critiques telles que celles causées par des bogues de code de base de
données, la corruption des métadonnées et la corruption des données client.
Lorsqu'une erreur critique survient, un numéro d'incident lui est attribué ; les données de diagnostic de l'erreur (telles que les fichiers de trace) sont
immédiatement capturées et étiquetées avec ce numéro. Les données sont ensuite stockées dans le référentiel de diagnostic automatique (ADR)
un référentiel basé sur des fichiers en dehors de la base de données où elles peuvent ensuite être récupérées par numéro d'incident et analysées.
Mécanisme de purge
• Quel âge doit avoir le contenu ADR avant qu'il ne soit automatiquement supprimé
La longue période de conservation est utilisée pour les données de diagnostic de valeur relativement plus élevée, telles que
les incidents et le journal des alertes (la valeur par défaut est de 365 jours).
La période de rétention courte est utilisée pour les traces et les core dumps (la valeur par défaut est 30
jours).
Les éléments plus anciens sont supprimés en premier. Les éléments à longue période de conservation sont généralement plus anciens que n'importe lequel des
les éléments dans la courte période de conservation. Ainsi, un mécanisme est utilisé dans lequel les périodes de temps sont "mises
à l'échelle" de sorte qu'à peu près le même pourcentage de chacune soit supprimé. Certains composants utilisent ces périodes de
manière légèrement différente. Par exemple, IPS, l'installation de conditionnement, utilise la courte période de conservation pour
déterminer quand purger les métadonnées de conditionnement et le contenu du répertoire intermédiaire. Cependant, l'âge des données
est basé sur le moment où le package a été terminé, et non sur sa date de création initiale. • La rétention basée sur la taille
une taille
pour cible
spécifier
pour une maison ADR
Lors de la purge, les anciennes données, déterminées par les périodes de conservation basées sur le temps, sont supprimées en
premier. Si la taille de l'accueil ADR est toujours supérieure à la taille cible, les diagnostics sont automatiquement supprimés jusqu'à ce que
la taille cible ne soit plus dépassée.
• Activez la capture de certaines instructions DDL dans un fichier journal DDL en définissant
ENABLE_DDL_LOGGING à TRUE
• Le journal DDL contient un enregistrement de journal pour chaque instruction
DDL. • Deux journaux DDL contiennent les mêmes informations : – Journal
XML DDL : [Link] écrit dans $ORACLE_BASE/diag/rdbms/<dbname>/
<SID>/log/ddl
– Texte DDL : ddl_<sid>.log écrit dans
$ORACLE_BASE/diag/rdbms/<dbname>/<SID>/log
• Exemple : $
more ddl_orcl.log
Jeu 15 novembre [Link] 2016
diag_adl : supprimer l'utilisateur app_user
Le journal DDL est créé uniquement si le paramètre d'initialisation ENABLE_DDL_LOGGING est défini sur TRUE.
Lorsque ce paramètre est défini sur FALSE, les instructions DDL ne sont incluses dans aucun journal. Un sousensemble
d'instructions DDL exécutées est écrit dans le journal DDL.
Deux journaux DDL contiennent les mêmes informations. L'un est un fichier XML et l'autre est un fichier texte. Le journal DDL est
stocké dans le sousrépertoire log/ddl du répertoire d'accueil ADR.
Remarque : vous devez disposer d'une licence pour Oracle Database Lifecycle Management Pack pour activer la
journalisation DDL.
• Les vues de performances dynamiques permettent d'accéder à des informations sur les états changeants de
structures de mémoire d'instance :
– Sessions, états des fichiers et verrous
– Avancement des travaux et des tâches
• Exemple de requête : Quelles sessions en cours se sont connectées à partir de l'ordinateur EDXX9P1 sur
le dernier jour?
Le serveur de base de données Oracle conserve un ensemble dynamique de données sur le fonctionnement et les performances de
l'instance de base de données. Les vues de performances dynamiques sont basées sur des tables virtuelles construites à partir de
structures de mémoire à l'intérieur du serveur de base de données. Ce ne sont pas des tables conventionnelles qui résident dans une
base de données. C'est la raison pour laquelle certains d'entre eux sont disponibles avant qu'une base de données ne soit montée ou ouverte.
Remarque : Les vues DICT et DICT_COLUMNS contiennent également les noms de ces vues de performances
dynamiques.
Vous pouvez utiliser des vues de performances dynamiques pour répondre à des questions telles que :
1. Pour quelles instructions SQL (et leurs nombres d'exécutions associés) est le temps CPU
consommé plus de 200 000 microsecondes ?
SQL> SELECT sql_text, exécutions FROM V$SQL WHERE cpu_time > 200000 ;
2. Quels sont les ID de session de ces sessions qui détiennent actuellement un verrou qui bloque un autre utilisateur,
et depuis combien de temps ces verrous sontils détenus ?
SQL> SELECT sid, ctime FROM v$lock WHERE block > 0;
vues fournissent des informations en fonction de l'étape (NOMOUNT, MOUNT ou OPEN). • Vous
• La cohérence de lecture n'est pas garantie sur ces vues car les données sont dynamiques.
Certaines vues dynamiques fournissent des informations qui ne s'appliquent pas à tous les états d'une instance ou
d'une base de données. Par exemple, si une instance vient d'être démarrée mais qu'aucune base de données n'est montée,
vous pouvez interroger V$BGPROCESS pour voir la liste des processus d'arrièreplan en cours d'exécution. Mais interroger
V$DATAFILE pour voir l'état des fichiers de données de la base de données ne renverrait aucune ligne. La base de données
doit être montée ou ouverte pour que V$DATAFILE fournisse des informations significatives. C'est lors du montage de la base
de données que le fichier de contrôle est lu pour obtenir des informations sur les fichiers de données associés à une base de
données.
Certaines vues V$ contiennent des informations similaires à celles des vues DBA_ correspondantes.
Par exemple, V$DATAFILE est similaire à DBA_DATA_FILES. Notez également que les noms de vue V$ sont
généralement au singulier et que les noms de vue DBA_ sont au pluriel.
les tables
Index
Espace table SYSTEM
Vues
Utilisateurs
Schémas
Métadonnées
Procédures
…et ainsi de suite
Le dictionnaire de données Oracle est les métadonnées de la base de données et contient les noms et attributs de tous les objets
de la base de données. La création ou la modification d'un objet entraîne une mise à jour du dictionnaire de données qui reflète ces
modifications. Ces informations sont stockées dans les tables de base gérées par le serveur Oracle Database, mais vous accédez à
ces tables à l'aide de vues prédéfinies plutôt qu'en lisant directement les tables.
Le dictionnaire de données :
•
Est utilisé par le serveur Oracle Database pour rechercher des informations sur les utilisateurs, les objets, les contraintes
et le stockage
•
Est maintenu par le serveur Oracle Database lorsque les structures ou les définitions d'objets sont modifiées
•
Est disponible pour être utilisé par n'importe quel utilisateur pour demander des informations sur la base de données
•
Appartient à l'utilisateur SYS
Remarque : La vue du dictionnaire de données DICTIONARY (ou son synonyme DICT) contient les noms et les descriptions des
tables et des vues du dictionnaire de données. Utilisez la vue DICT_COLUMNS pour afficher les colonnes de la vue et leurs
définitions. Pour obtenir les définitions complètes de chaque vue, consultez la référence de la base de données Oracle . Il existe plus
de 1000 vues qui référencent des centaines de tables de base.
Les préfixes de vue, comme indiqué dans la diapositive, indiquent les données (et la quantité de ces données) d'un utilisateur donné
peut voir.
• Les vues CDB_ affichent les métadonnées de tous les objets d'une CDB dans toutes
les PDB. • Les vues DBA_ affichent les métadonnées de tous les objets d'un conteneur
ou d'une PDB. • ALL_views affiche les métadonnées des objets que l'utilisateur actuel a le privilège de voir, qu'il en
soit propriétaire ou non. Par exemple, si USER_A a obtenu l'accès à une table appartenant à USER_B, alors
USER_A voit cette table répertoriée dans n'importe quelle vue ALL_ traitant des noms de table. • Les vues
USER_ affichent les métadonnées de tous les objets appartenant à l'utilisateur actuel, c'estàdire les objets présents
dans le propre schéma de l'utilisateur.
Seules les vues USER_ et ALL_ sont disponibles pour tous les utilisateurs. Les vues CDB_ et DBA_ sont limitées aux comptes DBA.
Généralement, chaque ensemble de vues est un sousensemble de l'ensemble de vues à privilèges plus élevés, en ligne et en colonne.
Toutes les vues d'un ensemble de vues donné n'ont pas de vue correspondante dans les autres ensembles de vues. Cela dépend de la
nature des informations dans la vue. Par exemple, il existe une vue DBA_LOCK, mais pas de vue ALL_LOCK, car seul un DBA serait
intéressé par les données sur les verrous. Assurezvous de choisir l' ensemble de vues approprié pour répondre à vos besoins. Si vous
avez le privilège d'accéder aux vues DBA, vous souhaiterez peutêtre toujours interroger uniquement la version USER_ de la vue car les
résultats affichent des informations sur les objets que vous possédez et vous ne souhaitez peutêtre pas que d'autres objets soient ajoutés
à votre jeu de résultats.
Les vues CDB_ et DBA_ ne peuvent être interrogées que par des utilisateurs disposant du privilège SYSDBA ou SELECT
ANY DICTIONARY, ou du rôle SELECT_CATALOG_ROLE, ou par des utilisateurs disposant de privilèges directs .
Lorsqu'un utilisateur connecté à la racine interroge une vue CDB_*, les résultats de la requête dépendent
de l'attribut CONTAINER_DATA de l'utilisateur. La clause CONTAINER_DATA de l'instruction SQL ALTER
USER est utilisée pour définir et modifier l'attribut CONTAINER_DATA des utilisateurs. Dans une PDB, les
vues CDB_* affichent uniquement les objets visibles via une vue DBA_* correspondante.
Résumé
Dans cette leçon, vous devez avoir appris à : •
Décrire les fichiers de paramètres d'initialisation et les paramètres
d'initialisation • Afficher et modifier les paramètres d'initialisation dans
SQL*Plus • Utiliser le référentiel de diagnostic automatique (ADR) • Interroger
les vues de performances dynamiques
Aperçu de la pratique
Objectifs
SQL> CHOISIR …
Utilisateur Processus utilisateur Processus serveur
Session
Connexion
Session
Les connexions et les sessions sont étroitement liées aux processus utilisateur mais ont une signification très différente.
Une connexion est une voie de communication entre un processus utilisateur et une instance de base de données Oracle.
Une voie de communication est établie en utilisant les mécanismes de communication interprocessus disponibles (sur un
ordinateur qui exécute à la fois le processus utilisateur et la base de données Oracle) ou un logiciel réseau (lorsque différents
ordinateurs exécutent l'application de base de données et la base de données Oracle et communiquent via un réseau) .
Une session représente l'état d'une connexion utilisateur actuelle à l'instance de base de données. Par exemple, lorsqu'un
utilisateur démarre SQL*Plus, il doit fournir un nom d'utilisateur et un mot de passe valides, puis une session est établie pour
cet utilisateur. Une session dure à partir du moment où un utilisateur se connecte jusqu'à ce que l'utilisateur se déconnecte ou
quitte l'application de base de données.
Plusieurs sessions peuvent être créées et exister simultanément pour un seul utilisateur de base de données Oracle en
utilisant le même nom d'utilisateur. Par exemple, un utilisateur avec le nom d'utilisateur/mot de passe HR/HR peut se
connecter plusieurs fois à la même instance Oracle Database.
Réseau
Application TCP/IP SGBDR
Client ou
Auditeur Serveur de base de données
niveau intermédiaire
Fichiers de Fichiers de
Oracle Net Services permet des connexions réseau entre une application cliente ou de niveau intermédiaire et le serveur
Oracle. Une fois qu'une session réseau est établie, Oracle Net agit en tant que transporteur de données pour l'application
cliente et le serveur de base de données. Il est chargé d'établir et de maintenir la connexion entre l'application cliente et le
serveur de base de données, ainsi que d'échanger des messages entre eux.
Oracle Net (ou quelque chose qui simule Oracle Net, comme Java Database Connectivity) est situé sur chaque ordinateur
qui doit communiquer avec le serveur de base de données.
Sur l'ordinateur client, Oracle Net est un composant d'arrièreplan pour les connexions d'application à la base de données.
Sur le serveur de base de données, Oracle Net inclut un processus actif appelé Oracle Net Listener, qui est responsable de
la coordination des connexions entre la base de données et les applications externes.
L'utilisation la plus courante d'Oracle Net Services consiste à autoriser les connexions entrantes à la base de données.
Vous pouvez configurer des services réseau supplémentaires pour autoriser l'accès aux bibliothèques de code externes
(EXTPROC) et pour connecter l'instance Oracle à des sources de données non Oracle via Oracle Heterogeneous Services.
Les auditeurs Un processus qui réside sur le serveur dont la responsabilité [Link]
Les composants Oracle Net Services suivants peuvent être configurés à l'aide d'Enterprise Manager Cloud
Contrôle et Oracle Net Manager :
•
Écouteur : la configuration de l'écouteur inclut la spécification du nom de l'écouteur, des adresses de
protocole sur lesquelles il accepte les demandes de connexion et des services (service de base de données
ou hors base de données) qu'il écoute. • Méthodes de nommage • Nommage (nom du service réseau)
• Profils
L'assistant de configuration Oracle Net configure le programme d'écoute, les méthodes de dénomination, l'utilisation du
serveur d'annuaire et un fichier [Link] local lors de l'installation du logiciel Oracle Database.
Utilisez les outils et applications suivants pour gérer votre configuration Oracle Network :
• Enterprise Manager Cloud Control : Fournit un environnement intégré pour la configuration et la gestion
d'Oracle Net Services. Utilisez Enterprise Manager pour configurer Oracle Net Services pour n'importe quel
répertoire d'accueil Oracle sur plusieurs systèmes de fichiers et administrer les écouteurs. • Oracle Net
Manager : Fournit une interface utilisateur graphique (GUI) à travers laquelle vous pouvez configurer Oracle Net
Services pour un accueil Oracle sur un client local ou un serveur hôte
• Oracle Net Configuration Assistant : lancé par Oracle Universal Installer lorsque vous installez le logiciel Oracle.
Au cours d'une installation de base de données typique, Oracle Net Configuration Assistant configure
automatiquement un programme d'écoute appelé LISTENER qui possède une adresse de protocole d'écoute
TCP/IP pour la base de données. Si vous effectuez une installation personnalisée, Oracle Net Configuration
Assistant vous invite à configurer un nom d'écouteur et une adresse de protocole de votre choix.
• Utilitaire de contrôle d'écoute : utilisé pour démarrer, arrêter et afficher l'état du processus d'écoute
Auditeur
Gestionnaire d'entreprise
Contrôle en nuage ou
Gestionnaire de réseau Oracle
Bases de données Oracle
Fichiers de
<ORACLE_HOME>/network/admin/[Link] ./[Link]
Oracle Net Listener (ou simplement l'écouteur) est la passerelle vers l'instance Oracle pour toutes les connexions utilisateur non locales.
Un seul écouteur peut desservir plusieurs instances de base de données et des milliers de connexions client.
Vous pouvez utiliser Enterprise Manager Cloud Control ou Oracle Net Manager pour configurer le programme d'écoute et spécifier les
emplacements des fichiers journaux.
Les administrateurs avancés peuvent également configurer Oracle Net Services en modifiant manuellement les fichiers de configuration, si
nécessaire, avec un éditeur de texte de système d'exploitation standard tel que vi ou gedit.
• Lors de la création d'une base de données Oracle, l'utilitaire Oracle Net Configuration Assistant crée un écouteur
local nommé LISTENER.
• LISTENER est automatiquement renseigné avec les services de base de données disponibles via une fonctionnalité
appelé enregistrement de service dynamique.
ADRESSE=(PROTOCOLE=tcp)(HÔTE=nom_hôte)(PORT=1521))
• Sans aucune configuration, vous pouvez accéder à votre instance de base de données immédiatement via
AUDITEUR.
• Si le nom du programme d'écoute est LISTENER et qu'il ne peut pas être résolu, une adresse de
protocole TCP/IP et un numéro de port 1521 sont supposés.
Étant donné que les paramètres de configuration du fichier [Link] ont des valeurs par défaut, il est possible de démarrer
et d'utiliser un écouteur sans configuration. Ce programme d'écoute par défaut porte le nom de LISTENER, ne prend en
charge aucun service au démarrage et écoute sur l'adresse de protocole TCP/IP suivante :
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=nom_hôte)(PORT=1521))
Serveur dédié
Processus serveur
Client ou
Un processus
Processus serveur
niveau serveur pour
intermédiaire
chaque client
Processus serveur
Serveur partagé
Processus serveur
Piscine de
serveur
Répartiteurs
Navigateur Web processus
pour les
clients
configuration de serveur dédié, comme illustré dans la diapositive, un processus serveur gère les demandes d'un processus client
unique. Chaque processus serveur utilise des ressources système, y compris des cycles CPU et de la mémoire. Dans un système
fortement chargé, les ressources mémoire et CPU utilisées par les processus serveur dédiés peuvent être prohibitives et affecter
négativement l'évolutivité du système. Si votre système est affecté négativement par les demandes de ressources de l'architecture de
serveur dédié, vous disposez des options suivantes :
•
Augmentez les ressources système en ajoutant plus de mémoire et une capacité CPU supplémentaire
• Utiliser l'architecture Oracle Shared Server Process
Une configuration de serveur partagé, comme illustré dans la diapositive, permet à plusieurs processus client de partager un petit
nombre de processus serveur. Chaque service qui participe à l'architecture de processus de serveur partagé a au moins un processus
répartiteur (et généralement plus). Lorsqu'une demande de connexion arrive, le programme d'écoute ne génère pas de processus
serveur dédié. Au lieu de cela, l'écouteur gère une liste de répartiteurs disponibles pour chaque nom de service, ainsi que la charge
de connexion (nombre de connexions simultanées) pour chaque répartiteur. Les demandes de connexion sont acheminées vers le
répartiteur le moins chargé qui dessert un nom de service donné. Les utilisateurs restent connectés au même répartiteur pendant
toute la durée d'une session.
Contrairement aux processus de serveur dédié, un seul répartiteur peut gérer des centaines de connexions d'utilisateurs.
Les répartiteurs ne gèrent pas réellement le travail des demandes des utilisateurs. Au lieu de cela, ils transmettent les demandes
des utilisateurs à une file d'attente commune située dans la partie pool partagé de la SGA. Les processus de serveur partagé
prennent en charge la majeure partie du travail des processus de serveur dédié, extrayant les demandes de la file d'attente et les
traitant jusqu'à ce qu'elles soient terminées.
Résumé
Objectifs
Pour établir une connexion client ou de niveau intermédiaire, Oracle Net exige que le client connaisse :
• Hôte sur lequel le programme d'écoute
s'exécute • Port surveillé par le programme
d'écoute • Protocole utilisé par le programme
d'écoute • Nom du service géré par le programme d'écoute
Pour qu'une application se connecte à un service via Oracle Net Listener, elle doit disposer d'informations sur ce service,
notamment l'adresse ou l'hôte sur lequel réside l'écouteur, le protocole accepté par l'écouteur et le port surveillé par
l'écouteur. Une fois l'écouteur localisé, la dernière information dont l'application a besoin est le nom du service auquel elle
souhaite se connecter.
La résolution des noms Oracle Net est le processus de détermination de ces informations de connexion.
[Link]
Une base de données Oracle est présentée à un client en tant que service. Une base de données peut être associée à
un ou plusieurs services. Les bases de données sont identifiées par un nom de service spécifié par le paramètre
SERVICE_NAMES dans le fichier de paramètres d'initialisation. Le nom de service est par défaut le nom global de la
base de données, qui est un nom qui comprend le nom de la base de données (valeur du paramètre DB_NAME) et le
nom de domaine (valeur du paramètre DB_DOMAIN).
Pour se connecter à un service de base de données, les clients utilisent un descripteur de connexion qui fournit l'emplacement de la
base de données et le nom du service de base de données. Les clients peuvent utiliser le descripteur de connexion ou un nom qui se
résout en descripteur de connexion (comme expliqué plus loin dans cette leçon).
L'exemple suivant montre un descripteur de connexion qui permet aux clients de se connecter à un service de
base de données appelé [Link].
(DESCRIPTION=
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=serveurfleurs)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=[Link])))
Résolution de nom
CONNECTER jsmith/jspass@finflowers
Résolution de nom
nageoires =(DESCRIPTION=
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=serveurfleurs)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=[Link])))
AUDITEUR
finance
port 1521
serveurdefleurs
Les utilisateurs lancent une demande de connexion à l'instance de base de données Oracle en envoyant une chaîne de
connexion. Une chaîne de connexion comprend un nom d'utilisateur et un mot de passe, ainsi qu'un identifiant de connexion. Un
identificateur de connexion peut être le descripteur de connexion luimême ou un nom qui se résout en un descripteur de connexion.
L'un des identifiants de connexion les plus courants est un nom de service réseau, qui est un nom simple pour un service.
Lorsqu'un nom de service réseau est utilisé, le traitement de la connexion s'effectue en mappant le nom du service réseau à
un descripteur de connexion. Les informations de mappage peuvent être stockées dans un ou plusieurs référentiels d' informations
et sont résolues à l'aide d'un procédé de dénomination.
Auditeur
Demande de connexion
entrante
Une fois la résolution des noms Oracle Net terminée, une demande de connexion est transmise
de l'application utilisateur ou intermédiaire (ciaprès appelée processus utilisateur) à l'écouteur.
L'écouteur reçoit un paquet CONNECT et vérifie si ce paquet CONNECT demande un service Oracle Net valide
nom.
Si le nom du service n'est pas demandé (comme dans le cas d'une demande tnsping), l'écouteur accuse réception de la
demande de connexion et ne fait rien d'autre. Si un nom de service non valide est demandé, le programme d'écoute
transmet un code d'erreur au processus utilisateur.
Sessions utilisateur
Serveur
processus
Processus utilisateur
Auditeur
Si le paquet CONNECT demande un nom de service valide, l'écouteur génère un nouveau processus pour gérer la connexion. Ce
nouveau processus est appelé processus serveur. L'écouteur se connecte au processus et transmet les informations d'initialisation, y
compris les informations d'adresse pour le processus utilisateur. À ce stade, l'écouteur ne s'occupe plus de la connexion et tout le travail
est transmis au processus serveur.
Le processus serveur vérifie les informations d'authentification de l'utilisateur (généralement un mot de passe), et si les
informations d'identification sont valides, une session utilisateur est créée.
Processus serveur dédié : une fois la session établie, le processus serveur agit désormais en tant qu'agent de l'utilisateur sur le serveur.
Le processus serveur est chargé de : Analyser et exécuter toutes les instructions SQL émises via l'application • Vérifier le cache de la
•
mémoire tampon de la base de données pour les blocs de données requis pour exécuter les instructions SQL • Si nécessaire,
lire les blocs de données nécessaires à partir des fichiers de données sur le disque dans la base de données
partie du cache de tampon de la zone globale du système (SGA), si les blocs ne sont pas déjà présents dans la SGA
• Gestion de toutes les activités de tri. La zone de tri est une zone de mémoire utilisée pour travailler avec le tri ; il est contenu dans
une portion de mémoire qui est associée à la zone globale de programme (PGA).
•
Renvoyer les résultats au processus utilisateur de manière à ce que l'application puisse traiter les informations
• Lecture des options d'audit et rapport des processus utilisateur à la destination de l'audit
Méthodes de dénomination
Oracle Net prend en charge plusieurs méthodes pour résoudre les informations de connexion :
Client/serveur d'applications
Réseau Oracle
Fichiers de
configuration OracleNet
Connexion facile
N'offre aucune prise en charge des options de connexion avancées telles que :
– Basculement au moment de la connexion
– Routage source
SQL> CONNECT hr/hr@[Link]/dba11g
– Équilibrage de charge
Aucun fichier de
configuration Oracle Net
Avec Easy Connect, vous fournissez toutes les informations requises pour la connexion Oracle Net dans le cadre de
la chaîne de connexion. Les chaînes de connexion Easy Connect prennent la forme suivante :
<nom d'utilisateur>/<mot de passe>@<nom d'hôte> :<port d'écoute>/<nom du service>
Le port d'écoute et le nom du service sont facultatifs. Si le port d'écoute n'est pas fourni, Oracle Net suppose
que le port par défaut 1521 est utilisé. Si le nom du service n'est pas fourni, Oracle Net suppose que le nom du service
de base de données et le nom d'hôte fournis dans la chaîne de connexion sont identiques.
En supposant que l'écouteur utilise TCP pour écouter sur le port 1521 et les paramètres d'instance
SERVICE_NAMES=db et DB_DOMAIN=[Link], la chaîne de connexion affichée dans la diapositive peut être
raccourcie :
SQL> connectez hr/hr@[Link]
Remarque : Le paramètre d'initialisation SERVICE_NAMES peut accepter plusieurs valeurs séparées par des virgules.
Une seule de ces valeurs doit être db pour que ce scénario fonctionne.
Dénomination locale
– Routage source
– Équilibrage de charge
Fichiers de
configuration OracleNet
Avec la dénomination locale, l'utilisateur fournit un alias pour le service Oracle Net. Oracle Net vérifie l'alias par rapport à une liste locale
de services connus et, s'il trouve une correspondance, convertit l'alias en hôte, protocole, port et nom de service.
L'un des avantages de la dénomination locale est que les utilisateurs de la base de données n'ont besoin de se souvenir que d'un court
alias plutôt que de la longue chaîne de connexion requise par Easy Connect.
La liste locale des services connus est stockée dans le fichier texte de configuration suivant :
par défaut du fichier [Link], mais le fichier peut être situé ailleurs à l'aide de la variable d'environnement TNS_ADMIN.
La dénomination locale est appropriée pour les organisations dans lesquelles les configurations de service Oracle Net ne
changent pas souvent.
Dénomination du répertoire
• Requiert LDAP avec les informations de résolution de noms Oracle Net chargées :
– Annuaire Internet Oracle
– Services Microsoft Active Directory
• Prend en charge tous les protocoles Oracle
Annuaire LDAP
Avec la dénomination de répertoire, l'utilisateur fournit un alias pour le service Oracle Net. Oracle Net vérifie l'alias par rapport à
une liste externe de services connus et, s'il trouve une correspondance, convertit l'alias en hôte, protocole, port et nom de service.
Comme pour le nommage local, les utilisateurs de la base de données n'ont besoin de se souvenir que d'un court alias.
La dénomination d'annuaire est appropriée pour les organisations dans lesquelles les configurations de service Oracle Net changent
fréquemment.
Utilisation des services de base de données pour gérer les charges de travail
[Link]
Un service de base de données est une représentation nommée d'une charge de travail ou d'une application spécifique hébergée par une ou
plusieurs instances de base de données. Les services vous permettent de regrouper les charges de travail de la base de données et d'acheminer
une demande de travail particulière vers une instance appropriée.
L'association de plusieurs services à une seule base de données permet la fonctionnalité suivante : •
Une seule base de données peut être identifiée de différentes manières par différents clients. •
Les ressources système peuvent être limitées ou réservées. Ce niveau de contrôle permet une meilleure allocation des
ressources aux clients qui demandent l'un des services.
Vous pouvez définir des services pour les PDB. Chaque nom de service de base de données doit être unique dans un
CDB, et chaque nom de service de base de données doit être unique dans la portée de tous les CDB dont les instances sont
atteintes via un écouteur spécifique.
DBMS_SERVICE.CREATE_SERVICE
Service
Vous pouvez définir un service à l'aide du package DBMS_SERVICE, puis utiliser le nom du service réseau pour
affecter des applications à un service.
Si votre base de données à instance unique est gérée par Oracle Restart ou si votre base de données Oracle RAC
est gérée par Oracle Clusterware, vous devez utiliser l'utilitaire Server Control (SRVCTL) pour créer, modifier ou
supprimer le service.
Résumé
Dans cette leçon, vous devriez avoir appris à :
Aperçu de la pratique
9
Configurer et administrer le
Auditeur
Objectifs
Réseau
Application TCP/IP SGBDR
Client ou
Auditeur Serveur de base de données
niveau intermédiaire
Fichiers de Fichiers de
Oracle Net Services permet des connexions réseau entre une application cliente ou de niveau intermédiaire et le serveur
Oracle. Une fois qu'une session réseau est établie, Oracle Net agit en tant que transporteur de données pour l'application
cliente et le serveur de base de données. Il est chargé d'établir et de maintenir la connexion entre l'application cliente et le
serveur de base de données, ainsi que d'échanger des messages entre eux.
Oracle Net (ou quelque chose qui simule Oracle Net, comme Java Database Connectivity) est situé sur chaque ordinateur
qui doit communiquer avec le serveur de base de données.
Sur l'ordinateur client, Oracle Net est un composant d'arrièreplan pour les connexions d'application à la base de données.
Sur le serveur de base de données, Oracle Net inclut un processus actif appelé Oracle Net Listener, qui est responsable de
la coordination des connexions entre la base de données et les applications externes.
L'utilisation la plus courante d'Oracle Net Services consiste à autoriser les connexions entrantes à la base de données.
Vous pouvez configurer des services réseau supplémentaires pour autoriser l'accès aux bibliothèques de code externes
(EXTPROC) et pour connecter l'instance Oracle à des sources de données non Oracle via Oracle Heterogeneous Services.
Auditeur
Gestionnaire d'entreprise
Contrôle en nuage ou
Gestionnaire de réseau Oracle
Bases de données Oracle
Fichiers de
<ORACLE_HOME>/network/admin/[Link] ./[Link]
Oracle Net Listener (ou simplement l'écouteur) est la passerelle vers l'instance Oracle pour toutes les connexions utilisateur non locales.
Un seul écouteur peut desservir plusieurs instances de base de données et des milliers de connexions client.
Vous pouvez utiliser Enterprise Manager Cloud Control ou Oracle Net Manager pour configurer le programme d'écoute et spécifier les
emplacements des fichiers journaux.
Les administrateurs avancés peuvent également configurer Oracle Net Services en modifiant manuellement les fichiers de configuration, si
nécessaire, avec un éditeur de texte de système d'exploitation standard tel que vi ou gedit.
• Lors de la création d'une base de données Oracle, l'assistant de configuration Oracle Net
crée un écouteur local nommé LISTENER.
• LISTENER est automatiquement renseigné avec les services de base de données disponibles via un
fonctionnalité appelée enregistrement de service dynamique.
ADRESSE=(PROTOCOLE=tcp)(HÔTE=nom_hôte)(PORT=1521))
• Sans aucune configuration, vous pouvez accéder immédiatement à votre instance de base de données
via AUDITEUR.
Le programme d'écoute par défaut porte le nom de LISTENER, ne gère aucun service au démarrage et écoute sur
l'adresse de protocole TCP/IP suivante :
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=nom_hôte)(PORT=1521))
• Par défaut, une instance de base de données Oracle est configurée pour utiliser un service dynamique
registration (enregistrement de service), qui permet à l'instance de base de données Oracle d'identifier
automatiquement ses services disponibles auprès des listeners.
• Le processus LREG interroge les programmes d'écoute pour voir s'ils sont en cours d'exécution et, si c'est le cas,
enregistre les informations de service de la base de données.
• L'enregistrement de service dynamique enregistre, par défaut, tous les services PDB sur le même écouteur.
Si vous arrêtez cet écouteur, vous arrêtez l'accès à tous les services PDB.
• Utilisez la commande ALTER SYSTEM REGISTER pour lancer l'enregistrement du service immédiatement après le démarrage
du programme d'écoute.
• Basculement au moment de la connexion : étant donné que l'écouteur surveille toujours l'état des instances, l'enregistrement du
service facilite le basculement automatique d'une demande de connexion client vers une autre instance si une instance est en
panne.
• Équilibrage de la charge de connexion : l'enregistrement du service permet à l'écouteur de transférer les demandes de connexion
client vers l'instance et le répartiteur ou le serveur dédié les moins chargés. L'enregistrement de service équilibre la charge
entre les gestionnaires de service et les nœuds.
•
Haute disponibilité pour Oracle Real Application Clusters et Oracle Data Guard
Le rôle du processus LREG
Le processus d'enregistrement des écouteurs (LREG) interroge les écouteurs pour voir s'ils sont en cours d'exécution et, si c'est
le cas, enregistre les informations de service de base de données suivantes :
• Nom de l'instance de base de données
• Les noms de service de base de données disponibles sur l'instance de base de données (par exemple,
[Link] et [Link])
• Charge actuelle et maximale de l'instance de base de données
•
Gestionnaires de services (répartiteurs et serveurs dédiés) disponibles pour l'instance de base de données
LREG s'enregistre auprès des écouteurs une fois que l'instance de base de données a monté la base de données et toutes les
60 secondes par la suite. Vous pouvez utiliser la commande ALTER SYSTEM REGISTER pour lancer l'enregistrement du service
immédiatement après le démarrage du programme d'écoute.
processus LREG apprend les programmes d'écoute disponibles via les paramètres LOCAL_LISTENER et
REMOTE_LISTENER. Ces paramètres spécifient des noms d'alias d'écouteurs pour les écouteurs locaux et distants. Les deux
paramètres peuvent avoir plusieurs valeurs. Ces alias sont résolus en adresses de protocole (points de terminaison) dans le fichier
[Link] côté serveur.
Remarque : Les clients peuvent également disposer d'un fichier [Link], que vous découvrirez dans une leçon ultérieure.
Grâce à l'enregistrement dynamique des services, le processus LREG est alors en mesure de transmettre des informations sur les
services de base de données disponibles à tous les auditeurs sur ces points d'extrémité.
LISTENER_HOST1 =
(ADRESSE = (PROTOCOLE = TCP)(HÔTE = hô[Link])(PORT = 1521))
LISTENER_HOST2 =
Pour que l'enregistrement de service dynamique fonctionne correctement, assurezvous que les paramètres
INSTANCE_NAME, LOCAL_LISTENER, REMOTE_LISTENER et SERVICE_NAMES sont correctement configurés.
Par défaut, le programme d'installation remplit le paramètre SERVICE_NAME avec le nom de base de données global (par exemple,
[Link]), qui fournit un nom de service de base de données que les utilisateurs peuvent utiliser pour accéder à l'instance
de base de données. Vous pouvez toutefois spécifier plusieurs noms de service pour l'instance de base de données si vous souhaitez
faire la distinction entre différentes utilisations de la même base de données. Oracle Database Resource Manager vous permet
d'afficher des informations sur l'activité de l'utilisateur pour chaque nom de service.
• L'enregistrement de service statique est une méthode de configuration des auditeurs pour obtenir leur service
informations manuellement.
– Vous pouvez créer un écouteur pour un PDB particulier.
– L'enregistrement de service statique peut être requis pour certains services, tels que les
procédures externes et les services hétérogènes (pour les systèmes autres qu'Oracle).
• Avec l'enregistrement statique, l'écouteur ne sait pas si ses services de base de données existent ou non. Il sait
seulement qu'il les soutient. L'utilitaire Listener Control affiche l' état des services comme UNKNOWN.
vous pouvez avoir besoin que l'instance de base de données soit opérationnelle sans que personne ne puisse se connecter. Dès
son démarrage, l'enregistrement dynamique des services commencera automatiquement à enregistrer tous les services de
base de données sur le programme d'écoute, rendant l'instance de base de données disponible pour
utilisateurs.
• Il existe également une différence dans les messages d'erreur renvoyés entre un écouteur statique (qui peut pointer vers un
service de base de données arrêté) et une entrée d'écouteur dynamique (qui indique qu'il n'existe pas) lorsque l'instance
de base de données est arrêtée. Le premier cas connaît l'existence du service de base de données et vous donne un
message d'erreur avec des informations utiles. Le deuxième cas n'a aucune information et ne peut pas faire la distinction
entre une faute de frappe que vous avez peutêtre faite dans le nom du service et si elle existe réellement.
Pour créer un écouteur statique, vous configurez le fichier [Link]. Dans ce fichier, vous définissez deux sections.
Tout d'abord, définissez le programme d'écoute et ses adresses de protocole. Ensuite, créez une section SID_LIST_<listener
name> qui répertorie les services de base de données pour l'écouteur. Pour chaque service, incluez les paramètres suivants :
• GLOBAL_DBNAME : le nom du service de la PDB (par exemple, [Link]) • ORACLE_HOME : le répertoire
d'accueil Oracle • SID_NAME : le nom de votre instance de base de données (par exemple, ORCL)
Par défaut, le fichier [Link] est stocké dans le répertoire $ORACLE_HOME/network/admin sur la machine de l'instance de
base de données.
LISTENER_SALESPDBS =
(DESCRIPTION_LIST =
(DESCRIPTIF =
))
SID_LIST_LISTENER_SALESPDBS =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = [Link])
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0/dbhome_1)
)
(SID_DESC =
(GLOBAL_DBNAME = [Link])
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0/dbhome_1)
)
Résumé
Dans cette leçon, vous devriez avoir appris à :
Aperçu de la pratique
dix
Objectifs
l'instructeur.
exclusif
l'usage
de
À
document
distribué.
être
pas
doit
Ce
ne
Lorsque la charge du client sollicite la mémoire et d'autres ressources système, vous pouvez peutêtre
atténuer les problèmes de charge en implémentant l'architecture de serveur partagé. Cette architecture permet aux
processus client de partager des processus serveur, ce qui augmente le nombre d'utilisateurs pris en charge. Un
petit pool de processus serveur peut servir un grand nombre de clients. Ceci est utile lorsqu'un système est
surchargé ou a une mémoire limitée.
Serveur dédié
Processus serveur
Client ou
Un processus
Processus serveur
niveau serveur pour
intermédiaire
chaque client
Processus serveur
Serveur partagé
Processus serveur
Piscine de
serveur
Répartiteurs
Navigateur Web processus
pour les
clients
configuration de serveur dédié, comme illustré dans la diapositive, un processus serveur gère les demandes d'un processus client
unique. Chaque processus serveur utilise des ressources système, y compris des cycles CPU et de la mémoire. Dans un système
fortement chargé, les ressources mémoire et CPU utilisées par les processus serveur dédiés peuvent être prohibitives et affecter
négativement l'évolutivité du système. Si votre système est affecté négativement par les demandes de ressources de l'architecture de
serveur dédié, vous disposez des options suivantes :
•
Augmentez les ressources système en ajoutant plus de mémoire et une capacité CPU supplémentaire
• Utiliser l'architecture Oracle Shared Server Process
Une configuration de serveur partagé, comme illustré dans la diapositive, permet à plusieurs processus client de partager un petit
nombre de processus serveur. Chaque service qui participe à l'architecture de processus de serveur partagé a au moins un processus
répartiteur (et généralement plus). Lorsqu'une demande de connexion arrive, le programme d'écoute ne génère pas de processus
serveur dédié. Au lieu de cela, l'écouteur gère une liste de répartiteurs disponibles pour chaque nom de service, ainsi que la charge
de connexion (nombre de connexions simultanées) pour chaque répartiteur. Les demandes de connexion sont acheminées vers le
répartiteur le moins chargé qui dessert un nom de service donné. Les utilisateurs restent connectés au même répartiteur pendant
toute la durée d'une session.
Contrairement aux processus de serveur dédié, un seul répartiteur peut gérer des centaines de connexions d'utilisateurs.
Les répartiteurs ne gèrent pas réellement le travail des demandes des utilisateurs. Au lieu de cela, ils transmettent les demandes
des utilisateurs à une file d'attente commune située dans la partie pool partagé de la SGA. Les processus de serveur partagé
prennent en charge la majeure partie du travail des processus de serveur dédié, extrayant les demandes de la file d'attente et les
traitant jusqu'à ce qu'elles soient terminées.
Le paramètre d'initialisation SHARED_SERVERS spécifie le nombre minimum de serveurs partagés que vous souhaitez
créer au démarrage de l'instance. Après le démarrage de l'instance, le serveur Oracle Database peut ajuster
dynamiquement le nombre de serveurs partagés en fonction de l'occupation des serveurs partagés existants et de la
longueur de la file d'attente des demandes.
Si SHARED_SERVERS n'est pas inclus dans le fichier de paramètres d'initialisation au démarrage de la base
de données, mais DISPATCHERS est inclus et spécifie au moins un répartiteur, le serveur partagé est activé. Dans
ce cas, la valeur par défaut pour SHARED_SERVERS est 1.
CIRCUITS Définir une limite maximale sur le nombre de circuits virtuels pouvant être créés
dans la mémoire partagée
Les paramètres d'initialisation suivants sont utilisés pour contrôler les opérations du serveur partagé :
• DISPATCHERS : au moins un processus répartiteur est requis pour une configuration de serveur partagé. Si vous ne
spécifiez pas de répartiteur, mais que vous activez le serveur partagé en définissant SHARED_SERVER sur une
valeur différente de zéro, le serveur Oracle Database crée par défaut un répartiteur pour le protocole TCP.
• SHARED_SERVERS : vous pouvez définir la valeur dans le fichier de paramètres d'initialisation ou utiliser la
commande ALTER SYSTEM pour configurer le nombre initial de serveurs partagés. Après le démarrage de
l'instance, le serveur Oracle Database peut ajuster dynamiquement le nombre de serveurs partagés en fonction
de l'occupation des serveurs partagés existants et de la longueur de la file d'attente des demandes. •
MAX_SHARED_SERVERS : utilisez ce paramètre pour limiter le nombre maximal de serveurs partagés pouvant être
créés automatiquement par PMON. La principale raison de limiter le nombre de serveurs partagés est de réserver
des ressources pour d'autres processus.
• SHARED_SERVER_SESSIONS : utilisez ce paramètre pour limiter le nombre de sessions utilisateur simultanées
sur le serveur partagé. Il vous permet de réserver des sessions de base de données pour des
les serveurs.
• CIRCUITS : vous pouvez utiliser ce paramètre pour protéger la mémoire partagée en limitant le nombre de
circuits virtuels pouvant être créés en mémoire partagée.
• Oracle Shared Server : les données de session utilisateur sont conservées dans la SGA.
• Assurezvous de prendre en compte les exigences de mémoire partagée du serveur lors du dimensionnement de la SGA.
UGA
Étant donné qu'une session utilisateur peut avoir des demandes traitées par plusieurs processus de serveur partagé, la plupart des
structures de mémoire qui sont généralement stockées dans le PGA doivent se trouver dans un emplacement de mémoire partagée
(par défaut, dans le pool partagé). Toutefois, si le grand pool est configuré ou si SGA_TARGET est défini pour la gestion automatique
de la mémoire, ces structures de mémoire sont stockées dans la partie grand pool de la SGA.
Le contenu de la SGA et de la PGA est différent dans une configuration de serveur partagé de ceux d' une configuration de
serveur dédié. Dans une configuration de serveur partagé :
•
Le texte et les formes analysées de toutes les instructions SQL sont stockées dans la SGA
• L'état du curseur contient des valeurs de mémoire d'exécution pour l'instruction SQL, telles que des lignes
récupéré
• Les données de session utilisateur incluent des informations sur la sécurité et l'utilisation des ressources
Remarque : Vous n'avez pas besoin de définir LARGE_POOL_SIZE lorsque la gestion automatique de la mémoire ou la
gestion automatique de la mémoire partagée sont configurées.
Certains types de travail de base de données ne doivent pas être effectués à l'aide de serveurs partagés :
Un processus de serveur dédié convient aux requêtes et aux tâches administratives de longue durée et est plus rapide qu'un
processus de serveur partagé dans la mesure où il y a toujours un processus de serveur prêt à travailler. Cependant, un
processus inactif ou un trop grand nombre de processus dédiés peuvent entraîner une utilisation inefficace des ressources.
L'utilisation du mode serveur partagé sur le serveur de base de données élimine le besoin d'un processus de serveur dédié pour
chaque connexion utilisateur, nécessite moins de mémoire pour chaque connexion utilisateur et permet un plus grand nombre
d'utilisateurs sur un système avec une mémoire limitée. Les processus serveur dédiés et les processus serveur partagés sont
activés en même temps. Oracle XML DB (XDB) nécessite des processus de serveur partagés et la base de données Oracle est
déjà configurée pour les utiliser. Vous devrez modifier les paramètres d'initialisation pour que d'autres utilisateurs utilisent des
processus de serveur partagé.
L'architecture Oracle Shared Server est un processus efficace et un modèle d'utilisation de la mémoire, mais elle ne convient
pas à toutes les connexions. En raison de la file d'attente de demandes commune et du fait que de nombreux utilisateurs
peuvent partager une file d'attente de réponses de répartiteur, les serveurs partagés ne fonctionnent pas bien avec les opérations
qui doivent traiter de grands ensembles de données, telles que les requêtes d'entrepôt ou le traitement par lots. Les sessions de
sauvegarde et de récupération qui utilisent Oracle Recovery Manager traitent également de très grands ensembles de données et
doivent utiliser des connexions dédiées. De nombreuses tâches d'administration ne doivent pas (et ne peuvent pas) être effectuées
à l'aide de connexions de serveur partagé. Cellesci incluent le démarrage et l'arrêt de l'instance, la création d'espaces de table et
de fichiers de données, la maintenance des index et des tables, l'analyse des statistiques et de nombreuses autres tâches
couramment effectuées par le DBA. Toutes les sessions DBA doivent choisir des serveurs dédiés.
Résumé
Aperçu de la pratique
11
Configuration de la connexion Oracle
Responsable Multiplexage et Accès
Contrôle
Objectifs
Oracle Connection Manager est un composant logiciel qui réside généralement sur son propre ordinateur, séparé du client
d'application et du serveur de base de données Oracle.
Oracle Connection Manager envoie par proxy les requêtes destinées au serveur de base de données. Vous pouvez également
configurer Oracle Connection Manager pour multiplexer les sessions, contrôler l'accès ou convertir les protocoles.
La configuration basée sur des règles peut être utilisée pour fournir un contrôle d'accès et filtrer les demandes des clients.
Lorsqu'il est configuré pour le multiplexage de session, Oracle Connection Manager canalise plusieurs sessions via une seule
connexion de protocole de transport vers un processus de répartiteur spécifique à une destination particulière. Cela permet au
serveur de base de données d'utiliser peu de points de terminaison de connexion pour les demandes entrantes.
Remarque : vous devez installer Oracle Connection Manager à partir du support d'installation d'Oracle Instant Client.
• Les processus sont démarrés avec l'utilitaire Oracle Connection Manager Control.
Le processus de passerelle reçoit les connexions client et détermine si l'accès est autorisé ou refusé en fonction
d'un ensemble de règles. Sous UNIX, le processus de passerelle est nommé CMGW. Sous Windows, le service
OracleHomeCMan représente le processus de passerelle.
Le processus de passerelle effectue les tâches suivantes :
•
S'enregistre auprès du processus administratif
•
Écoute les demandes de connexion entrantes Initie
• des demandes de connexion aux écouteurs pour les clients
• Relaie les données entre le client et le serveur de base de données
Le processus administratif exécute toutes les fonctions administratives d'Oracle Connection Manager. Il est nommé
CMADMIN sous UNIX et représenté par le service OracleHomeCMAdmin sous Windows.
Le processus administratif effectue les tâches suivantes : • Traite
l'enregistrement du processus de passerelle
•
Identifie tous les écouteurs desservant au moins une instance de base de données
•
Enregistre les informations d'adresse sur le processus de passerelle et les écouteurs.
• Répond aux demandes lancées par l'utilitaire Oracle Connection Manager Control.
Les processus sont démarrés avec l'utilitaire Oracle Connection Manager Control.
Connexion Oracle
Gestionnaire de serveur
Auditeur
Processus
CMADMIN
CMGW
processus
Serveur de base de données
L'écouteur reçoit les connexions client et évalue par rapport à un ensemble de règles s'il faut refuser ou autoriser
l'accès. S'il autorise l'accès, l'écouteur transmet une demande à un processus de passerelle, en sélectionnant celui
avec le moins de connexions. Le processus CMGW, à son tour, transmet la demande à un autre gestionnaire de
connexion Oracle ou directement au serveur de base de données, relayant les données jusqu'à ce que la connexion se termine.
Si une connexion au serveur existe déjà, la passerelle multiplexe ou canalise ses connexions via la connexion
existante. CMADMIN surveille l'état des processus de la passerelle et de l' écouteur, arrêtant ou démarrant les
processus selon les besoins. En outre, il enregistre l'emplacement et la charge des processus de passerelle auprès
du processus d'écoute et répond aux demandes de l'utilitaire Oracle Connection Manager Control.
Le diagramme de la diapositive montre un exemple de la manière dont Oracle Connection Manager contrôle
les connexions. Après avoir reçu les trois connexions client valides, le processus de passerelle les multiplexe via une
seule connexion de protocole réseau à la base de données. La quatrième connexion est refusée lorsqu'elle est évaluée
par rapport à l'ensemble de règles.
Grâce à la spécification de règles de filtrage, vous pouvez autoriser ou restreindre l'accès client à un serveur en fonction des
critères suivants :
• Noms d'hôte source ou adresses IP pour les clients
• Noms d'hôte ou adresses IP de destination pour les serveurs
• Noms des services de base de données de destination
d'accès d'Oracle Advanced Security est spécifiée via le paramètre CMAN_RULES dans le fichier [Link].
Connexion Oracle
Gestionnaire de serveur
Parefeu
départemental
Oracle Connection Manager peut être configuré pour accorder ou refuser l'accès client à un service de base de données ou à un
ordinateur particulier. En spécifiant des règles de filtrage, vous pouvez autoriser ou restreindre l'accès d'un client spécifique à un
serveur.
L'illustration de la diapositive montre un exemple dans lequel Oracle Connection Manager est configuré pour autoriser
l'accès à deux clients et refuser l'accès à un troisième client.
intranet
Passerelle d'application
l'Internet
Oracle Connection Manager ne peut pas être intégré à des produits de parefeu tiers. Cependant, les fournisseurs peuvent regrouper
Oracle Connection Manager avec leurs propres produits de manière à permettre à ce produit de servir de passerelle d'application,
comme illustré dans la diapositive.
Dans cet exemple, les hôtes Internet non autorisés ne peuvent pas accéder directement à la base de données à l'intérieur d'un
réseau d'entreprise, mais les utilisateurs autorisés peuvent toujours utiliser les services Internet en dehors du réseau d'entreprise.
CMAN autorisera uniquement les demandes de connexion provenant du serveur Web de l'application dans la zone démilitarisée et à
partir d'aucune autre adresse IP. Cette configuration permet de restreindre l'accès à distance aux données sensibles.
Connexion Oracle
Gestionnaire de serveur
serveur
Cet exemple montre comment le multiplexage de session peut être utilisé dans une architecture Web.
Lorsqu'Oracle Connection Manager est exécuté sur le même ordinateur qu'un serveur Web d'applications, le serveur
Web d'applications peut acheminer plusieurs sessions client via Oracle Connection Manager.
Le multiplexage de session offre les avantages suivants :
• Limite le nombre de ressources réseau utilisées pour chaque processus
• Prend en charge de grandes populations
de clients • Maximise le nombre de sessions clientserveur sur un nombre limité de connexions de processus •
Optimise l'utilisation des ressources réseau, telles que la bande passante de connexion réseau et réduit
trafic réseau
• Ne nécessite qu'un seul transport pour les clients avec plusieurs applications • Ne
nécessite qu'une seule connexion réseau pour les liens de base de données
2. Configurez les clients avec l'adresse de protocole de l'écouteur Oracle Connection Manager.
1. Configurez le fichier [Link] sur l'ordinateur Oracle Connection Manager. Ce fichier spécifie le point de terminaison d'écoute,
les règles de contrôle d'accès et les paramètres Oracle Connection Manager.
2. Configurez les clients avec les adresses de protocole de l'écouteur Oracle Connection Manager.
Connexion Oracle
Gestionnaire de serveur
fichier [Link]
Serveur de base de données
Vous configurez l'ordinateur qui héberge Oracle Connection Manager en définissant des paramètres dans le fichier
[Link]. Un ordinateur peut héberger n'importe quel nombre de gestionnaires de connexion Oracle, chacun avec sa propre
entrée dans le fichier [Link]. Lors de la définition de plusieurs gestionnaires de connexion Oracle dans le fichier, vous pouvez
affecter une valeur par défaut en attribuant à un seul un nom d'hôte complet.
Le fichier [Link] se trouve dans le répertoire $ORACLE_HOME/network/admin. Le fichier [Link] peut également être stocké
aux emplacements suivants :
• Liste des règles de contrôle d'accès : précédée de RULE_LIST=, cette section contient des informations sur les règles.
Vous pouvez utiliser la liste des règles de contrôle d'accès pour spécifier quelles connexions sont acceptées, rejetées
ou supprimées.
(RULE_LIST=(RULE=(SRC=hôte) (DST=hôte)(SRV=nom_service|sid)
(ACT=accepter|rejeter)) [(RULE= ...)])
• Paramètres : cette section, précédée de PARAMETER_LIST=, contient tous les autres paramètres qui affectent le
fonctionnement d'Oracle Connection Manager. Reportezvous à Oracle Database Net Services Reference pour
obtenir des informations détaillées sur les paramètres.
CMAN01=
(CONFIGURATION=
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=proxysvr)(PORT=1521))
(RULE_LIST=
(RULE=(SRC=[Link]/24)(DST=finserver)(SRV=*)(ACT=accepter)
(ACTION_LIST=(AUT=on)(MCT=120)(MIT=30)))
(RULE=(SRC=[Link])(DST=proxysvr)(SRV=cmon)(ACT=accepter)))
(PARAMETER_LIST=
(LOG_LEVEL=2)
(TRACÉ=activé)
(MAX_GATEWAY_PROCESSES=8)
(MIN_GATEWAY_PROCESSSES=3)))
L'exemple de la diapositive montre une entrée de configuration de fichier [Link] pour un gestionnaire de
connexion Oracle nommé CMAN01.
La liste des règles de contrôle d'accès (paramètre RULE_LIST), également appelées règles de filtrage, spécifie quelles
connexions sont acceptées, rejetées ou supprimées.
Dans cet exemple, la journalisation est définie sur un niveau de 2 et le traçage a été activé.
Remarque : Étant donné que l'indentation et l'espacement dans le fichier [Link] sont importants, veillez à copier
l'exemple de fichier [Link] et à le modifier si nécessaire au lieu de créer un nouveau fichier.
fichier [Link]
Oracle
Connexion
Directeur
Serveur
fichier [Link]
Serveur de base de données
Pour acheminer les clients vers le serveur de base de données via Oracle Connection Manager, configurez le
fichier [Link] avec un descripteur de connexion qui spécifie l'adresse de protocole d'Oracle Connection
Manager.
Vous pouvez utiliser Oracle Net Manager pour configurer l'entrée de fichier [Link]. Reportezvous au Guide
d'administration d'Oracle Net Service pour plus de détails.
• Dans le fichier [Link], ajoutez une entrée de nom de service pour Oracle Connection Manager.
listener_cman01=
…
(ADRESSE=(PROTOCOLE=tcp)(HÔTE=serveurproxy1)(PORT=1521))))
• Dans le fichier de paramètres d'initialisation, spécifiez un alias pour Oracle Connection Manager.
REMOTE_LISTENER=listener_cman01
Connexion Oracle
Gestionnaire de serveur
fichier [Link]
Serveur de base de données fichier [Link]
• MULTIPLEX
DISPATCHERS = "(PROTOCOLE=TCP)(MULTIPLEX=ON)"
Connexion Oracle
Gestionnaire de serveur
fichier [Link]
Vous pouvez configurer le serveur de base de données pour le multiplexage de session en définissant les attributs
PROTOCOL et MULTIPLEX du paramètre DISPATCHERS dans le fichier de paramètres d'initialisation. Le format est le suivant :
DISPATCHERS="(PROTOCOLE=TCP)(MULTIPLEX=ON)"
Pour l'attribut PROTOCOL, vous spécifiez le protocole réseau pour lequel le répartiteur génère un point de terminaison
d'écoute.
Pour l'attribut MULTIPLEX, vous spécifiez l'une des valeurs suivantes : 1, ON, YES,
•
TRUE ou BOTH : activez le multiplexage pour les sessions réseau entrantes et sortantes.
•
IN : active le multiplexage pour les sessions réseau entrantes uniquement
•
OUT : active le multiplexage pour les sessions réseau sortantes uniquement
• 0, NO, OFF ou FALSE : désactive le multiplexage pour les sessions réseau entrantes et sortantes
Remarque : Vous ne pouvez pas activer le multiplexage dynamiquement avec la commande ALTER SYSTEM.
• type_processus est le nom du processus Oracle Connection Manager : – cman : les processus de
passerelle et d'administration (par défaut) – cm : le processus de passerelle – adm : le
processus d'administration
L'utilitaire Oracle Connection Manager Control vous permet d'administrer un gestionnaire de connexion Oracle. Vous
pouvez utiliser ses commandes pour exécuter des fonctions de gestion de base sur un ou plusieurs gestionnaires de connexion
Oracle. De plus, vous pouvez afficher et modifier les réglages des paramètres.
est une commande telle que START, STOP ou STATUS et type_processus est le nom du processus Oracle Connection
Manager comme suit :
• cman pour la passerelle et les processus administratifs (par défaut) • cm pour le
processus de passerelle • adm pour le processus administratif
Vous pouvez également émettre la commande cmctl sans aucun argument à l'invite du système d'exploitation. Vous pouvez
ensuite émettre des commandes de l'utilitaire Oracle Connection Manager Control à l'invite du programme CMCTL>.
Remarque : Vous n'avez plus besoin du processus administratif après avoir configuré Oracle Connection Manager. Vous
pouvez démarrer uniquement le processus de passerelle lorsque vous avez besoin de conserver des ressources. Il exécute
toutes les fonctions de base et peut fonctionner sans le processus administratif.
Reportezvous à Oracle Database Net Services Reference pour obtenir une description complète des commandes de
l'utilitaire Oracle Connection Manager Control.
Contrôle d'accès
Vous activez le contrôle d'accès en spécifiant des règles de filtrage via le paramètre CMAN_RULES dans le fichier
[Link]. Grâce à cette spécification, vous pouvez autoriser ou restreindre l'accès de clients spécifiques à un serveur
de base de données.
Multiplexage de session
Après avoir ajouté PROTOCOL et MULTIPLEX au paramètre DISPATCHERS dans le fichier de paramètres d'initialisation,
vous pouvez activer le multiplexage de session en vous assurant que MULTIPLEX est défini sur ON ou sur une valeur
équivalente.
Résumé
Aperçu de la pratique
12
Objectifs
Après avoir terminé cette leçon, vous devriez être en mesure de créer un nouveau PDB à partir de la graine PDB.
• Branchez un PDB débranché dans le même CDB ou dans un autre CDB. • Branchez
un nonCDB dans un CDB. • Cloner une PDB à partir d'une autre PDB (CDB locale ou
•
Connectez des nonCDB à un CDB en tant que PDB, dans le cadre d'une stratégie de migration. C'est aussi un bon
moyen de consolider plusieurs nonCDB en un CDB.
• Cloner une PDB à partir d'une autre PDB de la même CDB. Par exemple, vous souhaitez tester une application
correctif. Vous devez d'abord cloner votre application de production dans une PDB clonée et corriger la PDB clonée à tester.
• Déplacer un PDB dans un autre CDB pour mieux allouer les ressources.
• Proxy un PDB. Un proxy PDB fournit un accès entièrement fonctionnel à un autre PDB dans un CDB distant. Cette fonctionnalité vous
permet de créer des applications transparentes à l'emplacement qui peuvent agréger des données provenant de plusieurs sources
qui se trouvent dans le même centre de données ou réparties sur plusieurs centres de données.
Outils
• SQL*Plus
• Développeur SQL
• Enterprise Manager Cloud Control •
Enterprise Manager Database Express •
Assistant de configuration de base de données (DBCA)
– Clone à partir de la graine PDB
Pour créer un nouveau PDB à partir de la graine PDB ou à partir d'un PDB existant ou en connectant une méthode PDB
déconnectée, vous pouvez également utiliser Database Configuration Assistant (DBCA).
CDB1
• Copie les fichiers de données à partir des données PDB$SEED
Fichiers de données / Fichiers temporaires Fichiers de Rétablir les fichiers des dossiers
contrôle journaux
SYSAUX – SYSTÈME
TEMP
UTILISATEURS
– SYSAUX
Racine CDB
– ANNULER
Fichiers de données
SYSAUX
ANNULER • Crée un utilisateur local (PDBA), accordé local
APB1 Rôle PDB_DBA
• Crée un nouveau service par défaut
La création d'un nouveau PDB à partir de la graine PDB est presque instantanée. L'opération copie les fichiers de données de la PDB READ
ONLY seed vers le répertoire cible défini dans CREATE PLUGGABLE DATABASE
déclaration.
Il crée des espaces de table tels que SYSTEM, pour stocker un catalogue complet comprenant des métadonnées pointant vers des
objets fournis par Oracle, SYSAUX pour les données auxiliaires locales et UNDO pour les segments d'annulation locaux.
Il crée des schémas par défaut et des utilisateurs communs qui existent dans la graine PDB, SYS qui continue à avoir tous les privilèges de
super utilisateur et SYSTEM qui peut administrer la PDB.
Il crée un utilisateur local (le PDBA), doté d'un rôle PDB_DBA local. Jusqu'à ce que l'utilisateur PDB SYS accorde des privilèges au rôle local
PDB_DBA, le nouveau PDBA ne peut effectuer aucune opération autre que la connexion à la PDB.
Un nouveau service par défaut est également créé pour la PDB.
Les étapes pour créer un nouveau PDB à partir de la graine PDB sont les suivantes :
1. Connectezvous à la racine CDB en tant qu'utilisateur commun avec le système CREATE PLUGGABLE DATABASE
privilège et exécutez l'instruction CREATE PLUGGABLE DATABASE comme indiqué dans la diapositive. La clause
ADMIN USER définit l'utilisateur PDBA créé dans la nouvelle PDB avec les rôles CONNECT et PDB_DBA (rôle vide). La
clause FILE_NAME_CONVERT désigne d'abord le répertoire source des fichiers de données de départ PDB et ensuite le
répertoire de destination des nouveaux fichiers de données PDB.
2. Une fois l'instruction terminée, utilisez des vues pour vérifier que la PDB est correctement créée. La vue CDB_PDBS affiche la
liste des PDB et la vue CDB_TABLESPACES affiche la liste des tablespaces de la nouvelle PDB (SYSTEM, SYSAUX,
UNDO). La vue CDB_PDBS affiche le STATUS du nouveau PDB : il est NEW. L'APB n'a jamais été ouvert. Il doit être ouvert
en mode READ WRITE ou RESTRICTED pour qu'Oracle effectue le traitement nécessaire pour terminer l'intégration de la
PDB dans la CDB et la marquer NORMAL. Une erreur sera renvoyée si une tentative est faite pour ouvrir la PDB en lecture
seule.
3. Toujours connecté à la racine CDB, ouvrez la PDB. Essayez ensuite de vous connecter à la nouvelle PDB sous l'utilisateur
commun, SYS, qui existe toujours dans n'importe quelle PDB, ou l'utilisateur défini dans la clause ADMIN USER, admin1.
Ou
• Utilisez la clause dans la commande CREATE PLUGGABLE DATABASE :
CREATE_FILE_DEST = '/u01/app/oradata/CDB1/pdb1'
2. Avec OMF, définissez le paramètre d'initialisation DB_CREATE_FILE_DEST sur un répertoire cible pour les fichiers de
données de la nouvelle PDB
3. Sans OMF, définissez le paramètre d'initialisation PDB_FILE_NAME_CONVERT sur le répertoire source des
fichiers de données de départ PDB et sur le répertoire cible des nouveaux fichiers de données PDB. Dans
l'exemple présenté, le répertoire /u01/app/oradata/CDB1/pdb1 doit exister.
4. Utilisez ensuite la vue cdb_pdbs pour vérifier que la nouvelle PDB et ses tablespaces existent :
SQL> SELECT * FROM cdb_pdbs ;
Résumé
Dans cette leçon, vous devriez avoir appris à créer un nouveau PDB à partir de la graine PDB.
Aperçu de la pratique
13
Utiliser d'autres techniques pour créer
PDB
Objectifs
• Utilisateurs communs SYS, SYSTEM • Remarque : clonez les métadonnées uniquement en utilisant NO DATA.
Même nom d'administrateur local • Nouveau
nom de service
Cette technique copie un PDB source à partir d'un CDB et branche la copie dans un CDB. Le PDB source se trouve dans le
CDB local.
Les étapes pour cloner un PDB au sein du même CDB sont les suivantes :
1. Définissez l'emplacement des fichiers de données de la nouvelle PDB :
Définissez les paramètres d'initialisation : DB_CREATE_FILE_DEST= 'PDB3dir' si vous utilisez Oracle Managed
Files (OMF) ou PDB_FILE_NAME_CONVERT= 'PDB1dir', 'PDB3dir' pour non OMF.
Utilisez la clause CREATE_FILE_DEST lors de l' instruction CREATE PLUGGABLE DATABASE (OMF).
Utilisez la clause FILE_NAME_CONVERT=('pdb1dir',' pdb3dir') pour définir le répertoire des fichiers sources à
copier depuis PDB1 et le répertoire cible des nouveaux fichiers de PDB3 (non OMF).
2. Connectezvous à la racine CDB en tant qu'utilisateur commun avec le privilège CREATE PLUGGABLE DATABASE.
3. Utilisez la commande CREATE PLUGGABLE DATABASE pour cloner pdb3 à partir de pdb1.
4. Ouvrez ensuite la nouvelle pdb3 avec la commande ALTER PLUGGABLE DATABASE OPEN.
Remarque : NO DATA permet le clonage des métadonnées de la PDB, qui est une option qui peut être utilisée pour cloner une PDB vide et
importer ultérieurement des données à des fins de test.
PDB$SEED Créer
PDB2
Fichiers de données / Fichiers temporaires
de Entités créées dans la nouvelle PDB :
APB2 ORCL
• Tablespaces : SYSTEM, SYSAUX, UNDO • Un
catalogue complet • Utilisateurs communs : SYS,
impdp TTS Brancher
SYSTEM • Un administrateur local (PDBA) • Un
nouveau service par défaut
Fichier de vidage Fichier XML
Réplication
Il existe différentes méthodes possibles pour migrer des données d'une base de données non CDB vers une CDB.
Quelle que soit la méthode utilisée, vous devez placer le nonCDB dans un état cohérent sur le plan transactionnel et l'ouvrir en mode
restreint.
•
Il convient d'utiliser Oracle Data Pump lorsque :
Le jeu de caractères source n'est pas égal au jeu de caractères cible et n'est pas un sousensemble binaire de
la cible
Utilisez soit un tablespace transportable (TTS), soit une exportation/importation conventionnelle complète, soit une
base de données transportable (TDB) à condition que dans la dernière, tout objet défini par l'utilisateur réside dans un
seul tablespace défini par l'utilisateur. La base de données entièrement transportable Data Pump ne prend pas en
charge le déplacement des référentiels XDB ou AWR. Seuls les schémas XML générés par l'utilisateur sont déplacés.
•
Dans d'autres cas, l'utilisation du package DBMS_PDB est l'option la plus simple. Le package DBMS_PDB construit un
fichier XML décrivant les fichiers de données nonCDB pour connecter le nonCDB dans le CDB en tant que PDB. C'est
aussi un bon moyen de consolider rapidement plusieurs nonCDB en un CDB.
• Cloner des nonCDB dans un CDB est un bon moyen de conserver le nonCDB et donc d'avoir la possibilité de comparer les
performances entre le nouveau PDB et le nonCDB d'origine ou au moins d'attendre de considérer que le PDB peut fonctionner
correctement.
Racine CDB
2. Connectezvous à la racine CDB cible en tant qu'utilisateur commun avec
Fichiers de données / Fichiers temporaires
Privilège CREATE PLUGGABLE DATABASE .
PDB$SEED Créer
PDB2
Fichiers de données / Fichiers temporaires 3. Branchez l' ORCL débranché en tant que PDB2.
de
APB2 ORCL
SQL> CRÉER UNE BASE DE DONNÉES PLUGGABLE
PDB2 À L'AIDE DE '/tmp/[Link]' ;
Brancher
4. Exécutez le script noncdb_to_pdb.sql dans PDB2.
La technique avec le package DBMS_PDB crée une PDB débranchée à partir d'une base de données Oracle nonCDB.
Le PDB débranché peut alors être branché sur un CDB (de la même version) comme un nouveau PDB. Pour utiliser cette
technique, le nonCDB doit être à la version Oracle Database 12c ou ultérieure.
L'exécution de la procédure DBMS_PDB.DESCRIBE sur le nonCDB génère un fichier XML qui décrit le futur PDB. Vous pouvez
brancher le PDB débranché de la même manière que vous pouvez brancher n'importe quel PDB débranché, en utilisant le fichier XML
et les fichiers de données nonCDB. Les étapes sont les suivantes :
1. Connectezvous à ORCL nonCDB et assurezvous que l'ORCL nonCDB est en mode lecture seule.
2. Exécutez la procédure DBMS_PDB.DESCRIBE en indiquant le nom du fichier qui sera généré. Le fichier XML contient la liste
des fichiers de données à brancher. Le fichier XML et les fichiers de données décrits dans le fichier XML comprennent une
PDB débranchée.
3. Connectezvous au CDB cible pour brancher l'ORCL débranché en tant que PDB2.
4. Avant de brancher le nonCDB débranché, assurezvous qu'il peut être branché sur un CDB en utilisant la procédure
DBMS_PDB.CHECK_PLUG_COMPATIBILITY. Exécutez la commande CREATE PLUGGABLE en utilisant la clause
USING '[Link]'. La liste des fichiers de données d'ORCL est lue à partir du fichier XML pour localiser et nommer les
fichiers de données de PDB2.
contrôle journalisation
le privilège CREATE PLUGGABLE DATABASE.
Racine CDB
2. Créez un nouveau PDB2 (à partir de PDB$SEED).
Fichiers de données / Fichiers temporaires
contrôle journalisation
ORCL
Voici les étapes de réplication des données d'un nonCDB vers une PDB à l'aide de la réplication Oracle
GoldenGate : 1. Connectezvous à la racine CDB en tant qu'utilisateur commun avec le privilège CREATE
PLUGGABLE DATABASE.
2. Créez le nouveau PDB2 à partir de la graine PDB qui sera le conteneur des données ORCL.
5. Lorsque les données de PDB2 rattrapent les données de l'ORCL nonCDB, passez à PDB2.
Voir Oracle Database Concepts pour plus d'informations sur Oracle GoldenGate.
Fichiers de données / Fichiers temporaires Fichiers de Fichiers de SQL> CRÉER UN LIEN DE BASE DE DONNÉES link_orcl
contrôle journalisation
CONNECTER AU système IDENTIFIÉ PAR ***
Racine CDB EN UTILISANT 'orcl' ;
Fichiers de données / Fichiers temporaires
3. Cloner le nonCDB :
PDB$SEED Créer
PDB2 SQL> CRÉER UNE BASE DE DONNÉES ENFICHABLE pdb_orcl
Fichiers de données / Fichiers temporaires
de FROM NON$CDB@link_orcl
APB2 ORCL CREATE_FILE_DEST = '…/PDB_orcl';
Cette technique copie un PDB nonCDB ou distant et branche la copie dans un CDB.
Les étapes pour cloner une PDB nonCDB ou distante dans une CDB sont les suivantes :
1. Réglez le nonCDB ou le PDB distant en mode LECTURE SEULE.
2. Connectezvous à la racine du CDB cible en tant qu'utilisateur commun avec CREATE PLUGGABLE DATABASE
privilège.
3. Créez un lien de base de données qui permet une connexion au nonCDB ou PDB distant en tant qu'utilisateur avec
le privilège CREATE PLUGGABLE DATABASE.
4. Utilisez la commande CREATE PLUGGABLE DATABASE pour cloner le nonCDB comme décrit dans la diapositive.
Si vous clonez une PDB distante, utilisez le nom de la PDB source à la place de NON$CDB. Assurezvous que
la nouvelle PDB n'entre pas en conflit avec le nom d'un conteneur dans la CDB.
5. Si la source clonée est une nonCDB, il est nécessaire d'exécuter le
script $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql.
6. Ouvrez ensuite la nouvelle PDB avec la commande ALTER PLUGGABLE DATABASE.
7. Enfin, vous pouvez rouvrir la PDB nonCDB ou distante.
Il existe des options de clonage supplémentaires telles que SNAPSHOT COPY. Reportezvous au Guide de l'administrateur de la base de données
Oracle.
CDB1 1. Créer un utilisateur commun avec des privilèges dans le CDB distant
Racine CDB CDB1.
2. Utilisez DBCA pour cloner le PDB1 distant de CDB1 vers PDB2.
ANNULER1
SYSTÈME UTILISATEURS
$ dbca –silent createPluggableDatabase createFromRemotePDB
APB1 SYSAUX
remotePDBName PDB1 remoteDBConnString CDB1
sysDBAUserName système sysDBAPassword mot de passe
remoteDBSYSDBAUserName SYS
Lien
BD
PDB1 distant
cloné en tant que PDB2
remoteDBSYSDBAUserPassword mot de passe
CDB2 dbLinkUsername c##remote_user dbLinkUserPassword
Racine CDB mot de passe sourceDB CDB2 pdbName PDB2
ANNULER1
SYSTÈME UTILISATEURS
APB2 SYSAUX
Vous pouvez utiliser DBCA pour cloner une PDB distante. L'opération DBCA exécute les étapes suivantes : 1.
Vérifie la présence du lien de base de données. Si le lien de base de données existe, DBCA le supprime.
2. Crée le lien de la base de données
3. Crée la PDB à partir de la PDB distante
4. Vérifie l'état de la PDB clonée pour vérifier qu'elle est en mode monté 5. Ouvre la PDB
clonée
L'utilisateur de la CDB cible locale doit disposer du privilège CREATE PLUGGABLE DATABASE à la racine de la CDB.
Le CDB distant doit utiliser le mode d'annulation local. Le CDB distant doit être en mode archivelog. L'utilisateur commun dans
la PDB distante à laquelle le lien de base de données se connecte doit disposer des privilèges CREATE PLUGGABLE DATABASE
et CREATE SESSION.
Débranchez PDB1
3. Supprimez PDB1 de CDB1.
Fichier XML
Le débranchement d'un PDB dissocie le PDB d'un CDB. Vous débranchez un PDB lorsque vous souhaitez déplacer le PDB vers un autre
CDB ou lorsque vous ne souhaitez plus que le PDB soit disponible.
La première étape consiste à débrancher PDB1 de CDB1. La deuxième étape consiste à connecter PDB1 à CDB2.
Pour déconnecter PDB1 de CDB1, connectezvous d'abord à la racine CDB source et vérifiez que PDB est fermé à l'aide de la vue V$PDBS.
Utilisez ensuite ALTER PLUGGABLE DATABASE avec la clause UNPLUG pour spécifier la base de données à déconnecter et le fichier XML
dans lequel la déconnecter. La colonne STATUS dans CDB_PDBS de la PDB débranchée sera UNPLUGGED. Un PDB doit être retiré du
CDB avant de pouvoir être rebranché dans le même CDB. Si la PDB est connectée à une autre CDB, la PDB n'a pas besoin d'être supprimée
si les fichiers de données sont copiés.
Avant de brancher PDB1 dans CDB2, vous pouvez éventuellement vérifier si la PDB débranchée est compatible avec CDB2 en utilisant la
fonction DBMS_PDB.CHECK_PLUG_COMPATIBILITY.
Pour connecter PDB1 à CDB2, connectezvous à la racine de CDB2 et exécutez la commande CREATE PLUGGABLE DATABASE pdb1
USING '[Link]'. La dernière étape consiste à ouvrir la PDB.
CDB_SOURCE
Fichiers de données
Fichier d'archive
[Link]
PDB_NEW
Lorsqu'un PDB est débranché, tous les fichiers de données associés au PDB ainsi que le manifeste PDB doivent
être copiés ou déplacés individuellement vers le serveur distant où ils seront connectés à un autre CDB. Vous
pouvez choisir de créer un seul fichier d'archive PDB, un fichier compressé avec l'extension .pdb, qui contient le
manifeste PDB et tous les fichiers de données. Lors du branchement d'un PDB, la présence d'un fichier .pdb est
interprétée et le PDB est branché sur le CDB. Vous pouvez choisir d'exécuter le test de compatibilité du plugin PDB
directement sur l'archive PDB sans extraire le fichier manifeste PDB de l'archive.
Cette fonctionnalité facilite la gestion du débranchement et du branchement des PDB sur les CDB.
APB1 SYSAUX 2. Passez du mode d'annulation partagé au mode d'annulation local dans
les deux CDB.
Source distante
Rafraîchir
APB1 3. Clonez le PDB1 distant en PDB3.
4. Ouvrez PDB3 en mode lecture seule ou lecture/écriture.
Cloné à chaud
APB1 Lien
BD
Rafraîchissement incrémentiel : •
CDB2
Manuel • Automatique
Racine CDB
(intervalle prédéfini)
ANNULER1
SYSTÈME UTILISATEURS
APB3 SYSAUX
Le clonage d'un PDB de production pour obtenir un PDB de test copie le PDB de production distant dans un CDB alors que le PDB de production
distant est toujours opérationnel et entièrement fonctionnel.
Le clonage à distance à chaud nécessite que les deux CDB passent du mode d'annulation partagé au mode d'annulation local, ce qui signifie
que chaque PDB utilise son propre tablespace d'annulation local.
Copie actualisable
De plus, le clonage à chaud permet une actualisation incrémentielle dans la mesure où la copie clonée de la base de données de production
peut être actualisée à intervalles réguliers. L'actualisation incrémentielle signifie l'actualisation d'un clone existant à partir d'une PDB source à
un moment plus récent que la création du clone d'origine pour fournir de nouvelles données. Une PDB de copie actualisable ne peut être ouverte
qu'en mode lecture seule.
La propagation des modifications à partir de la PDB source peut être effectuée de deux manières :
Si la PDB source n'est pas accessible au moment où la copie d'actualisation doit être mise à jour, les journaux d'archivage sont lus à partir
du répertoire spécifié par le paramètre REMOTE_RECOVERY_FILE_DEST pour actualiser la PDB clonée.
Vous pouvez également cloner une PDB existante à l'aide de l'assistant de configuration de base de données (DBCA).
CDB1
Utilisez une seule instruction pour déplacer PDB1 de CDB1 vers CDB2 :
Racine CDB 1. Passez du mode d'annulation partagé au mode d'annulation local
dans les deux
CDB.
Fichiers de données
ANNULER1
2. Réglez le mode ARCHIVELOG dans les deux CDB.
SYSTÈME UTILISATEURS
CDB2
Il n'est pas nécessaire de :
Racine CDB
• Débranchez la PDB de la source CDB • Copiez
ou transférez les fichiers de données vers un nouvel emplacement
Fichiers de données
ANNULER1 • Branchez le PDB dans le CDB cible
SYSTÈME UTILISATEURS
• Supprimez le PDB source du CDB source
APB1 SYSAUX
Pour obtenir le même résultat que le débranchement et le branchement d'un PDB d'un CDB source distant dans un autre CDB,
vous pouvez tirer parti de la relocalisation de PDB avec un temps d'arrêt quasi nul.
Une seule instruction DDL peut déplacer une PDB, en utilisant le mode "pull", connectée à la CDB où la PDB sera déplacée pour
l'extraire de la CDB où la PDB existe, en gérant les connexions existantes et en migrant de nouvelles connexions sans nécessiter de
modifications de la application.
Il existe deux méthodes de relocalisation :
− Il est toujours recommandé que les chaînes de connexion soient éventuellement mises à jour à la fois
cela est pratique pour l'application, mais la disponibilité ne dépend pas du moment où cette action est
effectuée.
La relocalisation de la PDB nécessite l'activation du mode d'annulation local et du mode ARCHIVELOG dans les
deux CDB.
CDB1 Utilisez DBCA pour déplacer le PDB1 distant de CDB1 vers CDB2.
Racine CDB
$ export ORACLE_SID=CDB2
Fichiers de données
ANNULER1
APB1
Vous pouvez utiliser DBCA pour déplacer un PDB distant. L'opération DBCA exécute les étapes suivantes : 1. Vérifie la
présence du lien de base de données. Si le lien de base de données existe, DBCA le supprime.
2. Crée le lien de la base de données
3. Crée la PDB à partir de la PDB distante
4. Vérifie l'état de la PDB clonée pour vérifier qu'elle est en mode monté 5. Ouvre la PDB
déplacée
L'utilisateur de la base de données locale doit disposer du privilège CREATE PLUGGABLE DATABASE dans le conteneur racine
CDB. Les bases de données distantes et locales doivent être en mode archivelog. L'utilisateur commun de la base de données
distante auquel le lien de base de données se connecte doit disposer des privilèges CREATE PLUGGABLE DATABASE, SESSION
et SYSOPER.
Les bases de données locales et distantes doivent avoir les mêmes options installées ou la base de données distante doit avoir un
sousensemble de celles présentes sur la base de données locale.
CDB2 CDB1
Récupère les lignes de la table partagée dont les données sont stockées dans les PDB de l'application à la
racine de l'application et les répliques dans les CDB
Revenu Année CDB$NAME CON$NAME
Un PDB proxy vous permet d'exécuter des instructions SQL dans un PDB distant comme s'il s'agissait d'un PDB local dans le CDB.
Ce type de PDB est très utile pour interroger des données réparties sur des PDB dans différents CDB.
Dans l'exemple de la diapositive, lorsqu'elle est connectée à la racine de l'application toys_root, une requête sur une table partagée
dans les PDB, les robots, les poupées et les doodles de l'application ne peut pas récupérer les lignes des doodles distants si
deux conditions ne sont pas satisfaites :
• Une réplique de la racine de l'application est créée dans la CDB distante pour répliquer la racine de l'application et, par
conséquent, les entités communes de l'application telles que les tables, les utilisateurs et les privilèges. • Un PDB
proxy est créé à la racine de l'application dans le CDB local pour référencer la réplique de la racine de l'application dans le
CDB distant.
Lorsque vous êtes connecté à la racine de l'application toys_root et que vous interrogez à partir d'une table partagée de
l'application installée sur la racine de l'application toys_root, la requête récupère les lignes des deux PDB de l'application
locale, robots et dolls, et de la PDB du proxy de l'application, px_app_rr, l'exécution de la requête dans la réplique racine distante
et donc depuis la PDB de l'application doodles.
CDB1
Un proxy PDB permet l'exécution dans un proxy PDB.
Racine CDB 1. Passez du mode d'annulation partagé au mode d'annulation local dans
les deux CDB.
Fichiers de données
Racine CDB 5. Exécutez toutes les instructions dans le contexte PDB proxy PXPDB1
pour qu'elles soient exécutées dans le PDB proxy PDB1 dans CDB2.
Fichiers de données Tableau
UTILISATEURS APP.C
SYSTÈME
SYSAUX
SQL> CONNECTER sys@pxpdb1 AS SYSDBA SQL>
CODE ALTER PLUGGABLE DATABASE pxpdb1 OPEN ; SQL> SELECT * FROM
C4 ANNULER1 app.c ;
APB1
La création d'une PDB proxy copie les fichiers de données des tablespaces SYSTEM, SYSAUX et UNDO de la PDB
proxy. Un proxy PDB peut être créé, modifié et supprimé de la racine CDB comme n'importe quel PDB normal.
Le lien de base de données doit être créé dans la racine CDB qui contiendra la PDB proxy, et le lien de base de
données se connecte soit à la racine CDB distante, soit au conteneur d'application distante, soit à la PDB d'application
distante.
Toute instruction ALTER PLUGGABLE DATABASE émise à partir de la PDB proxy lorsque la PDB est ouverte est
exécutée dans la PDB proxy. La clause AS PROXY est utilisée pour créer un PDB en tant que PDB proxy. La colonne
IS_PROXY_PDB dans CDB_PDBS s'affiche si un PDB est un PDB proxy.
Résumé
Dans cette leçon, vous devez avoir appris à : • Cloner
une PDB normale • Débrancher et brancher ou cloner
une nonCDB • Débrancher et brancher une PDB
normale • Effectuer un clonage à chaud
Aperçu de la pratique
14
Objectifs
les PDB
Vous pouvez modifier le mode de chaque PDB pour effectuer des opérations d'administration spécifiques.
Le premier exemple ouvre la PDB en mode RESTRICTED READ WRITE. Cela permet uniquement aux utilisateurs disposant du privilège
RESTRICTED SESSION de se connecter. Cela permet à l'administrateur local de la PDB de gérer les déplacements de fichiers, les sauvegardes
empêchant les sessions d'accéder aux données.
Utilisez la vue V$PDBS pour vérifier que la PDB est en mode ouvert RESTRICTED READ WRITE.
Le deuxième exemple ouvre la PDB en mode LECTURE SEULE. Toute session connectée à la PDB ne peut effectuer que des
transactions en lecture seule.
Pour changer le mode d'ouverture, fermez d'abord la PDB. Vous pouvez appliquer le même mode d'ouverture à tous les PDB ou seulement à
certains d'entre eux.
Vous pouvez modifier les paramètres de chaque PDB sans nécessairement changer le mode du PDB. Vous devez être connecté dans
la PDB pour effectuer les modifications dans les paramètres.
Le premier exemple utilise une clause DATAFILE pour mettre en ligne le fichier de données spécifié.
Le deuxième exemple définit le tablespace permanent par défaut sur PDB1_TBS pour la PDB.
Le troisième exemple définit l'espace de table temporaire par défaut sur TEMP_TBS pour la PDB.
Le quatrième exemple définit la limite de stockage pour tous les espaces de table qui appartiennent à la PDB à deux gigaoctets.
Le cinquième exemple modifie le nom de la base de données globale de la PDB en PDBAPP1. Le nouveau nom de base de
données globale pour cette PDB doit être différent de celui de n'importe quel conteneur de la CDB. Cette opération ne peut être
effectuée qu'en mode restreint.
Il existe un seul fichier de paramètres de serveur (SPFILE) par CDB. Les valeurs des paramètres d'initialisation sont
associées à la racine CDB et s'appliquent à la racine CDB et servent de valeurs par défaut pour tous les autres conteneurs.
Vous pouvez définir différentes valeurs de paramètre dans les PDB lorsque la valeur de la colonne ISPDB_MODIFIABLE dans
V$PARAMETER est TRUE. Ceuxci sont définis dans le cadre d'un PDB ; ensuite, ils sont correctement mémorisés lors de la fermeture/
ouverture de la PDB et lors du rebond de l'instance CDB. Ils voyagent également avec des opérations de clonage et de débranchement/
branchement. D'autres paramètres d'initialisation peuvent être définis pour la racine CDB uniquement.
Connectezvous à la racine CDB pour afficher les valeurs de paramètres spécifiques de tous les conteneurs.
0 VRAI 0
dix VRAI 3
20 VRAI 4
Dans cet exemple, une valeur différente du paramètre DDL_LOCK_TIMEOUT est définie dans PDB2. La
modification est maintenue après la fermeture et la réouverture de la PDB. La colonne CON_ID de la vue
V$SYSTEM_PARAMETER affiche la valeur DDL_LOCK_TIMEOUT dans chaque conteneur, la racine CDB, PDB1 et PDB2.
ALTER SYSTEM ENABLE/DISABLE RESTRICTED SESSION Uniquement pour les sessions de la PDB
• Certaines instructions ALTER SYSTEM peuvent être exécutées dans une PDB mais affectent l'ensemble de la CDB :
MODIFIER LE POINT DE CONTRÔLE DU SYSTÈME Affecte tous les fichiers de données sauf ceux en lecture seule ou hors ligne
• Toutes les autres instructions ALTER SYSTEM affectent l'ensemble de la CDB et doivent être exécutées par un
utilisateur commun dans la racine CDB.
MODIFIER LE FICHIER JOURNAL DU COMMUTATEUR DE SYSTÈME
Opération non autorisée à partir d'une base de données enfichable
Vous pouvez utiliser une instruction ALTER SYSTEM pour modifier le mode de fonctionnement d'un PDB. Lorsque le conteneur actuel est un PDB,
vous pouvez exécuter les instructions ALTER SYSTEM suivantes :
Certaines instructions ALTER SYSTEM, telles que ALTER SYSTEM CHECKPOINT, peuvent être exécutées à partir d'un PDB mais affectent en
fait l'ensemble du CDB.
D'autres instructions ALTER SYSTEM, telles que ALTER SYSTEM SWITCH LOGFILE, affectent l'ensemble de la CDB et doivent être exécutées par
un utilisateur commun à la racine de la CDB, comme ALTER SYSTEM SWITCH LOG, sauf si vous définissez le paramètre NONCDB_COMPATIBLE
sur TRUE. Ce paramètre influence le comportement des instructions ALTER DATABASE de la même manière.
• Les paramètres de nom d'hôte et de numéro de port d'un PDB ne sont importants que si les PDB proxy font référence au
PDB.
• Le nom d'hôte et le numéro de port peuvent être réinitialisés à leur valeur par défaut :
Lors de la création de la PDB, les clauses HOST=<host_name_string> et PORT=<port_number> peuvent être utilisées pour
indiquer le nom d'hôte et le numéro de port à utiliser par les liens de base de données internes à partir des PDB proxy qui
référencent la nouvelle PDB. Par défaut, la modification du nom d'hôte et du numéro de port d'un PDB n'a aucun effet sur les
liens de base de données internes qui ont déjà été créés pour pointer vers ce PDB. Seuls les liens de base de données
internes créés ultérieurement seront affectés par le nouveau nom d'hôte et le nouveau numéro de port. Un PDB proxy devra
être recréé pour qu'il puisse récupérer le nouveau numéro de port pour son PDB cible.
Application • La PDB source d'une PDB actualisable peut être supprimée. • Un PDB
APB pdb3
proxy d'un PDB proxy peut être supprimé.
Clone racine de Clone racine de
l'application 1 l'application 2
Lorsque vous n'avez plus besoin des données d'un PDB, vous pouvez supprimer le PDB. Il n'y a qu'un seul PDB qui ne peut pas être
supprimé : c'est la graine PDB. • Vous ne pouvez pas supprimer une racine d'application tant qu'il y a encore des PDB d'application
qui lui sont associés.
Déposez d'abord la graine de l'application, puis les PDB de l'application.
• Lorsque la relocalisation d'un PDB est terminée, l'ouverture du nouveau PDB supprime automatiquement la source
APB.
• La suppression de la PDB source d'une PDB actualisable ne supprime pas la PDB actualisable. Les requêtes sur le
les données sources ne sont plus possibles.
• La suppression du PDB proxy d'un PDB proxy ne supprime pas le PDB proxy. Les requêtes sur la PDB proxy ne sont plus
possibles car le lien de la base de données vers la PDB proxy n'est plus valide.
Résumé
Aperçu de la pratique
• Renommer un PDB •
Définir les valeurs des paramètres pour les PDB
15
Objectifs
d'initialisation archivés
Les fichiers qui composent une base de données Oracle sont les suivants :
• Fichiers de contrôle : chaque base de données possède un fichier de contrôle unique qui contient des données sur
base de données ellemême (c'estàdire les informations sur la structure physique de la base de données). Plusieurs copies peuvent
être conservées pour se protéger contre la perte totale. Il peut également contenir des métadonnées liées aux sauvegardes. Le fichier de
contrôle est essentiel pour la base de données. Sans le fichier de contrôle, la base de données ne peut pas être ouverte. • Fichiers de données :
Ils contiennent les données utilisateur ou applicative de la base de données, ainsi que les métadonnées et le dictionnaire de données. • Fichiers redo log
en ligne : Ils permettent par exemple la récupération de la base de données. Si la base de données
Si le serveur tombe en panne et ne perd aucun fichier de données, l'instance peut récupérer la base de données avec les informations
contenues dans ces fichiers.
Les fichiers supplémentaires suivants sont utilisés lors du fonctionnement de la base de données :
• Fichier de paramètres d'initialisation : utilisé pour définir la manière dont l'instance est configurée au démarrage. • Fichier de mots de passe :
• Fichiers de sauvegarde : utilisés pour la restauration de la base de données. Vous restaurez généralement un fichier de sauvegarde lorsqu'une
défaillance du support ou une erreur de l'utilisateur a endommagé ou supprimé le fichier d'origine.
• Fichiers redo log archivés : contiennent un historique continu des modifications de données (redo)
généré par l'instance. En utilisant ces fichiers et une sauvegarde de la base de données, vous pouvez récupérer un fichier de données perdu.
Les journaux d'archivage permettent la récupération des fichiers de données restaurés.
• Fichiers de trace : chaque serveur et processus d'arrièreplan peuvent écrire dans un fichier de trace associé. Lorsqu'une erreur
interne est détectée par un processus, le processus vide les informations sur l'erreur dans son fichier de trace. Certaines des
informations écrites dans un fichier de trace sont destinées à l'administrateur de la base de données, tandis que d'autres
informations sont destinées aux services de support Oracle.
•
Fichier journal des alertes : il s'agit d'entrées de trace spéciales. Le journal des alertes d'une base de données est un journal
chronologique des messages et des erreurs. Oracle vous recommande de consulter régulièrement le journal des alertes.
• Fichier journal DDL : Contient les instructions DDL émises par le serveur de base de données uniquement lorsque le
Le paramètre d'initialisation ENABLE_DDL_LOGGING est défini sur TRUE
Logique Physique
Base de données
Segment
Système de stockage
Étendue
Bloc de données
Oracle
relation entre les bases de données, les tablespaces et les fichiers de données est illustrée dans la diapositive. Chaque base de
données est logiquement divisée en deux espaces de table ou plus. Un ou plusieurs fichiers de données sont explicitement créés
pour chaque tablespace afin de stocker physiquement les données de tous les segments d'un tablespace. S'il s'agit d'un tablespace
TEMPORARY, il contient un fichier temporaire au lieu d'un fichier de données. Le fichier de données d'un tablespace peut être stocké
physiquement sur n'importe quelle technologie de stockage prise en charge.
Tablespaces
Une base de données est divisée en unités de stockage logiques appelées tablespaces, qui regroupent des structures logiques ou
des fichiers de données associés. Par exemple, les tablespaces regroupent généralement tous les segments d'une application pour
simplifier certaines opérations administratives.
Blocs de données
Au niveau de granularité le plus fin, les données d'une base de données Oracle sont stockées dans des blocs de données. Un bloc de
données correspond à un nombre spécifique d'octets d'espace physique sur le disque. Une taille de bloc de données est spécifiée pour
chaque tablespace lors de sa création. Une base de données utilise et alloue de l'espace de base de données libre dans les blocs de données
Oracle.
Étendues
Le niveau suivant d'espace de base de données logique est une étendue. Une extension est un nombre spécifique de blocs de données
Oracle contigus (obtenus en une seule allocation) qui sont utilisés pour stocker un type spécifique d'informations. Les blocs de données
Oracle dans une étendue sont logiquement contigus mais peuvent être physiquement répartis sur le disque en raison de la répartition RAID
et des implémentations de système de fichiers.
Segments Le
niveau de stockage de la base de données logique audessus d'une extension est appelé un segment. Un segment est un ensemble
d'étendues allouées pour une certaine structure logique. Par exemple:
• Segments de données : chaque table non organisée en index et non en cluster possède un segment de données, à l'exception des
tables externes, des tables temporaires globales et des tables partitionnées. Toutes les données de la table sont stockées dans
les extensions de son segment de données. Pour une table partitionnée, chaque partition a un segment de données.
Chaque cluster a un segment de données. Les données de chaque table du cluster sont stockées dans le segment de
données du cluster. Lorsque la création de segment différée est activée, les segments ne sont pas créés tant que la première ligne
n'est pas insérée.
• Segments d'index : chaque index possède un segment d'index qui stocke toutes ses données. Pour un index partitionné, chaque
partition a un segment d'index.
• Segments d'annulation : un tablespace UNDO est créé pour chaque instance de base de données. Ce
tablespace contient de nombreux segments d'annulation pour stocker temporairement les informations d'annulation. Les
informations d'un segment d'annulation sont utilisées pour générer des informations de base de données cohérentes en lecture et,
lors de la récupération de la base de données, annuler les transactions non validées pour les utilisateurs.
• Segments temporaires : les segments temporaires sont créés par la base de données Oracle lorsqu'une instruction SQL nécessite une
zone de travail temporaire pour terminer son exécution. Lorsque l'instruction termine son exécution, les étendues du segment
temporaire sont renvoyées à la base de données pour une utilisation future.
Spécifiez soit un tablespace temporaire par défaut pour chaque utilisateur, soit un tablespace temporaire par défaut utilisé à l'échelle
de la base de données.
Remarque : Il existe d'autres types de segments qui ne sont pas répertoriés ici. Il existe également des objets de schéma tels que des
vues, des packages et des déclencheurs qui ne sont pas considérés comme des segments, même s'il s'agit d'objets de base de
données. Un segment possède son allocation d'espace disque respective. Les autres objets existent sous forme de lignes stockées dans
un segment de métadonnées système.
Le serveur Oracle Database alloue dynamiquement de l'espace. Lorsque les étendues existantes d'un segment sont pleines, des étendues
supplémentaires sont ajoutées. Étant donné que les extensions sont allouées selon les besoins, les extensions d'un segment peuvent être
contiguës ou non sur le disque, et elles peuvent provenir de différents fichiers de données appartenant au même tablespace.
Un sousensemble d'objets de base de données, tels que des tables et des index, sont stockés sous forme de segments dans des tablespaces.
Chaque segment contient une ou plusieurs étendues. Une étendue se compose de blocs de données contigus, ce qui signifie que chaque
étendue ne peut exister que dans un seul fichier de données. Les blocs de données sont la plus petite unité d'E/S dans la base de données.
Lorsque la base de données demande un ensemble de blocs de données au système d'exploitation (OS), le système d'exploitation le mappe à un
système de fichiers réel ou à un bloc de disque sur le périphérique de stockage. Pour cette raison, vous n'avez pas besoin de connaître l'adresse
physique des données de votre base de données. Cela signifie également qu'un fichier de données peut être réparti ou mis en miroir sur plusieurs
disques.
La taille du bloc de données peut être définie au moment de la création de la base de données. La taille par défaut de 8 Ko convient à la
plupart des bases de données. Si votre base de données prend en charge une application d'entrepôt de données dotée de tables et d'index
volumineux, une taille de bloc plus grande peut être avantageuse.
Si votre base de données prend en charge une application transactionnelle dans laquelle les lectures et les écritures sont aléatoires, il peut être
avantageux de spécifier une taille de bloc plus petite. La taille de bloc maximale dépend de votre système d'exploitation. La taille de bloc Oracle
minimale est de 2 Ko ; il devrait rarement (voire jamais) être utilisé.
Vous pouvez avoir des tablespaces avec une taille de bloc non standard. Pour plus de détails, consultez le Guide de l'administrateur
de la base de données Oracle.
8 Ko 8 Ko 8 Ko 8 Ko
8 Ko 8 Ko 8 Ko 8 Ko 1 seul fichier de
données autorisé
8 Ko 8 Ko 8 Ko 8 Ko
<= 128 To
8 Ko 8 Ko 8 Ko 8 Ko
Étendue Étendue
64 Ko 64 Ko
Segment
128 Ko
Une base de données est divisée en tablespaces, qui sont des unités de stockage logiques qui peuvent être utilisées pour regrouper des
structures logiques associées. Un ou plusieurs fichiers de données sont explicitement créés pour chaque tablespace afin de stocker
physiquement les données de toutes les structures logiques d'un tablespace.
Le graphique de la diapositive illustre le tablespace 1, composé de deux fichiers de données. Un segment d'une taille de 128 Ko, composé
de deux extensions, couvre les deux fichiers de données. La première étendue de taille 64 Ko se trouve dans le premier fichier de données et
la deuxième étendue, également de taille 64 Ko, se trouve dans le deuxième fichier de données. Les deux extensions sont formées de blocs
Oracle contigus de 8 Ko.
Remarque : Vous pouvez également créer des tablespaces bigfile, qui n'ont qu'un seul fichier souvent très volumineux. Le fichier peut être de
n'importe quelle taille jusqu'au maximum autorisé par l'architecture d'ID de ligne. La taille maximale du fichier de données unique ou du fichier
temporaire est de 128 téraoctets (To) pour un tablespace avec 32 K blocs et de 32 To pour un tablespace avec 8 K blocs.
Les tablespaces petits fichiers traditionnels (qui sont la valeur par défaut) peuvent contenir plusieurs fichiers de données, mais les fichiers ne
peuvent pas être aussi volumineux. Pour plus d'informations sur les espaces de table bigfile, consultez le Guide de l'administrateur de la base
de données Oracle.
SYSTÈME L'espace de table SYSTEM est utilisé pour les fonctionnalités de base. Dans le conteneur racine, il contient les métadonnées fournies
par Oracle. Dans un PDB, il contient des métadonnées utilisateur.
SYSAUX Le tablespace SYSAUX est un tablespace auxiliaire du tablespace SYSTEM et permet de réduire la charge sur le tablespace SYSTEM.
Il existe dans le conteneur racine et dans chaque PDB.
TEMP L'espace de table TEMP contient des objets de schéma uniquement pour la durée d'une session. Il existe un tablespace
temporaire par défaut pour la racine CDB et un pour chaque racine d'application, PDB d'application et PDB.
ANNULER L'espace de table UNDO stocke les données nécessaires pour annuler ou annuler les modifications apportées à la base de données.
Un tablespace d'annulation actif existe dans le conteneur racine. Il est recommandé d'avoir un tablespace d'annulation local dans
chaque PDB.
UTILISATEURS L'espace de table USERS stocke des objets et des données utilisateur. Il est créé par défaut dans le conteneur racine
uniquement.
SYSTEM : Il stocke le dictionnaire de données (métadonnées décrivant les objets de la base de données) et les tables
contenant des informations administratives sur la base de données. Toutes ces informations sont contenues dans le schéma
SYS et ne sont accessibles que par l'utilisateur SYS ou d'autres utilisateurs administratifs disposant du privilège requis. Dans
le conteneur racine, il stocke les métadonnées fournies par Oracle, tandis que dans une PDB, il stocke les métadonnées
utilisateur. Les pointeurs des PDB vers les objets fournis par Oracle permettent d' accéder aux objets « système » sans les
dupliquer dans les PDB.
SYSAUX : le tablespace SYSAUX est un tablespace auxiliaire du tablespace SYSTEM et permet de réduire la charge
sur le tablespace SYSTEM. Certains composants et produits qui utilisaient le tablespace SYSTEM ou leurs propres
tablespaces dans les versions antérieures d'Oracle Database utilisent désormais le tablespace SYSAUX. L'espace de
table SYSAUX existe dans le conteneur racine et dans chaque PDB.
TEMP : l'espace de table TEMP contient des objets de schéma uniquement pour la durée d'une session. Les objets
des tablespaces temporaires sont stockés dans des fichiers temporaires. Votre tablespace temporaire est utilisé lorsque vous
exécutez une instruction SQL qui nécessite la création de segments temporaires (comme un grand tri ou la création d'un
index). Tout comme chaque utilisateur se voit attribuer un tablespace par défaut pour stocker les objets de données créés,
chaque utilisateur se voit attribuer un tablespace temporaire.
UNDO : l'espace de table UNDO stocke les données nécessaires pour annuler ou annuler les modifications apportées à la
base de données. Dans une CDB à instance unique, un tablespace UNDO actif existe dans le conteneur racine. Il est facultatif,
mais recommandé, d'avoir un tablespace UNDO local dans un PDB.
USERS : l'espace de table USERS stocke des objets et des données utilisateur. Si aucun tablespace par défaut n'est
spécifié lors de la création d'un utilisateur, alors le tablespace USERS est le tablespace par défaut pour tous les objets créés
par cet utilisateur. Pour les utilisateurs SYS et SYSTEM, le tablespace permanent par défaut est SYSTEM. L'espace de table
USERS est créé par défaut dans le conteneur racine uniquement.
• Les tablespaces SYSTEM et SYSAUX sont des tablespaces obligatoires qui sont créés à
moment de la création de la base de données. Ils doivent être en ligne.
• Le tablespace SYSTEM est utilisé pour les fonctionnalités de base (par exemple, le dictionnaire de données
les tables).
• L'espace de table auxiliaire SYSAUX est utilisé pour les composants de base de données supplémentaires. • Les
tablespaces SYSTEM et SYSAUX ne doivent pas être utilisés pour les données d'application.
Chaque base de données Oracle doit contenir un tablespace SYSTEM et un tablespace SYSAUX. Ils sont créés
automatiquement lors de la création de la base de données. La valeur par défaut du système consiste à créer un espace
de table de petit fichier. Vous pouvez également créer des tablespaces bigfile, qui permettent à la base de données Oracle de
gérer des fichiers ultralarges.
Un tablespace peut être en ligne (accessible) ou hors ligne (non accessible). Le tablespace SYSTEM est toujours en ligne lorsque
la base de données est ouverte. Il stocke les tables qui prennent en charge les fonctionnalités de base de la base de données,
telles que les tables du dictionnaire de données.
Le tablespace SYSAUX est un tablespace auxiliaire du tablespace SYSTEM. L'espace de table SYSAUX stocke de
nombreux composants de base de données et doit être en ligne pour le bon fonctionnement de tous les composants de base
de données. Les tablespaces SYSTEM et SYSAUX ne sont pas recommandés pour stocker les données d'une application. Des
tablespaces supplémentaires peuvent être créés à cet effet.
Remarque : L'espace de table SYSAUX peut être mis hors ligne pour effectuer la récupération de l'espace de table, alors que
cela n'est pas possible pour l'espace de table SYSTEM. Aucun d'entre eux ne peut être mis en lecture seule.
Types de segments
– Indice
– Annuler
– Temporaire •
Les segments sont alloués dynamiquement par le serveur Oracle Database.
Segments de table et de cluster : chaque table non clusterisée possède un segment de données. Toutes les données de table sont stockées dans les
étendues du segment de table. Pour une table partitionnée, chaque partition a un segment de données. Chaque cluster a un segment de données. Les
données de chaque table du cluster sont stockées dans le segment de données du cluster.
Segment d'index : chaque index possède un segment d'index qui stocke toutes ses données. Pour un index partitionné, chaque partition a un
segment d'index.
Segment d'annulation : la base de données Oracle conserve les informations permettant d'annuler les modifications apportées à la base de données.
Ces informations consistent en des enregistrements des actions des transactions, collectivement appelées annulation. L'annulation est stockée dans des
segments d'annulation dans un tablespace d'annulation.
Segment temporaire : un segment temporaire est créé par le serveur de base de données Oracle lorsqu'une instruction SQL a besoin d'une zone de
base de données temporaire pour terminer son exécution. Lorsque l'exécution de l'instruction est terminée, les étendues du segment temporaire sont
renvoyées au système pour une utilisation future.
Le serveur Oracle Database alloue dynamiquement de l'espace lorsque les étendues existantes d'un segment sont pleines. Étant donné que les
étendues sont allouées selon les besoins, les étendues d'un segment peuvent ou non être contiguës sur le disque.
À moins que la création de segment différé ne soit activée, un "segment" logique est créé lors de la création d'un tableau,
comme illustré dans la diapositive. Un tablespace contient une collection de segments.
Logiquement, une table contient des lignes de valeurs de colonne. Une ligne est finalement stockée dans un bloc de base de
données sous la forme d'un morceau de ligne (également illustré dans la diapositive). C'est ce qu'on appelle une pièce de
rangée car, dans certaines circonstances, la rangée entière peut ne pas être stockée au même endroit. Cela se produit
lorsqu'une ligne insérée est trop grande pour tenir dans un seul bloc (ligne chaînée) ou lorsqu'une mise à jour fait qu'une
ligne existante dépasse l'espace libre disponible du bloc actuel (ligne migrée). Les éléments de ligne sont également utilisés
lorsqu'un tableau comporte plus de 255 colonnes. Dans ce cas, les pièces peuvent être dans le même bloc (chaînage intra
bloc) ou sur plusieurs blocs.
Entête de bloc
Données de ligne
Un bloc de base de données contient un entête de bloc, des données de ligne et de l'espace libre, comme illustré dans la diapositive.
• Un entête de bloc contient le type de segment (tel que table ou index), l'adresse du bloc de données, le répertoire de
la table, le répertoire des lignes et des emplacements de transaction d'environ 23 octets chacun, qui sont utilisés
lorsque des modifications sont apportées aux lignes du bloc. L'entête du bloc se développe vers le bas à partir du
haut.
• Les données de ligne sont les données réelles des lignes du bloc. L'espace de données de ligne augmente à partir de la
bas.
• L'espace libre se trouve au milieu du bloc, ce qui permet à l'entête et à l'espace de données de la ligne d'augmenter si nécessaire.
Les données de ligne occupent de l'espace libre lorsque de nouvelles lignes sont insérées ou lorsque des colonnes de lignes
existantes sont mises à jour avec des valeurs plus grandes. Exemples d'événements qui provoquent une croissance de l'entête :
Répertoires de lignes nécessitant plus d'entrées de ligne
Initialement, l'espace libre dans un bloc est contigu. Cependant, les suppressions et les mises à jour peuvent fragmenter
l'espace libre dans le bloc. L'espace libre dans le bloc est fusionné par le serveur Oracle si nécessaire.
Lorsque vous créez une table de tas non partitionnée, la création du segment de table est reportée à la première insertion de ligne.
Cette fonctionnalité est activée par défaut avec le paramètre d'initialisation DEFERRED_SEGMENT_CREATION défini sur TRUE.
• Une quantité importante d'espace disque peut être économisée pour les applications qui créent des centaines ou des milliers de
tables lors de l'installation, dont beaucoup risquent de ne jamais être remplies. • Le temps d'installation de l'application est
réduit.
Lorsque vous insérez la première ligne dans la table, les segments sont créés pour la table de base, ses colonnes LOB et ses index.
Lors de la création du segment, les curseurs sur la table sont invalidés. Ces opérations ont un léger impact supplémentaire sur les
performances.
Avec cette méthode d'allocation, il est essentiel que vous effectuiez une planification de capacité appropriée afin que la base de données
dispose de suffisamment d'espace disque pour gérer la création de segments lorsque les tables sont remplies.
• Avec le paramètre d'initialisation DEFERRED_SEGMENT_CREATION défini sur TRUE ou FALSE. Ce paramètre peut être
défini dans le fichier de paramètres d'initialisation. Vous pouvez également le contrôler via les commandes ALTER
SESSION ou ALTER SYSTEM.
CRÉATION DE SEGMENT DIFFÉRÉE : si spécifié, la création du segment est différée jusqu'à la première
ligne est insérée dans le tableau. Ceci est le comportement par défaut.
Il est possible de forcer la création de segments pour une table existante avec la commande ALTER TABLE. … DÉPLACER
Il n'est pas possible de contrôler directement la création de segment différée pour les objets dépendants tels que les index.
Ils héritent de cette caractéristique de leur objet parent, dans ce cas, la table.
97 % critique
Alerte Effacé
85% Avertissement
Effacé
Alerte
MMON
Le serveur de base de données suit l'utilisation de l'espace tout en effectuant des activités régulières de gestion de l'espace.
Ces informations sont agrégées par le processus MMON. Une alerte est déclenchée lorsque le seuil d'un tablespace a été
atteint ou effacé.
Les alertes ne doivent pas être signalées sur les tablespaces qui sont en mode lecture seule ou sur les tablespaces qui
ont été mis hors ligne, car il n'y a pas grandchose à faire pour eux.
Dans les tablespaces temporaires, la valeur seuil doit être définie comme une limite sur l'espace utilisé dans le tablespace.
Pour les tablespaces d'annulation, une extension est réutilisable si elle ne contient pas d'annulation active ou non expirée.
Pour le calcul de la violation de seuil, la somme des étendues actives et non expirées est considérée comme l'espace
utilisé.
Pour les espaces de table avec des fichiers autoextensibles, les seuils sont calculés en fonction de la taille de fichier maximale que vous avez
spécifiée ou de la taille de fichier maximale du système d'exploitation.
Le schéma de la diapositive montre que le processus MMON agrège les informations d'utilisation de l'espace et génère une
alerte critique lorsque l'espace de table est plein à 97 % et un avertissement lorsqu'il est plein à 85 %. L'alerte est effacée une
fois le problème d'utilisation de l'espace résolu.
[Link]
Résumé
16
Objectifs
• Un tablespace est une allocation d'espace dans la base de données qui peut contenir des objets de
schéma. • Créez un tablespace avec l'instruction CREATE TABLESPACE ou utilisez un outil graphique.
• Vous pouvez créer trois types de tablespaces :
– Tablespace permanent : contient des objets de schéma persistants. Les objets des tablespaces permanents sont
stockés dans des fichiers de données.
– Undo tablespace : est un type de tablespace permanent utilisé par Oracle Database pour
gérer les données d'annulation en mode de gestion automatique des annulations
– Tablespace temporaire : contient des objets de schéma uniquement pour la durée d'une session.
Les objets des tablespaces temporaires sont stockés dans des fichiers temporaires.
Avant de pouvoir créer un tablespace, vous devez créer une base de données pour le contenir, et la base de
données doit être ouverte. Vous devez également disposer du privilège système CREATE TABLESPACE. Pour
créer l'espace de table SYSAUX, vous devez disposer du privilège système SYSDBA.
Clause Description
DATAFILE ou TEMPFILE Utilisé pour spécifier le nom, l'emplacement et la taille initiale du fichier de données ou du
fichier temporaire
EN LIGNE ou HORS LIGNE Utilisé pour rendre le tablespace disponible (ou non disponible) immédiatement après sa création
TAILLE DE BLOC Utilisé pour spécifier une taille de bloc non standard
GESTION DE L'ÉTENDUE Utilisé pour spécifier comment les étendues de l'espace de table seront gérées et où les
métadonnées pour les étendues allouées et non allouées doivent être stockées
ENREGISTREMENT Utilisé pour spécifier les attributs de journalisation par défaut des objets dans le
tablespace
GESTION DES SECTEURS Utilisé pour spécifier comment l'espace libre dans les segments du tablespace doit être suivi
(bitmaps ou listes libres)
Vous devez inclure la clause DATAFILE ou TEMPFILE lorsque vous créez un tablespace. Utilisez cette clause pour spécifier
le nom et l'emplacement du fichier de données ou du fichier temporaire. Un tablespace doit avoir au moins un fichier de données ou
un fichier temporaire. Vous devez également spécifier une taille de fichier initiale.
Vous pouvez inclure la clause AUTOEXTEND ON pour étendre automatiquement le fichier lorsqu'il est plein. Dans ce cas, vous
devrez spécifier un montant d'incrément et une taille de fichier maximale, qui peut être illimitée.
N'oubliez pas que la taille du fichier est limitée par le support physique sur lequel il réside.
Vous pouvez inclure la clause BIGFILE ou SMALLFILE pour remplacer le type d'espace table par défaut (permanent ou
temporaire) pour la base de données. Si vous omettez cette clause, Oracle Database utilise le type d'espace de table par défaut
actuel.
• Un tablespace bigfile ne contient qu'un seul fichier de données (ou fichier temporaire), qui peut contenir jusqu'à
environ 4 milliards de blocs. Les tablespaces Bigfile sont utilisés avec des bases de données extrêmement volumineuses,
dans lesquelles la gestion automatique du stockage (ASM) ou d'autres gestionnaires de volumes logiques prennent en
charge la répartition ou la matrice redondante de disques indépendants (RAID) et les volumes logiques dynamiquement
extensibles. Pour les espaces de table bigfile, vous ne pouvez spécifier qu'un seul fichier de données dans la clause
DATAFILE ou un seul fichier temporaire dans la clause TEMPFILE.
• Un tablespace smallfile est un tablespace Oracle traditionnel, qui peut contenir 1 022 fichiers de données ou fichiers temporaires,
chacun pouvant contenir jusqu'à environ 4 millions de blocs.
Vous pouvez inclure la clause ONLINE ou OFFLINE pour rendre l'espace table disponible (ou non disponible) immédiatement après
sa création pour les utilisateurs auxquels l'accès à l'espace table a été accordé. EN LIGNE est la valeur par défaut. La vue du
dictionnaire de données DBA_TABLESPACES indique si chaque tablespace est en ligne ou hors ligne. Cette clause ne peut pas être
utilisée avec des tablespaces temporaires.
Oracle Database 19c : Atelier d'administration 16 4
Machine Translated by Google
Vous pouvez inclure la clause BLOCKSIZE pour spécifier une taille de bloc non standard. Pour spécifier cette clause, le paramètre
DB_CACHE_SIZE et au moins un paramètre DB_nK_CACHE_SIZE doivent être définis, et l'entier que vous spécifiez dans cette
clause doit correspondre à la définition d'un paramètre DB_nK_CACHE_SIZE . Vous ne pouvez pas spécifier de tailles de bloc non
standard pour un tablespace temporaire ou si vous avez l'intention d' affecter ce tablespace en tant que tablespace temporaire pour
des utilisateurs. Si vous ne spécifiez pas de taille de bloc, la base de données utilisera la taille de bloc par défaut de 8 Ko pour l'espace
de table.
pouvez inclure la clause EXTENT MANAGEMENT pour spécifier comment les étendues de l'espace de table seront gérées. •
AUTOALLOCATE indique que l'espace table est géré par le système. Les utilisateurs ne peuvent pas spécifier une taille d'étendue.
• La valeur UNIFORM indique que le tablespace est géré avec des étendues uniformes de SIZE
octets. La taille par défaut est de 1 Mo. Toutes les étendues des tablespaces temporaires sont de taille uniforme, ce mot
clé est donc facultatif pour un tablespace temporaire. Cependant, vous devez spécifier UNIFORM pour spécifier SIZE.
Vous ne pouvez pas spécifier UNIFORM pour un tablespace d'annulation.
Si vous ne spécifiez pas AUTOALLOCATE ou UNIFORM, la valeur par défaut est UNIFORM pour les tablespaces
temporaires et AUTOALLOCATE pour tous les autres types de tablespaces. Si vous ne spécifiez pas la clause
EXTENT_MANAGEMENT, Oracle Database interprète la clause MINIMUM EXTENT et la clause DEFAULT STORAGE pour
déterminer la gestion de l'étendue.
De plus, avec la clause EXTENT MANAGEMENT, vous pouvez spécifier où les métadonnées des extensions allouées et non
allouées doivent être stockées, soit dans le dictionnaire de données (DICTIONARY), soit dans le tablespace luimême (LOCAL) .
Les tablespaces qui enregistrent l'allocation d'étendue dans le dictionnaire sont appelés tablespaces gérés par dictionnaire. Les
tablespaces qui enregistrent l'allocation d'extent dans l'entête de tablespace sont appelés tablespaces gérés localement.
Vous pouvez inclure la clause LOGGING pour spécifier les attributs de journalisation par défaut de toutes les tables, index, vues
matérialisées, journaux de vues matérialisées et partitions d'un tablespace. L'attribut de journalisation contrôle si certaines
opérations DML sont consignées dans le fichier de journalisation (LOGGING) ou non (NOLOGGING). La valeur par défaut est
LOGGING. Cette clause n'est pas valide pour un tablespace temporaire ou d'annulation.
Si la journalisation n'est pas activée, les chargements directs utilisant SQL*Loader et les opérations INSERT de chargement direct
ne sont pas écrits dans le journal de rétablissement, et les objets sont donc irrécupérables en cas de perte de données. Lorsqu'un
objet est créé sans que la journalisation soit activée, vous devez sauvegarder ces objets si vous souhaitez qu'ils soient récupérables.
Choisir de ne pas activer la journalisation peut avoir un impact significatif sur la capacité à récupérer des objets à l'avenir. Utiliser avec
précaution.
Vous pouvez utiliser la clause FORCE LOGGING pour mettre le tablespace en mode FORCE LOGGING. Oracle Database
enregistrera toutes les modifications apportées à tous les objets de l'espace de table, à l'exception des modifications apportées aux
segments temporaires, en remplaçant tout paramètre NOLOGGING pour les objets individuels. La base de données doit être ouverte
et en mode READ WRITE.
Le bitmap décrit l'état de chaque bloc de données dans un segment par rapport à la quantité d'espace
disponible dans le bloc pour l'insertion de lignes. Lorsque plus ou moins d'espace devient disponible dans un
bloc de données, le nouvel état est reflété dans le bitmap. Avec les bitmaps, la base de données Oracle gère
plus automatiquement l'espace libre. Par conséquent, cette forme de gestion de l'espace est appelée gestion
automatique de l'espace de segment (ASSM).
• MANUEL : vous souhaitez utiliser des listes libres pour gérer l'espace libre dans les segments. Les listes libres
sont des listes de blocs de données disposant d'un espace disponible pour l'insertion de lignes. Cette forme
de gestion de l'espace dans les segments est appelée gestion manuelle de l'espace des segments en raison
de la nécessité de spécifier et d'ajuster les paramètres de stockage PCTUSED, FREELISTS et FREELIST
GROUPS pour les objets de schéma créés dans le tablespace. Ceci est pris en charge pour la rétrocompatibilité ;
il est recommandé d'utiliser ASSM.
La clause SEGMENT MANAGEMENT s'applique uniquement aux tablespaces permanents gérés localement et n'est
pas valide pour les tablespaces temporaires.
SQL> CONNECTER
system@cdb1 SQL> CREATE TABLESPACE
tbs_CDB_users DATAFILE '/u1/app/oracle/oradata/cdb/cdb_users01.dbf' SIZE 100M;
SQL> CONNECTER
system@PDB1 SQL> CREATE TABLESPACE
tbs_PDB1_users DATAFILE '/u1/app/oracle/oradata/cdb/pdb1/[Link]' SIZE 100M;
Dans une nonCDB, tous les tablespaces appartiennent à une seule base de données. Dans un CDB, un ensemble d'espaces de table
appartient à la racine CDB, et chaque PDB a son propre ensemble d'espaces de table.
Dans une architecture mutualisée, le tablespace est créé dans le conteneur où la commande CREATE TABLESPACE est
exécutée.
Séparer les fichiers de données dans différents répertoires par PDB peut aider à déterminer quels fichiers appartiennent à quel PDB,
bien que cela ne soit pas nécessaire.
Vous pouvez utiliser le stockage Oracle ASM pour gérer votre stockage sur disque.
La clause USER_DATA TABLESPACE de la commande CREATE DATABASE vous permet de spécifier un tablespace par défaut autre
que USERS lors de l'utilisation de DBCA pour créer une base de données. Ce tablespace sera également utilisé pour les options XDB.
PDBdev SYSTÈME
• Au CDB
• Dans l'APB
SQL> CONNECTER pdb1_admin@pdbhr
SQL> ALTER PLUGGABLE DATABASE TABLESPACE PAR DÉFAUT pdbhr_users ;
L'espace de table par défaut d'une base de données est une propriété de base de données. Pour modifier l'espace de table
par défaut d'un conteneur racine CDB, vous devez vous connecter au conteneur racine CDB en tant qu'utilisateur disposant
des privilèges appropriés et émettre la commande ALTER DATABASE. Cette opération ne modifie pas l'espace de table
permanent par défaut des PDB.
Pour modifier l'espace de table par défaut d'une PDB, vous devez vous connecter à la PDB en tant qu'utilisateur
disposant des autorisations appropriées et émettre la commande ALTER PLUGGABLE DATABASE. Lorsqu'elles sont
connectées à la PDB, les commandes ALTER DATABASE et ALTER PLUGGABLE DATABASE effectuent les mêmes
modifications sur la PDB. La commande ALTER DATABASE est autorisée pour la compatibilité descendante.
Tablespaces temporaires
Base de données de conteneurs mutualisés CDB1
PDBtest TEMP
• Un seul tablespace temporaire ou groupe de tablespaces par défaut est autorisé par CDB ou PDB. •
Chaque PDB peut avoir des tablespaces temporaires ou des groupes de tablespaces. • Définissez le
tablespace temporaire par défaut dans un PDB :
Une CDB ne peut avoir qu'un seul tablespace temporaire ou groupe de tablespaces par défaut. Comme avec un nonCDB, il peut
y avoir d'autres tablespaces temporaires auxquels les utilisateurs peuvent être affectés.
Les PDB doivent avoir leur propre espace de table temporaire (ou groupe d'espaces de table) à utiliser par les utilisateurs de la PDB.
Ces tablespaces temporaires seront transportés avec la PDB lorsqu'elle sera débranchée.
La création d'un utilisateur local nécessite l'affectation d'un tablespace temporaire par défaut dans la PDB.
La création d'un utilisateur commun nécessite que l'espace de table temporaire par défaut existe dans le conteneur où il est répliqué.
L'espace de table temporaire par défaut pour la CDB est défini au niveau racine de la CDB. Il peut y avoir plusieurs tablespaces
temporaires, mais un seul peut être la valeur par défaut.
Lorsque vous créez un utilisateur, vous pouvez spécifier un tablespace temporaire à utiliser par cet utilisateur. Si aucun
espace de table temporaire n'est spécifié, l'espace de table par défaut de la PDB est utilisé.
La quantité d'espace qu'un PDB peut utiliser dans le tablespace temporaire partagé peut être limitée :
Dans cet exemple, si la valeur utilisée par les sessions connectées à la PDB est supérieure à 500 Mo, aucun stockage
supplémentaire dans l'espace de table temporaire partagé ne sera disponible pour les sessions connectées à la PDB jusqu'à ce
que la quantité de stockage utilisée par elles devienne inférieure à 500M.
• Lorsque vous créez un tablespace, il s'agit initialement d'un tablespace en lecture/écriture. • Utilisez
l'instruction ALTER TABLESPACE pour mettre un tablespace hors ligne ou en ligne, lui ajouter des fichiers de données
ou des fichiers temporaires, ou en faire un tablespace en lecture seule. • Un tablespace peut être dans l'un des trois
– Lire Ecrire
– Lecture seule
– Hors ligne avec l'une des options suivantes :
— NORMALE
— TEMPORAIRE
— IMMÉDIAT
• Ajoutez de l'espace à un tablespace existant en ajoutant des fichiers de données au tablespace ou en modifiant la taille
d'un fichier de données existant. • Utilisez l'instruction DROP TABLESPACE pour supprimer un tablespace et son
contenu du
base de données si vous n'avez plus besoin de son contenu.
Modification du statut
Un tablespace peut être dans l'un des trois statuts ou états différents. L'un des trois états suivants peut ne pas être disponible car leur
disponibilité dépend du type d'espace de table :
• Lecture/écriture : le tablespace est en ligne et peut être lu et écrit. • Lecture seule : spécifiez la lecture seule
Remarque : Les tablespaces d'annulation et temporaires ne peuvent pas être mis en lecture seule.
•
Hors ligne : vous pouvez mettre un tablespace en ligne hors ligne afin que cette partie de la base de données soit
temporairement indisponible pour une utilisation générale. Le reste de la base de données est ouvert et disponible pour que
les utilisateurs puissent accéder aux données. Lorsque vous le mettez hors ligne, vous pouvez utiliser les options suivantes :
Normal : un tablespace peut être mis hors ligne normalement s'il n'existe aucune condition d'erreur pour l'un des fichiers de
données du tablespace. Oracle Database garantit que toutes les données sont écrites sur le disque en prenant un
point de contrôle pour tous les fichiers de données de l'espace de table lorsqu'il les met hors ligne.
Temporaire : un tablespace peut être temporairement mis hors ligne même s'il existe des conditions d'erreur pour un
ou plusieurs fichiers du tablespace. Oracle Database met les fichiers de données (qui ne sont pas déjà hors
ligne) hors ligne, en effectuant des points de contrôle sur eux. Si aucun fichier n'est hors ligne, mais que vous
utilisez la clause Temporaire, la récupération de média n'est pas nécessaire pour remettre l'espace de table en
ligne. Toutefois, si un ou plusieurs fichiers du tablespace sont hors ligne en raison d'erreurs d'écriture et que vous
mettez temporairement le tablespace hors ligne, le tablespace nécessite une récupération avant que vous puissiez
le remettre en ligne.
Immédiat : un espace de table peut être mis hors ligne immédiatement sans qu'Oracle Database n'effectue de point de
contrôle sur l'un des fichiers de données. Lorsque vous spécifiez Immédiat, la récupération de média pour l'espace de
table est requise avant que l'espace de table puisse être mis en ligne.
Vous ne pouvez pas mettre un tablespace hors ligne immédiatement si la base de données s'exécute en
mode NOARCHIVELOG.
Remarque : Les tablespaces système ne peuvent pas être mis hors ligne.
Modification de la taille
Vous pouvez ajouter de l'espace à un tablespace existant en ajoutant des fichiers de données au tablespace ou en modifiant la
taille d'un fichier de données existant. Vous ne pouvez pas ajouter de fichiers de données supplémentaires aux espaces de table bigfile.
Vous pouvez agrandir ou réduire un tablespace. Cependant, vous ne pouvez pas rendre un fichier de données plus petit que l'espace utilisé
dans le fichier. Si vous essayez de le faire, vous obtiendrez une erreur.
Vous pouvez supprimer un tablespace et son contenu (les segments contenus dans le tablespace) de la base de données si le tablespace
et son contenu ne sont plus nécessaires. Vous devez disposer du privilège système DROP TABLESPACE pour supprimer un tablespace.
Lorsque vous supprimez un tablespace, les pointeurs de fichier du fichier de contrôle de la base de données associée sont supprimés.
Si vous utilisez Oracle Managed Files (OMF), les fichiers sousjacents du système d'exploitation sont également supprimés. Sinon, sans
OMF, vous pouvez éventuellement demander au serveur Oracle de supprimer les fichiers du système d'exploitation (fichiers de données)
qui constituent l'espace de table supprimé. Si vous ne demandez pas au serveur Oracle de supprimer les fichiers de données en même
temps qu'il supprime l'espace de table, vous devez utiliser ultérieurement les commandes appropriées de votre système d'exploitation si
vous souhaitez qu'ils soient supprimés.
Vous ne pouvez pas supprimer un tablespace qui contient des segments avec des mises à jour non validées à partir de transactions
actives. Par exemple, si une table du tablespace est en cours d'utilisation ou si le tablespace contient des données d'annulation nécessaires
pour annuler les transactions non validées, vous ne pouvez pas supprimer le tablespace. Il est préférable de mettre l'espace de table hors
ligne avant de le supprimer.
Les informations sur les tablespaces et les fichiers de données peuvent être obtenues en interrogeant les vues suivantes : • Informations sur les
tablespaces :
– CDB_TABLESPACES et DBA_TABLESPACES
– V$TABLESPACE
• Informations sur le fichier de données :
– CDB_DATA_FILES et DBA_DATA_FILES
– V$DATAFILE
• Informations sur le fichier temporaire :
– CDB_TEMP_FILES et DBA_TEMP_FILES
– V$TEMPFILE
• Tables dans un tablespace :
– TOUTES_TABLES
• Spécifiez les opérations sur les fichiers en termes d'objets de base de données plutôt qu'en termes de noms de fichiers.
Paramètre Description
DB_CREATE_FILE_DEST Définit l'emplacement du répertoire du système de fichiers par défaut pour les
fichiers de données et les fichiers temporaires
• Exemple :
Oracle Managed Files (OMF) vous évite d'avoir à gérer directement les fichiers du système d'exploitation dans une base de données
Oracle. Vous spécifiez les opérations en termes d'objets de base de données plutôt qu'en termes de noms de fichiers. La base de
données utilise en interne des interfaces de système de fichiers standard pour créer et supprimer des fichiers selon les besoins des
structures de base de données suivantes : • Tablespaces • Fichiers de journalisation
• Fichiers de contrôle
• Journaux archivés
•
Bloquer les fichiers de suivi des
Sauvegardes RMAN
Une base de données peut contenir un mélange de fichiers gérés par Oracle et non gérés par Oracle. Le répertoire du système de
fichiers spécifié par l'un de ces paramètres doit déjà exister ; la base de données ne le crée pas.
Le répertoire doit également avoir des autorisations pour que la base de données crée les fichiers qu'il contient.
Le tableau de la diapositive répertorie trois paramètres d'initialisation utilisés avec OMF. L'exemple de la diapositive montre qu'après la
définition du paramètre d'initialisation DB_CREATE_FILE_DEST, vous pouvez omettre la clause DATAFILE de l'instruction CREATE
TABLESPACE. Le fichier de données est créé à l'emplacement spécifié par DB_CREATE_FILE_DEST.
Formats de
dénomination Les fichiers gérés par Oracle ont un format de dénomination spécifique. Par exemple, sur les
systèmes Linux et UNIX, le format suivant est utilisé : <préfixe_destination>/o1_mf_%t_%u_.dbf Ne renommez pas
un fichier géré par Oracle. La base de données identifie un fichier géré par Oracle en fonction de son nom. Si vous
renommez le fichier, la base de données n'est plus en mesure de le reconnaître en tant que fichier géré par Oracle et ne
gérera pas le fichier en conséquence.
Taille du fichier
Par défaut, les fichiers de données gérés par Oracle, y compris ceux des tablespaces SYSTEM et SYSAUX, font 100 Mo
et sont autoextensibles.
Remarque : Par défaut, Automatic Storage Management (ASM) utilise des fichiers OMF, mais si vous spécifiez un nom
d'alias pour un fichier de données ASM lors de la création d'un tablespace ou lors de l'ajout d'un fichier de données ASM
à un tablespace existant, ce fichier ne sera pas OMF. .
SYSTÈME INVENTAIRE
tablespace tablespace
Ces activités peuvent être effectuées avec Enterprise Manager ou avec des instructions SQL. La taille de la base
de données peut être décrite comme la somme de tous ses tablespaces.
Vous pouvez renommer et déplacer un fichier de données en ligne d'un type de système de stockage à un autre pendant que la
base de données est ouverte et accède au fichier. Le premier exemple du diagramme illustre le déplacement de l'espace de table
HR (trois fichiers de données) du stockage du système de fichiers vers le stockage ASM (groupe de disques A). Le deuxième
exemple illustre le déplacement de l'espace de table APP du stockage ASM (groupe de disques B) vers le stockage du système de
fichiers (trois fichiers de données).
Les requêtes et les opérations DML et DDL peuvent être effectuées pendant le déplacement du fichier de données. Par
exemple : • Instructions SELECT sur des tables et des partitions
pas besoin d'arrêter la base de données ou de mettre le fichier de données hors ligne pendant que vous déplacez un fichier de données.
fichier vers un autre emplacement, disque ou système de stockage.
• Vous pouvez omettre la clause TO uniquement lorsqu'un fichier géré par Oracle est utilisé. Dans ce cas, le
Le paramètre d'initialisation DB_CREATE_FILE_DEST doit être défini pour indiquer le nouvel emplacement.
•
Si l'option REUSE est spécifiée, le fichier existant est écrasé.
•
Si la clause KEEP est spécifiée, l'ancien fichier sera conservé après l'opération de déplacement. La clause KEEP n'est
pas autorisée si le fichier source est un fichier géré par Oracle. • Utilisez la vue V$SESSION_LONGOPS pour afficher
• Copier un fichier de données d'un système de fichiers vers Automatic Storage Management (ASM) :
Vous n'avez pas besoin d'arrêter la base de données ou de mettre le fichier de données hors ligne lorsque vous déplacez un fichier de données
vers un autre emplacement, disque ou système de stockage.
La clause TO peut être omise uniquement lorsqu'un fichier géré par Oracle est utilisé. Dans ce cas, le
paramètre DB_CREATE_FILE_DEST doit être défini pour indiquer le nouvel emplacement.
Si l'option REUSE est spécifiée, le fichier existant est écrasé.
Si la clause KEEP est spécifiée, l'ancien fichier sera conservé après l'opération de déplacement. La clause KEEP n'est
pas autorisée si le fichier source est un fichier géré par Oracle.
Utilisez la vue V$SESSION_LONGOPS pour afficher les opérations de déplacement en ligne en cours. Chaque
opération en cours a une ligne. La transition d'état d'une opération de déplacement en ligne réussie est généralement
NORMAL vers COPYING vers SUCCESS et enfin vers NORMAL.
Résumé
Aperçu de la pratique
17
Objectifs
• L'espace est automatiquement géré par le serveur Oracle Database. Il génère des alertes sur les problèmes
potentiels et recommande des solutions possibles.
– Gestion proactive de l'espace (seuils par défaut et alertes générées par le serveur)
– Récupération d'espace (rétrécissement des segments, redéfinition de table en ligne)
Avec Oracle Managed Files (OMF), vous pouvez spécifier des opérations en termes d'objets de base de données plutôt qu'en termes
de noms de fichiers. Le serveur Oracle Database peut gérer l'espace libre dans un tablespace avec des bitmaps. C'est ce qu'on
appelle un tablespace « géré localement ». De plus, l'espace libre dans les segments situés dans des tablespaces gérés localement
peut être géré à l'aide de bitmaps. C'est ce qu'on appelle la gestion automatique de l'espace des segments. L'implémentation bitmap
élimine la plupart des réglages liés à l'espace des tables, tout en offrant des performances améliorées pendant les pics de charge. De
plus, le serveur Oracle Database fournit une extension automatique des fichiers de données, de sorte que les fichiers peuvent croître
automatiquement en fonction de la quantité de données dans les fichiers.
Lorsque vous créez une base de données, la surveillance proactive de l'espace est activée par défaut (cela n'a aucun impact sur
les performances). Le serveur Oracle Database surveille l'utilisation de l'espace pendant les opérations normales d'allocation et de
désallocation d'espace et vous alerte si la disponibilité de l'espace libre tombe en dessous des seuils prédéfinis (que vous pouvez
remplacer). Des conseillers et des assistants vous assistent dans la récupération d'espace.
Pour la planification de la capacité, le serveur de base de données Oracle fournit des estimations d'espace basées sur la
structure de la table et le nombre de lignes, ainsi qu'un rapport sur les tendances de croissance basé sur l'utilisation de l'espace
historique stocké dans le référentiel de charge de travail automatique (AWR).
PCTFREE = 10
FS2
FS3
FS1
FS1
FS2
Insertions, Supprime Supprime
FS3
mises à jour
FS4
La gestion de l'espace implique la gestion de l'espace libre au niveau du bloc. Avec Automatic Segment Space
Management, chaque bloc est divisé en quatre sections, nommées FS1 (entre 0 et 25 % d'espace libre), FS2 (25 % à
50 % libre), FS3 (50 % à 75 % libre) et FS4 ( 75% à 100% gratuit).
Selon le niveau d'espace libre dans le bloc, son état est automatiquement mis à jour. De cette façon, en fonction
de la longueur d'une ligne insérée, vous pouvez savoir si un bloc particulier peut être utilisé pour satisfaire une
opération d'insertion. Notez qu'un statut "complet" signifie qu'un bloc n'est plus disponible pour les insertions.
Dans l'exemple de la diapositive, le bloc de gauche est un bloc FS3 car il a entre 50 % et 75 % d'espace libre. Après
quelques instructions d'insertion et de mise à jour, PCTFREE est atteint (la ligne pointillée) et il n'est plus possible
d'insérer de nouvelles lignes dans ce bloc. Le bloc est maintenant considéré comme un bloc « complet » ou FS1. Le bloc
est à nouveau considéré pour une insertion dès que son niveau d'espace libre descend en dessous de la section suivante.
Dans le cas précédent, il obtient le statut FS2 dès que l'espace libre est supérieur à 25%.
Remarque : Les types de données d'objet volumineux (LOB) (BLOB, CLOB, NCLOB et BFILE) n'utilisent pas le
paramètre de stockage PCTFREE. Les blocs non compressés et compressés OLTP ont une valeur PCTFREE par
défaut de 10 ; les blocs compressés de base ont une valeur PCTFREE par défaut de 0.
Dans deux cas, les données d'une ligne d'un tableau peuvent être trop volumineuses pour tenir dans un seul bloc de données.
Dans le premier cas, la ligne est trop grande pour tenir dans un bloc de données lors de sa première insertion. Dans ce cas,
le serveur Oracle Database stocke les données de la ligne dans une chaîne de blocs de données (un ou plusieurs) réservés à
ce segment. Le chaînage de lignes se produit le plus souvent avec de grandes lignes, telles que des lignes contenant une
colonne de type de données LONG ou LONG RAW. Le chaînage de lignes dans ces cas est inévitable.
Cependant, dans le second cas, une ligne qui correspondait à l'origine à un bloc de données est mise à jour de sorte
que la longueur globale de la ligne augmente et que l'espace libre du bloc soit déjà complètement rempli. Dans ce cas, le
serveur Oracle Database migre les données de la ligne entière vers un nouveau bloc de données, en supposant que la ligne
entière peut tenir dans un nouveau bloc. La base de données conserve le morceau de ligne d'origine d'une ligne migrée pour
pointer vers le nouveau bloc contenant la ligne migrée. Le ROWID d'une ligne migrée ne change pas.
Lorsqu'une ligne est chaînée ou migrée, les performances d'entrée/sortie (E/S) associées à cette ligne diminuent
car le serveur Oracle Database doit analyser plusieurs blocs de données pour récupérer les informations de la ligne.
Segment Advisor recherche les segments contenant des lignes migrées résultant d'une mise à jour.
Le serveur Oracle Database fusionne automatiquement et de manière transparente l'espace libre d'un bloc de données
lorsque :
• Une instruction INSERT ou UPDATE tente d'utiliser un bloc avec suffisamment d'espace libre pour un nouveau
morceau de rangée
• L'espace libre est fragmenté de sorte que la pièce de rang ne puisse pas être insérée dans un
partie du bloc
Après la fusion, la quantité d'espace libre est identique à la quantité avant l'opération, mais l' espace est maintenant contigu.
BMB BMB …
Étendue
Segment
L'espace libre peut être géré automatiquement à l'intérieur des segments de la base de données. L'espace libre ou utilisé dans le
segment est suivi avec des bitmaps. Pour tirer parti de cette fonctionnalité, spécifiez la gestion automatique de l'espace de segment
lorsque vous créez un tablespace géré localement. Votre spécification s'applique alors à tous les segments créés par la suite dans ce
tablespace.
Les segments de gestion automatique de l'espace ont un ensemble de blocs bitmap (BMB) décrivant l'utilisation de l'espace des blocs
de données dans ce segment. Les BMB sont organisés en arborescence. Le niveau racine de la hiérarchie, qui contient des références
à tous les BMB intermédiaires, est stocké dans l'entête de segment. Les feuilles de cette hiérarchie représentent les informations
d'espace pour un ensemble de blocs de données contigus qui appartiennent au segment. Le nombre maximum de niveaux à l'intérieur
de cette hiérarchie est de trois.
Allocation d'étendues
• Recherche dans le bitmap du fichier de données du nombre requis de blocs libres adjacents •
Avec les tablespaces gérés localement, le serveur Oracle Database recherche de l'espace libre à allouer à une nouvelle
étendue en déterminant d'abord un fichier de données candidat dans le tablespace, puis en recherchant dans le bitmap du
fichier de données le nombre requis de blocs libres adjacents. Si ce fichier de données ne dispose pas de suffisamment
d'espace libre adjacent, le serveur de base de données Oracle recherche dans un autre fichier de données.
• Avec la clause UNIFORM, la base de données crée toutes les étendues d'une taille uniforme que vous avez
spécifiée (ou d'une taille par défaut) pour tous les objets créés dans le tablespace.
• Avec la clause AUTOALLOCATE, la base de données détermine la stratégie de dimensionnement d'extension pour
tablespace.
Le serveur Oracle Database fournit un Segment Advisor qui vous aide à déterminer si un objet dispose d'espace
disponible pour la récupération en fonction du niveau de fragmentation de l'espace au sein de l'objet.
• Envisagez d'utiliser des index inutilisables pour améliorer les performances des chargements en
masse. • Les index inutilisables sont ignorés par l'optimiseur. • Lorsqu'un index inutilisable est créé,
Vous pouvez utiliser un index inutilisable pour améliorer les performances du chargement en masse.
Lorsqu'un nouvel index est créé avec l'attribut UNUSABLE, l'index est défini mais aucun segment
n'est créé. Les opérations DML n'entraînent aucune mise à jour de l'index et l'optimiseur ne l'utilise pas.
Vous pouvez également définir un index existant sur inutilisable. Lorsque vous faites cela, le segment d'index est supprimé.
Vous pouvez recréer l'index à l'aide de l'option REBUILD de l'instruction ALTER INDEX.
• Les tables temporaires contiennent des données pour la durée d'une transaction ou d'une session.
• Types de tables temporaires : – Global : la définition de table est visible pour toutes les sessions ;
le contenu est spécifique à une session.
– Privé : la définition de table n'est visible que pour la session de création. • Le
segment d'une table temporaire est alloué avec la première instruction INSERT ou CREATE TABLE AS SELECT.
table temporaire spécifique à une transaction ne peut être utilisée que par une transaction à la fois.
Envisagez d'utiliser des tables temporaires dans les applications où un jeu de résultats doit être mis en mémoire tampon
(temporairement persistant). Vous pouvez créer une table temporaire globale ou une table temporaire privée.
Une définition de table temporaire globale est visible pour toutes les sessions. Cependant, le contenu du tableau est
spécifique à une session. Les définitions de table temporaire globale sont stockées sur le disque.
Une définition de table temporaire privée n'est visible que par la session qui l'a créée. La définition de table est stockée
uniquement en mémoire.
• Créer une table temporaire globale à l'aide de CREATE GLOBAL TEMPORARY TABLE
déclaration.
• Spécifiez si la table temporaire globale s'applique à une transaction ou à une session en utilisant
la clause ON COMMIT :
– Spécifique à la transaction (par défaut) : ON COMMIT DELETE ROWS
– Spécifique à la session : ON COMMIT PRESERVE ROWS
• Exemple :
SQL> CRÉER UNE TABLE TEMPORAIRE GLOBALE trans_buff_area(date1 DATE,…)
> ON COMMIT SUPPRIMER LES LIGNES ;
Vous pouvez utiliser l'instruction CREATE GLOBAL TEMPORARY TABLE pour créer une table temporaire globale.
La clause ON COMMIT indique si les données de la table sont spécifiques à la transaction (valeur par défaut) ou
spécifiques à la session.
Si la table temporaire globale est spécifique à une transaction, la table est tronquée après chaque validation. Avec une table
temporaire globale spécifique à la session, la table est tronquée lorsque la session est terminée.
• Créer une table temporaire privée à l'aide de CREATE PRIVATE TEMPORARY TABLE
déclaration.
PRIVATE_TEMP_TABLE_PREFIX = ORA$PTT_
• Le nom de la table doit commencer par ORA$PTT_ :
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$PTT_mine (c1 DATE, … c3 NUMBER(10,2));
• Deux sessions simultanées peuvent avoir une table temporaire privée avec le même nom mais
forme différente.
• La définition et le contenu de la table temporaire privée sont automatiquement supprimés à la fin d'un
séance ou transaction.
Les tables temporaires privées sont locales à une session spécifique. Contrairement aux tables temporaires globales, la
définition et le contenu sont locaux pour la session de création uniquement et ne sont pas visibles pour les autres sessions.
automatiquement supprimée à la fin de la session qui l'a créée. C'est le comportement si la clause ON COMMIT PRESERVE
DEFINITION est définie lors de la création de la table temporaire privée.
Une table temporaire privée doit être nommée avec un préfixe 'ORA$PTT_'. Le préfixe est défini par défaut par le paramètre
d'initialisation PRIVATE_TEMP_TABLE_PREFIX, modifiable au niveau de l'instance uniquement.
La création d'une table temporaire privée ne valide pas la transaction en cours. Comme elle est locale à la session en cours,
une session simultanée peut également créer une table temporaire privée portant le même nom mais ayant une forme
différente.
Les tables temporaires privées doivent être créées dans le schéma utilisateur. La création d'une table temporaire privée
dans un autre schéma n'est pas autorisée.
direct : 10x • Compression de ligne avancée pour toutes les opérations DML : 2 à 4x
La clause TABLE_COMPRESSION n'est valide que pour les tables organisées en tas. Le motclé COMPRESS active la compression de
table. Le mot clé NOCOMPRESS désactive la compression de table. NOCOMPRESS est la valeur par défaut.
Avec la compression de base, le serveur Oracle Database compresse les données au moment de l'exécution du chargement en bloc à l'aide
d'opérations telles que les chargements directs ou CREATE TABLE AS SELECT.
Avec ROW STORE COMPRESS ADVANCED, le serveur Oracle Database compresse les données lors de toutes les opérations DML
sur la table.
Hybrid Columnar Compression est optimisé pour les applications d'entreposage de données et d'aide à la décision sur le stockage Oracle
Exadata. D'autres systèmes de stockage Oracle prennent en charge la compression en colonne hybride et offrent les mêmes économies
d'espace que sur le stockage Oracle Exadata, mais n'offrent pas le même niveau de performances de requête.