Chuyển đến nội dung chính

SQL Server: Filegroup Backup Files and Filegroups

Filegroup: Backup Files and Filegroups (SQL Server)

Trong bài trước, chúng ta đã đề cập tới việc “người dùng nên tạo thêm các Filegroup để lưu trữ dữ liệu của Database” - xem thêm tại đây
Trong bài này, chúng ta sẽ cùng trao đổi về việc làm sao đểcó thể Backup/Restore Files and Filegroups của Database.
Khi kích thước của Database đủ lớn hoặc do yêu cầu cần phảiđảm bảo về hiệu năng của các Database đang hoạt động, việc tạo một bản BackupFull cho Database sẽ trở nên không khả thi. Trong trường hợp này, bạn cần phảicó một phương án thay thế để giải quyết nan đề trên – một bản Backup chứa dữ liệucủa một hoặc nhiều data file (hoặc Filegroups).

Trước khi bắt đầu, bạncần lưu ý một số vấn đề sau:
·        Mệnh đề BACKUP không được phép nằm trong mộttransaction dù là transaction rõ ràng (explicit transaction) hay transaction ngầm(implicit transaction).
·        Nếu Database đang hoạt động ở chế độ “Simplerecovery model”, những file read/write (datafile cho phép cả đọc và ghi) phảiđược backup cùng với nhau. Điều này là để đảm bảo rằng Database có thể đượcrestore (khôi phục) về một thời điểm nhất quán trong quá khứ.
Thay vì việc phải chỉ định từngread/write file hoặc Filegroup, chúng ta có thể sử dụng tùy chọn READ_WRITE_FILEGROUPS.Tùy chọn này sẽ Backup toàn bộ các read/write Filegroups ở trên Database. Một bảnbackup được tạo ra bởi tùy chọn READ_WRITE_FILEGROUPS được biết đến như là mộtloại Partial backup (sao lưu từng phần).

Khuyến cáo:
- Ở chế độ mặc định, mỗi lần Backup thành công, chúng ta cóthể tìm thấy một thông báo được lưu ở trong system event log (với flag = 3226).Nếu tần suất Backup là thường xuyên, các bản ghi log này sẽ rất nhiều và làmcho việc tìm kiếm các loại system event log khác trở nên khó khăn hơn. Bạn hoàntoàn có thể lọc bỏ những flag = 3226 này trong system event log nếu bạn muốn.

Backup files vàFilegroups sử dụng SSMS (SQL Server Managerment Studio)

1.  Kết nối tới Database Instance.
2.  Phải chuột vào tên Database cần Backup, chọn Task, sau đó chọn Back up

3.  Chọn kiểu backup (Backup type): Full hoặc Differential.
4.  Ở lựa chọn thành phần cần backup (Backup component), chọn File and Filegroups. Trong cửa sổ “Select Files and Filegroups”, chọn các Files và Filegroups cần backup. Bạn có thể lựa chọn từng file riêng lẻ hoặc bạn có thể chọn một Filegroups để backup tất cả các file ở trong Filegroups đó.
5.  Tên của backup set sẽ được tự động hiển thị một cách mặc định, bạn có thể đổi tên backup set nếu muốn.
6.  Ở cửa sổ mô tả (Description), bạn có thể nhập một vài thông tin mô tả cho backup set – đây là một tùy chọn không bắt buộc.
7.  Thiết lập thời gian hết hạn của backup set:
- Bạn có thể lựa chọn thiết lập số ngày hết hạn cho backup set bằng cách chọn After và nhập số ngày. Giá trị ngày được phép nhập là từ 0 tới 999999 ngày. Giá trị 0 sẽ được hiểu là backup set sẽ không bao giờ bị hết hạn.
- Bạn cũng có thể chỉ định rõ bản backup set sẽ hết hạn vào một ngày cụ thể bằng cách chọn On và nhập ngày hết hạn.
8.  Lựa chọn nơi lưu trữ bản backup bằng cách chọn Disk hoặc Tape. Để lựa chọn đường dẫn tới nơi sẽ chứa bản backup, chọn Add (có thể lựa chọn tối đa là 64 ổ disk hoặc tape để chứa một backup set).
9.  Để lựa chọn các tính năng nâng cao, chọn Options ở cửa sổ ‘Select a page’.

