Przeniesienie bazy danych do innego folderu.

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ć?

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');
  1. Następnie wyłączasz bazę:
ALTER DATABASE nazwa_bazy SET offline GO
  1. Przenosisz plik
ALTER DATABASE nazwa_bazy MODIFY FILE ( NAME = nazwa_bazy_Data, FILENAME = "C:\Data\nazwa_bazy_Data.mdf") GO
  1. powtarzasz pkt 3. dla wszystkich plików z pkt 1.

  2. Włączasz bazę:

ALTER DATABASE nazwa_bazy SET online GO
  1. Żeby wyciągnąć nazwy z sys.master_files trzeba mieć uprawnienia
GRANT VIEW ANY DEFINITION TO [nazwa_usera]
GO
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 ;).

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

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