2009-12-13

Cum creezi o baza standby pentru o baza de date Oracle primara

English translate

Ok... ai o baza de date Oracle ( 9i sau 10G ) si vrei, pentru o mai mare siguranta, sa te protejezi impotriva unor caderi neasteptate a site-ului primar ( curent, storage , anumite tipuri de coruperi, stergeri accidentale de date ... )

Presupun ca ai rezolvat problema cu licentierea ( standby-ul trebuie licentiat cu acelasi tip de licente - named user sau processor license - ca si site-ul primar .

Urmeaza partea cea mai distractiva si cea mai simpla : crearea efectiva  a bazei de standby.



Pasii sunt simpli :
  • instalezi aceeasi versiune de binare in site-ul de DR ( sau serverul de standby ) 
  • muti backup-ul primarei in site-ul de DR ( prin backup cold, hot sau  rman )
  • copii fisierul de parole ( orapw* )  de pe primara. Atentie: daca se modifica parola userului sys sau se altereaza fisierul de parole, acesta trebuie recopiat in DR .
  • in DR, adaptezi fisierul de init ( locatii de udump, bdump, cdump, adump, sga  ) -- elimini chestiile legate de audit ( sau daca il vrei setat, nu il pui la nivel de DB )
  • in DR, setezi : standby_file_management='AUTO' .
  • treci primara in force logging ( alter database force logging ; ) ( recomandat )
  • pe primara creezi un standby controlfile ( CF ) : alter database create standby controlfile as 'xxx';
  • copii standby CF-ul creat mai sus in site-ul de DR ( in locatia data de variabila control_files , din pfile-ul sau spfile-ul din dr )
  • pornesti baza in startup mount ( sau daca esti pe 9i : startup nomount , alter database mount standby database ) . In 10G, daca ai pornit instanta cu un standby controlfile e suficient un startup mount ( isi da seama singur ce tip de controlfile e si nu da eroare comanda de mount ).
  • pe primara : creezi o inregistrare in tnsnames.ora pentru service name-ul bazei din DR (exemplu de connection string SERVICEDR )
  • tot pe primara, setezi arhivarea remote a archive log-urilor : alter system set log_archive_dest_2='SERVICE=SERVICEDR delay=60 reopen=100 optional ' --> setezi ca arhivarea logurilor sa se faca in plus si catre locatia remote ( specificata de serviciul servicedr ) . delay-ul ( intervalul de timp cu care baza din dr este in urma , in mod intentionat fata de primara,  este de 60 de minute ) .
  • treci baza din DR in modul de recover managed : alter database recover managed standby database disconnect from session
  • te uiti in alert log-ul din DR, iar in eventualitatea unor gap-uri ( arhive care nu s-au trimis in DR ) , le restaurezi pe primara si ele se vor trimite si aplica automat in DR .
  • that's all !
Chestii mai avansate , gen Oracle data guard broker si stergerea automata arhivelor, in posturile viitoare.

    Niciun comentariu:

    Trimiteți un comentariu