Bài giảng Cơ sở dữ liệu - Chương 5: Bảo mật và an toàn dữ liệu - Phạm Nguyên Thảo
Attach database: tạo database trên SQL Server
server từ các tập tin dữ liệu và nhật ký (.mdf, .ndf,
.ldf)
– Dùng thủ tục sp_attach_db
• Detach database: Tách database ra khỏi SQL
Server (không xoá các tập tin dữ liệu và nhật ký)
– Dùng thủ tục sp_detach_db
19 trang |
Chia sẻ: huongthu9 | Lượt xem: 454 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 5: Bảo mật và an toàn dữ liệu - Phạm Nguyên Thảo, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
Nội dung
• Trigger
• Khung nhìn
• Quản trị quyền người dùng
• Sao lưu và phục hồi dữ liệu
2
Ý nghĩa
• Sao lưu (backup): Tạo ra một bản sao của tình
trạng cơ sở dữ liệu (database) hiện tại
– Dự phòng cho trường hợp xảy ra sự cố (lỗi phần cứng,
phần mềm, hoặc lỗi của người khai thác)
– Có thể lập lịch thực hiện chức năng backup
• Phục hồi (restore)
– Tạo lại CSDL từ các tập tin backup
– Restore recovery
3
Tạo backup device
• Đặt một tên logic cho đường dẫn và tên tập tin vật
lý sẽ dùng để lưu trữ dữ liệu backup
• Thực hiện trước khi thực hiện lệnh backup, có thể
bỏ qua (sử dụng trực tiếp tên và đường dẫn vật lý)
• Cú pháp:
sp_addumpdevice [ @devtype = ] 'device_type' ,
[ @logicalname = ] 'logical_name' ,
[ @physicalname = ] 'physical_name'
( Device_type = disk|tape )
4
Tạo backup device (tt)
• Ví dụ:
exec sp_addumpdevice „disk‟, „QLSV_bak_dev1‟,
„D:\...\QLSV_bak_1.bak‟
• Xóa backup device:
sp_dropdevice [ @logicalname = ] 'device'
[ , [ @delfile = ] „DELFILE' ]
Ví dụ:
exec sp_dropdevice „QLSV_bak_dev1‟
exec sp_dropdevice „QLSV_bak_dev1‟, „DELFILE‟
Xoá cả file
vật lý tương
ứng
5
Thực hiện backup
• Cú pháp:
BACKUP DATABASE database_name
TO backup_device [ ,...n ]
[ WITH
[ DIFFERENTIAL ]
[ [,] PASSWORD = password ]
[ [,] INIT | NOINIT ]
]
6
Thực hiện backup (tt)
• Cú pháp (tt)
Backup_device:
– có thể là tên backup device đã tạo (tên logic)
– hoặc tên vật lý: {disk|tape} = „đường_dẫn_vật_lý‟
Có thể sử dụng nhiều backup_device cho một lần backup
(tối đa là 64 backup device)
Differential: chỉ backup phần thay đổi kể từ lần backup đầy đủ
toàn phần (full) gần nhất.
password: chỉ định mật khẩu cho tập tin sao lưu, người dùng
phải cung cấp đúng mật khẩu này khi muốn restore
init|noinit : ghi đè lên back_up device đã được dùng để
backup trước đó (init) hay ghi nối tiếp vào (mặc định: noinit).
7
Thực hiện backup (tt)
• Ví dụ:
– Backup ra một tập tin:
(mặc định ghi nối tiếp nội dung các lần backup trước
trên tập tin này nếu có)
Backup database QLSV
to QLSV_bak_dev
– Như ví dụ trên nhưng chỉ định trực tiếp tên tập tin vật lý:
Backup database QLSV
to disk = ‘D:\ :\...\QLSV_bak.bak’
8
Thực hiện backup (tt)
• Ví dụ (tt)
– Backup ra nhiều tập tin, ghi đè lên nội dung backup trước đó trên
các tập tin này nếu có:
Backup database QLSV
to QLSV_bak_dev1, QLSV_bak_dev2
with init
– Backup dạng differential:
Backup database QLSV
to QLSV_bak_dev3
with differential, init
9
Thực hiện backup
• Ngoài ra còn có các lệnh back up dạng khác:
– Backup Log
– Back up File/File group
10
Backup với Enterprise Manager
• Click phải trên Database cần backup All tasksBackup
Database
Differential?
Thêm backup
device
Noinit/ init
Lập lịch backup
11
Thực hiện phục hồi
• Cú pháp
RESTORE DATABASE database_name
FROM backup_device [ ,...n ]
[ WITH
[ FILE = file_number ]
[ [ , ] PASSWORD = password]
[ [ , ] MOVE 'logical_file_name' TO ‘physical_file_name' ]
[ [ , ] NORECOVERY]
]
12
Thực hiện phục hồi (tt)
• Ghi chú:
– Lúc backup dùng bao nhiêu tập tin (backup device) thì
khi restore phải dùng đủ bấy nhiêu tập tin
– Nếu khi backup có chỉ định password thì khi restore phải
cung cấp đúng password đó
– Nếu backup dạng noinit, file_number chỉ ra là thông tin
backup cần phục hồi nằm ở vị trí thứ mấy trong tập tin
(mặc định là nằm đầu tiên, tức file =1)
13
Thực hiện phục hồi (tt)
• Ghi chú (tt)
– database_name (tên database sau khi restore) có thể tồn tại
hoặc chưa tồn tại, nếu đã tồn tại sẽ bị ghi đè lên.
Tên database sau khi restore có thể khác với tên database khi
backup
– Dùng lệnh move khi ta muốn đổi tên các tập tin .ldf, .ndf,
.mdf của database hoặc đổi vị trí lưu trữ chúng sau khi
restore.
14
Thực hiện phục hồi (tt)
• Ghi chú (tt)
– Nếu muốn restore một backup dạng differential, ta phải
thực hiện chuỗi restore liên tiếp trong cùng một query
batch (khối lệnh thực hiện liên tục)
Lệnh restore đầu tiên thực hiện restore bản backup full, CÓ lựa
chọn norecovery
Lệnh restore bản backup differential sau cùng, KHÔNG có lựa
chọn norecovery
15
Thực hiện phục hồi (tt)
• Ví dụ
– Restore từ backup đầy đủ
Restore database QLSV
from QLSV_bak_dev1, QLSV_bak_dev2
– Restore với bản backup differential QLSV_bak_dev3:
Restore database QLSV
from QLSV_bak_dev1, QLSV_bak_dev2
with norecovery
Restore database QLSV
from QLSV_bak_dev3
16
Thực hiện phục hồi (tt)
• Ví dụ:
– Restore và đổi tên/ đường dẫn của các tập tin dữ liệu và
nhật ký của database:
Restore database QLSV
from QLSV_bak_dev1, QLSV_bak_dev2
with move 'QLSV_Data' to „E:\...\QLSV_data.mdf',
move 'QLSV_log' to 'E:\...\QLSV_log.ldf'
17
Thực hiện phục hồi với Enterprise Manager
Thêm các
backup
device để
restore
File_number
18
Thực hiện phục hồi với Enterprise Manager (tt)
• Lưu ý, nếu database cần restore đã tồn tại, chọn
tab Options, chọn “Force restore over existing
database”
• Trong cửa sổ Options, cũng có thể thực hiện việc
đổi tên/ đường dẫn của các tập tin dữ liệu/ log sau
khi restore
• Norecovery = “Leave database nonoperational but
able to restore additional transaction logs”
(Options tab)
19
Attach và detach database
• Attach database: tạo database trên SQL Server
server từ các tập tin dữ liệu và nhật ký (.mdf, .ndf,
.ldf)
– Dùng thủ tục sp_attach_db
• Detach database: Tách database ra khỏi SQL
Server (không xoá các tập tin dữ liệu và nhật ký)
– Dùng thủ tục sp_detach_db
Các file đính kèm theo tài liệu này:
- bai_giang_co_so_du_lieu_chuong_5_bao_mat_va_an_toan_du_lieu.pdf