---
# System prepended metadata

title: 資料庫還原作業
tags: [db]

---

# 資料庫備份策略
* 每週日04:00做完整備份
* 每天06:00做差異備份
* 每2個小時做Log備份
* 每日6:30備份上傳至S3

# Step1
* 今日19:00開始還原1/21的完整備份檔，檔案大小2.7T
* 預計還原時間20hr,預計1/28週日下午三點完成完整備份還原(Standby)
* 1/29(一) 進行差異備份(300G)還原(Standby)

```sql=
RESTORE DATABASE [VGame]
    FROM DISK = N'F:\Backup\VGame_backup_2024_01_21_040001_1834256.bak'
	WITH STANDBY = N'F:\Backup\VGame_RollbackUndo_2024-01-27_17-40-42.bak',
	REPLACE,
	STATS = 5

GO
```
# Step2
* 禮拜二維護凌晨六點前，「手動」進行差異備份,預計大小30G
* 差異備份資料傳送到s3
* 檔案下載到新機器
* 進行差異還原大約兩個小時(Recovery)
* 更改機器配置 r6i.8xlarge	
```sql=

RESTORE DATABASE [VGame] 
    FROM DISK = N'F:\Backup\VGame_backup_2024_01_29_060001_9180841.bak'
	WITH NORECOVERY,
	STATS = 10
GO
```

# Step3
* GameDay 需進行完整備份，傳送到s3下載到新機器
* 進行 GameDay 完整備份還原


---

資料庫還原步驟

完整備份還原 –> 交易記錄備份還原

- 先還原完整備份
- 再還原完整備份後所做的交易記錄備份

完整備份還原 –> 差異備份還原 –> 交易記錄備份還原

- 先還原完整備份
- 再還原差異備份
- 再還原差異備份後所做的交易記錄備份


每日六點差異備份 每週日六點完整份

```sql=
RESTORE LOG VGame
    FROM DISK=N'f:\VGame_backup_2024_01_29_060001_9180841.trn'
    WITH NORECOVERY,
    STATS = 10
GO

RESTORE LOG VGame
    FROM DISK=N'f:\VGame_backup_2024_01_29_080000_9684901.trn'
    WITH NORECOVERY,
    STATS = 10
GO

RESTORE LOG VGame
    FROM DISK=N'f:\VGame_backup_2024_01_29_080000_9684901.trn'
    WITH NORECOVERY,
    STATS = 10
GO

RESTORE LOG VGame
    FROM DISK=N'f:\VGame_backup_2024_01_29_080000_9684901.trn'
    WITH NORECOVERY,
    STATS = 10
GO
```

# 完成資料庫還原作業
```sql=
RESTORE DATABASE VGame
    WITH RECOVERY
GO
```