저는 PostgreSQL의 응급 복구 메커니즘을 둘러 보았습니다. WAL 로깅에서 쿼리를 기반으로하는 트랜잭션 START에서 WAL 버퍼는 XLOG 레코드로 채워집니다. 트랜잭션 COMMIT에서 WAL 버퍼가 플러시됩니다. 자, 일련의 삽입으로 트랜잭션을 시작한다고 가정 해보십시오. 기존 WAL 세그먼트가 채워지면 새로운 세그먼트가 만들어집니다. 그러나 무거운 데이터 또는 무언가 (4-5GB)를 대량으로 삽입하거나 복사 할 때 트랜잭션이 커밋되기 전에 WAL 버퍼 (1-2GB)가 채워지는 것은 어떻게됩니까? 이 경우 WAL은 어떻게됩니까?트랜잭션이 커밋되기 전에 WAL 버퍼가 채워집니다.
1
A
답변
3
WAL 버퍼가 가득 차면 디스크로 플러시됩니다. WAL 버퍼는 트랜잭션이 커밋 될 때만 비울 수 있다고 말하는 것은 없습니다. 중요한 것은 트랜잭션이 커밋 된 것으로보고되기 전에 트랜잭션과 관련된 모든 WAL 레코드가 플러시된다는 것입니다 (동기 커밋이라고 가정). 하지만 그 반대의 경우는 사실이 아닙니다 : 트랜잭션이 커밋되기 전에 WAL 레코드가 플러시 될 수 있습니다.
관련 문제
- 1. SQLite 트랜잭션은 트랜잭션이 커밋되기 전에 테이블을 채 웁니다.
- 2. 트랜잭션이 커밋되기 전에 모든 SQL 출력을 읽었는지 확인하는 방법은 무엇입니까?
- 3. JPA/Play에서 트랜잭션이 커밋되기 전에 엔티티는 어떻게 ID를 얻습니까?
- 4. JTA 트랜잭션이 커밋되기 전에 JMS 메시지에 대한 MDB 활성화
- 5. Sqlite에서 트랜잭션이 커밋되기 전에 디스크 I/O 작업이 완료 되었습니까?
- 6. 커밋되기 전에 파일의 인덱스 버전을 보려면 어떻게해야합니까?
- 7. 실제로 커밋되기 전에 커밋 될 내용을 확인하십시오.
- 8. svn에서 커밋되기 전에 각 커밋을 확인하십시오.
- 9. WAL 시퀀스 번호 무한대?
- 10. EF-CodeFirst가 커밋되기 전에 변경 사항을 보는 방법은 무엇입니까?
- 11. 태그가 커밋되기 전에 어떻게 커밋 할 수 있습니까?
- 12. 버퍼가 가득 차기 전에 버퍼의 char을 감지하십시오.
- 13. 언제 만 커밋 되기는하지만 커밋되기 전의 트랜잭션을 차단하십시오.
- 14. 문제가 채워집니다
- 15. VACUUM 데이터베이스와 WAL 모드
- 16. SQLite WAL 성능 향상
- 17. HBase의 WAL 파일
- 18. Windows에서 Postgresql WAL
- 19. pg_LSN을 wAL postgresql로 변환
- 20. 트랜잭션이
- 21. 트랜잭션이
- 22. 트랜잭션이
- 23. 캘린더가 오른쪽에서 채워집니다.
- 24. 트랜잭션이 커밋 된 후 작업하는 방법
- 25. NSMutableArray는 비어 있지만 채워집니다.
- 26. mystring은 최종 레코드로만 채워집니다.
- 27. Android 스피너가 데이터로 채워집니다.
- 28. 파일이 완전히 채워집니다
- 29. 내가 채워집니다 배열이 템플릿
- 30. 배열은 최신 값으로 채워집니다.
WAL 버퍼가 디스크로 플러시 된 후 트랜잭션이 롤백되면 어떻게됩니까? 이 경우 롤백 트랜잭션과 관련된 로그를 어떻게 제거 할 것입니까? – user4658312
그들은 제거되지 않습니다. 그러나 WAL에는 트랜잭션이 커밋 (clog)되었는지 여부에 대한 정보가 포함되어 있으며 수신 측에서 재생됩니다. –