Thứ Ba, 11 tháng 1, 2011

SỬ DỤNG CHỨC NĂNG BACKUP/RESTORE TRONG SQL SERVER 2005

GIỚI THIỆU

Trong suốt chu kỳ sống của một database (cơ sở dữ liệu), việc xảy ra sự cố làm hư hỏng mất mát dữ liệu là chuyện khó tránh khỏi.
Các dạng biến cố hay tai họa có thể xảy ra như:
- Ðĩa chứa data file hay Transaction Log File hay system file bị mất, bị hư hỏng
- Những thảm họa tự nhiên như bão lụt, động đất, hỏa hoạn
- Toàn bộ server bị đánh cắp hoặc phá hủy
- Các thiết bị dùng để backup - restore bị đánh cắp hay hư hỏng
- Những lỗi do vô ý của user như lỡ tay xóa, thao tác sai làm hư cơ sở dữ liệu
- Những hành vi mang tính phá hoại của nhân viên như cố ý đưa vào những thông tin sai lạc.
- Bị hack (nếu server có kết nối với internet).
Vì vậy chúng ta phải luôn có biện pháp bảo vệ cơ sở dữ liệu một cách an toàn nhất, bên cạnh đó chúng ta cũng phải tự hỏi khi các vấn đề trên xảy ra thì phải làm sao để khôi phục lại dữ liệu đã hư, mất và phục hồi một cách nhanh nhất để đưa server trở lại hoạt động một cách bình thường.

Để tránh và hoặc ít nhất là hạn chế tối đa mất mát dữ liệu do các sự cố nêu trên, là một người quản lý hệ thống cơ sở dữ liệu bạn cần phải bảo quản cơ sở dữ liệu của mình một cách hợp lý nhất, giảm tối đa số lần phải phục hồi dữ liệu, luôn theo dõi, kiểm tra thường xuyên để phát hiện các trục trặc trước khi nó xảy ra. Và để có thể phục hồi dữ liệu khi gặp các biến cố trên bạn phải biết cách backup (sao lưu) và restore (khôi phục) dữ liệu và sắp xếp lịch trình backup dữ liệu một cách hợp lý‎ để bảo quản cơ sở dữ liệu của mình một cách an toàn nhất. Đối với một thư mục hay những tập tin bình thường thì việc sao lưu và copy ngược trở lại là vô cùng đơn giản là chỉ cần copy vào một thiết bị lưu trữ khác, để phòng khi gặp sự cố gây mất mát dữ liệu thì có thể copy ngược trở lại. Còn đối với database trong SQL thì việc backup diễn ra có khác hơn, khi hệ thống đang vận hành thì bạn không thể đơn giản copy các data file và log file vì chúng bị khóa hoàn toàn. Bạn phải dựa vào cơ chế backup của hệ QTCSDL. Sau đây chúng tôi xin nói sơ lược về Back up/Restore trong SQL Server và hướng dẫn các bạn các thao tác trong hai chức năng này.

I. Backup (sao lưu) CSDL trong SQL Server:

Backup là việc sao lưu dữ liệu từ cơ cở dữ liệu SQL Server vào một thiết bị lưu trữ khác. Sau đây là các loại Backup mà chúng tôi muốn chia sẻ với các bạn.
1>
Các Loại Backup và một số hướng dẫn chung
· Full backup: Là backup toàn bộ dữ liệu tại thời điểm thực hiện. Đây có lẽ là loại được dùng thường xuyên nhất.
· Differential backup: Là backup các trang dữ liệu mới được cập nhật kể từ lần backup full trước đó.
· File or File Group Backup: Copy một data file đơn hay một file group.
· Differential File or File Group Backup: Tương tự như differential database backup nhưng chỉ copy những thay đổi trong data file đơn hay một file group.
· Transaction log backup: Là backup các log record hiện có trong log file, nghĩa là nó sao lưu các hành động (các thao tác xảy ra đối với database) chứ không sao lưu dữ liệu. Đồng thời nó cũng cắt bỏ (truncate) log file, loại bỏ các log record vừa được backup ra khỏi log file. Vì thế khi thấy log file tăng quá lớn, có nhiều khả năng là bạn chưa từng backup transaction log bao giờ.
Ở đây chúng ta hãy đặc biệt chú ‎ 3 loại backup là Full backup, Differential backup và Transaction log backup.

Một nguyên tắc chung để giảm bớt lượng dữ liệu mất mát khi có sự cố là tăng tần suất backup. Tuy nhiên với một database có dung lượng lớn và được cập nhật liên tục, thì việc thực hiện full backup với tần suất cao là không khả thi, vì nó dùng rất nhiều CPU và I/O. Nhờ có differential backup và transaction log backup, bạn có thể tạo lập các phương án sao lưu thích hợp, đảm bảo dữ liệu được backup thường xuyên hơn mà không chiếm nhiều tài nguyên của hệ thống.

Chú ý: Trong lúc backup SQL Server cũng copy tất cả các hoạt động của database kể cả hoạt động xảy ra trong quá trình backup cho nên ta có thể backup trong khi SQL đang chạy mà không cần phải ngưng lại.
Recovery Models
· Full Recovery Model : Ðây là model cho phép phục hồi dữ liệu với ít rủi ro nhất. Nếu một database ở trong mode này thì tất cả các hoạt động không chỉ insert, update, delete mà kể cả insert bằng Bulk Insert, hay bcp đều được log vào transaction log file. Khi có sự cố thì ta có thể phục hồi lại dữ liệu ngược trở lại tới một thời điểm trong quá khứ. Khi data file bị hư nếu ta có thể backup được transaction log file thì ta có thể phục hồi database đến thời điểm transaction gần nhất được commited.
· Bulk-Logged Recovery Model : Ở mode này các hoạt động mang tính hàng loạt như Bulk Insert, bcp, Create Index, WriteText, UpdateText chỉ được log minimum vào transaction log file đủ để cho biết là các hoạt động này có diễn ra mà không log toàn bộ chi tiết như trong Full Recovery Mode. Các hoạt động khác như Insert, Update, Delete vẫn được log đầy đủ để dùng cho việc phục hồi sau này.
· Simple Recovery Model : Ở mode này thì Transaction Log File được truncate thường xuyên và không cần backup. Với mode này bạn chỉ có thể phục hồi tới thời điểm backup gần nhất mà không thể phục hồi tới một thời điểm trong quá khứ.

