#author("2022-07-14T02:46:45+00:00","default:admin","admin") #author("2022-07-14T02:47:49+00:00","default:admin","admin") -MySQL関連のWikiへのリンク --[[MySQL:http://wiki.gashimax.com/index.php?MySQL]] --MySQL 5.1 --MySQL 5.4 --MySQL/InnoDB --MySQL/エラー --MySQL/クラスタリング --MySQL/サーバ移動 --MySQL/チューニング --MySQL/バージョン --MySQL/バックアップ --MySQL/プロファイリング --MySQL/ベンチマーク --MySQL/レプリケーション --MySQL/ロック ---- -[[MySQLデータのバックアップ方法:http://sourceforge.jp/magazine/07/05/31/0155233]] -[[【MySQLウォッチ】第23回 押さえておきたいバックアップとリストアのポイント:http://itpro.nikkeibp.co.jp/article/COLUMN/20060122/227654/]] -[[スナップショットでバックアップ:http://www.mysqlpracticewiki.com/index.php/%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97]] * テキストファイル出力 [#d0ac005d] ** SELECT INTO OUTFILE [#o2cb7ae0] -[[MYSQL (テキストファイルへの書き出しと読み込み):http://variable.jp/?p=1808]] mysql> select [列名, …] into outfile '[ファイル名]' fields terminated by '[区切り文字]' enclosed by '[囲み文字]' lines terminated by '[改行コード]' from [テーブル名] [whereなど条件文]; ** mysqldumpで出力 [#s6fdc487] -[[Using mysqldump to save data to CSV files:http://www.electrictoolbox.com/using-mysqldump-to-save-data-to-csv-files/]] $ mysqldump -p --skip-lock-tables -T ./ --fields-enclosed-by=\" --fields-terminated-by=, -t [データベース] [テーブル] *mysqldump [#y9203861] -[[mysqldumpとは?解説と実行方法:https://note.com/shift_tech/n/ncc28855d20a1]] mysqldump --no-tablespaces --single-transaction -u [ユーザ] -p[パスワード] [オプション] [データベース] [テーブル1] [テーブル2] ... > [ダンプファイル] -[テーブル *] は特定テーブルのみにしたい場合に指定 ** 使い方 [#h81bdac5] -定義のみ、テーブルロックなし mysqldump -d --skip-lock-tables ... -データのみ、テーブルロックなし mysqldump -t --skip-lock-tables ... デフォルトで --opt オプションが有効になっている。--optオプションの内容は以下の通り。 - --add-drop-table - --add-locks ... LOCK TABLESとUNLOCK TABLESステートメントで各テーブルダンプを囲む。これによりダンプファイルを再ロードする際のインサートの速度が向上する。 - --create-options - --disable-keys - --extended-insert - --lock-tables - --quick - --set-charset データベース内で確実に整合を取りたい場合は、以下のオプションも付ける。 - -x ... --lock-all-tablesと同じ。全てのデータベースの全てのテーブルをロック。これは全ダンプの期間、グローバルリードロックを取得することで達成される。全ての処理を停止した状態でやらないとえらいことになる。 その他よく使うオプションを以下に列挙 - --no-tablespaces ... テーブルスペース情報が不要な場合は付ける - --single-transaction ... InnobDB メインな DBでデータの整合性を保つために付ける - --skip-lock-tables ... テーブルをロックしないでダンプする。当然、このオプションを指定する場合はダンプ中にデータを更新しないようにする。 - --databases db_name1 [db_name2 ...] ... ダンプするDBを指定 - --ignore-table=db_name.tbl_name ... ダンプしないテーブルを指定 - --no-data ... データはダンプしない。CREATE TABLE文のみダンプしたい場合に使用 - --where="[条件句]" ... ダンプの条件指定。 例)--where="sales>10000" -- AUTO_INCREMENT の値は現在値+1になっているので、必要であれば修正する。 -[[MySQLのデータベース作成、ユーザー作成、アクセス権限設定:http://blog.cheki.net/archives/1405]] ** 豆知識 [#c1fb7d7f] -[[mysqldump と repair with keycache:http://d.hatena.ne.jp/ichii386/20070924/1190610994]] mysqldump は効率良く import ができるように、以下の順番のSQLを出力してくれる 1. lock tables 2. disable keys 3. insert, insert, insert, ... 4. enable keys 5. unlock tables **トラブルシューティング [#r03b1405] ***unknown variable [#eae05be7] -[[MySQLのバックアップ(mysqldump)で”mysqldump: unknown variable” そのときの解決方法:https://e-yota.com/webservice/post-2576/]] -[[mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' と言われないためのTIPS:https://yoku0825.blogspot.com/2017/11/mysqlbinlog-error-unknown-variable.html]] ***Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces [#x72c4cfb] -[[MySQLDump で tablespaces の PROCESS privilege エラーが出だした時の対処方法:https://qiita.com/katzueno/items/29d812eb3aafdb23b0bb]] -[[mysqldumpで「Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces」となる場合の対処:https://www.koikikukan.com/archives/2021/02/17-235555.php]] -テーブルスペース情報をダンプする必要がないユーザーは、-no-tablespacesオプションを指定してmysqldumpを呼び出すことにより、前述の要件を回避できます。 * [[mysqlhotcopy:http://dev.mysql.com/doc/refman/5.1/ja/mysqlhotcopy.html]] [#a74fd267] -MyISAMとARCHIVEテーブルのみバックアップ可能 * [[AutoMySQLBackup:http://sourceforge.net/projects/automysqlbackup/]] [#q195f478] -[[MySQLの全DBを自動バックアップする:http://www.ivystar.jp/index.php?p=105&more=1]] * [[MySQL Enterprise Backup:http://www-jp.mysql.com/products/enterprise/backup.html]] [#ad413d51] -商用版のMySQL Edition で利用可能 ** InnoDB Hot Backup [#jac827e8] -[[ソフトエイジェンシーのページ:http://www.softagency.co.jp/products/innodb/]] -[[本家:http://www.innodb.com/hot-backup/]] -[[InnoDBのホットバックアップに関する質疑応答:http://mlog.euqset.org/blog/namazu.cgi?idxname=mlog&query=%A5%DB%A5%C3%A5%C8%A5%D0%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7&submit=%B8%A1%BA%F7&whence=0&max=100&result=normal&sort=date%3Alate]] -[[LVMスナップショット vs InnoDB Hot Backup:http://nippondanji.blogspot.com/2009/12/mysql-lvm-vs-innodb-hot-backup.html]] * [[Percona XtraBackup:https://launchpad.net/percona-xtrabackup/]] [#y7a0954e] -[[tcpdump & xtrabackup [slideshare]:http://www.slideshare.net/riywo/tcpdump-xtrabackup-mysql-casual-talks-1]] -[[xtrabackupをちょっと便利に使う:http://d.hatena.ne.jp/kamipo/20110106/1294335371]] -基本的な仕組み --InnoDBのWAL(Write Ahead Log)を複製するプロセスを起動 –-データファイルをコピー –-データファイルコピーが終わったら、WALを適応(適応はInnoDBのクラッシュリカバリを利用) --コピー終了時点のバックアップ完了 * [[Zmanda Recovery Manager for MySQL:http://www.zmanda.com/backup-mysql.html]] [#r8e4a1db] * [[mylvmbackup:http://www.lenzg.net/mylvmbackup/]] [#neb7e5ad] * LVMスナップショット [#v56d414d] -[[LVM + XFSで高速簡単 MySQLバックアップ:http://labs.unoh.net/2006/09/lvm_xfs_mysql.html]] -[[LVMスナップショットバックアップのためのシェルスクリプトを作った:http://d.hatena.ne.jp/ono_matope/20100314/1268578036]]