Flytta TempDB Data och loggfiler till en ny enhet på din SQL Server

author
2 minutes, 59 seconds Read

även om det inte är något som du bör behöva göra ofta, ibland kan du upptäcka att du behöver flytta din tempdb till en ny enhet. Detta scenario inträffade nyligen när, i färd med att bygga ut en virtuell server, bara 2 ytterligare enheter skapades för mig. Eftersom det är bästa praxis att sätta dina data, logga och tempdb på separata enheter, var jag kvar med att tillfälligt sätta tempdb på e:\ – enheten när du ursprungligen konfigurerade den nya installationen av SQL Server.

så småningom den nya enheten, vi kallar den R:\, lades till servern och jag behövde nu flytta tempdb till den här enheten.

i det här fallet visste jag redan var min tempdb var belägen men det kanske inte alltid är fallet. Det första steget du bör ta när du flyttar tempdb till en ny enhet är att verifiera att den är aktuell plats. Följande skript kan användas för att göra just det.

verifiera TempDB-plats

Transact-SQL

1
2
3
4
5
6

använd
välj namn som ’namn’,
fysiskt namn som ’fysisk plats’,
state_desc som ’Status’
från sys.master_files
där database_id = DB_ID (’tempdb’)

detta skript returnerar namn, fysisk plats och aktuell status för tempdb-data och loggfiler. Resultaten ska se ut så här:

TempDBLocation_Results

nu när jag har bekräftat platsen för tempdb-data och loggfiler blir mitt nästa steg att flytta dem till den nya platsen. Innan du flyttar dem vill jag se till att jag har skapat nödvändiga mappar på den nya enheten. I exemplet nedan lägger jag dem i R:\SQL mapp så jag skulle behöva skapa en mapp med namnet SQL på R:\ drive.

skriptet nedan kan användas för att ändra platsen för både tempdb-data och tempdb-loggfiler. Du kan ändra avsnittet FILENAME för att motsvara den plats du väljer.

ändra TempDB data och loggfil plats

Transact-SQL

1
2
3
4
5
6
7
8
9
10

använd
ändra databas tempdb
ändra fil (NAME = tempdev,
filnamn = ’R:\SQL\tempdb.mdf’)
ändra databas tempdb
ändra fil (namn= templog,
filnamn = ’R:\SQL\templog.ldf’)

det sista steget är att starta om instansen av SQL Server. Du kan göra detta genom att antingen högerklicka på SQL Server-namnet i Object Explorer och välja att stoppa, starta sedan tjänsten eller genom att öppna SQL Server Configuration Manager och göra det därifrån. Jag föredrar att använda SQL Server Configuration Manager för detta eftersom jag har haft problem med att hantera tjänster när jag är fjärransluten till SQL server via Management Studio. Även om det är sällsynt har det hänt tillräckligt för att uppmuntra mig att alltid logga in direkt på servern för att starta/stoppa tjänster.

när tjänsten är igång igen kan du köra det första skriptet för att bekräfta den nya platsen för dina TempDB-data och loggfiler.

ovanstående steg kan också användas för att flytta msdb och modell systemdatabaser. Du behöver bara ändra värdena ALTER DATABASE, NAME och FILENAME för att peka på den tillämpliga databasen. Om du vill flytta master – databasen krävs det en något annorlunda inställning. För att lära dig mer om detta kan du referera till mitt inlägg om att flytta huvudsystemdatabasen till en ny plats i SQL Server.

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.