Muốn biết database của bạn đang ở mode nào bạn có thể Right-click lên một database nào đó trong SQL Server Enterprise Manager chọn
Properties->Options->Recovery
Sau đây là một ví dụ về lịch backup để các bạn dễ hiểu hơn:
Ví dụ: Chúng tôi xây dựng một thời gian biểu cho việc backup dữ liệu của chúng tôi như sau


· Full backup: Mỗi tuần 2 lần vào buổi chiều thứ 4 và thứ 4 sau giờ làm việc (17h PM)
· Differential backup: Mỗi tuần 4 lần vào buổi chiều thứ 2,3,5,6 sau giờ làm việc (5h PM)
· Transaction log backup: Mỗi ngày 1 lần vào buổi trưa (12 AM)

Lưu ý là differential backup luôn sao lưu các trang đã thay đổi kể từ lần full backup trước, chứ không phải từ lần differential backup trước đó. Ví dụ bản different backup lúc 5h PM ngày thứ 5 sẽ bao gồm các thay đổi kể từ thời gian full backup ngày của ngày thứ 4, còn bản different lúc 5h PM ngày thứ 6 thì sẽ bao gồm các thay đổi kể từ thời gian full backup ngày của ngày thứ 4 kể cả những thay đổi đã được lưu trong lần different backup của ngày thứ 5… Transaction log backup thì ngược lại, chỉ sao lưu các log record kể từ lần transaction log backup trước đó.
Chú ‎ ý‎‎‎‎‎: Lịch backup trên đây chỉ là một ví dụ để chúng tôi nói rõ hơn về tác dụng của các loại backup và thời gian backup thôi. Còn sắp xếp thời gian sao cho hợp lý để không tiêu tốn quá nhiều thời gian mà lại an toàn cho cơ sở dữ liệu là sự linh động và tính toán phù hợp từ phía các bạn.

2> Hướng dẫn các bước thực hiện Backup (Sao lưu) một cơ sở dữ liệu trong SQL Server.
Nếu bạn chưa mở sẵn giao diện SQL Server Management Studio thì hãy khởi động nó lên theo các bước sau:
Vào Start_ Programs_Microsoft SQL Server 2005 và chọn SQL Server Management Studio.

Sau khi chọn các đối tượng phù hợp tại các mục Server type, Server name và Authentication _Connect.


Trong giao diện SQL Server Management Studio bạn chọn một database mà bạn cần backup. Ví dụ tôi chọn database “Hoadon” như dưới đây.


Trên cửa sổ Backup cơ sở dữ liệu, bạn có thể điều chỉnh lại cấu hình thông tin về sao lưu theo ý bạn. Nếu bạn không quen thuộc cấu hình này, bạn có thể để giá trị mặc định.

Đây là một số mô tả ngắn để cho bạn dễ hiểu về ý nghĩa của các mục chọn và từ đó bạn có thể điều chỉnh theo ý của mình.
- Database: Một cơ sở dữ liệu mà bạn muốn sao lưu.
- Backup type: Bạn có thể chọn 1 trong 3 lựa chọn: Full hoặc Differential hoặc Transaction log như chúng tôi đã giới thiệu về tác dụng của mỗi kiểu ở phần trên (Chú ý: Đây là phần rất quan trọng, các bạn nên đặc biệt chú ý khi chọn kiu Back up).
- Name: Tên của các sao lưu này, bạn có thể đặt tên bất cứ điều gì như bạn muốn.
- Backup component: Trong mục này bạn có thể chọn một trong hai lựa chọn sau.
Ø Database: Backup tất cả các file hay nhóm file đã được tạo của database này. Chúng tôi khuyên bạn nên chọn mục này để tránh việc sao chép dữ liệu không đầy đủ.
Ø Files and Filegroups: Nếu cơ sở dữ liệu của bạn rất lớn và khi tạo cơ sở dữ liệu bạn đã phân bổ cơ sở dữ liệu của mình thành các nhóm file lưu trữ ở những đĩa/vị trí khác nhau trong hệ điều hành và nay bạn chỉ muốn chọn một hay một số file cần backup chứ không backup tất cả các file thì bạn chọn mục này và chỉ định file cần backup (ví dụ như hình dưới).

Trong hộp thọai này bạn cũng có thể chọn chức năng backup tất cả các file.
- Backup set will expire” Có thể được sử dụng khi backup vào băng hoặc tạo các nhóm backup “Media Sets”. Trong ví dụ này, chúng tôi sẽ backup vào một ổ đĩa cứng vì vậy mặc định sẽ là “sau 0” ngày.
- Destination: Điểm đến các tập tin đó sẽ được sao lưu vào. Bạn có thể để như mặc định. Mặc định sẽ sao lưu vào "C: \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ Backup". Nếu bạn chọn lại vị trí lưu mới, thì chọn Add sau đó sẽ xuất hiện hộp thọai mới như hình 5. Tại File name bạn có thể tự gõ đường dẫn tới vị trí cơ sở dữ liệu cần sao lưu hoặc nhấn vào dấu ba chấm “” để chỉ định vị trí cho nó (Trong bài này tôi chọn G:\SQL\Backup\Hoadon.bak vị trí lưu là ở trong thư mục Backup là thư mục con của thư mục SQL trong ổ đĩa G với tên file là Hoadon.bak).

Nếu bạn nhấn vào dấu ba chấm “” để chỉ định vị trí lưu thì sẽ thấy xuất hiện hộp thọai như hình 6 dưới đây. Tại đây bạn chọn vị trí lưu sau đó gõ tên file.bak (ví dụ: Hoadon.bak) vào mục File name.

