Lock3 [Data Model] 컬럼 추가 금지! Schema Validation TL;DRMongoDB에서 Schema Validation으로 필드(컬럼) 추가를 방지 하는 방법입니다.IT JourneymanMongoDB에서 Flexible Data Model은 장점입니다. 그러나 Pilot이나 Prototype 혹은 개발 단계를 지나서 통합 테스트 혹은 운영 모드에서는 자유로운 필드 추가를 금지하여 DBA가 관리하게 하는 것도 데이터 모델의 안정성 측면에서 필요합니다. 그럴 때 이 설정을 사용하시면 됩니다. 1. 첫 번 째 문서 생성 2. Schema Validation 설정db.runCommand({ collMod: "users", validator: { $jsonSchema: { bsonType: "object", requ.. 2024. 9. 11. [DB Internel]killSessions, 누가 이거 돌렸어 ! TL;DRMongoDB Atlas에서 Running중인 Session을 Kill 하는 방법입니다.IT JourneymanDBA의 고난한 일 중에 하나가 악성 쿼리를 날리거나 Deadlock을 일으킨 세션을 찾아 Kill하는 일입니다.MongoDB에서 Dealock은 자주 발생하지는 않습니다만, 악성 쿼리는 간혹 발생합니다. 그 때 해당 세션을 정리하는 방법입니다. Oracle에서는 RESOURCE_LIMIT을 TRUE로 설정하고 Profile을 설정하여 일정 이상의 리소스를 사용하는 세션의 오퍼레이션을 중단시키는 기능이 있습니다만, 그게 그렇게 적용하기가 쉽지 않았습니다. MongoDB의 Deadlock관련해서는 이 링크를 [DB Internal]Deadlock 참조하시기 바랍니다. Table o.. 2024. 8. 16. [DB Internal]Deadlock TL;DRMongoDB Atlas의 Transaction에서는 Deadlock이 발생하지 않는다는 간단한 예제[1](2024.08.07, MongoDB Atlas 7.0기준) [1] MongoDB는 Transaction을 지원합니다만, 모든 DML에 Transaction을 사용하는 것은 주의 깊은 고려가 필요합니다IT JourneymanMongoDB는 명시적 Transaction(Lock)을 지원합니다. 그러면 늘 따라오는 질문이 Deadlock입니다만, MongoDB Atlas에서는 별로 개의치 않으셔도 됩니다.대부분의 NoSQL에서는 명시적(사용자 선언) Transaction을 지원하지 않고, LUW/LWW(Last Update Win/Last Write Win)을 채택하고 있습니다. 간단하게 말해서.. 2024. 8. 7. 이전 1 다음