공상은행

고객 개황

저희 은행은 세계적으로 선도적인 상업 은행으로, 업무 영역은 예금 및 대출, 지급 결제, 투자 은행 등을 포함하며, 자산 규모는 44조 위안을 초과하고 있습니다, 연속적으로 여러 해 동안 글로벌 은행 순위에서 앞순위에 위치하고 있습니다.

공상 은행의 핵심 업무는 계속해서 확장될 필요가 있지만, 전통적인 중앙 집중식 데이터베이스 및 대형 메인프레임의 확장성이 제한적이고 비용이 높은 문제에 직면하고 있습니다. 따라서 x86 플랫폼으로 전환하고 오픈 소스 데이터베이스를 채택해는 것이 필요합니다. 그러나 기존의 주류 오픈 소스 데이터베이스에는 고가용성과 확장성이 부족한 도전이 존재합니다.

솔루션 설계

수요 분석

핵심 업무 확장 수요: 공상은행의 핵심 업무는 더욱 발전해야 하며, 이를 위해 IT 시스템이 더 큰 업무량과복잡한 데이터 처리를 효과적으로 지원할 수 있어야 합니다.

비용과 확장성 고려: 현재 사용하중인 전통적인 중앙 집중식 데이터베이스와 대형 메인프레임은 확장성이 제한적이며운영 및 유지 보수 비용이 높습니다다. 비용을 절감하고 확장성을 높이기 위해 공상은행은 x86 플랫폼으로 이전하고 오픈 소스 데이터베이스를 도입하는 것을 고려합니다.

오픈 소스 데이터베이스 선택과 도전 그러나: 오픈 소스 데이터베이스는 고가용성과 확장성 측면에서 부족함이 있으며, 이는 업무 연속성과 미래 확장에 영향을 미칠 수 있습니다.

공상은행은 업무 연속성과 고가용성을 보장하는 전제 하에, IT 시스템의 비용 최적화와 확장성 향상을 실현해야 합니다. 이는 새로운 데이터베이스 솔루션을 선택하고 구현할 때, 그 성능, 신뢰성, 확장성 및 비용 효율성을 충분히 고려해야 하며, 오픈 소스 데이터베이스의 고가용성 및 확장성 부족 문제를 해결하기 위해 자체 개발 또는 외부 구매 방식을 통해 해결해야 합니다.

기술 선정

공상은행이 핵심 업무 확장에서 직면한 문제를 해결하기 위해 MySQL을 오픈 소스 데이터베이스로 선택한 결정 근거:

  1. 광범위한 업계 응용과 검증: MySQL은 인터넷 업계에서 널리사용되며, 구글, 타오바오, 바이두, 텐센트 등 많은 유명 기업들이 MySQL 데이터베이스를 채택하고 있다. 이는 MySQL이 대규모 데이터 처리와 고병렬 액세스 처리 능력을 입증한다.
  2. 오픈 소스 특성과 비용 효율성: MySQL은 상업 라이센스 비용이 없고, 오픈 소스 특성 덕분에 기업의 요구에 맞게 사용자 정의 및 최적화할 수 있습니다. 이러한 비용 효율성은 공상은행의 IT 운영 비용을 줄이는 데 기여할 것입니다.
  3. 커뮤니티 지원과 생태계 풍부함: MySQL은 활발한 오픈 소스 커뮤니티와 풍부한 생태계를 가지고 있으며, 다양한 도구, 플러그인 및 제3자 솔루션이 포함된다. 문제가 발생할 때 신속하게 도움을 받을 수 있으며, 기존 솔루션을 이용하여 데이터베이스 성능과 관리 효율성을 향상시킬 수 있다.
  4. 버전 품질과 안정성: MySQL의 버전 품질은 상대적으로 안정적이며, 여러 해의 반복 및 최적화를 통해 그 성능과 안정성이 널리 인정받고 있다.

MySQL 확장성과 고가용성 문제 해결 방안:

  1. 분산 아키텍처:
    • 마스터-슬레이브 복제: 마스터-슬레이브 복제 모드를 통해 읽기와 쓰기를 분리하여, 마스터 노드는 쓰기 작업을 처리하고, 슬레이브 노드는 읽기 작업을 처리하여, 마스터 노드의 압력을 분담하고 읽기 성능을 향상시킨다.
    • 샤딩(Sharding): 데이터베이스를 수평으로 여러 개의 샤드로 분할하여, 각 샤드는 부분 데이터를 저장한다. 이렇게 함으로써 샤드 수를 늘려 데이터베이스의 처리 능력을 수평으로 확장할 수 있다.
  2. 고가용성 해결 방안:
    • 제3자 고가용성 해결 방안: 예를 들어, 아이케생 운수® 데이터베이스 관리 플랫폼 소프트웨어는 마스터 노드의 장애를 자동으로 감지하고 처리하며, 최신 데이터를 가진 슬레이브 노드를 마스터 노드로 승격시켜 빠르게 서비스를 복구할 수 있다.

