it-swarm.asia

Bisakah saya mengubah SID dari database Oracle?

Server adalah Oracle Database 11g Edisi Perusahaan Rilis 11.1.0.7.0 - 64bit

Apakah ada cara mudah & cepat untuk mengubah SID dari database pengujian di server?

Menjatuhkan & membuat ulang basis data adalah pilihan bagi saya. Tetapi saya sedang mencari sesuatu yang membutuhkan waktu lebih sedikit.

Opsi lain untuk menetapkan nama di klien tnsnames.ora rentan terhadap kesalahan, karena mereka tidak diadministrasikan secara terpusat.

Dibandingkan dengan waktu untuk drop & membuat database pada SQL-Server, jumlah waktu yang dibutuhkan untuk membuat database Oracle baru jauh lebih besar. Selanjutnya pada SQL-Server Anda dapat mengubah nama instance SQL-Server. [Biasanya Anda mengganti nama server tempat SQL-Server berjalan dan memiliki beberapa masalah hingga Anda mengubah nama server juga].

18
bernd_k

Karena 9i dbnewid utility (nid) dapat digunakan untuk mengubah nama basis data (dan DBID jika diperlukan). Jika nama database diubah hanya maka resetlog tidak diperlukan:

  • 1 startup database dalam mode mount

    shutdown immediate
    startup mount
    
  • 2 jalankan nid untuk mengubah nama basis data:

    nid target=sys/[email protected] dbname=newname setname=YES
    
  • 3 shutdown dan mulai database dalam mode mount:

    shutdown immediate
    startup mount
    
  • 4 ubah db_name dalam spfile (atau dalam pfile mengedit file):

    alter system set db_name=newname scope=spfile;
    
  • 5 membuat ulang file kata sandi:

    orapwd file=orapwnewname password=syspassword
    
  • 6 mulai database

    startup
    
  • 7 pos ganti nama langkah:

    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

Anda harus membuat ulang file kontrol

Ini pos oleh Kaunain Ahmed menjelaskan langkah-langkah yang diperlukan:

  1. lakukan: ubah file kontrol backup database untuk dilacak;
  2. ekstrak perintah "create controlfile" dari background-dump-destination tracefile.
  3. mematikan DB.
  4. Ubah Nama-DB di init.ora Anda dan ubah init.ora
  5. Ubah SID di/etc/oratab atau/var/opt/Oracle/oratab
  6. Ubah SID di lingkungan Anda dan sumberkan
  7. Memulai database ke mount startup status-mount
  8. Buat kembali file kontrol dengan pernyataan dari posisi 2.
  9. Lakukan perubahan database, ganti nama global_name menjadi 10. Ubah TNS-Configuration sesuai $ Oracle_HOME/network/admin/*. Ora Cari SID dan GLOBAL_NAME

Ada alat lain yang dirujuk di utas.

Inilah posting oleh AskTom yang mereferensikan proses lebih terinci. Meskipun untuk 10g, masih harus bekerja.

17

Ya, Anda bisa dan itu juga cukup mudah.

Di Oracle, Oracle_SID hanyalah nama untuk Oracle Instance dan tidak terlalu terkait dengan DBNAME. Database dengan nama PROD, dapat disajikan menggunakan Instance dengan nama yang valid. Tidak ada koneksi langsung antara SID dan DBNAME. Koneksi ini dibuat menggunakan parameter.

File parameter diidentifikasi sebagai init $ {Oracle_SID} .ora atau spfile $ {Oracle_SID} .ora Dalam file parameter adalah parameter db_name. Di sinilah koneksi antara Oracle Instance dan database dibuat.

Jadi, Anda tidak perlu membuat ulang file kontrol, Anda tidak perlu menggunakan nid, pastikan saja parameterfile Anda memiliki nama yang tepat, turunkan Oracle Instance lama dan mulai Instance Oracle baru setelah menetapkan Oracle_SID ke nama Oracle Instance baru. Parameterfile dan file kata sandi keduanya ditemukan menggunakan $ {Oracle_SID} sebagai bagian dari namanya.

Menciptakan kembali file kontrol hanya diperlukan saat DBNAME harus berubah. nid diperlukan setelah operasi klon di mana Anda perlu mengubah DBID untuk mencegah kecelakaan yang dapat merusak cadangan dari basis data sumber.

9
ik_zelf