2016-12-08 1 views
2

콘솔을 통해 꽤 쉽지만 CLI에서도 똑같이해야합니다.AWS Aurora : aws cli를 통해 db 클러스터 스냅 샷을 복원하는 방법은 무엇입니까?

aws rds create-db-cluster-snapshot \ 
    --db-cluster-snapshot-identifier $SNAPSHOT_ID \ 
    --db-cluster-identifier $CLUSTER \ 

CLUSTER는 오류

클라이언트 오류를 ​​throwned 때문에 나는 create-db-snapshot 방법을 사용하지 않은

하나 개의 작가 인스턴스를 포함 (InvalidParameterValue :

은 우선은 DB 스냅 샷을 생성) CreateDBSnapshot 작업을 호출 할 때 발생했습니다. 지정한 인스턴스가 클러스터의 구성원이고 스냅 샷을 직접 만들 수 없습니다. 대신 CreateDBClusterSnapshot API를 사용하십시오.

의미가 있습니다 : 그래서

aws rds create-db-cluster-snapshot \ 
    --db-cluster-snapshot-identifier $SNAPSHOT_ID \ 
    --db-cluster-identifier $CLUSTER \ 
{ 
    "DBClusterSnapshot": { 
     "Engine": "aurora", 
     "SnapshotCreateTime": "2016-12-08T11:48:07.534Z", 
    .... 
} 

, 내가 스냅 샷에서 새 오로라 클러스터를 복원하고 싶어, 나는 시도 :

aws rds restore-db-instance-from-db-snapshot \ 
    --db-instance-identifier from-snap2 \ 
    --db-snapshot-identifier snap2 \ 

A client error (DBSnapshotNotFound) occurred when calling the RestoreDBInstanceFromDBSnapshot operation: DBSnapshot not found: snap2 

그래서 내가 함께 복원하려고 :

aws rds restore-db-cluster-from-snapshot \ 
    --db-cluster-identifier from-snap2 \ 
    --snapshot-identifier snap2 \ 
    --engine aurora \ 
    --vpc-security-group-ids $PREPROD_SG \ 
    --db-subnet-group-name my-db-subnet-group \ 

작동 ...

{ 
    "DBCluster": { 
     ... 
     "EngineVersion": "5.6.10a", 
     "DBClusterIdentifier": "from-snap2", 
... 
     "DBClusterMembers": [], 
... 
} 

그러나 클러스터에 Aurora 인스턴스가없는 이유는 무엇입니까?

어디서 실수입니까?

답변

2

매우 직관적이지 않습니다. 스냅 샷에서 클러스터를 복원했지만 클러스터에 구성원 인스턴스가없는 경우 실제로 어떤 작업이 성공 했습니까? 이 모든 작업이 논리적 인 엔티티 (어쩌면 백업 스토어)를 만드는 것처럼 보이지만 인스턴스가없는 것 같습니다.

이상한. 그러나 API documentation은 예제 응답에서 클러스터 구성원을 빈 집합으로 표시합니다.

aws rds create-db-instance --db-instance-identifier my-instance --db-instance-class db.r3.large --engine aurora --db-subnet-group-name default-vpc-xxxxxx --db-cluster-identifier my-instance-cluster

https://forums.aws.amazon.com/thread.jspa?messageID=688727

:

<DBClusterMembers/> 

그래서 당신은 당신이 한 같은 AWS 포럼 게시물에 설명 된 바와 같이, 당신은 분명히 클러스터의 인스턴스를 생성, 클러스터를 만들 것

분명히 콘솔은 동일한 작업 뒤에 여러 API 요청을 캡슐화합니다.AWS 지원에서

0

aws rds create-db-cluster-snapshot을 사용하여 만들면 aws rds restore-db-instance-db-snapshot을 사용하여 복원 할 수 없습니다. 첫 번째는 DB 스냅 샷을 생성하고 두 번째는 클러스터 스냅 샷을 복원합니다.

귀하의 질문에 귀하의 복원이 올바른 것 같습니다 - 어쩌면 - 데이터베이스 이름이 지정되어 있어야합니다. 또한 필요한 매개 변수 (예 : vpc sg 또는 DB 서브넷 없음) 만 있으면 복원을 시도 할 수 있습니다.

1

응답 : API 호출을 사용하여 우리의 엔지니어가 작업을 할 때

이 알려진 문제입니다. CLI를 통해 생성 한 후에 AWS Console에 클러스터가 표시 되더라도 Aurora 클러스터에는 인스턴스가 자동으로 생성되지 않습니다. 이 경우 db-instance를 생성하여 새로 복원 된 클러스터에 연결해야합니다. AWS Console에서이 작업을 수행 할 때 클러스터에 대한 새 인스턴스가 자동으로 생성되지만 CLI의 작업은 별도의 API 호출을 사용합니다. http://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html

당신은 AWS 콘솔을 사용하거나 CLI 사용하여 클러스터를 설명 할 수 있습니다 : 여기 http://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html

는 명령 행 예는

다음 문서는 DB 인스턴스를 생성하는 방법에 대한 자세한 정보를 제공합니다 인스턴스를 생성하고 가상 클러스터에 연결합니다. aws rds create-db-instance --engine aurora --db-cluster-identifier yourauroraclusteridentifier --db-instance-class db.t2.medium --db-instances- yourinstanceidentifier를 식별자로 지정하십시오.

필자의 경우 --db-cluster-identifier은 클러스터 스냅 샷에서 생성 된 클러스터입니다.

관련 문제