삭제된 데이터베이스 복구
삭제된 데이터베이스 복구 (Recover Deleted Databases)
삭제된 데이터베이스와 그룹을 최대 5일 동안 되살릴 수 있는 기능이에요. 실수로 지워도 이름과 데이터가 그대로인 채로 돌아오니 안심해도 돼요.
출처: 문서
본문
Turso Cloud는 삭제된 데이터베이스와 그룹을 삭제 후 최대 5일 동안 복구 가능한 상태로 유지해요. 복원하면 삭제된 바로 그 순간의 데이터베이스가 — 같은 이름, 같은 데이터로 — 돌아와요. 팀원이 지웠든, 스크립트가 지웠든, 너무 열정적인 AI 에이전트가 지웠든, 사고로부터 여러분을 지켜 준답니다.
복구는 모든 유료 플랜에서 추가 비용 없이 제공돼요.
이건 시점 복구(Point-in-Time Recovery)(PITR)와 달라요. PITR은 기존에 존재하는 데이터베이스를 이전 시점 상태로 되돌리는 기능이고, 삭제된 데이터베이스는 되살릴 수 없어요. 반면 이 복구 기능은 삭제된 데이터베이스를 삭제된 그 순간의 모습으로 되살려요.
요건
- 유료 플랜이어야 해요. 조직이 유료 플랜이었을 때 삭제된 데이터베이스만 복원할 수 있어요.
- 조직에 대한 admin 또는 owner 권한이 필요해요.
- 조직에 복구 기능이 켜져 있어야 해요(Allow restore 토글 — 아래 참고).
대시보드에서 복원하기
- Turso 대시보드에서 Restore 페이지를 열어요.
- Recently deleted에서 데이터베이스를 찾아요 — 이름, ID, 호스트명, 그룹으로 검색할 수 있어요.
- Restore를 클릭해요.
삭제된 그룹은 같은 페이지의 별도 섹션에 표시돼요. 그룹을 복원하면 그 그룹과 함께 삭제된 데이터베이스들도 복원을 시도해요.
Platform API로 복원하기
최근 5일 내에 삭제된 데이터베이스를 나열한 다음, 데이터베이스의 UUID로 복원해요:
삭제된 데이터베이스 목록 조회:
curl -L 'https://api.turso.tech/v3/organizations/{organizationId}/databases?deleted=true' \
-H 'Authorization: Bearer ***'
데이터베이스 복원:
curl -L -X POST 'https://api.turso.tech/v3/organizations/{organizationId}/databases/{databaseId}/restore' \
-H 'Authorization: Bearer ***'
삭제된 그룹 목록 조회:
curl -L 'https://api.turso.tech/v3/organizations/{organizationId}/deleted-groups' \
-H 'Authorization: Bearer ***'
그룹 복원:
curl -L -X POST 'https://api.turso.tech/v3/organizations/{organizationId}/groups/{groupId}/restore' \
-H 'Authorization: Bearer ***'
이 엔드포인트들은 이름이 아니라 UUID로 대상을 식별해요: {organizationId}는 Retrieve Organization 응답의 id 필드이고, 데이터베이스와 그룹 UUID는 삭제 목록 조회 결과에서 얻어요. 다른 이름으로 복원하려면(예를 들어 새 데이터베이스가 이미 옛 이름을 쓰고 있을 때) JSON 본문에 { "name": "my-restored-database" }를 넘기면 돼요.
모든 파라미터와 응답 필드는 API 레퍼런스를 참고하세요:
AI 에이전트로 복원하기
Turso MCP 서버는 AI 에이전트에게 복구 기능을 노출해요. 그래서 실수로 데이터베이스를 지워버린 에이전트가 같은 세션 안에서 되살릴 수 있어요:
| Tool | Description |
|---|---|
list_deleted_databases |
최근 5일 내에 삭제된 데이터베이스를 나열해요. 복원에 필요한 UUID를 반환해요. |
restore_database |
UUID로 삭제된 데이터베이스를 복원해요. 선택적으로 새 이름을 지정할 수 있어요. |
list_deleted_groups |
최근 5일 내에 삭제된 그룹을 나열해요. 빈 그룹도 포함돼요. |
restore_group |
삭제된 그룹과 함께 삭제된 데이터베이스들을 복원해요. |
그룹 복원하기
그룹을 삭제하면 그 안의 데이터베이스가 모두 삭제돼요. 그룹을 복원하면 그룹이 돌아오고 그 데이터베이스들도 복원을 시도해요. 일부 데이터베이스 복원이 실패해도 그룹은 활성 상태가 되고, 실패한 데이터베이스는 restore_database로 개별적으로 다시 시도할 수 있어요.
복구 비활성화하기
조직에 따라서는 "삭제는 곧 진짜 삭제"여야 할 수도 있어요. admin과 owner는 대시보드 Restore 페이지의 Allow restore 토글, API, 또는 MCP 서버(set_organization_restore_enabled)로 조직 전체의 복구를 끌 수 있어요:
curl -L -X PATCH 'https://api.turso.tech/v1/organizations/{organizationSlug}' \
-H 'Authorization: Bearer ***' \
-H 'Content-Type: application/json' \
-d '{ "restore_enabled": false }'
현재 상태는 Retrieve Organization에서 restore_enabled로 반환돼요.
복구가 비활성화된 동안에도 삭제된 데이터베이스와 그룹은 삭제 목록에는 계속 나타나지만, admin이나 owner가 복구를 다시 켤 때까지 복원 시도는 실패해요.
알아두면 좋은 것들
- 복구 기간은 삭제 시점부터 5일이에요. 그다음부터는 데이터베이스가 영구적으로 사라져요.
- 복원은 데이터베이스 이름이 아니라 UUID로 식별해요 — 이름은 재사용될 수 있거든요. 옛 이름을 쓰는 새 데이터베이스가 이미 있다면, 삭제된 데이터베이스를 새 이름으로 복원하세요.
- 복원된 데이터베이스에는 삭제 시점까지 커밋된 모든 내용이 담겨 있어요. 더 과거 시점으로 되돌리고 싶다면 시점 복구(Point-in-Time Recovery)를 이어서 사용하세요.
- 복구에는 리전 지원이 필요해요. 삭제 목록에 나타난다고 해서 반드시 복구 가능한 건 아니에요.
- 애초에 삭제를 막으려면 데이터베이스나 그룹에 delete protection을 켜세요 — 보호 중인 데이터베이스는 보호를 끄기 전까지 삭제할 수 없어요.