go backarticles

Articles of SQLschool.gr Team

Move a database file (data or log file) to another location

Antonios Chatzipavlis

Αρκετές φορές έχω ερωτηθεί για το πώς μπορεί κάποιος να μεταφέρει μια βάση ή ένα αρχείο της (data / log file) από ένα σημείο (disk/folder/…) σε άλλο.

Η εύκολη απάντηση που δίνω καθώς δεν είναι πάντα εύκολο να γνωρίζω τα skills του ερωτώμενου είναι detach & attach database. Αρκετά ξεκάθαρή διαδικασία και χωρίς ίχνος παρερμηνείας.

Παρόλα αυτά όμως υπάρχει και άλλος τρόπος που σε κάποιες περιπτώσεις είναι λίγο πιο γρήγορος αλλά πρέπει να κάνεις περισσότερα βήματα υλοποίησης.

Το τρόπος αυτό είναι ο παρακάτω όπως δείχνω και στο παράδειγμα μου

  • Με ALTER DATABASE λες που θέλεις να πάει το αρχείο
  • Με ALTER DATABASE κάνεις OFFLINE την βάση
  • Κάνεις copy το αρχείο από παλαιό σημείο στο νέο
  • Με ALTER DATABASE κάνεις ONLINE την βάση
USE [master]
GO

-- Sample database
CREATE DATABASE [DemoDB]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'DemoDB_data', FILENAME = N'C:\SQLData\DemoDB_data.mdf'  )
 LOG ON 
( NAME = N'DemoDB_log', FILENAME = N'C:\SQLData\DemoDB_log.ldf' )
GO

-- STEP 1
alter database DemoDB
modify file (name='DemoDB_log', filename='C:\SQLData\a\DemoDB_log.ldf');

-- STEP 2
alter database DemoDB set offline;

-- STEP 3
-- copy file 

-- STEP 4
alter database DemoDB set online;

/*antonch*/


Relative Articles

Leave your comment

Login with your SQLschool.gr account if you want to comment on this article.