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 :

DBID d' une base oracle


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut DBID d' une base oracle
    Bonjour ,

    On sait que dans une base oracle, on a un seul DBID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select dbid from v$database ;
    J'ai remarqué que certaine base, on a deux DBID différents, apres avoir éxécuté ce script sur une base
    quelconque :
    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
     
    declare 
      v_sql varchar2(200);
      x number ;
    begin
       v_sql := 'select count(distinct dbid) from '; 
       for i in (select owner, table_name from dba_tab_columns 
                  where column_name='DBID' 
                 group by owner, table_name)
       loop
           execute immediate v_sql||i.owner||'.'||i.table_name into x; 
           if x>1 then sys.p('Deux dbid différents ..'); 
                       sys.p('Table : '||i.owner||'.'||i.table_name);
           end if;
       end loop;   
    end;
    /
    Est-ce que c'est normal ? d'ou vient l'autre DBID ?


    Merci d'avance de me répondre à ceci !

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Il manque juste votre résultat pour qu'on puisse voir clairement de quoi il s'agit.

    En passant, il faudrait remplacer "sys.p" par "dbms_output.put_line" pour que ce soit exécutable chez n'importe qui.

    Dans des tables d'historique, de type SYS.WRI$_DBU_CPU_USAGE_SAMPLE, on peut imaginer qu'on trouvera des DBID différents si celui-ci a été modifié durant la vie de la base, grâce à l'utilitaire NID.

    Avez-vous constaté aussi des DBID multiples sur des bases qui n'ont pas été créées à partir d'un modèle, mais directement à partir de la commande CREATE DATABASE ?
    Car mon hypothèse serait que la création d'une base par un modèle avec fichiers intégrés (le clonage RMAN que fait DBCA) s'accompagne d'un changement de DBID grâce à l'appel de NID. Mais c'est juste une supposition.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut DBID d'une base oracle
    Les bases concernées par ce script, ont été créé par le DBCA , et
    il n'y a eu aucune operation de changement de nom de la base et de DBID .

    Voilà le script légèrement modifié

    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
     
    declare
      v_sql varchar2(200);
      x number ;
    begin
       v_sql := 'select count(distinct dbid) from ';
       dbms_output.put_line('>>>>> Liste des tables contenant deux DBID differents <<<');
       for i in (select owner, table_name from dba_tab_columns
                  where column_name='DBID'
                 group by owner, table_name)
       loop
           execute immediate v_sql||i.owner||'.'||i.table_name into x;
           if x>1 then  dbms_output.put_line(i.owner||'.'||i.table_name);
           end if;
       end loop;
    end;
    /
    sur une base on a:


    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
     
    SYS.WRI$_DBU_CPU_USAGE_SAMPLE
    SYS.DBA_COMMON_AUDIT_TRAIL
    SYS.DBA_AUDIT_TRAIL
    SYSTEM.AUD$
     
    select distinct dbid from DBA_COMMON_AUDIT_TRAIL ;
     
          DBID
    ----------
    4043674800
    2203513037
     
    select dbid from v$database ;
     
          DBID
    ----------
    2203513037



    et sur une autre, le résultat est different :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
     
    SYS.WRH$_ACTIVE_SESSION_HISTORY
    SYS.WRI$_DBU_FEATURE_USAGE
    SYS.WRH$_SERVICE_STAT
    SYS.WRH$_LATCH_NAME
    SYS.DBA_HIST_IOSTAT_FILETYPE_NAME
    SYS.DBA_HIST_METRIC_NAME
    SYS.DBA_HIST_OSSTAT_NAME
    SYS.DBA_HIST_SQLCOMMAND_NAME
    SYS.DBA_HIST_SQL_PLAN
    DBSNMP.BSLN_BASELINES
    SYSMAN.MGMT$DB_FEATUREUSAGE
    SYS.WRH$_STAT_NAME
    SYS.WRI$_DBU_CPU_USAGE_SAMPLE
    SYS.WRH$_SERVICE_WAIT_CLASS
    SYS.DBA_FEATURE_USAGE_STATISTICS
    SYS.DBA_HIGH_WATER_MARK_STATISTICS
    SYS.DBA_HIST_LATCH_NAME
    SYS.DBA_HIST_PARAMETER_NAME
    SYS.DBA_HIST_SERVICE_NAME
    SYS.DBA_COMMON_AUDIT_TRAIL
    SYS.WRH$_TEMPFILE
    SYS.WRH$_OPTIMIZER_ENV
    SYS.WRH$_WAITSTAT
    SYS.WRH$_DB_CACHE_ADVICE
    SYS.WRH$_SERVICE_NAME
    SYS.DBA_HIST_WR_CONTROL
    SYS.DBA_AUDIT_TRAIL
    SYS.WRH$_PLAN_OPERATION_NAME
    SYS.WRH$_SQLCOMMAND_NAME
    SYS.WRM$_DATABASE_INSTANCE
    SYS.WRI$_DBU_USAGE_SAMPLE
    SYS.DBA_HIST_BASELINE_METADATA
    SYS.DBA_HIST_DATABASE_INSTANCE
    SYS.DBA_HIST_DATAFILE
    SYS.DBA_HIST_EVENT_NAME
    SYS.DBA_HIST_SEG_STAT_OBJ
    SYS.DBA_HIST_TEMPFILE
    SYS.WRH$_TABLESPACE_STAT
    SYS.WRH$_IOSTAT_FILETYPE_NAME
    SYS.WRH$_PARAMETER
    SYS.WRH$_ROWCACHE_SUMMARY
    SYS.WRH$_SQLSTAT
    SYS.WRH$_SQLTEXT
    SYS.WRH$_TOPLEVELCALL_NAME
    SYS.WRI$_DBU_HIGH_WATER_MARK
    SYS.DBA_HIST_ACTIVE_SESS_HISTORY
    SYS.DBA_HIST_PLAN_OPTION_NAME
    SYS.DBA_HIST_TOPLEVELCALL_NAME
    SYS.WRH$_SYS_TIME_MODEL
    SYS.WRH$_EVENT_NAME
    SYS.WRH$_PARAMETER_NAME
    SYS.WRH$_SQL_BIND_METADATA
    SYS.WRH$_SQL_PLAN
    SYS.WRH$_SYSSTAT
    SYS.WRH$_DATAFILE
    SYS.WRM$_BASELINE
    SYS.DBA_HIST_IOSTAT_FUNCTION_NAME
    SYS.DBA_HIST_OPTIMIZER_ENV
    SYS.WRH$_SYSTEM_EVENT
    SYS.WRH$_OSSTAT_NAME
    SYS.WRH$_SGASTAT
    SYS.DBA_HIST_SQLTEXT
    SYS.DBA_HIST_STAT_NAME
    SYS.WRM$_WR_CONTROL
    SYSTEM.AUD$
    SYS.WRH$_EVENT_HISTOGRAM
    SYS.WRH$_FILESTATXS
    SYS.WRH$_IOSTAT_FUNCTION_NAME
    SYS.WRH$_PLAN_OPTION_NAME
    SYS.WRH$_SEG_STAT
    SYS.WRH$_SEG_STAT_OBJ
    SYS.WRH$_LATCH
    SYS.WRH$_LATCH_MISSES_SUMMARY
    SYS.WRH$_METRIC_NAME
    SYS.DBA_HIST_PLAN_OPERATION_NAME
    SYS.DBA_HIST_SQL_BIND_METADATA
    SYSMAN.MGMT_DB_FEATUREUSAGE
    SYS.WRH$_OSSTAT
    par contre, sur les deux bases, on a bien à ce qu'on attendait :

    Pour ajouter, tu pourras éxécuter ce script sur une de tes bases, afin de vérifier si c'est normal ?

    Merci d'avance, d'apporter des éclaircissements sur ces résultats inattendus !

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    La création d'une base par DBCA à l'aide des fichiers intégrés au modèle effectue un clonage RMAN.
    Si on consulte le script cloneDBCreation.sql qui est utilisé, cela intègre bien un changement de DBID :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec dbms_backup_restore.zerodbid(0);
    De ce fait, il n'est pas surprenant que les bases créées de cette manière aient 2 DBID dans leur historique.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Membre confirmé
    Homme Profil pro
    xxxxxxxxx
    Inscrit en
    Avril 2015
    Messages
    392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : xxxxxxxxx

    Informations forums :
    Inscription : Avril 2015
    Messages : 392
    Points : 552
    Points
    552
    Par défaut DBID d'une base oracle
    Ok, merci pour ta réponse, je vais créer une base rapidement avec le DBCA, et à l'issue
    de l'opération, je vais rééxécuter le script de verif de DBID pour voir ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/07/2013, 07h21
  2. Migration d'une base oracle 8.i à une 8.0
    Par snold dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 16h15
  3. importer les données d'une base oracle
    Par hossni dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 07/07/2005, 16h33
  4. Outils de documentation d'une base oracle
    Par hatake.kakashi dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 03/02/2005, 08h44
  5. Tranfert de données d'une base Oracle vers PostGre
    Par Elois dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/01/2004, 18h08

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