MongoDB管理編
一、データエクスポートmongoexport
DBAとして、エクスポートデータをインポートする必要がある場合がよくあります.次に、ユーティリティmongoexportとmongoimportの使い方を紹介します.
共通パラメータの説明:-d|--dbは、使用するライブラリ を示す.-c|--collectionは、エクスポートされたcollection を示す.-o|--outは、エクスポートされたファイル名 を示す.-f|--fieldsはエクスポートされたフィールドを示し、複数のフィールド用、番号区切り --host/--portはmongoに接続されたホストipとポート を示す.--csvエクスポートcsvフォーマット、デフォルトはjsonフォーマット
二、データインポートmongoimport
データをインポートすると、テーブル構造が暗黙的に作成されることがわかります.共通パラメータの説明:-d|--dbで使用されるデータベース -c|--collectionで使用されるセット -f|--fieldsが使用するフィールド、複数用','番号区切り --host/--port mongodbのipとポート に接続--typeインポートファイルのフォーマット.デフォルトはjson です. --drop drop collection first --stopOnErrorインポートエラー時に を停止--fileは、ファイルをインポートするパス を示します.--headerlineファイルをインポートしない最初の行 注意:CSVフォーマットは良好で、主流のデータベースはすべてCSVにエクスポートするフォーマットをサポートしているので、このフォーマットは異機種データの移行に非常に有利です.
三、データバックアップmongodump
mongodumpでMongoDBのライブラリまたはテーブルレベルのバックアップを行うことができます.
現在のディレクトリの下にdumpディレクトリが作成されます.バックアップされたファイルを保存するか、バックアップされたディレクトリを指定できます.重要なパラメータの説明:-d|--dbがバックアップするデータベース -c|--collectionバックアップするセット -o|--outバックアップファイルのディレクトリを出力し、'-'は標準出力 である.-q|--queryクエリーバックアップ
四、データ回復mongorestore
共通パラメータの説明:-d|--dbで使用するデータベース -c|--collectionはセット を使用します.--objcheck挿入前にオブジェクトを検証する --filterは挿入する前にフィルタ を適用する.--drop各セットをインポートする前に を削除します.
五、アクセス制御
公式マニュアルではMongoDBサービスを起動する際にパラメータはありません.クライアントが接続されると、データベースを任意に操作でき、リモートでデータベースにアクセスできるので、開発段階ではパラメータを設定しなくてもよいことをお勧めしますが、生産環境についてはセキュリティ面の要素をよく考慮し、MongoDBデータベースのセキュリティを向上させるにはいくつかの面があります.バインドIPイントラネットアドレスアクセスMongoDBサービス リスニングポート を設定する.ユーザー名とパスワードを使用して にログイン
5.1 IPイントラネットアドレスをバインドしてMongoDBサービスにアクセスする
MongoDBは、起動時にパラメータbind_を追加する限り、特定のIPのみがアクセスできるように制限することができる.ipでいいです.以下のようにします.
クライアントがアクセスするときは、サービス側のIPを明確に指定する必要があります.そうしないと、エラーが発生します.
5.2リスニングポートの設定
公式のデフォルトのリスニングポートは27017です.セキュリティのため、通常、このリスニングポートを変更し、悪意のある接続試行を回避します.具体的には、サービス側のリスニングポートを28018に変更します.
クライアントアクセス時にポートを指定する必要があります.そうしないと、エラーが発生します.
5.3ユーザー名とパスワードでログインする
MongoDBのデフォルトの起動はユーザー名とパスワードを検証しません.MongoDBを起動すると、直接MongoDBで接続でき、すべてのライブラリにroot権限を持つことができます.だから起動時にパラメータを指定して、クライアントのアクセスと接続を阻止することができます.
このときログインしてもmongoは使えます.最初はMongoDBにadminデータベース(デフォルトは空)がデフォルトであり、admin.system.usersには、他のデータベースで設定したユーザー権限よりも大きなユーザー情報が保存されます.注意:admin.system.ユーザーにユーザーが追加されていない場合、MongoDBの起動時に--authパラメータが追加されている場合でも、admin以外のデータベースにユーザーが追加されている場合は、adminにいることがわかるまで認証を行わずに操作を使用できます.system.usersにユーザーが追加されました.5.3.1ユーザーを増やす
5.3.2指定権限を確立するユーザーMongoDBもある特定のデータベースのためにユーザーを設定することをサポートする.例えば、testライブラリのために読み取り専用のユーザーuser_を設定する.reader:
DBAとして、エクスポートデータをインポートする必要がある場合がよくあります.次に、ユーティリティmongoexportとmongoimportの使い方を紹介します.
$./mongoexport -d my_mongodb -c user -o user.dat
共通パラメータの説明:
二、データインポートmongoimport
$./mongoimport -d my_mongodb -c user user.dat
データをインポートすると、テーブル構造が暗黙的に作成されることがわかります.共通パラメータの説明:
三、データバックアップmongodump
mongodumpでMongoDBのライブラリまたはテーブルレベルのバックアップを行うことができます.
$./mongodump -d my_mongodb
現在のディレクトリの下にdumpディレクトリが作成されます.バックアップされたファイルを保存するか、バックアップされたディレクトリを指定できます.重要なパラメータの説明:
四、データ回復mongorestore
$./mongorestore -d my_mongodb my_mongodb_dump/*
共通パラメータの説明:
五、アクセス制御
公式マニュアルではMongoDBサービスを起動する際にパラメータはありません.クライアントが接続されると、データベースを任意に操作でき、リモートでデータベースにアクセスできるので、開発段階ではパラメータを設定しなくてもよいことをお勧めしますが、生産環境についてはセキュリティ面の要素をよく考慮し、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内部で開始する操作はしないでください.