När du skapar en databas i SQL Server med standardalternativen skapas en datafil och en loggfil. Datafilen lagrar data och databasobjekt (såsom tabeller, vyer, lagrade procedurer, etc). Loggfilen lagrar informationen som krävs för att återställa alla transaktioner i databasen. Om du har en växande databas kan du hamna i situationen där du behöver lägga till en ny loggfil (och/eller datafil).
Precis som du kan lägga till fler datafiler till en befintlig databas i SQL Server, kan du också lägga till fler loggfiler. Syntaxen är dock något annorlunda beroende på om du skapar en datafil eller en loggfil. För att lägga till en datafil krävs ADD FILE
medan du lägger till en loggfil kräver ADD LOG FILE
.
Den här artikeln visar hur du använder T-SQL för att lägga till en loggfil till en befintlig databas i SQL Server.
Exempel
För att lägga till en loggfil till en befintlig databas, använd ALTER DATABASE
sats med ADD LOG FILE
argument. Ange information om den nya loggfilen och kör uttalandet.
Här är ett exempel:
USE master; GO ALTER DATABASE Solutions ADD LOG FILE ( NAME = Solutions_log_2, FILENAME = '/var/opt/mssql/data/Solutions_log2.ldf', SIZE = 10MB, MAXSIZE = 100MB, FILEGROWTH = 5% ); GO
Detta lägger till en loggfil med det logiska namnet Solutions_log_2
till Solutions
databas. Vi anger att den fysiska sökvägen är /var/opt/mssql/data/Solutions_log2.ldf
. Observera att den här sökvägen använder Linux/Mac-syntax. Om du använder Windows måste du använda tillämplig syntax (omvänt snedstreck istället för snedstreck).
Kontrollera resultatet
Du kan kontrollera resultatet genom att köra följande fråga:
USE Solutions; GO SELECT name, physical_name FROM sys.database_files; GO
Resultat:
name physical_name --------------- -------------------------------------- Solutions /var/opt/mssql/data/Solutions.mdf Solutions_log /var/opt/mssql/data/Solutions_log.ldf Solutions_dat_2 /var/opt/mssql/data/Solutions_dat2.ndf Solutions_dat_3 /var/opt/mssql/data/Solutions_dat3.ndf Solutions_log_2 /var/opt/mssql/data/Solutions_log2.ldf
Vi kan se den nya loggfilen listad utöver den ursprungliga loggfilen (liksom olika datafiler).
I det här exemplet väljer jag bara två kolumner i sys.database_files
visa att visa. Du kan också använda asterisken (*
) för att returnera alla kolumner om du föredrar det.