Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách thêm tệp nhật ký vào cơ sở dữ liệu máy chủ SQL (T-SQL)

Khi bạn tạo cơ sở dữ liệu trong SQL Server bằng các tùy chọn mặc định, một tệp dữ liệu và một tệp nhật ký sẽ được tạo. Tệp dữ liệu lưu trữ dữ liệu và các đối tượng cơ sở dữ liệu (chẳng hạn như bảng, dạng xem, thủ tục được lưu trữ, v.v.). Tệp nhật ký lưu trữ thông tin cần thiết để khôi phục tất cả các giao dịch trong cơ sở dữ liệu. Nếu bạn có cơ sở dữ liệu đang phát triển, bạn có thể rơi vào tình huống cần thêm tệp nhật ký mới (và / hoặc tệp dữ liệu).

Cũng giống như bạn có thể thêm nhiều tệp dữ liệu hơn vào cơ sở dữ liệu hiện có trong SQL Server, bạn cũng có thể thêm nhiều tệp nhật ký hơn. Tuy nhiên, cú pháp hơi khác một chút tùy thuộc vào việc bạn đang tạo tệp dữ liệu hay tệp nhật ký. Việc thêm tệp dữ liệu yêu cầu ADD FILE trong khi thêm tệp nhật ký yêu cầu ADD LOG FILE .

Bài viết này trình bày cách sử dụng T-SQL để thêm tệp nhật ký vào cơ sở dữ liệu hiện có trong SQL Server.

Ví dụ

Để thêm tệp nhật ký vào cơ sở dữ liệu hiện có, hãy sử dụng ALTER DATABASE câu lệnh với ADD LOG FILE lý lẽ. Cung cấp thông tin chi tiết của tệp nhật ký mới và chạy câu lệnh.

Đây là một ví dụ:

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

Điều này sẽ thêm một tệp nhật ký có tên logic là Solutions_log_2 tới Solutions cơ sở dữ liệu. Chúng tôi chỉ định rằng đường dẫn vật lý là /var/opt/mssql/data/Solutions_log2.ldf . Lưu ý rằng đường dẫn này sử dụng cú pháp Linux / Mac. Nếu sử dụng Windows, bạn sẽ cần sử dụng cú pháp thích hợp (dấu gạch chéo ngược thay vì dấu gạch chéo về phía trước).

Kiểm tra kết quả

Bạn có thể kiểm tra kết quả bằng cách chạy truy vấn sau:

USE Solutions;  
GO

SELECT name, physical_name  
FROM sys.database_files;  
GO

Kết quả:

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

Chúng ta có thể thấy tệp nhật ký mới được liệt kê ngoài tệp nhật ký gốc (cũng như các tệp dữ liệu khác nhau).

Trong ví dụ này, tôi chỉ chọn hai cột của sys.database_files xem để hiển thị. Bạn cũng có thể sử dụng dấu hoa thị (* ) để trả về tất cả các cột nếu bạn muốn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi ‘time’ thành ‘smalldatetime’ trong SQL Server (Ví dụ T-SQL)

  2. Ngừng bắt SQL Server làm công việc bẩn thỉu của bạn

  3. Bộ đệm đệm:Nó là gì và nó ảnh hưởng như thế nào đến hiệu suất cơ sở dữ liệu?

  4. Tôi có nên sử dụng quy tắc CASCADE DELETE không?

  5. Làm cách nào để loại trừ Ngày cuối tuần trong truy vấn SQL Server?