Để kiểm tra các lựa chọn, bạn hãy chọn “Options” từ menu phía trên bên phải (hình 7)
Tập các tùy chọn đầu tiên được dán nhãn “Overwrite Media
Tập này được sử dụng điển hình khi backup vào băng. Còn khi backup vào ổ đĩa cứng, nếu bạn sử dụng tên duy nhất cho backup của bạn trên màn hình trước thì các tùy chọn này có thể được bỏ qua. Nếu tên backup không duy nhất, hãy chọn nút “Overwrite All existing backup sets”. Thao tác này sẽ tạo một file chỉ có backup gần nhất trong đó. Khi muốn khôi phục từ file này, bạn sẽ được nhắc nhở chọn thiết lập backup nào cư trú để khôi phục.
Trong phần Reliability, chọn “Verify backup when finished” để bảo đảm backup của bạn hợp lệ.
Phần Transaction Log sẽ được hiển thị màu xám vì Full Backup sẽ tự động bỏ bớt file bản ghi. Kích nút OK để bắt đầu quá trình backup.


Khi backup hoàn tất, một thông báo sẽ xuất hiện và nói rằng quá trình đã hoàn tất. Như vậy là công việc Backup của bạn đã thành công.


Tạo file Backup cũng có thể thực hiện bằng cách viết câu lệnh.
Để thực thi một backup bằng TSQL, bạn hãy mở một Query Window mới (Để mở Query Window, từ Management Studio, bạn kích nút New Query ở góc trên bên phải).
Để backup dữ liệu bạn có thể sử dụng thủ tục hệ thống như sau có tên backup database như cú pháp sau:
BACKUP DATABASE { database_name | @database_name_var }
TO <> [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
]
Để backup dữ liệu vào một tập tin chỉ định, bạn có thể sử dụng thủ tục hệ thống có tên backup database như cú pháp sau:
BACKUP DATABASE { database_name | @database_name_var }
<> [ ,...n ]
TO <> [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
Để backup một tập tin log, bạn có thể sử dụng thủ tục hệ thống có tên backup log như cú pháp sau:
BACKUP LOG { database_name | @database_name_var }
{
{[WITH {NO_LOG|TRUNCATE_ONLY}]}
TO <> [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text'| @text_variable } ]
[ [ ,] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text'| @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] NO_TRUNCATE ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
]
}

<> ::=
{
{ logical_backup_device_name | @logical_backup_device_name_var }
|
{ DISK | TAPE | PIPE}
=
{ 'temp_backup_device' | @ temp_backup_device_var }
}

<> ::=
{
FILE = { logical_file_name | @logical_file_name_var }
|
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

}

Diễn giải một số tham số trên:

- BLOCKSIZE: Tham số này tự động khi sử dụng đĩa cứng để lưu trữ tập tin backup dữ liệu , nếu sử dụng backup trên đĩa Tape thì cần cung cấp tham số tape backup.
- DIFFERENTAL: Differenttal backup chỉ backup những dữ liệu thay đổi so với lần backup trước đó. Trong trường hợp này thời gian backup nhỏ và nhanh và không gây ảnh hưởng đến dữ liệu đã backup trên đĩa nếu có lỗi trên đĩa backup.
- EXPIREDATE/RETAINDAYS: Cho phép thời gian hết hạn sau một thời gian backup.
- FORMAT/NOFORMAT: Nếu format sẽ phá hủy tất cả các dữ liệu đang tồn tại của đĩa backup.
- INIT/NOINIT: Cho phép/không cho phép ghi chồng lên thiết bị tạo phần trên.
- DESCRIPTION: Ghi chú cho phần backup.
- STATS: Hiển thị thanh program bar.
Dưới đây là vài ví dụ về câu lệnh thực thi backup dữ liệu vào ổ cứng để các bạn tham khảo:

VD 1.
Backup database

BACKUP DATABASE Hoadon
TO DICK= ‘G:\ Hoadonbackup.bak’
WITH
DESCRIPTION = ‘Backup database Hoadon vào ổ đĩa G’,
STATS
GO

Sau khi cho thực hiện lệnh backup Databse xong bạn sẽ thấy mấy dòng thông báo cho bạn biết quá trình backup đã thành công như dưới đây.


VD 2. Backup transaction log
BACKUP LOG Hoadon
TO DISK = ' G:\ Hoadonbackup.TRN'
WITH
DESCRIPTION= ‘Backup log Hoadon vao o dia G’,
STATS
GO

Sau khi cho thực hiện lệnh backup log xong bạn sẽ mấy dòng thông báo cho bạn biết quá trình backup đã thành công như dưới đây.



Chú ý‎‎‎‎:
Câu lệnh backup bắt đầu bằng việc chỉ ra cơ sở dữ liệu được backup. Tuy nhiên không có cách nào để có thể thực hiện backup tất cả các cơ sở dữ liệu mà chúng chỉ có thể được thực hiện một cách riêng lẻ. Chúng tôi sẽ giới thiệu cho các bạn một kịch bản đơn giản và một nhiệm vụ trong đó có nhóm tất cả các cơ sở dữ liệu. Câu lệnh tiếp theo chỉ định rằng chúng ta sẽ backup vào đĩa và đích của file. Nếu chúng ta backup vào băng, hãy sử dụng “To TAPE” thay cho “To Disk”. Cuối cùng, “With Format” có nghĩa tạo một file mới. Không có câu lệnh cuối cùng nếu backup đã tồn tại thì backup mới của bạn sẽ gắn thêm vào nó.

II. Restore (Khôi phục) CSDL trong SQL Server:

1> Hướng dẫn chung về cách restore (Khôi phục) một cơ sở dữ liệu đã được backup trong SQL Server.
Quay lại với ví dụ về lịch trình backup dưới đây để các bạn dễ hiểu hơn về restore (Khôi phục) một cơ sở dữ liệu đã được backup trong SQL Server.


Theo như lịch trình backup trên, giả sử database bị hỏng vào thời điểm 3h PM ngày thứ 6, bạn cần khôi phục lại database theo trình tự sau:
Bước 1. Khôi phục từ bản full backup gần với thời điểm có sự cố nhất (bản full backup của ngày thứ 4). Nó sẽ làm 2 chuyện : copy data, log, index... từ đĩa backup vào Data Files.
Bước 2. Khôi phục từ bản differential backup gần với thời điểm có sự cố nhất (bản differential backup lúc 5h PM của ngày thứ 5).
Bước 3. Khôi phục tất cả các transaction log backup kể từ sau lần diferential backup gần nhất (bản transaction log backup tại thời điểm 12h PM của chính ngày xảy ra sự cố)


Bước 1 và bước 2 sẽ phục hồi database trở lại trạng thái giống như lúc 5h PM ngày thứ 5. Ở bước 3, với mỗi lần khôi phục transaction log thì các thao tác chứa trong đó được đem ra thực hiện lại trên database (gọi là log forwarding) và do đó đưa nó về trạng thái gần hơn thời điểm xảy ra sự cố. Như vậy sau khi hoàn tất khôi phục transaction log backup lúc 12h AM ngày thứ 6 thì database sẽ ở vào trạng thái giống như lúc 12h AM ngày thứ 6 đó. Tuy nhiên các thay đổi diễn ra trong 3 tiếng sau đó (từ sau 12h AM đến 3h PM) đã vĩnh viễn bị mất.
Trong trường hợp may mắn hơn, khi sự cố xảy ra mà file transaction log vẫn còn nguyên vẹn, bạn sẽ có cơ hội đưa database trở lại trạng thái ngay trước khi có sự cố, và do đó không có mất mát dữ liệu (Trường hợp này chỉ có thể thực hiện nếu Transaction Log File được chứa trong một đĩa khác với đĩa chứa Data File nên không bị hư và vẫn còn hoạt động). Việc đầu tiên bạn cần làm là thực hiện ngay transaction log backup (nên nhớ, không được vội vàng khôi phục từ bản full backup). Sau đó các bước tiếp theo sẽ tương tự như trên:
Bước 1. Sao lưu transaction log. Người ta còn gọi file backup trong trường hợp này là " the tail of the log" (cái đuôi).Khi backup "cái đuôi" này bạn cần phải dùng option NO_TRUNCATE bởi vì thông thường các Transaction Log Backup sẽ truncate(xoá) những phần không cần dùng đến trong transaction log file, đó là những transaction đã được commited và đã được viết vào database (còn gọi là inactive portion of the transaction log) để giảm kích thước của log file. Tuy nhiên khi backup phần đuôi không được truncate để đảm bảo tính consistent (nhất quán) của database.
Bước 2. Khôi phục từ bản full backup gần với thời điểm có sự cố nhất (bản full backup của ngày thứ 4). Nó sẽ làm 2 chuyện : copy data, log, index... từ đĩa backup vào Data Files và sau đó sẽ lần lượt thực thi các transaction trong transaction log. Lưu ý ta phải dùng option WITH NORECOVERY trong trường hợp này (tức là option thứ 2 "Leave database nonoperational but able to restore additional transaction logs" trong Enterprise Manager). Nghĩa là các transaction chưa hoàn tất (incomplete transaction) sẽ không được roll back. Như vậy database lúc này sẽ ở trong tình trạng inconsistentkhông thể dùng được. Nếu ta chọn WITH RECOVERY (hay "Leave database operational. No additional transaction logs can be restored " trong Enterprise Manager) thì các incomplete transaction sẽ được roll back và database ở trạng thái consistent nhưng ta không thể nào restore các transaction log backup được nữa.
Bước 3. Khôi phục từ bản differential backup gần với thời điểm có sự cố nhất (bản differential backup lúc 5h PM của ngày thứ 5).
Bước 4. Khôi transaction log tại thời điểm 12h PM, và cuối cùng bản lúc 3h PM ("Cái Ðuôi" mà bạn vừa thực hiện ở bước 1). Quá trình này gọi là Database Recovery.
Chú ý‎‎‎‎‎: Sự khác nhau giữa Database RestorationDatabase Recovery trong SQL Server khác nhau ở chỗ Database Restoration là restore database từ một file backup nghĩa là chỉ đơn giản tái tạo lại database từ những file backup và thực thi lại những transaction đã được commit nhưng database có thể ở trong trạng thái inconsistent và không sử dụng được. Nhưng khi nói đến recover nghĩa là ta không chỉ phục hồi lại data mà còn bảo đảm cho nó ở trạng thái consistent (ổn định) và sử dụng được (usable).
Cho nên việc backup Transaction Log File sẽ giúp cho việc recovery data tới bất kỳ thời điểm nào trong quá khứ. Ðối với Simple Recovery Model ta chỉ có thể recover tới lần backup gần nhất mà thôi.
Như vậy khi restore database ta có thể chọn WITH RECOVERY để roll back các transaction chưa được commited và database có thể hoạt động bình thường nhưng ta không thể restore thêm backup file nào nữa, thường lựa chọn này được chọn khi restore file backup cuối cùng trong chuỗi backup.

Nếu chọn WITH NORECOVERY các transaction chưa được commited sẽ không được roll back do đó SQL Server sẽ không cho phép ta sử dụng database nhưng ta có thể tiếp tục restore các file backup kế tiếp, thường option này được chọn khi sau đó ta còn phải restore các file backup khác.

Bạn cũng có thể chọn một lựa chọn trung lập hơn là WITH STANDBY (tức là lựa chọn thứ 3 "Leave database read-only and able to restore additional transaction logs" trong Enterprise Manager). Với lựa chọn này bạn sẽ có luôn đặc tính của hai lựa chọn trên : các incomplete transaction sẽ được roll back để đảm bảo database consistent và có thể sử dụng được nhưng chỉ dưới dạng Read-only mà thôi, đồng thời sau đó bạn có thể tiếp tục restore các file backup còn lại (SQL Server sẽ log các transaction được roll back trong undo log file và khi ta restore backup file kế tiếp SQL Server sẽ trả lại trạng thái no recovery từ những gì ghi trên undo file). Người ta chọn lựa chọn này khi muốn restore database trở lại một thời điểm nào đó (a point in time) nhưng không rõ là đó có phải là thời điểm mà họ muốn không, cho nên họ sẽ restore từng backup file ở dạng Standby và kiểm chứng một số data xem đó có phải là thời điểm mà họ muốn restore hay không (chẳng hạn như trước khi bị xóa hay trước khi một transaction nào đó được thực thi) trước khi chuyển sang lựa chọn Recovery.

Tóm lại: Trước khi thực hiện restore database chúng ta phải xác định được thứ tự file cần restore. Các thông tin này được SQL Servicer chứa trong msdb database và sẽ cho ta biết backup device nào, ai backup vào thời điểm nào và cần restore để có được dữ liệu như thế nào. Sau đó mới tiến hành restore.

2>
Hướng dẫn các bước thực hiện restore (khôi phục) một cơ sở dữ liệu trong SQL Server.

Ðể thực hiện restore trước hết bạn hãy khởi động chương trình SQL Server lên sau đó nhấn phải chuột vào Databases->chọn Restore Database... (Bạn cũng có thể nhấn phải chuột vào một database khác để nhấn phải chuột và chọn Restore Database).


Tại to Database chọn tên databse đang tồn tại hoặc gõ tên một database mới mà bạn cần gán giữ liệu restore vào nó.


Chú ý‎‎‎‎:
Tại to Database.

  • Nếu bạn chọn một cơ sở dữ liệu hiện có, thì cơ sở dữ liệu hiện có của bạn sẽ bị thay thế bởi các dữ liệu từ bản sao lưu.
  • Nếu bạn gõ một tên cơ sở dữ liệu hiện tại không tồn tại trong việc cài đặt SQL Server của bạn, nó sẽ được tạo ra.

Sau đó nhấp vào nút ‘From device’ phía dưới mục ‘Source for restore’, và nhấn vào dấu ba chấm “…” phía sau nó (như hình dưới đây).


Đặt 'File' là phương tiện sao lưu và sau đó nhấp vào ‘Add’.

Bạn nhấn chọn file SQL đã backup từ trước, nó có đuôi là “*.BAK” tập tin mà bạn đang muốn khôi phục (Ví dụ file cần restore của tôi là Hoadon.bak như hình bên dưới). Sau đó nhấn OK để sang bước tiếp theo.

Nhấn OK tiếp

Tiếp theo, bạn hãy chọn thời điểm và lọai kiểu datafile (Full,Different hoặc Transaction) mà bạn muốn Restore (khôi phục). Từ một tập tin sao lưu SQL có thể giữ nhiều bản sao lưu bạn có thể thấy nhiều hơn một điểm khôi phục được liệt kê.
Tại thời điểm này, đủ thông tin đã được nhập vào cho cơ sở dữ liệu được phục hồi. Tuy nhiên, SQL tập tin sao lưu lưu trữ thông tin về nơi tập tin dữ liệu được sao chép vì vậy nếu có bất kỳ tập tin vấn đề hệ thống như một thư mục đích không tồn tại hoặc tập tin dữ liệu tên xung đột sẽ xảy ra lỗi. Những vấn đề này là phổ biến khi khôi phục lại một sao lưu tạo ra trên một cài đặt SQL Server khác nhau.

Để xem lại và thay đổi các thiết lập hệ thống tập tin, nhấp vào “Options” ở bên trái trong hộp thoại Restore Database.

Trên trang tùy chọn, bạn sẽ muốn chắc chắn rằng các 'Restore Khi' điểm cột vị trí thư mục hợp lệ (bạn có thể thay đổi chúng khi cần thiết). Các tập tin của tôi không có để tồn tại, tuy nhiên đường dẫn thư mục phải tồn tại. Nếu các tập tin tương ứng có tồn tại, SQL Server sau một bộ quy tắc đơn giản:

  • Nếu “To database” (từ trang Tổng) phù hợp với bản khôi phục lại bản sao lưu cơ sở dữ liệu (tức là khôi phục lại cơ sở dữ liệu phù hợp), các tập tin tương ứng sẽ được ghi đè như một phần của việc khôi phục lại.
  • Nếu “To database” không phù hợp với sao lưu cơ sở dữ liệu phục hồi (tức là khôi phục lại một cơ sở dữ liệu khác nhau), thì cơ sở dữ liệu bị ghi đè lên hiện tại sẽ cần phải được kiểm tra cho quá trình khôi phục hoàn thành. Sử dụng chức năng này cẩn thận vì bạn có khả năng có thể khôi phục lại cơ sở dữ liệu thông tin sao lưu trên đầu trang của tập tin dữ liệu từ một cơ sở dữ liệu hoàn toàn khác nhau.

Nói chung, bạn có thể cho biết các cơ sở dữ liệu khác nhau dựa trên các 'Tên gốc File' mà là tên nội bộ SQL Server sử dụng để tham khảo các tập tin tương ứng.
Sau khi đã lựa chọn các tùy chọn trong các bước của việc khôi phục, nhấn OK. Sau đó bạn sẽ thấy hôp thoại thông báo quá trình restore thành công như dưới đây.



Khôi phục dữ liệu (Restore Database) sử dụng bằng câu lệnh (TSQL)

Cũng tương tự như Backup một cơ sở dữ liệu, chúng ta cũng có thể dùng bằng câu lệnh cho việc Restore. Để thực thi restore bằng TSQL, bạn hãy mở một Query Window mới (Để mở Query Window, từ Management Studio, bạn kích nút New Query ở góc trên bên phải).

Phục hồi dữ liệu sử dụng thủ tục sau:
RESTORE DATABASE { database_name | @database_name_var }
[ FROM <> [ ,...n ] ]
[ WITH
[ DBO_ONLY] [[,] FILE =file number]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ] [ ,...n ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = {undo_file_name} ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
]
Để phục hồi giữ liệu vào một tập tin chỉ định, bạn có thể sử dụng thủ tục hệ thống có tên restore databse như cú pháp sau.
RESTORE DATABASE { database_name | @database_name_var }
<> [ ,...n ]
[ FROM <> [ ,...n ] ]
[ WITH
[ DBO_ONLY] [[,] FILE =file number]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] NORECOVERY ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ =percentage ] ]
]
Để phục hồi tập tin log, bạn có thể sử dụng thủ tục hệ thống có tên restore log như cú pháp sau .

RESTORE LOG { database_name | @database_name_var }
[ FROM <> [ ,...n ] ]
[ WITH
[ DBO_ONLY] [[,] FILE =file number]
[ [ , ] FILE = file_number ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name} ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [=percentage ] ]
[ [ , ] STOPAT = { date_time | @date_time_var }]
]
<> ::=
{
{ 'backup_device_name' | @ backup_device_name_var } | { DISK | TAPE | PIPE}
=
{ 'temp_backup_device' | @temp_backup_device _var }
}
<> ::=

{
FILE = { logical_file_name | @logical_file_name_var }
|
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

}

Diễn giải một số tham số trên:
DBO_ONLY: Khi cơ sở dữ liệu phục hồi thành công, cơ sở dữ liệu sễ thiết lập chế độ dbo_only.

- FILE: Cho phép chọn restore gần nhất trong một file chứa nhiều lần backup.
- MOVE: Cho phép phục hồi cơ sở dữ liệu backup khác với cơ sở dữ liệu đang sử dụng.
- REPLACE: Cho phép phục hồi và ghi đè lên cơ sở dữ liệu đang sử dụng.
Dưới đây chúng tôi xin lấy một ví dụ ngắn gọn về restore bằng câu lệnh.
VD:
/*Restore database*/
RESTORE DATABASE Hoadon
FROM DISK = ‘G:\Hoadonbackup.bak’
WITH
DOB_ONLY,
NORECOVERY,
STATS
GO
VD:
/*Restore log*/
RESTORE LOG Hoadon
FROM DISK = ‘G:\Hoadonbackup’
WITH
DOB_ONLY,
NORECOVERY,
STATS
GO

Sau khi các bạn chạy câu lệnh restore các bạn sẽ thấy mấy dòng thông báo quá trình restore thành công tương tự như chỗ tôi khoanh màu đỏ trong hình.


Kết luận

Việc bảo vệ các cơ sở dữ liệu tránh hư hỏng, mất mát thông tin là vấn đề tối quan trọng đối với những cá nhân doanh nghiệp có sử dụng hệ thống lưu trữ quản lý cơ sở dữ liệu, đặc biệt là đối với những người quản trị hệ thống (Database Administrator). Vì vậy việc bảo quản tốt cơ sở dữ liệu, biết cách sắp xếp lịch trình backup dữ liệu và có thể thực hiện restore dữ liệu thành công bất kể lúc nào cần là một mục tiêu quan trọng nhất. Hi vọng với sự hướng dẫn sơ lược của chúng tôi trên đây cùng với sự tìm tòi học hỏi và tự thực hành của bạn sẽ giúp cho cơ sở dữ liệu của bạn luôn được an toàn trong mọi tình huống.

Thứ Hai, 10 tháng 1, 2011

Chức năng của Mdaemon Mail Server

Sưu tầm được 1 số bài viết về
Groupware Functions in MDaemon
Tính năng nhóm của MDaemon 8 đã đến với cả những đặc tính mới và nâng cao được thiết kế để hỗ trợ các công việc cần sự cộng tác. Được tích hợp vào trong WorldClient web mail platform của MDaemon, khả năng làm việc nhóm này cho phép người dùng chia xẻ các calendar, contact, task list và email messages, cộng với bất kể những gì người dùng có thể đặt vào trong các thư mục email cá nhân. Lịch làm việc được cập nhật cho phép người dùng thiết lập chính xáccác cuộc hẹn và các sự kiện định kỳ hàng ngày , hàng tuần, hàng tháng và hàng năm nữa. Người dung cũng có thể thêm vào danh sách những người được mời tham dự một cuộc họp và gửi giấy mời đến họ, tất cả từ thư mục lịch làm việc. Nói tóm lại, chức năng lập lịch biểu của WorldClient khiến cho việc quản lý thời gian của người dùng nhanh và dễ dàng hơn.

Sender Policy Framework in MDaemon 7.1+
Những địa chỉ email giả mạo sẽ thúc đẩy gia tăng nhanh sự lan tràn thư rác và những virus khi ẩn giấu sự nhận dạng thực sự của những kẻ phải chịu trách nhiệm trong việc này. Những kẻ giả mạo này sử dụng những địa chỉ email của người khác không hề được phép và những người này cũng không hề hay biết. Bằng cách này bất cứ ai cũng có thể gửi email giả mạo cho bất cú người nào. Bắt đầu từ phiên bản 7.1, MDaemon đưa ra SPF như một tuỳ chọn bảo mật. Sender Policy Framework (SPF) là một tiêu chuẩn mở của giao thức bảo mật được thiết kế để dò tìm những địa chỉ email giả mạo. SPF có thể xử lý các email được gửi đến theo trình tự ưu tiên để download các message, do đó nó tiết kiệm thời gian xử lý và băng thong cho người dùng.

Address Book Sync

Việc triển khai một hộp địa chỉ dùng chung cho tất cả những người dùng của một email domain cung cấp những thuận lợi như sự nhất quán và hiệu quả của việc duy trì tập trung nguồn thông tin. Sổ địa chỉ dành của Mircosoft Outlook và Outlook Express dành cho những ứng dụng chỉ định cụ thể thường không hỗ trợ việc chia sẻ thông tin với những gói phần mềm khác. Dành cho dịch vụ web mail WorldClient của nó, MDaemon 6.5 giải quyết vấn đề này bởi việc sử dụng công nghệ chuẩn XML cho sổ địa chỉ dung chung. Bằng việc sử dụng công cụ ComAgent miễn phí của MDaemon, mỗi người dùng Windows có thể đồng bộ giữa thông tin liên hệ của cá nhân họ với những sổ địa chỉ Outlook (MAPI) hoặc Outlook Express (WAB) và XML. Điều đó có nghĩa là thông tin liên hệ dành cho máy khách email chạy trên nền Windows và email dựa trên nền web WorldClient là như nhau.

Calendaring Group Scheduling
MDaemon Calendar kết hợp các chức năng của personal calendar và wall calendar vào một gói, điều đó tốt hơn là để cả hai tồn tại riêng rẽ. Bởi vì phần mềm lịch này thuận tiện và dễ dàng sử dụng, nó thích hợp để nhìn thấy hoạt động thực tiễn của nhóm hơn là những hoạt động của người dùng trước trên một tờ giấy . Hơn nữa nó gắn kết để chuẩn hoá với các sự điều hành nội bộ của các hệ thống khác.

Content Filtering
Chức năng lọc nội dung trên server chắc chắn rằng nội dung trên server đã được lọc. Nói chung, những kỹ thuật viên sẽ hiểu các qui tắc lọc tốt hơn là những người dùng thong thường hàng ngày. Khả năng lọc của MDaemon có nhiều loại khác nhau, dễ dàng thay đổi và dễ dàng học để sử dụng. Những người gửi, người nhận và người quản trị có thể nhận được thông báo cho những hoạt động lọc qua những message cá nhân chi tiết. Chức năng lọc có thể giảm bớt những chi phí phân phát email bằng việc loại trừ và giảm bớt những message không mong đợi để giảm thiểu việc sử dụng băng thông

Email Gateways
Cổng giao tiếp email sẽ tập hợp, lưu trữ và chuyển tiếp các message đến một domain server sơ cấp. Một cổng giao tiếp điển hình không có những trương mục cá nhân. Những cổng giao tiếp email có thể giúp cả doanh nghiệp lớn và nhỏ giải quyết những vấn đề phải tiếp nhận từ các dịch vụ Internet email. Dành cho những tổ chức nhỏ, một cổng giao tiếp có thể làm một email domain cá nhân được thoả mãn. Điều đó có thể đạt được là vì nhà cung cấp dịch vụ sẽ cung cấp một cổng giao tiếp với một chi phí hợp lý khi chia sẻ phần cứng và phần mềm cho những người dùng nhỏ hơn. Những domain sơ cấp trong những trường hợp như vậy có thể có cả những đường kết nối thường trực và đường kết nối dialup tới Internet . Với sự thiết lập lớn hơn có thể sử dụng các cổng giao tiếp làm nhiệm vụ nhiệm vụ bảo mật phức tạp hơn khi cung cấp một sự bảo vệ và lọc nội dung cho những hệ thống mail dễ bị tổn thương hơn khi bị tấn công. Các cổng giao tiếp cũng có thể được cấu hình để cung cấp việc sao lưu phục hồi và chứa dữ liệu của email theo thời gian thực khi một domain sơ cấp offline vì bất kể lý do nào Một bản sao của MDaemon có thể điều hành đồng thời nhiều cổng giao tiếp của nhiều email domain thậm chí ngay cả khi đang điều hành domain server sơ cấp của chính nó.

MDaemon Standard vs. Pro
MDaemon có hai phiên bản - Standard và Pro. MDaemon Standard giới thiệu một dịch vụ email cơ bản được xây dựng trong phạm vi một SMTP server để truyền mail, và một POP3 server để phân phối các message đến người dùng. Phiên bản Pro có thêm các tính năng đẳng cấp cao hơn dành cho người quản trị và những người đăng ký sử dụng email

Public Folders Concepts and Applications
Các thư mục email dùng chung thúc đẩy và làm cho việc chia xẻ các thông tin tập trung được đễ dàng. Các hộp thư đến của các nhóm thảo luận, các thông báo, và các nhóm làm việc chung được hỗ trợ bởi các thư mục dùng chung email Các thư mục dùng chung có thể được mở cho bất kỳ ai với một trương mục người dùng được hỗ trợ trên mail server. Việc truy cập cũng có thể bị hạn chế đối với những nhóm nhỏ hơn. Trạng thái đánh dấu của message trong các thư mục dung chung có thể được yêu cầu cho mỗi người dùng hoặc được chia xẻ cho tất cả các thành viên của nhóm. Người quản trị email tạo những thư mục dùng chung và qui định các quyền hạn truy cập. MDaemon hỗ trợ các thư mục chung dành cho email. Khi đượcánử dụng cùng với InsightConnector, các thư mục dùng chung cũng có thể được sử dụng cho Outlook Calendar và chia sẻ tài liệu trực tiếp. Thu mục Email dung chung là một tính năng của các máy chủ Internet Message Access Protocol (IMAP – Giao thức truy cập thư tín internet).

Security Tools for Spam Control
Những tin nhắn không được yêu cầu gửi đến - Unsolicited Bulk Email (UBE), cũng bị coi như là thư rác, tiêu tốn của các doanh nghiệp và cá nhân hàng tỷ đô la mỗi năm Nó làm tiêu tốn thời gian và những nguồn lực trong khi các tài nguyên này thì lại bị giới hạn hay có giá trị. Một trong những công cụ chính của những kẻ tạo thư rác là sử dụng không phép server của bên thứ ba không liên quan với chức năng chuyển tiếp email mở. Điều đó có nghĩa là bất kỳ ai cũng có thể gửi một email thông qua server này đến một người khác thậm chí ngay cả khi người gửi và người nhận đều không có một trương mục trên server này. Thư rác cũng có thể đến từ nhiều người dùng được chứng thực với những trương mục trên server. Để giúp đỡ việc ngăn chặn thư rác, những email server hiện đại phải được cấu hình với các tuỳ chọn để chặn những kẻ thứ ba không liên quan chuyển tiếp thư ráẩttí phép qua server cũng như kiểm soát việc truy cập bằng nhiều những công cụ khác nữa. Những tất cả những công việc này cũng vẫn tiếp tục phải cho phép người dùng hợp lệ gửi và nhận mail từ những vị trí từ xa. MDaemon bao gồm những lựa chọn được yêu cầu này để chặn việc chuyển tiếp email trái phép, trong khi cho phép người dùng sử dụng server từ bất kỳ một vị trí nào trên thế giới. Một sự thiết lập server để chống lại thư rác cũng bảo vệ hệ thống thoát khỏi nhiều kiểu tấn công khác nhau bao gồm cả việc bẻ khoá đột nhập vào hệ thống.

MDaemon GroupWare (an alternative to MS Exchange)
MDaemon GroupWare cho phép doanh nghiệp sử dụng tất cả các chức năng groupware của Microsoft Outlook mà không phải chịu chi phí của Microsoft Exchange Server. Công việc kinh doanh, các tổ chức từ thiện, trường học, và các cá nhân sử dụng Outlook bởi các công cụ thiết thực của nó trong việc quản lý thời gian, liên lạc, tài liệu và email. Tuy nhiên hầu hết các đặc tính tốt nhất của Outlook - bao gồm cả việc chia xẻ thông tin - chỉ làm việc đầy đủ khi đưo9ực kết hợp với Microsoft Exchange, một phần mềm email server. Dành cho những tổ chức vừa và nhỏ, Microsoft Exchange trở nên quá đắt về những yêu cầu cho phần cứng, phần mềm và giấy phép của nó, thêm vào đó là đòi hỏi cao cho sự đào tạo đối với người quản trị hệ thống. MDaemon GroupWare đã giải quyết vấn đề này khi đưa ra tập hợp các tính năng hoàn chỉnh của Outlook, bao gồm cả chức năng chia xẻ. MDaemon GroupWare là một phần mềm ứng dụng khách/chủ với những thành phần trên cả MDaemon server và trên máy trạm. Chúng cho phép chia xẻ các thư mục của Outlook, calendars và contacts và tất cả các “đối tượng” kháccủa Outlook nữa. Chúng cho phép các công ty sử dụng các tính năng hoàn chỉnh của Outlook với chi phí tiết kiệm và dễ dàng quản trị của MDaemon.

Web Administration
WebAdmin for MDaemon là một phần mềm quản trị email chạy trên trình duyệt web. Chúng cung cấp sự truy cập quản trị cho hầu hết các cấu hình hệ thống được sử dụng thông thường và các thiết lập trương mục người dùng thông qua trình duyệt có thể sử dụng javascript. Thông qua việc quản trị web, người quản trị hệ thống có thể thay đổi các thiết lập cho domain sơ cấp, thêm vào domain thứ cấp bất kỳ. Nó bao gồm trương mục quản trị trong tất cả các domain. Một trong những thuận lợi chính của công việc quản trị teen trình duyệt web là cho người quản trị domain các quyền dành cho việc cấu hình các domain và trương mục người dùng của domain. Thêm vào đó, người dung trương mục cá nhân có thể thay đổi nhiều sự thiết lập cho họ. Cả người quản trị domain và hệ thống có thể điều khiển bất cứ ai có khả năng thay đổi bất kẻ những gì thông qua sự thiết lập mặc định và tùy biến bên trong domain của họ

Fax Management

Máy chủ fax đặt một digital spin trong công nghệ analog tuy đã cũ nhưng đáng tin cậy. Nó gửi và nhận fax giữa các máy tính cá nhân trên mạng LAN, WAN hoặc Internet. Nó cho phép người sử dụng chia xẻ máy fax hoặc fax modem hoặc cả hai nếu chúng có thể truy cập được qua mạng. RelayFax tích hợp việc gửi và nhận fax thông qua hầu hết các email server, bao gồm cả email server của Alt-N MDaemon. Thông qua RelayFax, những người có quyền sử dụng email có thể gửi các email có đính kèm file đến mailbox và sau đó chuyển tiếp chúng như là gửi một bản fax tiêu chuẩn đến bất kỳ một thiết bị fax nào trên thế giới. RelayFax sử dụng công nghệ client/server, với server chạy trên nền tảng của phần cứng là mạng và máy trạm là máy tính cá nhân hoặc máy tính xách tay.

IMAP and POP Summaries
POP3 và IMAP là hai cách truy cập email thông qua Internet. POP3, là phương thức cũủtong hai phương thức, làm việc tốt với người dùng có một máy tính và muốn lưu trữ tất cả mail của họ trên máy tính đó. IMAP cung cấp ứng dụng bao gồm lưu trữ và xử lý mail trên server. IMAP làm việc tốt hơn tại những nơi có nhiều người dùng và nhiều máy tính và cần truy cập mail của họ từ bất cứ máy nào cũng như qua web. Tài liệu này sẽ giải thích cả hai giao thức và lý luận đơn giản cho sự cần thiết triển khai IMAP

MDaemon AntiVirus
Virus đã làm thiệt hại hàng tỷ đô la Mỹ hàng năm đối với những khoảng thời gian ngừng hoạt động, mất năng suất lao động, và những nố lực phục hồi khả năng làm việc của máy tính. MDaemon AntiVirus là một phần mềm kiểm tra virus hoàn chỉnh, với khả năng tự động cập nhật cho các công cụ quét virus và những file định danh cho một virus đã biết. Khi được kết hợp với nhưng biện pháp phòng ngừa khác MDaemon AntiVirus có thể giảm bớt, hạn chế hoặc loại trừ sự xâm nhập của virus vào văn phòng của bạn. Nó cũng ngăn cản những virus tình cờ bị gửi đi đến những người khác trong hoạt động kinh doanh của bạn. Thêm vào các file định danh virus, MDaemon AntiVirus sử dụng phương pháp dò tìm heuristic, có thể kiểm tra email và những file đính kèm để phát hiện các đặc tính virus MDaemon AntiVirus là phần mềm plug-in chạy trên một dịch vụ độc lập dành cho MDaemon email server của Alt-N.

Setting Up Email Catalogs
Catalog thường được nhìn nhận như là một công cụ vô cùng hữu ích cho việc phân bố các tài liệu và các file. Catalog hoạt động nhanh được cấu trúc hoá và bảo vệ tốt hơn FTP servers hoặc HTTP servers . Chúng có thể chứa đựng các kiểu file từ hình ảnh, tài liệu cho đến các chương trình ứng dụng và script. E-catalog được thêm vào với đặc tính dễ sử dụng và thay đổi do đó nội dung luôn được cập nhật. MDaemon chứa đựng các công cụ dành cho việc tạo, sửa và xoá các catalog. Chúng dễ sử dụng cho người mới bắt đầu cũng như người quản trị mạng chuyên nghiệp

Using ODBC with MDaemon 6.5
Có thể duy trì những bản ghi trương mục người dùng trên MDaemon một cách dễ dàng nhưng các bản ghi đó có thể trở nên dư thừa. Việc dư thừa này có thể xảy ra nếu như doanh nghiệp cùng lúc giữ những thông tin được đưa vào máy tính về người lao động hay các email của khách hàng. Các bản ghi dư thừa sẽ làm lãng phí thời gian và thêm vào những rủi ro và mâu thuẫn giữa nhiều nguồn dữ liệu khác nhau. MDaemon 6.5 giải quyết các vấn đề này bởi việc cho phép các bản ghi trương mục người dùng được duy trì trên bất kỳ cơ sở dữ liệu nào với một giao diện Open Database Connectivity (ODBC) - Kết nối các hệ cơ sở dữ liệu mở. MDaemon 6.5 cũng có thể truy cập các bản ghi danh sách email thông qua một kết nối ODBC.