go backsqlschool blogs list

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

by 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*/

Ημερομηνία: 21 October 2016 13:46
Αξιολόγηση:
Κατηγορίες:
Tags:
Share it:

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS