SAP HANA에서 오류 복구 발견

Objective

After completing this lesson, you will be able to SAP HANA의 결함 복구 기능 이해

SAP HANA의 오류 복구

비즈니스 예시

SAP HANA 데이터베이스 관리자로서, 회사의 SAP ERP 및 SAP Business Warehouse(BW) 시스템을 담당하고 있습니다. SAP HANA 시작 프레임워크와 SAP HANA 데이터베이스가 하드웨어와 소프트웨어 결함을 어떻게 처리하는지 이해해야 합니다.

서비스 자동 재시작

구성된 SAP HANA 서비스(인덱스 서버, 이름 서버 등) 중 하나를 비활성화하는 소프트웨어 오류가 발생하면 실패한 서비스가 SAP HANA Service Auto-Restart watchdog 함수에 의해 재시작되며, 이 기능이 자동으로 오류를 감지하고 중지된 서비스 프로세스를 재시작합니다. 서비스를 다시 시작하면 데이터가 메모리에 로드되고 기능이 다시 시작됩니다. 모든 데이터가 안전하지만(RPO=0) 서비스 복구에는 시간이 걸립니다.

실패한 SAP HANA 서비스의 재시작은 SAP HANA 데몬 서비스에 의해 처리됩니다. 이 서비스의 태스크 중 하나는 다른 hdb* 서비스를 감시하고 필요한 경우 다시 시작하는 것입니다. SAP HANA 데몬 자체는 SAP HANA 시작 프레임워크에서 시작됩니다. 이 프레임워크는 SAP NetWeaver 시작 프레임워크와 유사하며 그림 SAP HANA 시작 프레임워크 에 나와 있습니다.

Linux 운영 체제를 시작하는 동안 SAP 프로세스를 시작하는 순서입니다.

Linux 서버가 부팅될 때 부팅 프로세스는 여러 구성 요소에 의해 실행되는 여러 단계를 거칩니다.

BIOS/UEFI

컴퓨터를 켜면 BIOS 또는 UEFI가 화면과 키보드 같은 다른 기본 하드웨어 구성 요소를 초기화하고 메인 메모리를 테스트합니다. 첫 번째 부팅 가능한 하드 디스크가 식별되면 BIOS/UEFI가 컨트롤을 부트 로더에 전달합니다.

부트 로더
첫 번째 하드 디스크의 첫 번째 데이터 섹터에 위치한 마스터 부트 레코드가 메인 메모리에 로드됩니다. 리눅스 시스템에서 이 부트 로더는 보통 GRUB 2이다. 부트 로더가 끝나면 컨트롤을 운영 체제에 전달합니다.
운영 체제
부트 로더가 컨트롤을 운영 체제에 전달하면 리눅스 커널과 초기 RAM 기반 파일 시스템(initramfs)이 메모리에 로드된다.
init 프로세스
initramfs에서 init 실행 파일이 시작되고 루트 파일 시스템이 마운트됩니다. 루트 파일 시스템이 마운트되면 컨트롤이 systemd 데몬으로 전달됩니다. initramfs 파일 시스템이 지워졌습니다.
systemd 데몬

systemd 데몬은 나머지 운영 체제의 부팅을 처리합니다. systemd 데몬은 정의된 모든 파일 시스템을 마운트하고 필요한 서비스를 시작합니다. 이 작업이 완료되면 사용자가 Linux 운영 체제를 사용할 수 있습니다.

이전 단계에서 설명한 것과 같이 Linux 서버가 부팅될 때 systemd 데몬은 서버를 시작해야 하는 "target"(이전에는 시스템 V에서 "runlevel"으로 알려짐)을 식별합니다. 대상 실행 레벨이 식별되면 systemd 데몬이 해당 대상 실행 레벨에 속한 필수 프로그램을 시작합니다.

서버에서 사용 가능한 대상 실행 레벨에 대한 개요는 systemctl list-units --type=target 명령어를 사용하여 생성할 수 있습니다.

서로 다른 대상 실행 레벨에서는 필요한 시작 스크립트, 프로그램 또는 데몬만 시작됩니다. 이러한 시작 스크립트 중 하나는 /etc/init.d 폴더에 있는 sapinit 스크립트입니다. sapinit 스크립트는 SAP HANA 설치 중에 서버에 설치됩니다. 시작 중에는 다음 단계가 실행됩니다.

  1. sapinit 스크립트는 /usr/sap/sapservices 파일을 읽고 sapstartsrv 데몬을 시작합니다.

  2. 그런 다음 sapstartsrv 가 SAP HANA 인스턴스 프로파일을 읽고 sapstart 실행 파일을 시작합니다.

  3. sapstart 프로그램은 SAP HANA 인스턴스 프로파일을 읽고 SAP HANA 데이터베이스를 자동으로 시작해야 하는지 확인합니다.

SAP HANA 콕피트 - 서비스 관리 어플리케이션 운영 체제 프로세스 ID가 있는 열이 강조표시됩니다.

