아직파일 시스템을 사용하면 데이터베이스가 실행되는 동안 데이터베이스는 물론 다른 프로그램과 해당 데이터를 백업할 수 있습니다.
일반적으로 신청자에게 통지해야 함아직백업 작업은 시스템을 완전히 중지하지 않고도 유효한 백업을 생성할 수 있도록 모든 버퍼를 디스크로 플러시해야 하고 들어오는 쓰기 요청을 중지해야 하기 때문입니다.
Linux에서는 이런 종류의 기능을 지원합니까? Microsoft Windows가 Windows Server 2003부터 이 기능을 지원한다는 내용을 읽었으며 VM을 사용하여 Linux에서 이 기능을 수행하는 방법에 대해 여러 곳에서 설명하는 것을 보았습니다. 하지만 어떤 특정 가상 머신이 있는지, 해당 가상 머신이 Windows에서 호스트로 실행되어야 하는지는 모르겠습니다.
또한 운영 체제 수준 이상의 플랫폼(예: Java)은 어떻습니까? 거기에 고요함을 위한 지원이 있나요?
답변1
LVM 스냅샷을 수행하면 보류 중인 데이터(응용 프로그램이 아닌 커널 버퍼에 있음)가 디스크로 플러시되고 스냅샷이 진행되는 동안 응용 프로그램 쓰기가 차단됩니다. 외부 수단으로 FS가 있는 블록 장치를 백업하는 경우(예: 디스크가 가상이고 호스트 머신에 백업하는 경우) 동일한 방식으로 fsfreeze
FS를 사용하거나 고정할 수도 있습니다 xfs_aio
. 스냅샷을 구현하는 파일 시스템(예: BTRFS, NILFS, ZFS...)도 이 작업을 수행합니다. 일반적으로 이러한 수준의 스냅샷은 스냅샷의 데이터가 특정 시간에 FS에 커밋된 데이터의 즉각적인 동결이고 동결된 FS가 일관되고 깨끗한 상태임을 보장합니다.
애플리케이션에 일시 중지 및 새로 고침을 지시하는 경우그들의FS에 데이터를 버퍼링하기 위한 보편적인 프레임워크는 없으며, 마지막으로 확인했을 때 애플리케이션이 데이터를 유지하는 데 집중해야 하기 때문에 불필요한 복잡성과 관련 버그를 도입하는 것이 문제를 개선하기보다는 손상을 일으킬 가능성이 더 높다는 것이 일반적인 합의였습니다. 시스템/하드웨어 충돌이 발생하는 경우에도 디스크는 일관된 형태로 유지됩니다.
일부 애플리케이션(예: 일부 데이터베이스)은 MySQL처럼 실행을 중지하라는 지시를 받을 수 있습니다 FLUSH TABLES WITH READ LOCK
.