Momentan sunteți offline, așteptați să vă reconectați la internet

Mutarea bazelor de date SQL Server 7.0 pe un nou server cu BACKUP şi RESTORE

REZUMAT
Acest articol arată cum se restaurează copiile de rezervă ale bazelor de date pentru utilizatori şi sisteme pe o altă instalare de SQL Server 7.0 care are configuraţiile literelor de unitate diferite de serverul pe care aţi făcut iniţial copiile de rezervă ale bazelor de date. Această metodă se poate utiliza când doriţi să mutaţi o bază de date utilizând copii de rezervă pentru bazele de date sau restaurări de baze de date. Pentru mai multe informaţii despre utilizarea unei metode alternative, faceţi clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoştinţe Microsoft:
224071 Cum se mută bazele de date SQL Server într-o locaţie nouă cu ajutorul funcţiilor Detach şi Attach din SQL Server (articolul poate să fie în limba engleză)
NOTĂ: Instrucţiunile din acest articol nu se aplică la SQL Server 2000.

Bazele de date de sistem de distribuire sau master, model, msdb SQL Server 7.0 nu se pot restaura în SQL Server 2000. Bazele de date de sistem SQL Server 7.0 nu sunt compatibile cu SQL Server 2000.
INFORMAŢII SUPLIMENTARE
Exemplele din acest articol se bazează pe următoarele presupuneri:
  • Instalarea destinaţie de SQL Server 7.0 este în directorul D:\Mssql7, iar fişierele de bază de date şi de jurnal sunt amplasate în directorul implicit D:\Mssql7\data.
  • Instalarea sursă de SQL Server 7.0 este în directorul C:\Mssql7, iar fişierul de bază de date şi fişierele de jurnal sunt amplasate în directorul implicit C:\Mssql7\data.

Cerinţe preliminare

  • Faceţi o copie de rezervă curentă a tuturor bazelor de date în locaţia lor curentă, în special bazei de date master, a bazei de date model şi a bazei de date msdb.
  • Aveţi nevoie de privilegii de administrator de sistem.
  • Trebuie să cunoaşteţi atât numele logic, cât şi pe cel fizic al tuturor fişierelor de date şi de jurnal pentru bazele de date pe care doriţi să le restauraţi.

    NOTĂ: Pentru a determina numele logic şi numele fizic al tuturor fişierelor pe care doriţi să le restauraţi din setul copie de rezervă, executaţi comanda următoare într-o conexiune Query Analyzer unde bazadate.bak este numele fişierului care conţine copia de rezervă a bazei de date:
    RESTORE FILELISTONLY FROM DISK='d:\mssql7\backup\bazadate.bak'go					
  • Instalările SQL Server 7.0 sursă şi destinaţie trebuie să aibă aplicate aceleaşi pachete service pack şi aceleaşi remedieri.
Dacă întâmpinaţi probleme în timpul procesului şi nu este posibil să accesaţi o bază de date pe care aţi mutat-o sau dacă nu este posibilă lansarea SQL Server, verificaţi jurnalul de erori SQL Server şi manualele online SQL Server 7.0 pentru detalii privind erorile pe care le întâlniţi.

