문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

db.fsyncLock()

이 페이지의 내용

  • 정의
  • 행동
  • 예제
db.fsyncLock()

보류 중인 모든 쓰기를 스토리지 계층에서 디스크로 플러시하고 서버를 잠가 잠금이 해제될 때까지 추가 쓰기를 방지합니다.

MongoDB 7 부터 시작.0.2 ( 6.0.11 및 5.0.22 에서 시작하는 것도 가능) db.fsyncLock()db.fsyncUnlock() 메서드는 mongos 에서 실행하여 잠금을 할 수 있습니다. 샤드 cluster를 잠금 해제합니다.

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 데이터베이스 명령이나 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다 .

데이터베이스 명령에 대해서는 fsync 명령을 참조하십시오.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

레거시 mongo 셸 문서는 해당 MongoDB 서버 릴리스 문서를 참조하세요.

Mongo 셸 V4.4

서버는 fsync 잠금 횟수를 유지합니다. fsyncLock() 메서드는 잠금 횟수를 늘리고 fsyncUnlock() 메서드는 잠금 횟수를 줄입니다. 서버 또는 클러스터에서 쓰기의 잠금을 해제하려면 잠금 횟수가 0이 될 때까지 fsyncUnlock() 메서드를 호출합니다.

db.fsyncLock() 의 구문은 다음과 같습니다.

db.fsyncLock()

이 작업은 다음 필드가 있는 문서를 반환합니다.

필드
설명
info
작업 상태에 대한 정보입니다.
lockCount
현재 인스턴스에 있는 잠금의 수입니다.
seeAlso
fsync 명령 문서에 대한 링크입니다.
ok
상태 코드입니다.

db.fsyncLock() 는 관리 명령입니다. 백업 작업 전에 서버 또는 클러스터를 잠그려면 이 방법을 사용합니다.

db.fsyncLock()cp, scp 또는 tar 와 같은 낮은 수준의 백업 유틸리티를 사용하여 데이터 파일을 안전하게 복사할 수 있도록 보장합니다. 복사된 파일을 사용하여 시작된 mongod 에는 잠긴 mongod 의 사용자 작성 데이터와 구별할 수 없는 사용자 작성 데이터가 포함되어 있습니다.

잠긴 mongod의 데이터 파일은 저널링 동기화 또는 WiredTiger 스냅샷과 같은 작업으로 인해 변경될 수 있습니다. 논리 데이터에는 영향을 주지 않지만(예: 클라이언트가 액세스하는 데이터) 일부 백업 유틸리티는 이러한 변경을 감지하여 경고를 표시하거나 오류로 인해 실패할 수 있습니다. MongoDB 권장 백업 유틸리티 및 절차에 대한 자세한 내용은 MongoDB 백업 방법을 참조하세요.

Fsync 잠금은 복제본 세트 또는 샤드 클러스터의 프라이머리에서 실행됩니다.

기본 서버가 다운되거나 네트워크 문제로 인해 연결할 수 없는 경우 클러스터는 사용 가능한 보조 노드에서 새 프라이머리를 선택합니다. fsync 잠금이 있는 기본값이 다운되면 새 기본값은 fsync 잠금을 유지하지 않으며 쓰기 작업을 처리할 수 있습니다. 백업 작업 중에 선택 사항이 발생하면 결과 백업이 일관되지 않거나 사용할 수 없게 될 수 있습니다.

기본 다운에서 복구하기

  1. 잠금 개수가 0이 될 때까지 db.fsyncUnlock() 메서드를 실행하여 모든 노드의 잠금을 해제합니다.

  2. db.fsyncLock() 명령을 실행하여 클러스터에서 fsync 잠금을 다시 설정합니다.

  3. 백업을 다시 시작합니다.

또한 fsync 잠금은 영구적입니다. 이전 프라이머리가 다시 온라인 상태가 되면 db.fsyncUnlock() 명령을 실행하여 노드의 잠금을 해제해야 합니다.

다음 작업은 db.fsyncLock() 을(를) 실행합니다.

db.fsyncLock()

이 작업은 lockCount를 포함하는 다음 상태 문서를 반환합니다.

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : NumberLong(1),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

db.fsyncLock() 를 다시 실행하면 작업이 lockCount 을(를) 증가시킵니다.

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : NumberLong(2),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

쓰기에 대한 인스턴스의 잠금을 해제하려면 db.fsyncUnlock()을 두 번 실행하여 lockCount를 0으로 줄여야 합니다.

← db.dropDatabase()

이 페이지의 내용