Når du opretter en database i SQL Server ved hjælp af standardindstillingerne, oprettes en datafil og en logfil. Datafilen gemmer data og databaseobjekter (såsom tabeller, visninger, lagrede procedurer osv.). Logfilen gemmer de oplysninger, der er nødvendige for at gendanne alle transaktioner i databasen. Hvis du har en database i vækst, kan du komme i den situation, hvor du skal tilføje en ny logfil (og/eller datafil).
Ligesom du kan tilføje flere datafiler til en eksisterende database i SQL Server, kan du også tilføje flere logfiler. Syntaksen er dog lidt anderledes, afhængigt af om du opretter en datafil eller en logfil. Tilføjelse af en datafil kræver ADD FILE
mens tilføjelse af en logfil kræver ADD LOG FILE
.
Denne artikel viser, hvordan du bruger T-SQL til at føje en logfil til en eksisterende database i SQL Server.
Eksempel
For at tilføje en logfil til en eksisterende database, brug ALTER DATABASE
sætning med ADD LOG FILE
argument. Angiv detaljerne for den nye logfil, og kør erklæringen.
Her er et eksempel:
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
Dette tilføjer en logfil med det logiske navn Solutions_log_2
til Solutions
database. Vi angiver, at den fysiske sti er /var/opt/mssql/data/Solutions_log2.ldf
. Bemærk, at denne sti bruger Linux/Mac-syntaks. Hvis du bruger Windows, skal du bruge den gældende syntaks (omvendte skråstreger i stedet for skråstregerne).
Tjek resultatet
Du kan kontrollere resultatet ved at køre følgende forespørgsel:
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 nye logfil listet ud over den originale logfil (samt forskellige datafiler).
I dette eksempel vælger jeg kun to kolonner af sys.database_files
se at vise. Du kan også bruge stjernen (*
) for at returnere alle kolonner, hvis du foretrækker det.