You are on page 1of 32

Chương 4

Sao lưu và phục hồi dữ liệu

1
Nội dung

1. Các chiến lược sao lưu và phục hồi dữ liệu.


2. Thực hiện sao lưu và phục hồi dữ liệu.

2
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Các nội dung cần backup:
 Phần mềm hỗ trợ
 Chương trình của user
 Đối tượng cơ sở dữ liệu
 Các đối tượng user đã tạo
 Nội dung backup của lệnh: table, view, stored
procedure, Function, Trigger, User, Role, Rule, Default,
các rang buộc, nhật ký các giao tác.

3
Các chiến lược sao lưu và
phục hồi dữ liệu
 Chọn phương tiện lưu trữ (backup): Kiểu RAID; đĩa cứng hay
băng từ, …
 Chọn thao tác backup: dùng SMS hay T-SQL
 Xác định chu kỳ backup: hàng ngày, hàng tuần, …
 Tạo 1 bản backup?
 Tạo mỗi bản backup cho mỗi ngày trong tuần?

 Xác định thời điểm backup


 Xác định hình thức backup: ghi nối tiếp (append) hay ghi đè
(overwrite)
 Xác định thao tác phục hồi dữ liệu

4
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Các nội dung cần backup:
 Phần mềm hỗ trợ
 Chương trình của user
 Đối tượng cơ sở dữ liệu
 Các đối tượng user đã tạo
 Nội dung backup của lệnh: table, view, stored
procedure, Function, Trigger, User, Role, Rule, Default,
các rang buộc, nhật ký các giao tác.
 Thiết bị backup:
 File trên đĩa cục bộ
 File trên mạng
 Tape 5
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Cách tạo thiết bị backup bằng SQL Management Studio:
 Click chuột phải trên “Folder Backup” => “New Backup
Device”

6
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Cách tạo thiết bị backup bằng T-SQL:
sp_addumpdevice [@devtype =] 'device_type',
[@logicalname =] 'logical_name',
[@physicalname =] 'physical_name‘

 Device_type: varchar(20). Các giá trị có thể chọn:


Value Description
Disk backup device là 1 file trên đĩa cứng cục bộ
Pipe backup device là 1 file trên đĩa cứng mạng.
Tape Tape devices được hỗ trợ bởi Microsoft Windows NT®.

 Logical_name: tên logic của backup device, dung với lệnh


BACKUP và RESTORE
7
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Cách tạo thiết bị backup bằng T-SQL:
sp_addumpdevice [@devtype =] 'device_type',
[@logicalname =] 'logical_name',
[@physicalname =] 'physical_name‘
Ví dụ 1:
Tạo backup device tên MYDISKDUMP, tên vật lý C:\Dump1.bak
USE master
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak'
Ví dụ 2: Tạo backup device trên mạng (SQL Server có quyền)
USE master
EXEC sp_addumpdevice ‘pipe’, 'networkdevice',
'\\servername\sharename\path\filename.ext'
8
Các chiến lược sao lưu và
phục hồi dữ liệu
 Sao lưu dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
sp_dropdevice [ @logicalname = ] 'device'
[ , [ @delfile = ] 'delfile' ]

 delfile: cho phép xóa file backup device


Ví dụ:
Xóa device MYDISKDUMP và file C:\Dump1.bak
EXEC sp_dropdevice 'MYDISKDUMP ', ‘delfile’

9
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị
backup bằng SMS:
 Click chuột phải lên
database => Tasks =>
Back Up …
 Full backup: toàn bộ
dữ liệu tại thời điểm đó
 Differential backup:
backup dữ liệu mới
sau lần trước
 Transaction log
backup: backup các
log record trong log file 10
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng SMS:

11
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
 Backup toàn bộ dữ liệu:

BACKUP DATABASE {database_name | @database_name_var}


TO <backup_device> [,...n]
[WITH
[ DESCRIPTION = {text | @text_variable}]
[[,] DIFFERENTIAL]
[[,] INIT]
[[,] EXPIREDATE = {date | @date_var}
| RETAINDAYS = {days | @days_var}]
[[,] STATS [= percentage]]
]
12
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
 Backup files hoặc filegroups:

BACKUP DATABASE {database_name |


@database_name_var}
<file_or_filegroup> [,...n]
TO <backup_device> [,...n]
[WITH
[ EXPIREDATE = {date | @date_var}
| RETAINDAYS = {days | @days_var}]
[[,] STATS [= percentage]]
]
13
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
 Backup transaction log:

BACKUP LOG {database_name | @database_name_var}


{
[WITH { NO_LOG | TRUNCATE_ONLY }]
}
{
TO <backup_device> [,...n]
[WITH
[NO_TRUNCATE]
[[,] STATS [= percentage]]
]} 14
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
 file_or_filegroups: tên logic của file hay filegroups chứa bản
backup.
 FILE = {logical_file_name | @logical_file_name_var}: tên file
 FILEGROUP = {logical_filegroup_name |
@logical_filegroup_name_var}: tên nhóm file chứa backup
 STATS [= percentage]: thông báo % hoàn thành
 LOG: backup file nhật ký giao tác
 NO_LOG | TRUNCATE_ONLY: cắt bỏ phần không hoạt động
