Welcome to Sign in | Help
in Search

Baza in RESTORING state

Last post 08-17-2009, 8:12 PM by igor. 5 replies.
Sort Posts: Previous Next
  •  08-17-2009, 6:49 PM 7506

    Baza in RESTORING state

    Am 2 baze de date identice pe servere diferite.
    Fiecare baza are pe linga 8 filegroupuri rw si 3 filegroups readonly.

    Pe 1-ml server a facut partitionarea unui tabel- l-am scos din grupul Primary si l-am distribuit
    in 5 grupuri logice (filegroups), fiecare dintre care are cite un fisier fizic. 
    Nu mi-a placut cum s-a primit si am hotarit sa aduc aceasta baza la situatia inainte pe partitionare
    in felul urmator:
    Am facut backup-ul filegroupurilor rw a bazei de pe serverul 2
    dupa care acest backup l-am restabilit pe serverlul 1 astfel:

    RESTORE DATABASE [BAza]
    FILEGROUP = N'Primary',
    FILEGROUP = N'FG1',
    FILEGROUP = N'FG2',
    FILEGROUP = N'FG3',
    FILEGROUP = N'FG4',
    FILEGROUP = N'FG5',
    FILEGROUP = N'FG6',
    FILEGROUP = N'FG7'
    FROM  DISK = N'D:\BAK\BAza_backup_rw.bk' WITH
    MOVE N'file1' TO N'G:\BAza\file1.mdf', 
    MOVE N'file2' TO N'G:\BAza\file2.ndf', 
    MOVE N'file3' TO N'G:\BAza\file3.ndf', 
    MOVE N'file4' TO N'G:\BAza\file4.ndf', 
    MOVE N'file5' TO N'G:\BAza\file5.ndf', 
    MOVE N'file6' TO N'G:\BAza\file6.ndf', 
    MOVE N'file7' TO N'G:\BAza\file7.ndf', 
    MOVE N'file8' TO N'G:\BAza\file8.ndf', 
    MOVE N'Baza_log' TO N'G:\BAza\BAza_log.ldf', 
    NORECOVERY, STATS = 10, REPLACE
    GO

    ..
    RESTORE DATABASE ... FILE=<name> successfully.

    -------------------------------------------------
    RESTORE DATABASE [Baza] WITH RECOVERY

    GO

    Msg 4333, Level 16, State 6, Line 2
    The database cannot be recovered because the log was not restored.
    Msg 3013, Level 16, State 1, Line 2
    RESTORE DATABASE is terminating abnormally.
    --------------------------------------------------

        SELECT name, state_desc, recovery_model_desc
            FROM sys.databases where database_id = DB_ID('BAza')
        go

            name    state_desc      recovery_model_desc
            -------------------------------------------
            BAza    RESTORING    FULL
    ==============

    Cum as putea aduce baza in starea ONLINE?
    Daca e posibil, sa-mi spuna cineva ce n-am facut
    cum trebuie de am ajuns la o asa situatie?


    Sa fie oare mesajul [The database cannot be recovered because the log was not restored]
    din cauza partitionarii tabelului si aparitiei a 5 filegroupuri noi in baza pe pe serverul 1?


  •  08-17-2009, 7:10 PM 7507 in reply to 7506

    Re: Baza in RESTORING state

    Backup-uri de log exista?
  •  08-17-2009, 7:26 PM 7508 in reply to 7507

    Re: Baza in RESTORING state

    Backupuri de log exista, dar nu cred ca acesta ar fi remediul.
    Backapul BAza_backup_rw.bk pe care incerc sa-l restabilesc este suficient
    pentru a aduce baza in stare consistenta in cazul in care structurile bazelor
    de pe ambele servere ar fi aceliasi! Am procedat astfel nu o singura data si totul a decurs ok.

  •  08-17-2009, 7:33 PM 7509 in reply to 7506

    Re: Baza in RESTORING state

    Dacă vrei să restaurezi toate filegroup-urile, atunci nu mai preciza clauza FILEGROUP la comanda RESTORE. Dacă vrei să restaurezi numai unele filegroup-uri, trebuie să restaurezi şi transaction log-ul (după cum zice mesajul de eroare).

    Răzvan
  •  08-17-2009, 7:51 PM 7511 in reply to 7509

    Re: Baza in RESTORING state

    Vreu sa restabilesc doar filegroupurile read/write, atit!
    Acum incerc sa restabilesc aceste filegroupuri cu clauza PARTIAL.
    Am mari banuieli ca am incurcat itele creind filegroupuri noi

  •  08-17-2009, 8:12 PM 7513 in reply to 7509

    Re: Baza in RESTORING state

    RESTORE DATABASE [BAza]
    FILEGROUP = N'Primary',
    FILEGROUP = N'FG1',
    FILEGROUP = N'FG2',
    FILEGROUP = N'FG3',
    FILEGROUP = N'FG4',
    FILEGROUP = N'FG5',
    FILEGROUP = N'FG6',
    FILEGROUP = N'FG7'
    FROM  DISK = N'D:\BAK\BAza_backup_rw.bk' WITH
    MOVE N'file1' TO N'G:\BAza\file1.mdf',  
    MOVE N'file2' TO N'G:\BAza\file2.mdf',  
    MOVE N'file3' TO N'G:\BAza\file3.mdf',  
    MOVE N'file4' TO N'G:\BAza\file4.ndf',  
    MOVE N'file5' TO N'G:\BAza\file5.ndf',  
    MOVE N'file6' TO N'G:\BAza\file6.ndf',  
    MOVE N'file7' TO N'G:\BAza\file7.ndf',  
    MOVE N'file8' TO N'G:\BAza\file8.ndf',  
    MOVE N'Baza_log' TO N'G:\BAza\BAza_log.ldf',  
    PARTIAL, NORECOVERY, STATS = 10, REPLACE
    GO

    ..
    RESTORE DATABASE ... FILE=<name> successfully.
    --------------------
    RESTORE DATABASE BAza with recovery
        go
    RESTORE DATABASE successfully processed 0 pages in 9.466 seconds (0.000 MB/sec).
    --------------------------------------
        SELECT name, state_desc, recovery_model_desc
            FROM sys.databases where database_id = DB_ID('BAza')
        go

            name    state_desc      recovery_model_desc
            -------------------------------------------
            BAza     ONLINE            FULL
    --------------------------------------------

    select file_id, is_read_only, state_desc from sys.database_files
        go

    file_id is_read_only state_desc
    1         0               ONLINE
    2         0               ONLINE
    3         0               ONLINE
    4         0               ONLINE
    5         0               ONLINE
    6         0               ONLINE
    7         0               ONLINE
    8         0               ONLINE
    9         1               RECOVERY_PENDING
    10       1               RECOVERY_PENDING
    11       1               RECOVERY_PENDING
    __________________________________

    filegroupurile create la partitionarea tabelului amintit mai sus au ramas pe disc.
    In ele ar trebui sa existe date identice cu datele aceluiasi tabel din grupul  Primary (tabelul din baza restabilita nu este partitionat!)
    Nu prea inteleg cum lucreaza Serverul SQL Zip it!

View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems