it-swarm-eu.dev

Mohu změnit SID databáze Oracle?

Serverem je Oracle Database 11g Enterprise Edition verze 11.1.0.7.0 - 64bit

Existuje snadný a rychlý způsob, jak změnit SID testovacích databází na serveru?

Vypuštění a opětovné vytvoření databáze je pro mě možnost. Ale hledám něco, co vyžaduje méně času.

Druhá možnost přiřadit jména v klientech tnsnames.ora je náchylná k chybám, protože nejsou centrálně spravovány.

Ve srovnání s časem na vyřazení a vytvoření databáze na serveru SQL-Server je doba potřebná k vytvoření nové databáze Oracle příliš vysoká. Dále na serveru SQL můžete instance serveru SQL přejmenovat. [Obvykle přejmenujete server, na kterém je spuštěn SQL-Server, a máte nějaké problémy, dokud jej nepřejmenujete také].

18
bernd_k

Vzhledem k tomu, že nástroj dbnewid 9i (nid) lze použít ke změně názvu databáze (a DBID, pokud je to požadováno). Pokud se změní pouze název databáze, není nutné resetlogs:

  • 1 spouštěcí databáze v režimu připojení

    shutdown immediate
    startup mount
    
  • 2 run nid pro změnu názvu databáze:

    nid target=sys/[email protected] dbname=newname setname=YES
    
  • 3 vypnutí a spuštění databáze v režimu připojení:

    shutdown immediate
    startup mount
    
  • 4 změna db_name v spfile (nebo při úpravě souboru):

    alter system set db_name=newname scope=spfile;
    
  • 5 znovu vytvořit soubor hesel:

    orapwd file=orapwnewname password=syspassword
    
  • 6 spuštění databáze

    startup
    
  • 7 kroků přejmenování:

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

Musíte znovu vytvořit kontrolní soubor

Tento příspěvek od Kaunain Ahmed popisuje nezbytné kroky:

  1. do: změnit kontrolní soubor zálohy databáze na trasování;
  2. extrahujte příkaz „create controlfile“ z trasovacího souboru výpisu pozadí.
  3. vypněte DB.
  4. Změňte název DB ve vašem init.ora a změňte init.ora
  5. Změňte SID v/etc/oratab nebo/var/opt/Oracle/oratab
  6. Změňte SID ve vašem prostředí a zdroj
  7. Spusťte databázi a připojte spouštěcí připojení
  8. Znovu vytvořte kontrolní soubor s příkazem z pozice 2.
  9. Proveďte změnu databáze přejmenování global_name na 10. Změňte konfiguraci TNS odpovídajícím způsobem $ Oracle_HOME/network/admin/*. Nebo hledejte SID a GLOBAL_NAME

V podprocesu jsou uvedeny další nástroje.

Zde je příspěvek od AskTom, který proces podrobněji odkazuje. I když je to 10 g, mělo by to stále fungovat.

17

Ano, můžete a je to také docela snadné.

V Oracle je Oracle_SID pouze název instance Oracle a nemá příliš společného s DBNAME. Databázi s názvem PROD lze obsluhovat pomocí instancí s libovolným platným názvem. Neexistuje žádné přímé spojení mezi SID a DBNAME. Toto spojení je vytvořeno pomocí parametrů.

Soubor parametrů je identifikován jako init $ {Oracle_SID} .ora nebo spfile $ {Oracle_SID} .ora V souboru parametrů je parametr db_name. Zde se vytvoří spojení mezi instancí Oracle a databází.

Nemusíte tedy znovu vytvářet kontrolní soubor, nemusíte používat nid, stačí se ujistit, že parametrový soubor má správné jméno, zrušit starou instanci Oracle a spustit novou instanci Oracle poté, co jste nastavili Oracle_SID na nový název instance Oracle. Soubor parametrů a soubor hesel jsou nalezeny pomocí $ {Oracle_SID} jako části jejich jména.

Opětovné vytvoření ovládacího souboru je nutné pouze tehdy, když se musí změnit DBNAME. nid je potřeba po operaci klonování, kde musíte změnit DBID, abyste zabránili nehodám, které by mohly poškodit zálohy zdrojové databáze.

9
ik_zelf