총괄적으로, 공상은행이 MySQL을 오픈 소스 데이터베이스로 선택하는 것은 그 광범위한 응용 검증, 오픈 소스 특성, 커뮤니티 지원 및 버전 품질과 안정성에 기반한다. MySQL의 확장성과 고가용성 문제에 대해 분산 아키텍처, 고가용성 해결 방안을 통해 해결할 수 있다.

실행 계획

업무 개조(Oracle→MySQL)

  1. 대 업무 수직 분할
  2. 데이터베이스 클러스터 아키텍처 및 성능 설계
  3. 데이터베이스 이전 방법(도구, 전량, 증분, 작업 창)
  4. 데이터 유형 변환(데이터 유형의 필드 매핑, SQL 함수의 변환 등)
  5. 데이터 객체 개조(표, 사용자, schema, 인덱스, 저장 과정, 뷰, 시퀀스 등)

신 업무 온라인 시범 운영

신 업무 개발은 설계 단계에서부터 MySQL 데이터베이스를 채택하고, MySQL 규범에 따라 업무 개발을 진행하며, 최종적으로 업무를 온라인으로 운영하여 MySQL 업무 아키텍처와 개발 능력을 축적합니다.

실행과 집행

  1. MySQL 운영 관리 통일 작업:
    • 기존의 일부 데이터베이스 인스턴스를 인수합니다.
    • 새로운 기준에 따라 데이터베이스 인스턴스를 설치합니다.
    • 데이터베이스의 모니터링 경보를 제공합니다.
    • 분산식 데이터베이스 미들웨어 기능을 제공합니다.
    • MySQL 인스턴스 관리 기능을 제공합니다.
  2. 분산식 업무 개조 기술 컨설팅 제공:
    • 분할 알고리즘의 상세 설명.
    • 이전 및 확장 방안.
    • 업무 SQL 개조를 분산식에 적응시킵니다.
    • 업무 복잡 SQL 최적화, 분산식 쿼리 계획에 적응시킵니다.
    • DBLE 및 MySQL 고가용성 방안.
  3. 공행 경보 등 시스템과 대응 연결.
    • 공행 경보 시스템에는 해당하는 경보 규범이 있으며, 경보 시나리오, 경보 레벨, 경보 비상 수단을 포함합니다.
  4. 행내의 데이터베이스 운영 관리 규범 기준선을 정리하고 개조하여 MySQL 안정성을 향상시킵니다.
    • MySQL 표준 설치 규범 제공
      • 디렉토리 계획.
      • MySQL 복제 규범.
      • MySQL 구성 규범.
      • MySQL 사용자 규범.
    • MySQL 서비스 관리 표준 시스템 제공.
    • MySQL 고가용성 관리 표준 시스템 제공.
  5. 공행의 5급 재해 대비 고가용성 요구에 적응:
    • 재해 대비 레벨:
      • 5급 재해 대비: 3개 캠퍼스, 1개 주 노드와 4개 종 노드, 3개의 반동기 복제 종 노드와 1개의 비동기 복제 종 노드.
      • 4급 재해 대비: 3개 캠퍼스, 1개 주 노드와 3개 종 노드, 3개의 반동기 복제 종 노드.
      • 3급 재해 대비: 2개 캠퍼스, 1개 주 노드와 2개 종 노드, 1개의 반동기 복제 종 노드와 1개의 비동기 복제 종 노드.
    • 재해 대비 시나리오: 완전 수동, 동일 캠퍼스 자동, 다른 캠퍼스 수동, 다른 캠퍼스 자동.
    • 전환 요구: 데이터 손실 없음, 전환 우선 조건 사용자 정의, 데이터베이스 액세스 자동 전환, 사용자 정의 가능한 SLA 계약.

성과와 이익

아이커생 운수® 데이터베이스 관리 플랫폼 소프트웨어를 통해 MySQL 주종 클러스터, 동일 도시 재해 대비 클러스터 및 이격 지역 재해 대비 클러스터를 통일적으로 관리하여 기계 레벨, 기계실 레벨 및 지역 레벨의 재해 대비 보호를 달성하였습니다. 동일 도시 전환에서 RPO=0, RTO 초 단위를 실현하여 업무 고가용성과 재해 대비 요구를 만족시키고 10여 개의 업무를 안정적으로 지원하였습니다. 그 사이에, 읽기와 쓰기 분리 아키텍처를 채택하여 백업 머신 자원을 충분히 활용하여 자원 이용률을 높이고 시스템 처리량을 현저히 향상시켰습니다.

  • 주기 압력이 뚜렷하게 감소하며, 해마다 감소합니다
  • 상업 데이터베이스 사용이 제로 성장입니다
  • 120여 개의 애플리케이션, 20,000여 개의 노드
  • 주기 하 플랫폼, Oracle 이전, 애플리케이션 재구성 등 다양한 시나리오를 포함합니다.
  • 핵심 업무 일평균 거래량이 7억에 달하며, 쌍11, 설날 홍보 등 특별한 명절 고봉기(최대 50만 TPS)에도 견딥니다.
  • 양지 세 중심 아키텍처, 동일 도시 RPO=0, RTO < 60S