Domanda

Il server è Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit

C'è un modo semplice e veloce per modificare i SID dei database di test sul server?

& Dropping ricreando del database è un'opzione per me. Ma io sto cercando qualcosa che richiede meno tempo.

L'altra opzione per i nomi assegnare dei clienti tnsnames.ora è soggetto a errori, perché non sono amministrati centralmente.

In confronto con il tempo di cadere e creare un database in SQL-Server, la quantità di tempo necessario per creare un nuovo database Oracle è eccessivamente grande. Più avanti SQL-Server è possibile rinominare istanze di SQL-Server. [Di solito si rinominare il server in cui SQL-Server è in esecuzione e avere qualche problema fino a quando si rinomina il server troppo].

È stato utile?

Soluzione

Dal 9i utilità dbnewid (NID) può essere utilizzato per cambiare il nome del database (E DBID se necessario). Se il nome del database viene modificato solo allora RESETLOGS non è necessaria:

  • 1 database di avvio in modalità mount

    shutdown immediate
    startup mount
    
  • 2 run nid al cambio di nome del database:

    nid target=sys/syspassword@dbtns dbname=newname setname=YES
    
  • 3 arresto e iniziare a database in modalità di montaggio:

    shutdown immediate
    startup mount
    
  • 4 cambiamento db_name in spfile (o in pfile modificando il file):

    alter system set db_name=newname scope=spfile;
    
  • file delle password 5 Ricrea:

    orapwd file=orapwnewname password=syspassword
    
  • 6 di avvio del database

    startup
    
  • 7 passi pubblicare Rinomina:

    change SID in listener.ora
    correct tnsnames.ora
    remove old trace directories
    change /etc/oratab (UNIX) or rename windows service using oradim
    

Altri suggerimenti

È necessario ricreare il file di controllo

messaggio da Kaunain Ahmed descrive i passi necessari:

  1. fare: Alter control, backup del database alla traccia;
  2. estrarre il comando "creare control" dal background-discarica-destinazione tracefile.
  3. spegnere il DB.
  4. Modificare il DB-nome nella init.ora e cambiare il init.ora
  5. Cambia il SID nel file / etc / oratab o / var / opt / oracle / oratab
  6. Cambia il SID nel proprio ambiente e la fonte è
  7. Avvio del database per montare-status startup mount
  8. ricreare il control con l'istruzione dalla posizione 2.
  9. un alter global_name banca dati Rinomina per 10.Modificare il TNS-configurazione di conseguenza $ ORACLE_HOME / network / admin / *. Ora Cercare SID e global_name

Ci sono altri strumenti di cui si fa riferimento nel thread.

Ecco un inviare da AskTom che fa riferimento al processo in modo più dettagliato. Mentre è di 10g, si deve ancora lavorare.

Sì, è possibile ed è abbastanza facile anche.

In Oracle, l'ORACLE_SID è solo il nome per l'istanza Oracle e non ha molto a che fare con la DBNAME. Un database con il nome PROD, può essere servita utilizzando istanze con qualsiasi nome valido. Non v'è alcun collegamento diretto tra il SID e il DBNAME. Questo collegamento viene effettuato utilizzando i parametri.

Il file dei parametri è identificato come init $ {ORACLE_SID} .ora o SPFILE $ {ORACLE_SID} .ora nel file dei parametri è il parametro db_name. Questo è dove viene fatto il collegamento tra l'istanza Oracle e il database.

Quindi, non c'è bisogno di ri-creare una control, non è necessario per l'uso nid, basta assicurarsi che il vostro parameterfile ha il nome giusto, abbattere la vecchia istanza Oracle e iniziare la nuova istanza Oracle dopo aver impostato ORACLE_SID per il nuovo nome istanza Oracle. Il parameterfile e il file delle password sono entrambi trovati usando i $ {ORACLE_SID} come parte del loro nome.

Ricreare il control è necessaria solo quando il DBNAME deve cambiare. nid è necessario dopo un'operazione di clonazione in cui è necessario cambiare il DBID per prevenire incidenti che potrebbero danneggiare i backup del database di origine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top