Przeniesienie bazy danych do innego folderu.

Odpowiedz Nowy wątek
2017-07-04 08:10
0

Witam.

Mam problem z przeniesieniem bazy danych (plików bazy danych) do innego folderu (pewnie coś banalnego, ale nie idzie mi...).

Próbowałem tak:

1

USE MASTER;
GO

ALTER DATABASE TESTY
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

EXEC MASTER.dbo.sp_detach_db @dbname = N'TESTY'
GO

2 Przeniosłem pliki TESTY.mdf i TESTY_log.LDF do folderu D:\DATABASE\

3

CREATE DATABASE [TESTY_NAVI] ON
( FILENAME = N'D:\DATABASE\TESTY.mdf' ),
( FILENAME = N'D:\DATABASE\TESTY_log.LDF' )
FOR ATTACH
GO

SQL zwraca błąd:

File activation failure. The physical file name "D:\DATABASE\TESTY_log.LDF" may be incorrect.
Msg 5170, Level 16, State 1, Line 15
Cannot create file 'D:\DATABASE\TESTY_log.ldf' because it already exists. Change the file path or the file name, and retry the operation.
Msg 1813, Level 16, State 2, Line 15
Could not open new database 'TESTY'. CREATE DATABASE is aborted.

Próbowałem również:

EXEC MASTER.dbo.sp_attach_DB 'TESTY', 
N'D:\DATABASE\TESTY.mdf',
N'D:\DATABASE\TESTY_log.LDF'
GO

efekt identyczny.

Tak samo jak próbuję użyć funkcji attach w SSMS.

Jak to powinienem zrobić?

edytowany 2x, ostatnio: hipekk, 2017-07-04 08:22

Pozostało 580 znaków

2017-07-04 10:34
1
  1. Najpierw wyciągasz sobie nazwy plików:

    USE master SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('nazwa_bazy');
  2. Następnie wyłączasz bazę:

    ALTER DATABASE nazwa_bazy SET offline GO
  3. Przenosisz plik

    ALTER DATABASE nazwa_bazy MODIFY FILE ( NAME = nazwa_bazy_Data, FILENAME = "C:\Data\nazwa_bazy_Data.mdf") GO
  4. powtarzasz pkt 3. dla wszystkich plików z pkt 1.

  5. Włączasz bazę:

    ALTER DATABASE nazwa_bazy SET online GO
  6. Żeby wyciągnąć nazwy z sys.master_files trzeba mieć uprawnienia

    GRANT VIEW ANY DEFINITION TO [nazwa_usera]
    GO

Wiedza to potęga

Pozostało 580 znaków

2017-07-04 14:36
0

@Haskell: tak próbowałem później , ale teraz dla odmiany mam błąd dostępu do plików (Access is denied.), ale z tym powalczę później ;).

Pozostało 580 znaków

2017-07-07 07:31
0

Konto na którym działa usługa SQL Servera musi mieć odpowiednie uprawnienia do katalogu w którym znajdują się plik mdg/ldf

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0