서비스 관리 어플리케이션의 SAP HANA 콕피트 2.0에는 실행 중인 모든 SAP HANA 서비스가 표시됩니다. 여기서 프로세스 ID 열은 SAP HANA 서비스의 프로세스 ID(PID)를 표시하므로 매우 유용합니다. 데몬 프로세스의 PID도 표시됩니다. 이 PID는 리눅스 운영 체제 수준에서도 찾을 수 있다. 이렇게 하면 운영 체제 레벨에서 SAP HANA 서비스를 쉽게 식별할 수 있습니다.

ssh-shell로 SAP HANA 운영 체제 프로세스 ID가 강조표시되어 있습니다.

프로세스 리스트는 Linux 운영 체제 레벨에서도 표시할 수 있습니다. Linux에서 프로세스를 표시하는 작업은 ps fx -o ppid,pid,args --sort=ppid명령 등을 사용하여 여러 가지 방식으로 수행할 수 있습니다.

이 명령어를 실행하면 모든 SAP HANA 서비스의 PID뿐만 아니라 해당 시작 순서와 계층구조도 표시됩니다. 위 그림 ‘운영 체제 프로세스 개요’에서는 초기 프로세스가 sapstart 를 시작한다는 것이 명확하게 나와 있습니다.

그런 다음 sapstart 프로세스가 SAP HANA 데몬 프로세스를 시작합니다. 운영 체제 프로세스 개요에서는 이 프로세스를 데몬이라고 하지 않고 PID를 보면 실제로 SAP HANA 데몬임을 확인할 수 있습니다.

문서에서 hdbdaeman으로 자주 언급되는 SAP HANA 데몬은 다음과 같은 다른 모든 SAP HANA 서비스를 시작해야 합니다.

  • hdbnameserver

  • hdbcompileserver

  • hdbpreprocessor

  • hdbindexserver

  • hdbxsengine

  • hdbwebdispatcher

이 이전 리스트는 SAP HANA 버전과 SAP HANA 테넌트 구성에 따라 달라지므로 고정되지 않습니다.

SAP HANA 자동 시작

SAP HANA 데이터베이스는 Linux 운영 체제 레벨에서 시작, 중지 및 재시작할 수 있습니다. 이는 태스크를 자동화하는 데 종종 필요합니다. 스크립트에는 시작 프로파일에 포함된 정보가 필요합니다.

시작 프로파일은 /usr/sap/<SID>/SYS/profile위치에서 찾을 수 있습니다. 시작 프로파일에는 SAPSYSTEMNAME, SAPSYSTEM, INSTANCE_NAME, SAPLOCALHOST 가 나열되지만 이 매개변수 중 어떤 매개변수도 수정해서는 안 됩니다.

ssh-shell로 시작 프로파일에 있는 Autostart 매개 변수가 강조 표시됩니다.

유일한 예외는 Autostart 매개 변수입니다. 이 매개변수는 sapstart 프로세스에 의한 SAP HANA 데이터베이스의 자동 시작을 제어합니다. 다음과 같은 값을 가질 수 있습니다.

  • Autostart=0이면 운영 체제가 시작될 때 SAP HANA 데이터베이스가 자동으로 시작되지 않습니다.

    하나의 서버에 여러 개의 SAP HANA 데이터베이스(예: 최종 사용자 교육 및 테스트)가 설치되어 있고 시스템 관리자가 필요에 따라 수동으로 중지 및 시작해야 하는 경우 이 기능이 매우 유용할 수 있습니다.

  • 자동 시작=1이면 운영 체제가 시작될 때 SAP HANA 데이터베이스가 자동으로 시작됩니다.

    이는 하드웨어 오류 발생 후 가능한 한 빨리 사용할 수 있어야 하는 운영 시스템이나 스크립트로 새로운 가상 이미지를 배포한 후에 자동으로 사용할 수 있어야 하는 SAP HANA 데이터베이스에 매우 유용할 수 있습니다.

호스트 자동 장애 조치

호스트 자동 장애 조치는 로컬 "N+m"(m은 종종 1) 오류 복구 솔루션으로, 앞에서 설명한 시스템 복제 솔루션에 대한 추가 또는 대체 조치로 사용될 수 있습니다. 하나 이상의 대기 호스트가 SAP HANA 시스템에 추가되어 대기 모드에서 작동하도록 구성되어 있습니다. 대기 호스트가 대기 모드에 있는 한, 그 호스트의 데이터베이스는 어떤 데이터도 포함하지 않으며 요청이나 쿼리도 받지 않습니다.

세 개의 작업자 노드가 있는 스케일 아웃(scale-out) 시스템에서 대기 호스트가 시스템에 추가될 때 SAP HANA 호스트 자동 장애 조치 기능을 사용할 수 있습니다.

활성(작업) 호스트에 장애가 생기면 대기 호스트로 자동 대체됩니다. 대기 호스트는 기본 호스트에서 작업을 인계받을 수 있으므로 모든 데이터베이스 볼륨에 액세스해야 합니다. 이는 공유 네트워크 스토리지 서버를 사용하거나 분산 파일 시스템을 사용하거나 SAP HANA 프로그램 인터페이스(스토리지 커넥터 API)를 사용하는 공급업체별 솔루션을 사용하여 장애 조치 시 네트워크 스토리지(예: Fiber Channel의 블록 스토리지 사용)를 동적으로 분리하고 연결(마운트)함으로써 가능합니다.