Pentru a restaura bazele de date

  1. Restauraţi baza de date master.

    În exemplul următor, baza de date master conţine un fişier de date, Master.mdf şi un fişier jurnal, Mastlog.ldf, din fişierul cu copia de rezervă completă a bazei de date, Master_db.bak.
    1. La un prompt de comandă, executaţi următoarea comandă pentru a porni SQL Server:
      d:\mssql7\binn\sqlservr -c -m

      NOTĂ: Parametrul -m lansează SQL Server în modul utilizator unic. În modul utilizator unic, nu se poate face decât o singură conexiune. Verificaţi dacă nu cumva alţi clienţi sau alte servicii realizează acea conexiune unică înainte de a vă conecta cu SQL Server Query Analyzer.
    2. În SQL Server Query Analyzer, utilizaţi următoarea sintaxă pentru a restaura o copie de rezervă a bazei de date master:
      RESTORE DATABASE master FROM disk='d:\mssql7\backup\master_db.bak'WITH MOVE 'master' to 'd:\mssql7\data\master.mdf',MOVE 'mastlog' to 'd:\mssql7\data\mastlog.ldf',REPLACEgo
      NOTĂ: SQL Server se închide automat după ce restauraţi baza de date master.
    3. La un prompt de comandă, executaţi următoarea comandă pentru a porni SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
      NOTĂ: Cu această sintaxă, aveţi posibilitatea să efectuaţi actualizările tabelului de sistem.
    4. În SQL Server Query Analyzer, executaţi următorul set de instrucţiuni:

      AVERTISMENT: Actualizarea incorectă a tabelelor de sistem poate provoca probleme serioase, care pot să necesite reinstalarea SQL Server. Microsoft nu poate garanta că problemele care rezultă din actualizarea incorectă a tabelelor de sistem se pot rezolva. Actualizaţi tabelele de sistem pe propriul risc.
      USE mastergoUPDATE sysdatabases SET filename='d:\mssql7\data\tempdb.mdf' WHERE name='tempdb'goALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'd:\mssql7\data\tempdb.mdf')ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'd:\mssql7\data\templog.ldf')go
      Ar trebui să primiţi următoarele mesaje care confirmă modificarea:
      File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server.

      File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server.
  2. Restauraţi baza de date model.

    În exemplul următor, baza de date model conţine un fişier de date Model.mdf şi un fişier jurnal, Modellog.ldf, din fişierul copie de rezervă completă a bazei de date, Model_db.bak. Dacă nu aveţi o copie de rezervă a bazei de date model sau dacă doriţi să utilizaţi pe cea care este instalată în mod implicit în timpul instalării SQL Server, remapaţi baza de date model. Această procedură este similară procedurii descrise pentru baza de date northwind şi baza de date pubs de la pasul 4.
    1. În SQL Server Query Analyzer, executaţi următoarea procedură stocată pentru a detaşa baza de date model curentă de la SQL Server:
      exec sp_detach_db N'model'go
      După ce executaţi procedura stocată, primiţi următorul mesaj:
      Successfully detached database 'model'
      DBCC execution completed. If DBCC printed error messages, contact your system administrator
      NOTĂ: Este necesar să detaşaţi baza de date model, deoarece nu se poate suprascrie direct cu ajutorul instrucţiuniiRESTORE. Trebuie să eliminaţi referinţele la tabelul de sistem pentru această bază de date de sistem înainte de restaurarea bazei de date. În plus, nu este posibilă eliminarea bazei de date cu scopul de a elimina aceste intrări de sistem.
    2. În SQL Server Query Analyzer, utilizaţi următoarea sintaxă pentru a restaura o copie de rezervă a bazei de date model:
      RESTORE DATABASE model FROM disk='d:\mssql7\backup\model_db.bak'WITH MOVE 'modeldev' TO 'd:\mssql7\data\model.mdf',     MOVE 'modellog' TO 'd:\mssql7\data\modellog.ldf',     REPLACEgo
      Notă Conexiunea la SQL Server se întrerupe după ce restauraţi baza de date model.
  3. Restauraţi baza de date msdb.

    În exemplul următor, baza de date msdb conţine un fişier de date, Msdbdata.mdf şi un fişier jurnal, Msdblog.ldf, din fişierul cu copia de rezervă completă a bazei de date, Msdb_db.bak.
    1. La un prompt de comandă, executaţi următoarea comandă pentru a porni SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. În SQL Server Query Analyzer, executaţi următoarea procedură stocată pentru a detaşa baza de date msdb:
      exec sp_detach_db N'msdb'go
    3. În SQL Server Query Analyzer, utilizaţi următoarea sintaxă pentru a restaura o copie de rezervă a bazei de date msdb:
      RESTORE DATABASE msdb FROM disk='d:\mssql7\backup\msdb_db.bak'WITH MOVE 'msdbdata' TO 'd:\mssql7\data\msdbdata.mdf',     MOVE 'msdblog' TO 'd:\mssql7\data\msdblog.ldf',     REPLACEgo
      Notă Conexiunea la SQL Server se întrerupe după ce restauraţi baza de date msdb.
  4. Bazele de date northwind şi pubs:

    După ce restauraţi baza de date master, intrările din tabelul de sistem pentru baza de date northwind şi pubs se schimbă, iar cele două baze de date, la fel ca şi bazele de date ale celorlalţi utilizatori, se află în modul Suspect. Dacă doriţi să reutilizaţi fişierele de bază de date iniţiale, iar apoi să le reataşaţi la server, utilizaţi următorul exemplu. Altfel, dacă doriţi să restauraţi o copie din copia de rezervă, utilizaţi exemplul de bază de date mydb care este descris la pasul 6. Utilizaţi următorul exemplu pentru a actualiza referinţele la tabelul de sistem pentru baza de date northwind. Baza de date northwind conţine un fişier de date, Northwind.mdf şi un fişier jurnal, Northwind.ldf.
    1. La un prompt de comandă, executaţi următoarea comandă pentru a porni SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. În SQL Server Query Analyzer, executaţi următoarea procedură stocată pentru a detaşa baza de date northwind:
      exec sp_detach_db N'northwind'go

      NOTĂ: Este posibil să primiţi următorul mesaj care indică faptul că nu aveţi acces la fişierele fizice:
      Server: Msg 947, Level 16, State 1, Line 1 Error while closing database 'Northwind' cleanly.
      Successfully detached database 'northwind'.
      DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    3. În SQL Server Query Analyzer, executaţi următoarea procedură stocată pentru a ataşa baza de date northwind:
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'go
  5. Remapaţi baza de date pubs.

    Baza de date pubs conţine un fişier de date, Pubs.mdf, şi un fişier jurnal, Pubs_log.ldf. Baza de date pubs poate fi remapată în acelaşi mod în care aţi remapat şi baza de date northwind.
  6. Restauraţi baza de date mydb.

    Baza de date mydb conţine un fişier de date, Mydbdata.mdf şi un fişier jurnal, Mydblog.ldf, din fişierul cu copia de rezervă completă a bazei de date, Mydb_db.bak.
    1. În SQL Server Query Analyzer, executaţi următoarea procedură stocată pentru a detaşa baza de date mydb:
      exec sp_detach_db N'mydb'go
    2. În SQL Server Query Analyzer, utilizaţi următoarea sintaxă pentru a restaura o copie de rezervă a bazei de date mydb:
      RESTORE DATABASE mydb FROM disk='d:\mssql7\backup\mydb_db.bak'WITH MOVE 'mydbdata' TO 'd:\mssql7\data\mydbdata.mdf',     MOVE 'mydblog' TO 'd:\mssql7\data\mydblog.ldf',     REPLACEgo
  7. Redenumiţi SQL Server.

    IMPORTANT: Această procedură este necesară numai dacă trebuie să modificaţi numele instalării SQL Server la care tocmai aţi restaurat baza de date master.

    De exemplu, redenumiţi SQL Server dacă:

    • Aţi restaurat copiile de rezervă a bazelor de date de pe un computer numit SOURCESVR pe un computer numit TARGETSVR.
    • Computerul numit TARGETSVR are un server SQL numit SOURCESVR.
    Dacă trebuie să redenumiţi SQL Server, utilizaţi următoarea sintaxă pentru a sincroniza numele computerului şi numele SQL Server:
    exec sp_dropserver 'SOURCESVR'goexec sp_addserver 'TARGETSVR', 'LOCAL'go
  8. Reporniţi serviciul SQL Server.

REFERINŢE

Pentru informaţii suplimentare, faceţi clic pe următorul număr de articol pentru a vedea articolul din Baza de cunoştinţe Microsoft:
224071 Cum se mută bazele de date SQL Server într-o locaţie nouă cu ajutorul funcţiilor Detach şi Attach din SQL Server (articolul poate să fie în limba engleză)
314546 Cum se mută bazele de date între computere care execută SQL Server (articolul poate să fie în limba engleză)
NOTĂ: Pentru informaţii suplimentare despre alte opţiuni de lansare cum ar fi -c, -m şi -f, consultaţi SQL Server Books Online.
Moving database backups restore files new drive location move place
Proprietăți

ID articol: 304692 - Ultima examinare: 05/16/2011 22:17:00 - Revizie: 4.0

  • Microsoft SQL Server 7.0 Standard Edition
  • kbsqlmanagementtools kbinfo KB304692
Feedback