10. Overwrite media sẽ cho phép người dùng có các lựa chọn sau:
- ‘Append to the existing backup set’ là lựa chọn cho phép Backup set mới sẽ nối tiếp vào Backup set trước đó.
‘Overwrite all existing backup set’ SQL Server sẽ thực hiện ghi đè Backup set mới vào các Backup set trước đó.
‘Check media set name and backup set expiration’ nếu sử dụng tùy chọn này, SQL Server sẽ kiểm tra xem Backup set đã bị hết hạn hay chưa.
‘Back up to a new media set, and erase all existing backup sets‘: khi lựa chọn tạo một media set và một backup set mới, người dùng sẽ cần phải nhập tên của chúng.
11.  Reliability
‘Verify backup when finished’, ‘Perform checksum before writing to media’, ‘Continue on error’ là các tùy chọn làm tăng độ tin cậy của bản backup dữ liệu.
12. Compression: kể từ SQL Server 2008, SQL đã hỗ trợ việc nén (compression) các bản backup. Người dùng sẽ có 3 lựa chọn:
- Use the default server setting: sử dụng thiết lập mặc định của hệ thống.
- Compress backup: có thực hiện nén dữ liệu.
Do not compress backup: không thực hiện nén dữ liệu.


Back up files and filegroups using T-SQL

1.  Để tạo một bản backup cho data file hoặc Filegroup, người dùng có thể sử dụng mệnh đề: BACKUP DATABASE <file_or_filegroup>
Để mệnh đề trên có thể hoạt động được, chúng ta cần tối thiểu những tham số sau:
- Tên Database.
- Từ khóa FILE hoặc FILEGROUP kèm theo tên của chúng.
- Nơi mà file backup sẽ được tạo ra (TAPE hoặc DISK có kèm đường dẫn cụ thể)

Cú pháp dùng để backup có thể được viết một cách đơn giản như sau:
BACKUP DATABASE database
{ FILE =logical_file_name | FILEGROUP =logical_filegroup_name } [ ,...f ]
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;

2. Nếu Database đang hoạt động ở chế độ 'Full recovery model', bạn bắt buộc phải thực hiện backup thêm cả Transaction log.
Để có thể Restore Database bằng các file backup đã có, bạn cần phải có các bản backup Transaction Log được nối vào với bản backup File hoặc Filegroup đầu tiên.

Examples (Transact-SQL)

Trong ví dụ dưới đây, chúng ta sẽ thực hiện với database [Sales]. Database này hoạt động ở chế độ 'full recovery model' vầ có chứa 2 Filegroups:
- Một filegroup tên là: SalesGroup1 có chứa 2 file: SGrp1Fi1 và SGrp1Fi2
- Một filegroup tên là: SalesGroup2 có chứa 2 file: SGrp2Fi1 và SGrp2Fi2

A. Tạo một bản backup của 2 file:
Câu lệnh dưới đây sẽ thực hiện backup file SGrp1Fi2 của Filegroup SalesGroup1 và file SGrp2Fi2 của Filegroup SalesGroup2

-- Backup file
BACKUP DATABASE Sales
   FILE = 'SGrp1Fi2',
   FILE = 'SGrp2Fi2'
   TO DISK = 'G:\SQL_Backups\Sales\SalesGroup1.bak';
GO

B. Tạo một bản backup đầy đủ của 2 Filegroup SalesGroup1 và SalesGroup2

--Backup 2 Filegroups 
BACKUP DATABASE Sales 
   FILEGROUP = 'SalesGroup1', 
   FILEGROUP = 'SalesGroup2' 
   TO DISK =  'G:\SQL_Backups\Sales\Salefiles.bak'; 
GO

C. Tạo một bản backup sự thay đổi của 2 Filegroup SalesGroup1 và SalesGroup2

--Backup sự thay đổi 2 Filegroups 
BACKUP DATABASE Sales 
   FILEGROUP = 'SalesGroup1', 
   FILEGROUP = 'SalesGroup2' 
   TO DISK =  'G:\SQL_Backups\Sales\Salefiles.bak'
     WITH  
       DIFFERENTIAL;
