Skip to main content

데이터베이스 시드 연기

데이터베이스 시드를 연기하도록 선택하여 클러스터에 새 MySQL 복제본(replica) 노드를 추가하는 프로세스의 진행 속도를 높일 수 있습니다.

누가 이 기능을 사용할 수 있나요?

GitHub은(는) 클러스터링 자격을 결정하며 인스턴스의 라이선스 구성을 사용하도록 설정해야 합니다. 클러스터링은 신중하게 계획해야 하며 관리 오버헤드가 추가로 필요합니다. 자세한 내용은 "클러스터링 정보"을(를) 참조하세요.

MySQL 복제본(replica) 노드의 데이터베이스 시드 연기 정보

Note

데이터베이스 시드를 연기하는 기능을 베타로 사용할 수 있습니다.

주 노드에 7일 이상의 데이터가 있는 경우 클러스터에 새 MySQL 복제본(replica) 노드를 추가하면 데이터베이스 시드가 트리거되며, 이 작업은 일반적으로 데이터 양에 따라 몇 시간이 걸릴 수 있습니다. 데이터베이스 시드를 연기하도록 선택하여 구성 적용 실행이 더 빨리 완료되도록 함으로써 트래픽에 대한 어플라이언스 더 빨리 열 수 있습니다.

이미 하나 이상의 MySQL 복제본(replica)을 구성한 후 추가 MySQL 복제본(replica)을 추가하는 경우에만 데이터베이스 시드를 연기해야 합니다. 그렇지 않으면 시드가 완료될 때까지 MySQL이 이중화되지 않습니다.

데이터베이스 시드를 연기할 때 새 MySQL 복제본(replica)이 복제에 사용되도록 구성되지 않으며 나중에 시드를 수동으로 완료할 때까지 MySQL 주 노드에 데이터 복사본이 없습니다.

새 MySQL 노드를 추가할 때 MySQL 시드 연기 구성

  1. 대체 노드에 고유한 호스트 이름을 사용하여 GitHub Enterprise Server를 프로비저닝하고 설치합니다.

  2. 관리 셸 또는 DHCP를 사용하여 대체 노드의 IP 주소 구성합니다. 다른 설정은 구성하지 마세요.

  3. 새 MySQL 노드에 대한 cluster.conf 항목을 만들고 skip-data-setup = true 필드를 포함합니다. 아래 예제에서는 호스트 이름 ghe-data-node-3mysql-server 역할을 사용하여 새 노드를 추가합니다.

     ...
     [cluster "ghe-data-node-3"]
       hostname = ghe-data-node-3
       ipv4 = 192.168.0.9
       # ipv6 = fd12:3456:789a:1::7
       mysql-server = true
       skip-data-setup = true
     ...
     
  4. 클러스터에서 새 노드를 초기화하려면 수정된 cluster.conf를 사용하여 노드의 관리 셸에서 ghe-cluster-config-init를 실행합니다.

  5. 구성 파일의 유효성을 검사하고 수정된 cluster.conf 파일에 따라 각 노드를 복사 및 구성하려면 ghe-cluster-config-apply를 실행합니다.

수동으로 데이터 시드

ghe-cluster-config-apply를 실행한 후에는 MySQL 서비스가 새 노드에서 실행되지만 복제본(replica)으로 구성되지 않으며 MySQL 주 노드의 데이터로 시드되지도 않습니다. MySQL 주 노드에서 데이터를 시드하려면 수동으로 복제를 구성해야 합니다.

  1. 새 노드에서 MySQL 주 노드 데이터의 수동 복제를 시작하려면 다음 명령을 실행합니다. 이때 PRIMARY_IP를 MySQL 주 노드를 실행하는 노드의 IP 주소로 바꿉니다.

    /usr/local/share/enterprise/ghe-mysql-repl-start PRIMARY_IP
    

데이터베이스 시드에 필요한 시간은 데이터 크기에 따라 다릅니다. 대규모 데이터 세트의 경우 SSH 연결 끊김으로 인한 문제를 방지하려면 screen 세션에서 위의 명령을 실행하는 것이 좋습니다.