MongoDB管理編


一、データエクスポートmongoexport
DBAとして、エクスポートデータをインポートする必要がある場合がよくあります.次に、ユーティリティmongoexportとmongoimportの使い方を紹介します.
$./mongoexport -d my_mongodb -c user -o user.dat

共通パラメータの説明:
  • -d|--dbは、使用するライブラリ
  • を示す.
  • -c|--collectionは、エクスポートされたcollection
  • を示す.
  • -o|--outは、エクスポートされたファイル名
  • を示す.
  • -f|--fieldsはエクスポートされたフィールドを示し、複数のフィールド用、番号区切り
  • --host/--portはmongoに接続されたホストipとポート
  • を示す.
  • --csvエクスポートcsvフォーマット、デフォルトはjsonフォーマット
  •  
    二、データインポートmongoimport
    $./mongoimport -d my_mongodb -c user user.dat

    データをインポートすると、テーブル構造が暗黙的に作成されることがわかります.共通パラメータの説明:
  • -d|--dbで使用されるデータベース
  • -c|--collectionで使用されるセット
  • -f|--fieldsが使用するフィールド、複数用','番号区切り
  • --host/--port mongodbのipとポート
  • に接続
  • --typeインポートファイルのフォーマット.デフォルトはjson
  • です.
  • --drop drop collection first
  • --stopOnErrorインポートエラー時に
  • を停止
  • --fileは、ファイルをインポートするパス
  • を示します.
  • --headerlineファイルをインポートしない最初の行
  • 注意:CSVフォーマットは良好で、主流のデータベースはすべてCSVにエクスポートするフォーマットをサポートしているので、このフォーマットは異機種データの移行に非常に有利です. 
     
    三、データバックアップmongodump
    mongodumpでMongoDBのライブラリまたはテーブルレベルのバックアップを行うことができます.
    $./mongodump -d my_mongodb

    現在のディレクトリの下にdumpディレクトリが作成されます.バックアップされたファイルを保存するか、バックアップされたディレクトリを指定できます.重要なパラメータの説明:
  • -d|--dbがバックアップするデータベース
  • -c|--collectionバックアップするセット
  • -o|--outバックアップファイルのディレクトリを出力し、'-'は標準出力
  • である.
  • -q|--queryクエリーバックアップ
  •  
    四、データ回復mongorestore
    $./mongorestore -d my_mongodb my_mongodb_dump/*

    共通パラメータの説明:
  • -d|--dbで使用するデータベース
  • -c|--collectionはセット
  • を使用します.
  • --objcheck挿入前にオブジェクトを検証する
  • --filterは挿入する前にフィルタ
  • を適用する.
  • --drop各セットをインポートする前に
  • を削除します.
     
    五、アクセス制御
    公式マニュアルではMongoDBサービスを起動する際にパラメータはありません.クライアントが接続されると、データベースを任意に操作でき、リモートでデータベースにアクセスできるので、開発段階ではパラメータを設定しなくてもよいことをお勧めしますが、生産環境についてはセキュリティ面の要素をよく考慮し、MongoDBデータベースのセキュリティを向上させるにはいくつかの面があります.
  • バインドIPイントラネットアドレスアクセスMongoDBサービス
  • リスニングポート
  • を設定する.
  • ユーザー名とパスワードを使用して
  • にログイン
    5.1 IPイントラネットアドレスをバインドしてMongoDBサービスにアクセスする
    MongoDBは、起動時にパラメータbind_を追加する限り、特定のIPのみがアクセスできるように制限することができる.ipでいいです.以下のようにします.
    $./mongod --bind_ip 192.168.1.103

    クライアントがアクセスするときは、サービス側のIPを明確に指定する必要があります.そうしないと、エラーが発生します.
    5.2リスニングポートの設定
    公式のデフォルトのリスニングポートは27017です.セキュリティのため、通常、このリスニングポートを変更し、悪意のある接続試行を回避します.具体的には、サービス側のリスニングポートを28018に変更します.
    ./mongod --bind_ip 192.168.1.103 --port 28018

    クライアントアクセス時にポートを指定する必要があります.そうしないと、エラーが発生します.
    5.3ユーザー名とパスワードでログインする
    MongoDBのデフォルトの起動はユーザー名とパスワードを検証しません.MongoDBを起動すると、直接MongoDBで接続でき、すべてのライブラリにroot権限を持つことができます.だから起動時にパラメータを指定して、クライアントのアクセスと接続を阻止することができます.
    ./mongod --auth

    このときログインしてもmongoは使えます.最初はMongoDBにadminデータベース(デフォルトは空)がデフォルトであり、admin.system.usersには、他のデータベースで設定したユーザー権限よりも大きなユーザー情報が保存されます.注意:admin.system.ユーザーにユーザーが追加されていない場合、MongoDBの起動時に--authパラメータが追加されている場合でも、admin以外のデータベースにユーザーが追加されている場合は、adminにいることがわかるまで認証を行わずに操作を使用できます.system.usersにユーザーが追加されました.5.3.1ユーザーを増やす
    db.addUser('username', 'password');             //    root  
    db.auth('username', 'password');

    5.3.2指定権限を確立するユーザーMongoDBもある特定のデータベースのためにユーザーを設定することをサポートする.例えば、testライブラリのために読み取り専用のユーザーuser_を設定する.reader:
    > use test
    > db.addUser("user_reader", "user_pwd", true)
     
     

    六、进程控制

    6.1 查看活动进程

    >db.currentOp();  //    : db.$cmd.sys.inprog.findOne()
    { inprog: [ { "opid" : 18 , "op" : "query" , "ns" : "mydb.votes" ,
                      "query" : "{ score : 1.0 }" , "inLock" : 1 
                    }
                 ]
    }

    フィールドの説明:
  • Opid:操作プロセス番号
  • Op:操作タイプ(クエリー、更新など)
  • Ns:ネーミングスペースとは、どのオブジェクトを操作するかを指す
  • Query:操作タイプがクエリーの場合、ここに具体的なクエリー内容
  • が表示されます.
  • lockType:ロックのタイプ、リードロックかライトロックかを示す
  •  
    6.1プロセスの終了
    > db.killOp(1234/*opid*/) //    : db.$cmd.sys.killop.findOne({op:1234})

    注意:replica setが開始するsync操作など、kill内部で開始する操作はしないでください.