> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 명령으로 백업하거나 백업을 복원하기

> 명령을 사용해 자체 버킷으로 백업하거나 백업을 복원하는 방법을 설명하는 페이지

`BACKUP` 및 `RESTORE` 명령을 사용하면 백업을 스토리지 버킷으로 내보낼 수 있으며,
[UI를 통해](/ko/products/cloud/guides/backups/bring-your-own-backup/backup-restore-from-ui) 백업하거나 복원할 수도 있습니다.
이 가이드에서는 3개의 CSP 모두에 대한 명령을 제공합니다.

<div id="requirements">
  ## 요구 사항
</div>

백업을 자체 CSP 스토리지 버킷으로 내보내거나 해당 위치에서 복원하려면 다음 정보가 필요합니다:

<Tabs>
  <Tab title="AWS">
    1. AWS S3 endpoint, 형식: `s3://<bucket_name>.s3.amazonaws.com/<optional_directory>`
       예시: `s3://testchbackups.s3.amazonaws.com/`
       여기서:
       * `testchbackups`는 백업을 내보낼 S3 버킷 이름입니다.
       * `backups`는 선택 사항인 하위 디렉터리입니다.
    2. AWS 액세스 키와 시크릿. AWS Role 기반 인증도 지원하며, 위 섹션에 설명된 대로 AWS 액세스 키와 시크릿 대신 사용할 수 있습니다.

    <br />
  </Tab>

  <Tab title="GCP">
    1. GCS endpoint, 형식: `https://storage.googleapis.com/<bucket_name>/`
    2. 액세스 HMAC 키와 HMAC 시크릿.

    <br />
  </Tab>

  <Tab title="Azure">
    1. Azure 스토리지 connection string.
    2. 스토리지 계정의 Azure container 이름.
    3. container 내 Azure Blob.

    <br />
  </Tab>
</Tabs>

<div id="backup_restore_db">
  ## 특정 DB 백업 / 복원
</div>

여기서는 *단일* 데이터베이스를 백업하고 복원하는 방법을 보여줍니다.
전체 백업 및 복원 명령은 [백업 명령 요약](/ko/concepts/features/backup-restore/overview#command-summary)을 참조하십시오.

<div id="aws-s3-bucket">
  ### AWS S3
</div>

<Tabs>
  <Tab title="백업">
    ```sql theme={null}
    BACKUP DATABASE test_backups 
    TO S3(
      'https://testchbackups.s3.amazonaws.com/<uuid>',
      '<key id>',
      '<key secret>'
    )
    ```

    여기서 `uuid`는 백업 세트를 구분하는 데 사용하는 고유 식별자입니다.

    <Note>
      이 하위 디렉터리에 새 백업을 만들 때마다 서로 다른 uuid를 사용해야 합니다. 그렇지 않으면 `BACKUP_ALREADY_EXISTS` 오류가 발생합니다.
      예를 들어 매일 백업하는 경우 매일 새로운 uuid를 사용해야 합니다.
    </Note>
  </Tab>

  <Tab title="복원">
    ```sql theme={null}
    RESTORE DATABASE test_backups
    FROM S3(
      'https://testchbackups.s3.amazonaws.com/<uuid>',
      '<key id>',
      '<key secret>'
    )
    ```
  </Tab>
</Tabs>

<div id="google-cloud-storage">
  ### Google Cloud Storage (GCS)
</div>

<Tabs>
  <Tab title="백업">
    ```sql theme={null}
    BACKUP DATABASE test_backups 
    TO S3(
      'https://storage.googleapis.com/<bucket>/<uuid>',
      '<hmac-key>',
      '<hmac-secret>'
    )
    ```

    여기서 `uuid`는 백업을 식별하는 데 사용되는 고유 식별자입니다.

    <Note>
      이 하위 디렉터리에서 새 백업을 만들 때마다 서로 다른 uuid를 사용해야 합니다. 그렇지 않으면 `BACKUP_ALREADY_EXISTS` 오류가 발생합니다.
      예를 들어 매일 백업하는 경우, 매일 새로운 uuid를 사용해야 합니다.
    </Note>
  </Tab>

  <Tab title="복원">
    ```sql theme={null}
    RESTORE DATABASE test_backups
    FROM S3(
      'https://storage.googleapis.com/<bucket>/<uuid>',
      '<hmac-key>',
      '<hmac-secret>'
    )
    ```
  </Tab>
</Tabs>

<div id="azure-blob-storage">
  ### Azure Blob Storage
</div>

<Tabs>
  <Tab title="백업">
    ```sql theme={null}
    BACKUP DATABASE test_backups 
    TO AzureBlobStorage(
      '<AzureBlobStorage endpoint connection string>',
      '<container>',
      '<blob>/<>'
    )
    ```

    여기서 `uuid`는 백업을 식별하기 위해 사용하는 고유 식별자입니다.

    <Note>
      이 하위 디렉터리에서 새 백업을 만들 때마다 서로 다른 uuid를 사용해야 합니다. 그렇지 않으면 `BACKUP_ALREADY_EXISTS` 오류가 발생합니다.
      예를 들어 일일 백업을 수행하는 경우에는 매일 새로운 uuid를 사용해야 합니다.
    </Note>
  </Tab>

  <Tab title="복원">
    ```sql theme={null}
    RESTORE DATABASE test_backups
    FROM AzureBlobStorage(
      '<AzureBlobStorage endpoint connection string>',
      '<container>',
      '<blob>/<uuid>'
    )
    ```
  </Tab>
</Tabs>

<div id="backup_restore_entire_service">
  ## 전체 서비스 백업/복원
</div>

전체 서비스를 백업하려면 아래 명령을 사용하십시오.
이 백업에는 생성된 엔터티, 설정 프로필, 역할 정책, 쿼터, 함수와 관련된 모든 사용자 데이터와 시스템 데이터가 포함됩니다.
여기서는 AWS S3를 기준으로 설명합니다.
앞서 설명한 구문을 사용하면 GCS 및 Azure Blob storage에서도 백업할 수 있습니다.

<Tabs>
  <Tab title="백업">
    ```sql theme={null}
    BACKUP 
        TABLE system.users,
        TABLE system.roles,
        TABLE system.settings_profiles,
        TABLE system.row_policies,
        TABLE system.quotas,
        TABLE system.functions,
        ALL EXCEPT DATABASES INFORMATION_SCHEMA, information_schema, system
    TO S3(
        'https://testchbackups.s3.amazonaws.com/<uuid>',
        '<key id>',
        '<key secret>'
    )
    ```

    여기서 `uuid`는 백업을 식별하는 데 사용되는 고유 식별자입니다.
  </Tab>

  <Tab title="복원">
    ```sql theme={null}
    RESTORE ALL EXCEPT TABLES system.users, system.roles
    FROM S3(
        'https://testchbackups.s3.amazonaws.com/<uuid>',
        '<key id>',
        '<key secret>'
    )
    ```
  </Tab>
</Tabs>

<div id="backups-faq">
  ## FAQ
</div>

<Accordion title="Cloud 객체 스토리지에 있는 백업은 어떻게 됩니까? ClickHouse가 어느 시점에 이를 정리합니까?">
  버킷으로 백업을 내보낼 수 있지만, 한 번 저장된 백업은 ClickHouse가 정리하거나 삭제하지 않습니다. 필요에 따라 삭제하거나 보관하고, 전체 비용을 최적화하기 위해 더 저렴한 스토리지로 이동하는 것을 포함해, 버킷에 있는 백업의 수명 주기는 사용자가 직접 관리해야 합니다.
</Accordion>

<Accordion title="기존 백업 일부를 다른 위치로 옮기면 복원 프로세스는 어떻게 됩니까?">
  백업을 다른 위치로 옮긴 경우, 백업이 저장된 새 위치를 참조하도록 복원 명령을 업데이트해야 합니다.
</Accordion>

<Accordion title="객체 스토리지에 액세스하는 데 필요한 자격 증명을 변경하면 어떻게 됩니까?">
  백업이 다시 정상적으로 수행되도록 하려면 UI에서 변경된 자격 증명을 업데이트해야 합니다.
</Accordion>

<Accordion title="외부 백업을 내보내는 위치를 변경하면 어떻게 됩니까?">
  UI에서 새 위치로 업데이트해야 하며, 이후 백업은 새 위치에 저장됩니다. 기존 백업은 원래 위치에 그대로 유지됩니다.
</Accordion>

<Accordion title="외부 백업을 활성화한 서비스에서 이를 비활성화하려면 어떻게 해야 합니까?">
  서비스에서 외부 백업을 비활성화하려면 서비스 설정 화면으로 이동한 다음 "Change external backup"을 클릭하십시오. 다음 화면에서 "Remove setup"을 클릭하면 해당 서비스의 외부 백업이 비활성화됩니다.
</Accordion>
