0% found this document useful (0 votes)
15 views5 pages

Move The System and User Database To Another Drive

Move the system and user database to another drive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views5 pages

Move The System and User Database To Another Drive

Move the system and user database to another drive
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Move system and user databases | srinivas merugu

Move the system and user database to another drive

1. User Databases:

Method1:

1. Take the backup of database which is moving to different drive.


2. Detach the database

USE [master]
GO
ALTER DATABASE [AdventureWorks2017_New] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'AdventureWorks2017_New'
GO

3. Move the physical files to target location

4. Attach the files from target location

Note: if you get error number 5 then provide proper privileges to access the folder

Method2:

1. sp_helpdb 'DB_Name' -- will get logical and physical name of DB


2. update DB logical and physical name of MDF ,NDF and LDF and run the script
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME =
'new_path\os_file_name' );
3. stop the SQL server services
4. Move the database from source to target location
5. Start the SQL services

Note: in method2, services should down which is not better practice then move for method

1
Move system and user databases | srinivas merugu

2. Move System Databases from one drive to another Drive:

Syntax:

ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name , FILENAME =


'new_path\os_file_name' );

Generate script to move Database:

SELECT 'ALTER DATABASE '+DB_name(database_id)+' MODIFY FILE (NAME = [' + f.name + '],'

+ ' FILENAME = ''M:\SQLDBA\Backup\MoveDB\SystemDB\' + f.name

+ CASE WHEN f.type = 1 THEN '.ldf' ELSE '.mdf' END

+ ''');'

FROM sys.master_files f

WHERE f.database_id = DB_ID(N'DB_Name');-- Update Database name instead of DB_Name which


you want move

Note: My target location is ''M:\SQLDBA\Backup\MoveDB\SystemDB”. Update destination path as


per your requirement.

Model DB:

1. Take the Model DB backup

Backup database model to disk='M:\SQLDBA\Backup\Practice\model.bak'

2. Generate script from below.

ALTER DATABASE model MODIFY FILE (NAME = [modeldev], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\model.mdf');

ALTER DATABASE model MODIFY FILE (NAME = [modellog], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\modellog.ldf');

3. Run generated script

4. Stop the SQL services

5. Move Model DB to Target location

6. Start SQL services

7. Validate whether moved model DB to target location

Sp_helpdb Model

2
Move system and user databases | srinivas merugu

Temp DB:

1. Temp DB backup will not possible-Ignore this step

2. Run below script.

ALTER DATABASE tempdb MODIFY FILE (NAME = [tempdev], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb.mdf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [templog], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\templog.ldf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp2], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_2.ndf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp3], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_3.ndf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp4], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_4.mdf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp5], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_5.mdf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp6], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_6.mdf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp7], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_7.mdf');

ALTER DATABASE tempdb MODIFY FILE (NAME = [temp8], FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\tempdb_mssql_8.mdf');

3. Restart SQL services

4. Validate whether moved temp DB to target location

Sp_helpdb tempdb

SELECT 'ALTER DATABASE tempdb MODIFY FILE (NAME = [' + f.name + '],'

+ ' FILENAME = '''M:\SQLDBA\Backup\MoveDB\SystemDB' + f.name

+ CASE WHEN f.type = 1 THEN '.ldf' ELSE '.mdf' END

+ ''');'

FROM sys.master_files f

WHERE f.database_id = DB_ID(N'tempdb');

3
Move system and user databases | srinivas merugu

MSDB :

1. Take the MSDB DB backup

Backup database MSDB to disk='M:\SQLDBA\Backup\Practice\MSDB.bak'

2. Generate script from below.

sp_helpdb msdb

ALTER DATABASE MSDB MODIFY FILE (NAME = MSDBData, FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\MSDBData.mdf');

ALTER DATABASE MSDB MODIFY FILE (NAME = MSDBLog, FILENAME =


'M:\SQLDBA\Backup\MoveDB\SystemDB\MSDBLog.ldf');

3. Run generated script

4. Stop the SQL services

5. Move MSDB DB to Target location

6. Start SQL services

7. Validate whether moved MSDB DB to target location

Sp_helpdb MSDB

Master DB:

1. Take the master DB backup

Backup database master to disk='M:\SQLDBA\Backup\Practice\Master.bak'

2. Open SQL server configuration manager->SQL Server Services-> Right pan-> Right click on SQL
server-> Properties-> Startup parameters-> update target location and click apply

Update the path for -d and -l

-d means master data file

-l means log file

-e means error log

-dM:\SQLDBA\Backup\MoveDB\SystemDB\master.mdf

-lM:\SQLDBA\Backup\MoveDB\SystemDB\mastlog.ldf

3. Stop SQL services

4
Move system and user databases | srinivas merugu

4. Move Master DB to Target location

6. Start SQL services

7. Validate whether moved master DB to target location

Sp_helpdb master

You might also like