IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

[8i] Rollback segment init.ora


Sujet :

Administration Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut [8i] Rollback segment init.ora
    Bonjour,

    Voici une question que je souhaiterais soumettre à votre sagacité.

    Sur un serveur windows j'ai une base 8i, le fichier d'initialisation initMOBP.ora se trouve dans le répertoire $ORACLE_HOME/database :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    db_name = "MOBILITE"
    instance_name = MOBP
    service_names = MOBILITE
    db_files = 1024  # INITIAL
    control_files = ("D:\oradatD11\MOBP\ctl1_MOBILITE.dbf", "D:\oradatD11\MOBP\ctl2_MOBILITE.dbf")
    open_cursors = 300
    max_enabled_roles = 30
    db_file_multiblock_read_count = 8  # INITIAL
    db_block_buffers = 9600  # INITIAL
    shared_pool_size = 167772160  # INITIAL 134217728 modifie le 26_10_08large_pool_size = 20971520
    java_pool_size = 20971520
    log_checkpoint_interval = 100000
    log_checkpoint_timeout = 1800
    processes = 150  # INITIAL
    parallel_max_servers = 5  # SMALL
    log_buffer = 1048576  # INITIAL
    max_dump_file_size = 10240  # limit trace file size to 5M each
    log_archive_start = true
    log_archive_dest = D:\oradatD21\oraarc\MOBP
    log_archive_format = arc%S_MOBP.ARC
    rollback_segments = ( RBS0, RBS1, RBS2, RBS3 )
    global_names = false
    oracle_trace_collection_name = ""
    background_dump_dest = D:\oradatD21\oratrace\MOBP\bdump
    user_dump_dest = D:\oradatD21\oratrace\MOBP\udump
    db_block_size = 8192
    os_authent_prefix = ""
    job_queue_processes = 1
    job_queue_interval = 60
    open_links = 4
    distributed_transactions = 500
    compatible = 8.1.0
    sort_area_size = 65536
    sort_area_retained_size = 65536
    nls_language = FRENCH
    nls_territory = FRANCE
    nls_date_language = FRENCH
    nls_date_format = DD/MM/RR
    utl_file_dir=D:\mobilite\transfert
    Le problème est le suivant, lorsque j'interroge la vue v$rollstat j'observe 7 RBS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    NAME                                                   STATUS
    ---------------------------------------- --------
    SYSTEM                                                ONLINE
    RBS0                                                    ONLINE
    RBS1                                                    ONLINE
    RBS2                                                    ONLINE
    RBS3                                                    ONLINE
    RBS4                                                    ONLINE
    RBS5                                                    ONLINE
    RBS6                                                    ONLINE
    Il est vrai qu'un RBS aurait pu être créé sans avoir été positionné dans le fichier d'initialisation mais ce n'est pas le cas car ce week end j'ai fait un arrêt/relance de la base afin d'augmenter un peu la shared_pool.

    Or non seulement la shared_pool a bien été augmentée (c'est bien le fichier initMOBP.ora qui est pris lors du startup) mais je retrouve mes 7 RBS en ligne ...

    J'avoue que je reste perplexe

    Des suggestions ?

    Cdt,
    A.Personnat

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show parameter rollback_segments
    donne quoi ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    La requête confirme bien la lecture du fichier d'initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    13:48:09 SQL> SHOW parameter rollback_segments
     
    NAME                                 TYPE                           VALUE
    ------------------------------------ ------------------------------ ------------------------------
    max_rollback_segments                integer                        37
    rollback_segments                    string                         RBS0, RBS1, RBS2, RBS3
    Curieux non ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    mais tu les as droppé les RBS inutiles ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Absolument pas et c'est ce que je n'explique pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    14:50:38 SQL> SELECT  a.name,
    14:51:04   2    b.status
    14:51:04   3  FROM  v$rollname a,
    14:51:04   4    v$rollstat b
    14:51:04   5  WHERE  a.usn = b.usn
    14:51:04   6  /
     
    NAME                                                    STATUS
    ------------------------------------------------------- ---------------
    SYSTEM                                                  ONLINE
    RBS0                                                    ONLINE
    RBS1                                                    ONLINE
    RBS2                                                    ONLINE
    RBS3                                                    ONLINE
    RBS4                                                    ONLINE
    RBS5                                                    ONLINE
    RBS6                                                    ONLINE
     
    8 ligne(s) sélectionnée(s).
    Je ne devrais avoir en théorie que les RBS déclarés dans le fichier d'initialisation (RBS0, RBS1, RBS2 et RBS3) et j'ai en fait ces trois RBS en plus RBS4, RBS5 et RBS6.

    Si vous avez une idée, je suis preneur ;-)

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    A mon avis, si les RBS ne sont pas supprimés, ils n'ont pas besoin d'être déclaré pour être online... ils ne sont probablement pas utilisé pour le rollback mais sont démarrés.

    D'ailleurs, de souvenir tu peux modifier les RBS utilisés par une session, ça parait donc tout à fait logique de ne déclarer qu'une partie des RBS tout en démarrant les autres pour les utiliser via la commande ad hoc

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    humm je ne suis pas convaincu, j'ai fait un test sur une 8i en créant un RBS_TEST à l'identique des autres mais sans le déclarer dans l'init.ora

    Au reboot de l'instance ce dernier n'est pas mis en ligne ce qui me parait normal.

    En 9i oui je suis d'accord tu laisses Oracle gérer mais en 8i j'ai un gros doute ..

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    essaye de le mettre dans le init.ora, tu redémarres, tu le supprimes et tu redémarres encore... en principe il sera ONLINE. De toute façon faut bien les supprimer les RBS

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Je n'ai pas la possibilité de redémarrer cette instance à loisir mais en fait je cherche surtout l'explication de ce 'dysfonctionnement'

  10. #10
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    tu peut lancer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT segment_name, segment_type, tablespace_name
         FROM sys.dba_segments
    WHERE segment_type = 'DEFERRED ROLLBACK';
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT segment_name, tablespace_name, owner
           FROM sys.dba_rollback_segs;

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Voici le résultat de ces requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    16:57:36 SQL> SELECT segment_name, segment_type, tablespace_name
    16:57:37   2       FROM sys.dba_segments
    16:57:37   3  WHERE segment_type = 'DEFERRED ROLLBACK';
     
    aucune ligne sélectionnée
     
    16:57:39 SQL> SELECT segment_name, tablespace_name, owner
    16:57:47   2         FROM sys.dba_rollback_segs;
     
    SEGMENT_NAME                             TABLESPACE_NAME                OWNER
    ---------------------------------------- ------------------------------ ------
    SYSTEM                                   SYSTEM                         SYS
    RBS0                                     RBS                            PUBLIC
    RBS1                                     RBS                            PUBLIC
    RBS2                                     RBS                            PUBLIC
    RBS3                                     RBS                            PUBLIC
    RBS4                                     RBS                            PUBLIC
    RBS5                                     RBS                            PUBLIC
    RBS6                                     RBS                            PUBLIC
     
    8 ligne(s) sélectionnée(s).
     
    16:57:47 SQL>

  12. #12
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Est ce que le parametre caché "_OFFLINE_ROLLBACK_SEGMENTS" contient quelque chose ?

    tu peut utiliser cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT  c.ksppstvl "Instance Value"
    	         FROM x$ksppi a, x$ksppsv c
    	        WHERE a.indx = c.indx
    	          AND a.ksppinm = '_offline_rollback_segments';

  13. #13
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    à exécuter en tant que sysdba si je ne m'abuse

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Cette requête ne retourne aucune donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SQL> SELECT  c.ksppstvl "Instance Value"
      2  FROM x$ksppi a, x$ksppsv c
      3  WHERE a.indx = c.indx
      4  AND a.ksppinm = '_offline_rollback_segments';
     
    Instance Value
    -------------------------------------------------------------
     
     
     
    SQL>

  15. #15
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Comment tu a supprimé rbs4, rbs5, rbs6 et rbs7 ?

    Je pense que ces rollbacks sont toujours actives et ils sont dans le tablespace RBS. Le fait de les enlevés dans le fichier parametres ça ne change rien.
    Il faut faire un vrai Drop.

    EDIT

    Peut être, il faut qu'Oracle fait le tour sur ces rollbacks pour qu'il prend en compte celui du paramètre d'initialisation.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Je n'ai pas supprimé ces RBS, je reprends cette base dans l'état et je suis devant cet état de fait.

    Ceci étant je n'ai toujours pas compris ce qui s'était passé

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Je fais remonter ce topic car je rencontre un problème similaire au tien. Moi aussi, j'ai des rollback segments non renseigné dans le fichier init mais en plus j'ai l'impression que ceux ci remplissent une partie de leurs rôles mais qu'ils ne se vident pas!!!

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/12/2012, 14h56
  2. Réponses: 10
    Dernier message: 21/12/2006, 10h55
  3. Réponses: 4
    Dernier message: 17/01/2006, 18h56
  4. Les Rollback Segments
    Par blids dans le forum Administration
    Réponses: 20
    Dernier message: 18/05/2004, 19h22
  5. remise à jour des rollback segment par oracle
    Par juin29 dans le forum Administration
    Réponses: 9
    Dernier message: 23/04/2004, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo