Nov 24, 2010

Backup và khôi phục SQL 2008

 
Trong bài này, chúng tôi sẽ giới thiệu cho các bạn việc backup và khôi phục cơ sở dữ liệu SQL Server. Ngoài việc giới thiệu các tùy chọn backup chuẩn như Full Backups và Differential Backups, các tính năng mới của SQL Server 2008 như Backup Compression cũng sẽ được giới thiệu trong loạt bài này. Backup từ SQL Server Management Studio cũng như từ tiện ích dòng lệnh. Bên cạnh đó còn có việc backup cơ sở dữ liệu hệ thống cho người dùng đã tạo các cơ sở dữ liệu. Xem xét đến Scheduled Backups, kiểm tra độ bảo mật và các vấn đề đăng nhập có liên quan đến việc chuyển cơ sở dữ liệu từ máy chủ test sang máy sản xuất. 
Full Backup

Để bắt đầu, chúng tôi bắt đầu bằng giới thiệu về Full Backups, Full Backups có thể được hiểu là một cách đơn giản nhất để cung cấp một giải pháp backup hoàn tất. Full Backup sẽ tạo một file chứa toàn bộ cơ sở dữ liệu, gồm có Transaction Logs. (Trong phần tiếp theo chúng tôi sẽ giới thiệu về Transaction Logs và các mô hình khôi phục Recovery Models). Khi xem một cơ sở dữ liệu từ bên trong SQL Server Management Studio Object Explorer, bạn sẽ bắt gặp một số đối tượng khác nhau như Tables, Views, Stored Procedures và Security.
 
Tất cả các đối tượng này đều được gộp bên trong một file backup đầy đủ của SQL Server. Để tạo một backup, bạn hãy kích vào cơ sở dữ liệu, chọn Tasks sau đó kích Backup. Thao tác này sẽ làm xuất hiện cửa sổ “Back Up Database” với các thiết lập General. Source sẽ được điền bằng cơ sở dữ liệu mà bạn chọn. Bảo đảm rằng tùy chọn “Full” phải được lựa chọn cho kiểu backup này.
 
Các tùy chọn khác như Differential và Transaction Log cũng sẽ được giới thiệu đến trong phần sau. Trong phần Backup Component, bạn hãy chọn Database.
 
Một nút tùy chọn khác là “Files and Filegroups” cũng được sử dụng khi cơ sở dữ liệu đã được tạo để mở rộng thành nhiều file trên hệ điều hành. Vấn đề này đôi khi được thực hiện trên các cơ sở dữ liệu rất lớn nhằm tăng vấn đề hiệu xuất. Nếu bạn nằm trong trường hợp này, hãy chọn cơ sở dữ liệu có bất kỳ và tất cả Filegroup.

Tiếp đến, đặt tên cho backup và phần mô tả cho nó.

Phần tiếp theo “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.

Tùy chọn cuối cùng trên màn hình này định vị địa điểm cho backup. Mặc định SQL Server sẽ đặt tất cả các backup vào thư mục MSSQL\Backup. Các backup được kết thúc bằng một mở rộng .BAK. Dù điều này là không cần thiết nhưng bạn cần lưu ý rằng có nhiều file đích có thể được chỉ định như hình bên dưới.
 
Điều này có thể cho phép các backup SQL trải rộng trên các đĩa cứng khác. Trong ví dụ trên, cả hai file đều được yêu cầu cho Restore. Kỹ thuật này cũng có thể được sử dụng để mở rộng các backup trên nhiều băng khi môi trường của bạn quá nhỏ cho việc nắm giữ toàn bộ cơ sở dữ liệu trên một băng.

Để 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.
 
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 tiếp theo, “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.

Phần cuối cùng gồm có các tùy chọn cho việc nén (chỉ có cho SQL Server 2008). Tính năng nén Compression là một tính năng mới trong SQL Server 2008. Nó có thể giảm được đến 20% kích thước vật lý của file gốc. Nếu tính năng này được sử dụng, Restore sẽ tự động nhận ra file nén này. Tuy nhiên có một điểm yếu đối với tính năng này đó là chiếm dụng nhiều tài nguyên máy tính trong suốt quá trình backup.

Kích nút OK trong phần góc dưới bên phải để 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.

Dòng lệnh

Backup cũng có thể được thực hiện từ cửa sổ dòng lệnh hoặc bằng kịch bản. Để 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). Câu lệnh dưới đây sẽ thực thi Full backup vào ổ đĩa cứng.
BACKUP DATABASE AdventureWorksLT2008
   TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\test.bak'
   WITH FORMAT;
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ó.

Kết luận

Quả thực có nhiều tùy chọn và nhiều kiểu backup khác nhau cho SQL Server, tuy nhiên Full Backup sẽ vẫn là tùy chọn có chứa tất cả các đối tượng có lien quan đến một cơ sở dữ liệu. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu đến việc khôi phục cơ sở dữ liệu cũng như việc kiểm tra Transaction Logs, Recovery Methods và các tùy chọn backup khác cùng cách quản lý chúng.
Văn Linh (Theo DatabaseJournal)

Nov 11, 2010

Tài liệu cấu hình Raid5 trên Ubuntu 8.04

How To Configure Software Raid5 In Ubuntu 8.04

Hướng dẫn chi tiết cách config Software Raid5 sử dụng Ubuntu 8.04
Ở đây mình sài Raid 5 nên mình sử dụng 3 ổ cứng
Hình sau đây sẽ cho các bạn biết sơ qua về việc mình phải làm



Bước 1:
Các bạn install bằng đĩa cách bình thường


Bước 2:
2.1:

Khi tới phần Partition Disk, chúng ta sẽ chọn chế độ Manual


Tại đây bạn sẽ thấy được 3 ổ đĩa của mình là sda, sdb và sdc , bạn chọn ổ sda và nhấn Enter, hệ thống sẽ hỏi bạn có muốn tạo 1 ổ đĩa trống không (tạm địch cho dể hiểu) bạn chọn Yes



2.2: Tạo phân vùng trên ổ sda

Sau đó bạn chọn vào vùng Free Space


Chọn Create a new partition để tạo 1 phân vùng mới cho sda


Bạn cho phân vùng này 400MB


Chọn nó là Primary


Bạn chọn Beginning


Bạn chọn vào phần Use as và nhấn Enter để chọn định dạng theo dạng physical volume for Raid và nhấn Enter, sau đó bạn chọn Done setting up the partition và nhấn Enter




Như vậy là bạn đã có 1 phân vùng sda1 400MB và đc định dạng ở dạng raid


Bạn cũng làm tưng tự như bước trên (2.2) cho 2 phân vùng còn lại, với sda2 : 267GB và sda3 : 1GB



Sau đó bạn sẽ có được 1 ổ sda như sau:


2.3:

Tiếp tục bạn sẽ chia 2 ổ sdb và sdc còn lại như đã chia với sda, bạn sẽ được:


2.4: Config Raid

Bạn chọn mục Configure software RAID


Bạn chọn chữ Yes và nhấn Enter


Bạn chọn Create MD divece, bạn chọn RAID1 vì là phân vùng dùng để boot nên bạn chọn Raid1 là được rồi



Vì bạn có 3 ổ sda sdb và sdc nên bạn cần nhập số 3 và chọn Continue


Tại đây bạn để số 0 cũng được vì nó sẽ tự sinh cho bạn md0, md1, md2


Bạn dùng phím Space để chọn 3 phân vùng sda1, sdb1, sdc1 và chọn Continue


Sau đó bạn chọn Finish


Như vậy chúng ta đã có Raid 1 dùng để boot với 3 phân vùng sda1, sdb1, sdc1 gợp lại, được mang tên là md0


Bạn làm tương tự với md1 làm thư mục gốc /, bạn nhớ chọn là Raid5 với sda2, sdb2 và sdc2


Cũng như trên bạn sẽ có md2 làm swap, bạn nhớ chọn là Raid5 gồm sda3, sdb3 và sdc3


Như vậy là ta đã có md0Raid1 sử dụng làm “boot”, md1Raid5 sử dụng làm thư mục gốc “/” md2Raid5 sử dụng làm “swap”


Bạn phải chắc chắn rằng các phân vùng đã được chia và định dạng giống hình trên, bạn chọn Finish


Sau đó bạn chon Yes


Bạn chọn Continue với cảnh báo như sau (tùy phiên bản của Ubuntu)


Lúc này máy của bạn sẽ được install như bình thường




2.5:

Sau khi install xong máy của bạn sẽ start lên và bạn đăng nhập với User và pass của bạn


Bạn dùng lệnh “#sudo su” để chuyển qua user root


Bạn dùng lệnh “#cat /proc/mdstat” để theo dõi quá trình Build Raid


Sau khi Build xong bạn sẽ được


Bạn dùng lệnh “#vi /etc/mdadm/mdadm.conf” để xem file cấu hình của Raid


Bạn dùng lệnh “#vi /etc/fstab” file của hệ thống


Và điều bạn cần làm nữa là mount về để sử dụng.

Nov 2, 2010

Cách chia subnet

Chia subnet là một trong những giải pháp hữu dụng để xây dựng mạng nội bộ, vừa bảo mật, ngăn chặn broadcast, vừa tiết kiệm tài nguyên trong việc phân phát địa chỉ IP cho từng máy trạm.

1. Quy hoạch địa chỉ IP
Bạn cần xây dựng một mạng nội bộ (mạng LAN) cho một văn phòng, một công ty quy mô vừa và nhỏ với khoảng 7 đến 8 phòng, mỗi phòng 30 máy. Vấn đề cần đặt ra là làm thế nào cho hiệu quả, vừa bảo mật được hệ thống mạng, phòng tránh các rủi ro có thể xảy ra, mà còn có thể tiết kiệm được tài nguyên mạng.

Một mô hình mạng LAN.
Một trong những phương pháp xây dựng hiệu quả là quy hoạch địa chỉ IP bằng cách chia subnet. Với phương án này, bạn sẽ chỉ cung cấp vừa đủ số địa chỉ IP cho các máy tính sử dụng, vừa chia ra thành nhiều mạng con, phòng tránh được hiện tượng broadcast và nếu xảy ra sự cố thì chỉ bị trong cục bộ một nhánh mạng con.

Một địa chỉ IP gồm 4 octet, mỗi octet là 1 byte chứa 8 bit, tổng cộng là 32 bit. Địa chỉ IP sẽ được nhận diện ở lớp A, B hay C thông qua địa chỉ subnet mask. Với bài toán như trên, chúng ta sẽ sử dụng lớp mạng C. Bạn cần 30 máy, ta thấy 25 = 32, trừ đi 2 địa chỉ đầu và cuối là địa chỉ network và địa chỉ broadcast của nhánh mạng, bạn sẽ còn lại 30 địa chỉ. Như vậy, 1 octec có 8 bit, ta sẽ lấy 28 - 23 = 25, nghĩa là bạn sẽ mượn thêm 3 bit để chia subnet cho mạng của mình.

Cách chia theo một thủ thuật như sau:
Lớp C có subnet mask 255.255.255.0 hay còn được viết là /24. Một octet có 8 bit, bạn mượn đi 3 bit thì số bit được mượn sẽ bật lên giá trị là 1, số bit còn lại sẽ vẫn nằm ở giá trị là 0.
1286432168421
1110000
0
Bạn lấy 3 bit có giá trị 1 cộng lại: 128 + 64 + 32 = 224. Tương tự, nếu bạn mượn 4 bit thì subnet mask sẽ là 240. Từ đó, để cho dễ nhớ, dân cư trên mạng đặt ra một bảng để tra cứu.
1128-128
2192-64
3224-32
4240-16
5248+8
6252+4
7254+2
8255+1
Bạn chỉ cần nhớ giá trị ở bit thứ 4 cần mượn sẽ có giá trị subnet mask tương ứng là 240, từ đó bạn cộng, trừ theo như bảng trên là tìm ra được địa chỉ subnet mask của các bit khác.

Trở lại bài toán trên, sử dụng lớp mạng C và mượn thêm 3 bit (24 + 3 = 27), bạn sẽ có subnet mask255.255.255.224, và mỗi nhánh mạng con sẽ được chia ra tương ứng như sau:
  • 0. 192.168.1.0/27
  • 1: 192.168.1.32/27
  • 2: 192.168.1.64/27
  • 3: 192.168.1.96/27
  • 4: 192.168.1.128/27
  • 5: 192.168.1.160/27
  • 6: 192.168.1.192/27
  • 7: 192.168.1.224/27
  • 8: 192.168.1.254/27
Ở đây, bạn lưu ý ở số thứ tự thứ 8, giá trị 224 + 32 = 256, nhưng do lớp C chỉ có 254 địa chỉ IP, địa chỉ 255 là địa chỉ broadcast, do vậy network ở đây là 192.168.1.254, và phòng số 8 bạn có thể đặt địa chỉ IP từ192.168.1.225/27 – 192.168.1.253/27. Tương tự, bạn đặt cho phòng số 1 dải địa chỉ IP: 192.168.1.1/27 – 192.168.1.30/27, trong đó có thể sử dụng địa chỉ 192.168.1.1 làm địa chỉ default getway cho phòng số 1 này.

2. Ứng dụng xây dựng hệ thống mạng
Bạn đã hoàn thành việc chia subnet, bây giờ sẽ ứng dụng vào trong mạng nội bộ. Lúc này các phòng đều là một nhánh mạng con, hoàn toàn tách biệt. Bạn không thể ngồi ở phòng số 1 để truyền dữ liệu, truy cập hoặc dùng giao thức ICMP như lệnh ping đến 1 máy khác ở phòng số 2.

Để các phòng có thể kết nối ra internet, bạn cần phải có một máy tính làm chức năng router. Máy router này sẽ giúp các máy trong từng mạng cục bộ kết nối đến modem ADSL và truy cập ra ngoài internet. Nếu bạn sử dụng thiết bị của Cisco như Router 2800 thì việc chia subnet trong router được gọi là kỹ thuật Inter Vlan.

Tùy theo chính sách bảo mật của công ty hay cơ quan mà bạn có thể xây dựng thêm tường lửa (firewall), access list và cơ chế Nat inside hay outside để các máy trạm truy cập ra ngoài internet, bên ngoài internet remote vào trong mạng nội bộ.