GO

Nhận xét

POPULAR POSTS

SQL Server: Filegroup

Filegroup là cách gọi cho một nhóm data file trong SQL Server. Filegroup không phải là nơi trực tiếp chứa dữ liệu mà nó chỉ là định nghĩa ở mức logic về các data file nằm trong nó, như: - Logical Name của data file. - File Type của data file (Rows Data, Log, FILESTREAM Data). - Dung lượng khởi tạo (Initial Size) của data file. - Giá trị tự tăng trưởng (Autogrowth) / Giá trị giới hạn (Maxsize) của data file. - Đường dẫn chứa data file (Path). - Tên data file (File Name). USE [AdventureWorks] GO -- Lấy thông tin filegroup của Database [AdventureWorks] SELECT * FROM sys . filegroups -- Lấy thông tin data file SELECT * FROM sys . database_files Filegroup trong SQL Server và Tablespace trong Oracle là cái khái niệm tương đối giống nhau, chúng đều dùng để chứa các data file của Database. Filegroup mặc định của SQL Server có tên gọi là PRIMARY, đây là Filegroup được tạo cùng với khi bạn tạo ra một Database. Filegroup mặc định này có chứa một data file (.

SQL 2016 - Tăng hiệu suất bảng tạm (temporary table) và biến bảng (table variable) sử dụng tính năng tối ưu bộ nhớ (memory optimization)

Tăng hiệu suất bảng tạm (temporary table) và biến bảng (table variable) sử dụng tính năng tối ưu bộ nhớ (memory optimization) Nếu Database của bạn sử dụng các bảng tạm (temporary table), các biến bảng (table variable) hoặc các tham số có giá trị bảng (table-valued parameters hay còn được gọi là TVP), bạn hãy cân nhắc việc chuyển sang sử dụng tính năng "bảng tối ưu bộ nhớ" (memory-optimized table). Bạn đừng lo lắng về việc phải thay đổi quá nhiều phần code của bạn, việc thay đổi sẽ là rất ít. Bài viết này sẽ đề cập tới: Các kịch bản về sự chuyển đổi sang bảng In-memory. Các kỹ thuật để thực hiện chuyển đổi sang bảng In-memory. Các điều kiện bắt buộc phải thực hiện trước khi chuyển đổi sang bảng In-memory. Một ví dụ để cho thấy các lợi ích của tính năng tối ưu bộ nhớ (memory optimization). A. Khái niệm cơ bản của các biến bảng dùng tính năng tối ưu hóa bộ nhớ Trước đây, khi bạn tạo một bảng tạm ( #Table hoặc ##Table ) hoặc một biến bảng ( @Table ), các bả

Tuning Advisor: Một công cụ tốt để tìm kiếm các Index bị thiếu (Missing Indexes)

Trong nhiều trường hợp, các Index của SQL Server là những giải pháp tuyệt vời để giải quyết các vấn đề về hiệu năng của hệ thống. Thêm vào đó, các giải pháp này thường rất rẻ và có khả năng cải thiện hiệu năng một cách kỳ diệu. Trong bài viết này, tôi muốn chia sẻ một ví dụ về cách sử dụng SQL Server Turning Advisor, đây là một công cụ đi kèm với bộ cài SQL Server. Để sử dụng được công cụ Turning Advisor chúng ta sẽ cần sử dụng SQL Server Profiler để thu thập thông tin. Database Engine Tuning Advisor Turning Advisor là một công cụ được sử dụng để tìm ra các khuyến cáo về việc áp dụng các index, statistic và partition trong SQL Server. Các khuyến cáo này dựa trên thông tin từ các tập lệnh sql hoặc từ một file xml hoặc từ một file Profile trace. Công cụ này phân tích các câu truy vấn dữ liệu và đưa ra các khuyến cáo về các index, statistic và partition cho các bảng và các views trong cơ sở dữ liệu của bạn. Turning Advisor được đính kèm với mọi bản SQL Server trừ phiên bản Express.