Welcome to Sign in | Help

Re: Mutare fisiere ale bazei de date

  •  11-06-2009, 11:51 PM

    Re: Mutare fisiere ale bazei de date

    claudiu3001:
    Fisierul contine o partitie a unei tabele partitionate. Se presupune ca fisierul contine date vechi, filegroup-ul fiind read only.


    Daca e un filegroup separat si read-only poti face la modul urmator:
    1) copieaza fiesierul in noua locatie
    2) ruleaza ALTER DATABASE dbname MODIFY FILE (name=numelogic, filename='nouacale'). Asta va schimba informatia unde este NDF-ul pe disc, dar doar in catalog, baza de date va ramine online si neschimbata.
    3) ALTER DATABASE dbname MODIFY FILE (name=numelogic, OFFLINE);. Asta va pune filegroup-ul offline, dar restul bazei de date va ramine online.
    4) RESTORE DATABASE dbname FILEGROUP='numefilegroup' WITH RECOVERY; Asta i-tzi va pune filegroup-ul innapoi online.
    5) sterge vechiul fisier.

    Baza de date nu va fi offline, dar la pasul 4 va avea nevoie de access exclusiv pentru un foarte scurt moemnt, in care toti ceilalti user trebuie deconectati de la baza de date. Intre pasul 3 si 4 partitia care e pe acel filegroup offline nu va putea fi accesata. Asta e o metoda relativ simpla cu timp mic de downtime.

    Daca vrei absolut 0 downtime e mai complicat:

    1) creaza un nou filegroup pe noul disc.
    2) creaza in noul filegroup o tabela absolut identica ca structura cu tabela veche (inclusiv indecsi, si check constraints)
    3) copiaza datele din partitia veche a tabelei in tabela de pe noul filegroup
    4) Fa ALTER TABLE ... SWITCH PARTITION ca sa faci 'switch' intre partitia veche si tabela din noul filegroup, care devine astfel parte a tabelei original.
    5) Fa drop la filegroup-ul vechi.

    Methoda asta e mai complicata si depinde de cum ai facut alinierea indecsilor. Daca ai incurcat indecsii, nu o sa poti face pasul 4) de switch, contacteza un specialist ca sa te ajute.
    http://rusanu.com
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems