![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
|
DBA Les n commandements du DBA
C’est la moindre de choses. Alert.log contient des informations capitales. Si toute ma vie j’avais fait ceci, j’aurai été prévenu longtemps en avance de bien de petites catastrophes. Que fait en premier le DBA le matin ? Il lave ses dents :-), et ensuite il scrute ses logs.
Il est possible de reconstituer un fichier de contrôle, mais c’est bête de le faire si on ne l’a pas perdu ;-). Garde-fous, la seule manière d’augmenter les paramètres MAX… est de le recréer. Donc, soyez voluptueux avec ceux-ci, et vous serez heureux de ne pas devoir reconstituer ces fichiers, d’autant que leur multiplexage est facile et ils ne sont pas gros. Radu recommande trois fichiers de contrôle.
Pour prévenir les pertes intempestives (elles sont toujours intempestives, les pertes ;-) des fichiers redo log, multiplexons-les ! Et pas n’importe comment, sur des cartes contrôleur différentes, ne faites pas le multiplexage sur deux partitions du même disque !
Les tablespaces de type 'management local' sont très intéressantes parce qu’elle réduisent la fragmentation et la population des tables fet$ et uet$. Satellitement, lisez la théorie sur les trois tailles de base des extents dans une base Oracle !
create tablespace jobs_tbs datafile 'M:\db\ulib\jobs_tbs.DBF' size 300M reuse extent management local uniform size 160k;
Dans presque vingt pour cent des cas d'optimisation SQL de ma vie, le simple fait d'analyser les tables non système participantes à une requête très longue à amélioré dramatiquement les performances. Pour rappel, analysez vos tables après une modification importante en volumétrie. Vous aiderez l'optimiseur CBO.
Ces scripts contiennent une véritable mine d’or d’informations pour les gens curieux. Pendant des années c’était la seule source fiable de documentation pour les packages ORACLE (Les headers de toutes les procédures et fonctions Oracle, même celles cryptées sont lisibles. Des bonnes âmes de chez Oracle ont commenté d’une manière très opulente ces packages, procédures et fonctions. Donc donnez-vous à cœur joie aux recherches dans ce répertoire magique !
La répartition des différents types de fichiers sur disques.
http://www.tafora.fr/wp/oracleraid.doc.html
En effet, en mode Archivelog, ces fichiers sont accédés simultanément, d’ou une contention des accès aux ressources. Au pire, mélanger un redo log avec le multiplex d’un autre.
Ceci va diminuer la contention entre les sources de travail de LGWR et ARCH .
Ceci diminue d’une manière imperceptible les contentions, il s’agit plutôt d’une règle d’élémentaire précaution qui empêche la perte de tous les membres si le disque unique ou ils résident est perdu.
Il s’agit plutôt d’une latence entre la fin de l’accès aux index et l’accès aux tables associés. Au pire, mélanger des tables avec des index des autres tables
En effet, comme ORACLE alloue aux transactions des RBS d’une manière quasi circulaire (segments pris dans l’ordre stipulée dans init.ora), statistiquement nous diminuons ainsi les contentions disque.
Le deuxième effet de ce choix est évident quand vous perdrez un tablespace RBS. Mieux vaut avoir un deuxième sous le coude pour le procès de restauration.
Comme l’export utilisent les algorithmes ORACLE (lecture), il semblerait que cette règle n’est pas nécessaire, mais pensons aux options CONSISTENT=Y qui provoque des écritures massives dans des RBS si activité soutenue sur la base.
Quelques règles de gestionCommentez votre code (R1) Personne n’est parfait. Il y une seule chose qui est pire que comprendre le code que quelqu’un a écrit : comprendre son propre code quelques mois plus tard, donc commentez vos scripts. Il n’est pas indispensable celui qui ne commente pas son code ;-) Il est suicidaire.
Ayez vos scriptsAyez sous le coude quelques scripts qui sauvent:
Instances fonctionnelles ? (F1) Vérifier que les instances censées de tourner tournent. Un simple script SQL suffit, mais un script de prise de mesures est mieux. L’automatisme de cette action représente un plus.
Alert.log(F2) Vérifier alert.log correspondant à chaque instance. Rechercher au moins les ORA-. Alert.log est situé dans le répertoire background_dump_dest spécifié dans init.ora ou dans spfile.ora (répercuté en v$parameter).
Taile des fichiers Log(F3) Pensez à réduire les tailles des fichiers log qui tendent de devenir monstrueuses. Utilisez un script quotidien pour vérifier que leurs tailles ou leur nombre ne depasse une limite (pistée au pif ;-)).
Pensez à arrêter le traçage du listener pendant l'opération de purge du listener.log Backups (F4) Vérifier que les backups et/ou exports se sont bien déroulés.
Bandes(F5) Vérifier que ce qui est censé d’être copié sur bande l’est.
Vérifier les ressourcesEspace libre (free space) (F6) pour chaque instance, vérifier que l’espace libre est suffisant pour les croissances régulières _et_ pour les croissances exceptionnelles. La vérification de l’espace libre doit tenir compte des tablespaces autoextensibles et fichiers temporaires. Vérifier donc l’espace libre vu par le système.
Rollback segments (F7) Leur status doit être ONLINE à l’exception du ROLLBACK_BIG (vous savez à quoi je me refere). Il est de bon ton de mesurer les activités dans les RBS pour mieux calculer leurs tailles (V$ROLLSTAT).
Segments (F8) Cherchez les segments dans les tablespaces ‘normaux’ (dictionary managed) qui ont trop d’extents, pour éviter les gestions coûteuses de FET$ et UET$. Regardez si le mot clé UNLIMITED est toujours nécessaire dans la storage clause des segments.
Identifier l’explosion suivante (F9) Rendu vétuste (mais pas obsolète) par maxextents unlimited du tablespace ET segments, la recherché des segments qui ne pourront pas recevoir un extent next par manqué d’espace (TABLESPACE) est nécessaire.
Contentions (G1) Vérifier les contentions CPU, mémoire, disques, réseau.
Standby database (data guard)(G2) Si vous avez implémenté la standby, vérifiez son bon fonctionnement. Si les redo logs sont appliqués manuellement, appliquez les ! Si le mécanisme est automatisé, vérifiez son bon déroulement.
Réplication(G3) Si vous avez implémenté la réplication, pensez à la vérifier. Pensez à fliquer les jobs Oracle et à vérifier que les tables répliquées le sont toujours (comparaison de leurs contenu, etc.).
Stats
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||