của file nhật ký
 NO_TRUNCATE: backup mà không bị cắt bỏ

15
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
Ví dụ: backup toàn bộ CSDL MyNwind
 Tạo backup device:

USE master
EXEC sp_addumpdevice 'disk', 'MyNwind', 'c:\MyNwind.dat'

 Backup toàn bộ CSDL:


BACKUP DATABASE MyNwind TO MyNwind

16
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Cách xóa thiết bị backup bằng T-SQL:
Ví dụ: backup toàn bộ CSDL MyNwind và log:
 Tạo backup device:
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind', 'c:\MyNwind.dat'
 Backup full CSDL:
BACKUP DATABASE MyNwind TO MyNwind
 Tạo log backup device:
USE master
EXEC sp_addumpdevice 'disk', 'MNLog', 'c:\MNLog.dat'
 Backup log file:
BACKUP LOG MNwind TO MNLog
17
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Tạo SQL Job để backup dữ
liệu tự động:
 Job hoạt động thông
qua dịch vụ SQL Server
Agent.
 Job dung để tự động
thực hiện các tác vụ.
 Trong SQL Server
Management Studio,
chọn “SQL Server Agent”
và click chuột phải như
hình
18
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Tạo SQL Job để backup dữ liệu tự động:

19
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Tạo SQL Job để backup dữ liệu tự động:

20
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Tạo SQL Job
để backup dữ
liệu tự động:

21
Các chiến lược sao lưu và
phục hồi dữ liệu
 Backup dữ liệu
 Tạo SQL Job để backup dữ liệu tự động:

22
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database)
 Click chuột phải trên cơ sở dữ liệu muốn restore:
=> Tasks => Restore => Database => General

Click để chọn device

23
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database)
 Click chuột phải trên cơ sở dữ liệu muốn restore:
=> Tasks => Restore => Database => Option

24
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Restore cơ sở dữ liệu:
RESTORE DATABASE {database_name | @database_name_var}
[FROM <backup_device> [,...n]]
[WITH
[DBO_ONLY]
[[,] REPLACE]
[[,] FILE = <position>]

25
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Restore files hoặc groupfile:
RESTORE DATABASE {database_name | @database_name_var}
<file_or_filegroup> [,...n]
[FROM <backup_device> [,...n]]
[WITH
[DBO_ONLY]
media_name | @media_name_variable}]
[[,] NORECOVERY]
[[,] REPLACE]

26
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Restore LOG:
RESTORE LOG {database_name | @database_name_var}
[FROM <backup_device> [,...n]]
[WITH
[DBO_ONLY]
[[,] NORECOVERY]

 NORECOVERY: restore không quay lui (roll back) các giao


tác chưa được xác nhận
 RECOVERY: cho phép quay lui (bỏ qua giao tác chưa được
xác nhận)
 REPLACE: cho phép thay thế CSDL trùng tên trước khi
restore 27
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Quyền thực thi:
 Nếu database phục hồi không có sẵn thì user phải có quyền

thực thi lệnh CREATE DATABASE


 Nếu tadabase đã có thì user phải là thành viên của nhóm

sysadmin và nhóm db_owner để thực thi lệnh RESTORE

28
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Ví dụ 1: khôi phục toàn bộ database (backup là toàn bộ)
RESTORE DATABASE MNwind FROM Mnwind_1
 Ví dụ 2: khôi phục toàn bộ và phần khác nhau
RESTORE DATABASE MNwind
FROM MNwind_1
WITH NORECOVERY

RESTORE DATABASE MNwind


FROM MNwind_1
WITH FILE = 2

29
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Ví dụ 3: khôi phục database dung RESTART systax: dung cho
trường hợp việc restore bị ngắt do lỗi server
RESTORE DATABASE MNwind
FROM MNwind_1

-- RESTORE RESTART.
RESTORE DATABASE MNwind
FROM MNwind_1 WITH RESTART

 Ví dụ 4: khôi phục sử dụng DISK syntax (backup device là


DISK)
RESTORE DATABASE MyNwind
FROM DISK = 'c:\MNwind.bak' 30
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Ví dụ 5: khôi phục đồng thời di chuyển file đến thư mục khác
RESTORE DATABASE MNwind
FROM MNwind_1 WITH NORECOVERY,
MOVE 'MyNwind' TO 'c:\data\NewNwind.mdf',
MOVE 'MyNwindLog1' TO 'c:\data\NewNwind.ldf‘

RESTORE LOG MNwind


FROM MNwindLog1 WITH RECOVERY

31
Các chiến lược sao lưu và
phục hồi dữ liệu
 Phục hồi cơ sở dữ liệu (Restore database) bằng T-SQL
 Ví dụ 6: dùng FILES và FILEGROUP syntax để khôi phục
database với 2 file, 1 filegroup và 1 transaction log.
RESTORE DATABASE MyNwind
FILE = 'MNwind_data_1', FILE = 'MNwind_data_2',
FILEGROUP = 'new_customers'
FROM MNwind_1 WITH NORECOVERY

-- Restore log backup.


RESTORE LOG MNwind
FROM MyNwindLog1

32

You might also like