Post List

2015년 8월 13일 목요일

MongoDB Study #18 Mongo.exe (Client Shell) 명령어

1. Mongo.exe ( Client Shell ) 에서 사용 가능한 명령어

* help : Mongo Tool에서 사용가능한 명령어 종류를 출력합니다.
* help admin : Mongo Tool에서 사용가능한 시스템 명령어 종류를 출력합니다.
* help connect : Application 에서 MongoDB에 접속하는 방법을 출력합니다.
* help keys : Shell 상에서 사용가능한 편집방법을 출력합니다.
* help misc : Data 처리 (Type 별 입력방법 및 Convert) 를 위한 기타 함수들의 종류 및 설명을 출력합니다.

* use db: Data 처리 (Type 별 입력방법 및 Convert) 를 위한 기타 함수들의 종류 및 설명을 출력합니다.
* db.help() : DB Method 들을 출력합니다.
* db.collection.help() : 해당 Collection에서 사용가능한 method 들을 출력합니다.
* ls("경로"): 해당 경로에 존재하는 File, Directory들을 출력합니다.
* getMemInfo(): 현재 할당된 Memory ( Virtual , Resident )상태를 출력합니다.
* show dbs: 생성되어 있는 Database 이름과 Size를 출력합니다.
* show collections: 현재 DB에 생성되어 있는 Collection들을 출력합니다.
* hostname() : Server의 Host명을 출력합니다.

2. MongoDB Admin Command

* db.adminCommand( { getLog : "global" } ) : 현재 DB와 관련된 Log 상태 정보를 출력합니다.

db.adminCommand( { getLog: "global"})
{
        "totalLinesWritten" : 13,
        "log" : [
                "2015-08-13T07:43:06.339+0900 I JOURNAL  [initandlisten] journal dir=c:/mongodb/test\\journal",
                "2015-08-13T07:43:06.344+0900 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed",
                "2015-08-13T07:43:06.359+0900 I JOURNAL  [durability] Durability thread started",
                "2015-08-13T07:43:06.359+0900 I CONTROL  [initandlisten] MongoDB starting : pid=5584 port=27017 dbpath=c:/mongodb/test 64-bit host=SJYUN-ATIV",
                "2015-08-13T07:43:06.359+0900 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2",
                "2015-08-13T07:43:06.360+0900 I CONTROL  [initandlisten] db version v3.0.5",
                "2015-08-13T07:43:06.360+0900 I CONTROL  [initandlisten] git version: 8bc4ae20708dbb493cb09338d9e7be6698e4a3a3",
                "2015-08-13T07:43:06.360+0900 I CONTROL  [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49",
                "2015-08-13T07:43:06.360+0900 I CONTROL  [initandlisten] allocator: tcmalloc",
                "2015-08-13T07:43:06.360+0900 I CONTROL  [initandlisten] options: { storage: { dbPath: \"c:/mongodb/test\" } }",
                "2015-08-13T07:43:06.360+0900 I JOURNAL  [journal writer] Journal writer thread started",
                "2015-08-13T07:43:06.502+0900 I NETWORK  [initandlisten] waiting for connections on port 27017",
                "2015-08-13T07:43:09.589+0900 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:65021 #1 (1connection now open)"
        ],
        "ok" : 1
}


* db.adminCommand( { setParameter : 1 , Key Value } ) : DB 환경 변수를 설정합니다. 환경 변수 종류 및 설정 값 중 몇가지만 소개해드리겠습니다.
   - syncdelay : 숫자값 (default : 60) : Memory 의 내용을 Disk에 Flush 할 간격. 0으로 하면 sync 작업을 수행하지 않습니다.
   - logLevel : 0 ~ 5 : Log Level을 설정합니다.
   - quiet : true/false : Log 를 quiet mode로 설정합니다.
   - notablescan : true/false : Collection 을 Full Scan을 허용하지 않습니다.
   - journalCommitInterval : 1 ~ 500 ms : Journal 을 Commit 할 간격을 설정합니다.

자세한 내용은 MongoDB Reference 를 참조하세요.
http://docs.mongodb.org/manual/reference/parameters/

> db.adminCommand( { setParameter : 1 , notablescan : true } )
{ "was" : false, "ok" : 1 }

> db.foo.insert ( { _id : 1 , name : false } )
> db.foo.insert ( { _id : 2 , name : false } )
> db.foo.insert ( { _id : 3 , name : false } )

> db.foo.find( { name : false } )
Error: error: {
        "$err" : "Unable to execute query: error processing query: ns=test.foo limit=0 skip=0\nTree: name == false\nSort: {}\nProj: {}\n No query solutions",
        "code" : 17007
}

> db.adminCommand( { setParameter:1, notablescan : false } )
{ "was" : true, "ok" : 1 }
> db.foo.find( { name : false } )
{ "_id" : 1, "name" : false }
{ "_id" : 2, "name" : false }
{ "_id" : 3, "name" : false }

> db.foo.runCommand("compact") // 단편화 제거 및 장애 Repair
{ "ok" : 1 }

> use admin
> db.runCommand( { fsync:1} ) // Memory를 Disk 로 Sync
{ "numFiles" : 7, "ok" : 1 }

> db.fsyncLock() // DB Lcok 설정
{
        "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
        "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
        "ok" : 1
}
> db.currentOp() // 현재 Session 정보
{ "inprog" : [ ] }
> db.fsyncUnlock() // DB Unlcok
{ "ok" : 1, "info" : "unlock completed" }
> db.fsyncUnlock()
{ "ok" : 0, "errmsg" : "not locked" }

> db.fsyncLock()
{
        "info" : "now locked against writes, use db.fsyncUnlock() to unlock",
        "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
        "ok" : 1
}
> db.$cmd.sys.unlock.findOne()  // DB Unlcok
{ "ok" : 1, "info" : "unlock completed" }
> db.$cmd.sys.unlock.findOne()
{ "ok" : 0, "errmsg" : "not locked" } 


* db.collection.validate() : 해당 Collection의 논리적, 물리적 구조 및 Index 등을 보여줍니다. { full : true } 옵션을 넣어주면 모든 정보를 다 보여줍니다.
 

댓글 없음:

댓글 쓰기