RECOVER
설명
이 구문은 이전에 삭제한 데이터베이스, 테이블 또는 파티션을 복구하는 데 사용됩니다.
이름이나 ID로 지정한 메타데이터를 복구할 수 있으며, 복구한 메타데이터의 이름을 변경할 수도 있습니다.
구문:
RECOVER { DATABASE <db_name> [<db_id>] [AS <new_db_name>]
| TABLE [<db_name>.]<table_name> [<table_id>] [AS <new_table_name>]
| PARTITION <partition_name> [<partition_id>] FROM [<db_name>.]<table_name> [AS <new_partition_name>] }
필수 매개변수
데이터베이스 복구
1. <db_name>
복구할 데이터베이스의 이름입니다.
테이블 복구
1. <table_name>
복구할 테이블의 이름입니다.
파티션 복구
1. <partition_name>
복구할 파티션의 이름입니다.
2. <table_name>
파티션이 속한 테이블의 이름입니다.
선택적 매개변수
데이터베이스 복구
1. <db_id>
복구할 데이터베이스의 ID입니다.
2. <new_db_name>
복구한 데이터베이스의 새 이름입니다.
테이블 복구
1. <db_name>
테이블이 속한 데이터베이스의 이름입니다.
2. <table_id>
복구할 테이블의 ID입니다.
3. <new_table_name>
복구한 테이블의 새 이름입니다.
파티션 복구
1. <partition_id>
복구할 파티션의 ID입니다.
2. <db_name>
테이블이 속한 데이터베이스의 이름입니다.
3. <new_partition_name>
복구한 파티션의 새 이름입니다.
접근 제어 요구 사항
| 권한 | 객체 | 비고 |
|---|---|---|
| ADMIN_PRIV |
사용 시 참고 사항
- 이 작업은 삭제 후 일정 기간이 지나지 않은 메타데이터만 복구할 수 있습니다. 기본값은 1일입니다(
catalog_trash_expire_second매개변수를fe.conf에서 설정하여 변경할 수 있습니다). - 메타데이터를 복구할 때 ID를 지정하지 않으면 기본적으로 같은 이름으로 가장 최근에 삭제한 메타데이터가 복구됩니다.
- 현재 복구할 수 있는 메타데이터는
SHOW CATALOG RECYCLE BIN을 사용하여 조회할 수 있습니다. - 복구 작업은 휴지통에 있는 기존 메타데이터, 데이터, 복제본을 다시 연결하며 새로운 데이터 쓰기나 복제본 생성으로 취급되지 않습니다. 따라서 복구된 객체로 인해 데이터베이스 사용량이 할당량을 초과하더라도 데이터 및 복제본 할당량 때문에
RECOVER가 차단되지는 않습니다. 이후 데이터나 복제본을 추가하는 작업에는 해당 할당량이 계속 적용됩니다.
예시
-
이름이
example_db인 데이터베이스를 복구합니다.RECOVER DATABASE example_db; -
이름이
example_tbl인 테이블을 복구합니다.RECOVER TABLE example_db.example_tbl; -
이름이
p1인 파티션을example_tbl테이블에서 복구합니다.RECOVER PARTITION p1 FROM example_tbl; -
ID가
example_db_id이고 이름이example_db인 데이터베이스를 복구합니다.RECOVER DATABASE example_db example_db_id; -
ID가
example_tbl_id이고 이름이example_tbl인 테이블을 복구합니다.RECOVER TABLE example_db.example_tbl example_tbl_id; -
ID가
p1_id이고 이름이p1인 파티션을example_tbl테이블에서 복구합니다.RECOVER PARTITION p1 p1_id FROM example_tbl; -
ID가
example_db_id이고 이름이example_db인 데이터베이스를 복구하고 이름을new_example_db로 변경합니다.RECOVER DATABASE example_db example_db_id AS new_example_db; -
이름이
example_tbl인 테이블을 복구하고 이름을new_example_tbl로 변경합니다.RECOVER TABLE example_db.example_tbl AS new_example_tbl; -
ID가
p1_id이고 이름이p1인 파티션을example_tbl테이블에서 복구하고 이름을new_p1로 변경합니다.RECOVER PARTITION p1 p1_id AS new_p1 FROM example_tbl;