2012年9月9日日曜日

MySQL Dump利用DBサーバ前




*-Aサーバージョブの開始 - *
が。 TelnetあるいはSSHでAサーバーにリモート接続します。 (リモート接続方法は、このブログを見つけてください。)
私。 Aサーバーのmysqlのインストールパス見つけ戻る
    cd / usr / local / mysql / bin [Enter]
だ。 ls [Enter] mssqldumpという名前のファイル(こいつがdumpの核心)があることを確認。
と。 / usr / local / mysql / bin / mysqldump-u root-p DB名>生成するダンプファイル名。sql [Enter]
よ。ダンプ庭AサーバーSQLパスワードを入力して[Enter]しばらく待機。
バー。 Aサーバーダンプ浮かぶ完了します。
社。 ls [Enter]生成されたダンプファイル名。sqlが見えることを確認。
あ。生成されたダンプファイルをAサーバーのFTPホームディレクトリのパスにコピーします。
    cp-r生成されたダンプファイル名。sql FTPホームディレクトリのパス[Enter]
    参考までに、通常の場合、FTPホームディレクトリは/ home / FTP接続アカウント/になっている。
う。 FTPホームディレクトリに移動
    cd / home / Aサーバー、FTP接続アカウント、[Enter]
車。 ls [Enter]生成されたダンプファイルが正常にコピーされていることを確認。
カー。卵FTPを実行して、Aサーバーの接続後に作成したダンプファイル内のコンピュータにダウンロードします。
*-Aサーバー操作の最後 - *

*-Bサーバージョブの開始 - *
が。卵FTP実行してBサーバー接続後、ダウンロードしたダンプファイルをBサーバーにアップロードします。
私。 TelnetあるいはSSHでBサーバーへのリモート接続します。 (リモート接続方法は、このブログを見つけてください。)
だ。 FTPホームディレクトリに移動
    cd / home / Bサーバー、FTP接続アカウント、[Enter]
と。 ls [Enter]アップロードしたダンプファイルで、sqlが見えることを確認。
よ。アップロードしたダンプファイルをBサーバーのmysqlのインストールパスに移動する。
     cp-rアップロードしたダンプファイルで、sql / usr / local / mysql / bin [Enter]
あ。 mysqlのインストールパスを見つけ戻る
     cd / usr / local / mysql / bin [Enter]
う。 ls [Enter]ファイルのコピーが正しくドゥェトヌンジ確認。
車。ダンププッシュ
     / usr / local / mysql / bin / mysql-u root-p押し込むBサーバーDB名<アップロードしたダンプファイル名。sql [Enter]
カー。押し込むBサーバーSQLパスワードを入力して[Enter]しばらく待機。
取得します。ダンププッシュ完了します。
*-Bサーバー操作の最後 - *

- *その他の参考情報 - *
1。ダンプ浮かぶ
mysqldump-uユーザーアカウント-pデータベース名、テーブル名>保存されるファイル名
例)mysqldump-u root-p mydb_name> mydb_name.sql
これにより、mydb_nameをすべてダンプを浮かぶようになる。

テーブルのみがダンプを開いてたい
例)mysqldump-u root-p mydb_name member> mydb_name.member.sql
これにより、目的のテーブルのみがダンプを浮かぶことができる。
2。回復する
mysql-uユーザーアカウント-p DB名<ダンプファイル名
例)mysql-u root-p <ダンプファイル名。sql
例)mysql-u root-p mydb_name <ダンプファイル名。テーブル名。sql

1特定のdbの特定のtableから目的の値をダンプ取得
>> eduというディビに、a、b、cというテーブルがあります。
ここで、aというテーブルからnoが7回以上であり、10回
以下の値のみをダンプを受けようとする。どうする?
ここで使用されるオプションは、-wです。それでは上記の質問のsql文は以下の通り
mysqldump-u mysql_admin-p edu a-w'no => 7 and no = <10 '> edu_a_cond.sql

上記のようにすればnoが7〜10回までがダンプであろう。
上記の条件は、-w次のシングルクォーテーションで囲んでくれる。
sqlで使用する条件が多なるようだ。
すべてのテストをヘボジンなかった。

2ディビスキーマ(Schema)のみをバックアップ取得
>>初期に作成したテーブルのスキーマがない場合にどうするか?
もし一つのテーブルであればdescていちいちだシャベルをするとドゥェゴトが
もしテーブルが100個なら..クオク...こういう時に使用するmysqldumpのオプションがあります。
-dです。

!eduというディビのすべてのテーブルのスキーマをバックアップ取得するには
mysqldump-u mysql_admin-p-d edu> edu_db.sql

!eduというディビのaというテーブルのスキーマをバックアップ取得するには
mysqldump-u mysql_admin-p-d edu a> edu_a_table.sql

[Option Information]
- opt
[ - quick - add-locks - add-drop-table - extended-insert]
遠復をするとき、既存のDBとTABLEは、DATAを削除し、バックアップした内容にUpdateをしています。
-q、 - quick
バッファを使用せずに直接標準出力に送る。
- add-locks
テーブルのダンプする前に、テーブルをロックし、ダンプした後、テーブルを解いてくれる。
- add-drop-table
ダンプ結果からcreate tableの前にdrop table句を追加します。
-c、 - complte-insert
INSERT文でフィールド名を含む全体のダンプ
- extended-insert
INSERT文からすべてのレコードを挿入するINSERTステートメントを生成します。
-f、 - force
ダンプ中にエラーがあっても続行
-h、 - host
特定のホストのMySQLのデータのダンプ
-t、 - no-create-info
テーブルの作成については、ダンプしない(データのみのダンプ)
-d、 - no-data
テーブルのスキーマのみをダンプ
- default-character-set = euckr
 character set指定
- extended-insert = FALSE
 分離されたquery文で作成

0 件のコメント:

コメントを投稿