
# Backup và Restore trong SQL Server
Trong bài viết này, chúng ta sẽ tìm hiểu về các phương pháp backup và restore database trong SQL Server.
## Các loại Backup
### Full Backup
```sql
-- Tạo Full Backup
BACKUP DATABASE TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Full.bak'
WITH INIT, NAME = 'TenDatabase-Full Database Backup';
```
### Differential Backup
```sql
-- Tạo Differential Backup
BACKUP DATABASE TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Diff.bak'
WITH DIFFERENTIAL, INIT,
NAME = 'TenDatabase-Differential Database Backup';
```
### Transaction Log Backup
```sql
-- Tạo Transaction Log Backup
BACKUP LOG TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Log.trn'
WITH INIT, NAME = 'TenDatabase-Transaction Log Backup';
```
## Restore Database
### Restore Full Backup
```sql
-- Restore Full Backup
RESTORE DATABASE TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Full.bak'
WITH REPLACE, RECOVERY;
```
### Restore với Differential
```sql
-- Restore Full Backup
RESTORE DATABASE TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Full.bak'
WITH NORECOVERY;
-- Restore Differential Backup
RESTORE DATABASE TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Diff.bak'
WITH RECOVERY;
```
### Restore Transaction Log
```sql
-- Restore Full Backup
RESTORE DATABASE TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Full.bak'
WITH NORECOVERY;
-- Restore Differential Backup
RESTORE DATABASE TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Diff.bak'
WITH NORECOVERY;
-- Restore Transaction Log
RESTORE LOG TenDatabase
FROM DISK = 'C:\Backup\TenDatabase_Log.trn'
WITH RECOVERY;
```
## Backup Strategy
### Full Backup Strategy
```sql
-- Tạo Full Backup hàng ngày
BACKUP DATABASE TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Full_' +
CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'
WITH INIT, NAME = 'TenDatabase-Full Database Backup';
```
### Differential Backup Strategy
```sql
-- Tạo Differential Backup hàng ngày
BACKUP DATABASE TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Diff_' +
CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'
WITH DIFFERENTIAL, INIT,
NAME = 'TenDatabase-Differential Database Backup';
```
### Transaction Log Backup Strategy
```sql
-- Tạo Transaction Log Backup mỗi giờ
BACKUP LOG TenDatabase
TO DISK = 'C:\Backup\TenDatabase_Log_' +
CONVERT(VARCHAR(8), GETDATE(), 112) + '_' +
CONVERT(VARCHAR(2), DATEPART(HOUR, GETDATE())) + '.trn'
WITH INIT, NAME = 'TenDatabase-Transaction Log Backup';
```
## Maintenance Plan
### Tạo Maintenance Plan
1. Mở SQL Server Management Studio
2. Mở Maintenance Plans
3. Tạo New Maintenance Plan
4. Thêm các task:
- Check Database Integrity
- Shrink Database
- Reorganize Index
- Rebuild Index
- Update Statistics
- Clean Up History
- Backup Database
## Best Practices
1. Lên lịch backup tự động
2. Lưu trữ backup ở nhiều vị trí
3. Kiểm tra tính toàn vẹn của backup
4. Theo dõi dung lượng backup
5. Tài liệu hóa quy trình restore
## Monitoring và Maintenance
### Kiểm tra Backup History
```sql
SELECT
database_name,
backup_start_date,
backup_finish_date,
backup_size,
backup_type
FROM msdb.dbo.backupset
ORDER BY backup_start_date DESC;
```
### Kiểm tra Backup Files
```sql
RESTORE FILELISTONLY
FROM DISK = 'C:\Backup\TenDatabase_Full.bak';
```
### Kiểm tra Backup Header
```sql
RESTORE HEADERONLY
FROM DISK = 'C:\Backup\TenDatabase_Full.bak';
```
## Kết luận
Backup và Restore là những chức năng quan trọng trong việc bảo vệ dữ liệu. Một chiến lược backup tốt sẽ giúp đảm bảo tính liên tục của hệ thống và khả năng phục hồi dữ liệu khi cần thiết. Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về Bảo mật trong SQL Server.
sql-server
backup
restore
Chia sẻ:
Bài viết liên quan
Truy Vấn SQL Nâng Cao trong SQL Server
Truy Vấn SQL Nâng Cao trong SQL Server Trong bài viết này, chúng ta sẽ tìm hiểu về các kỹ thuật truy vấn SQL nâng cao trong SQL Server, bao gồm JOI...
Stored Procedures và Functions trong SQL Server
Stored Procedures và Functions trong SQL Server Trong bài viết này, chúng ta sẽ tìm hiểu về Stored Procedures và Functions trong SQL Server, hai cô...
Index và Tối Ưu Hiệu Suất trong SQL Server
Index và Tối Ưu Hiệu Suất trong SQL Server Trong bài viết này, chúng ta sẽ tìm hiểu về Index và các kỹ thuật tối ưu hiệu suất trong SQL Server. ...