SQLでトリガーのみのmysqldumpコマンドを生成する
日々運用を続けている中でたまーーーにでてくる、定義のみのバックアップ、ストアドプロシージャのみバックアップする、トリガーのみをバックアップなど、そのイベントが発生するたびに、googleで調べるのが面倒なため、前回同様、ほぼ自分用にメモ状態になっております。ただ普通に書いてもつまらないので、SQLでmysqldumpコマンドを生成するように作ってみました。
トリガーのみダンプする
- Trigger only dump SQL Information_schemaを利用して、トリガーのみのmysqldumpコマンドを生成します。MySQLの標準で持っているスキーマは予め除外して、同インスタンス内に含まれるスキーマはすべてコマンドを作成するって感じです [SQL]set @MYUSERID='myadmin' ; set @MYPASSWD='password' ; set @BPATH=' /var/dump/' ; select 'mysqldump -u' || @MYUSERID || ' -p' || @MYPASSWD || ' --triggers --no-create-info --no-data ' || SCHEMA_NAME || @BPATH || SCHEMA_NAME || '_triggers_dump ' as trigger_dump_sql from information_schema.SCHEMATA where SCHEMA_NAME not in ('information_schema','mysql','performance_schema') ; [/SQL]
- 上記の実行結果は以下の通り [SHELL] +---------------------------------------------------------------------------------------------------------------------+ | trigger_dump_sql | +---------------------------------------------------------------------------------------------------------------------+ | mysqldump -umyadmin -ppassword --triggers --no-create-info --no-data fulltextdb /var/dump/fulltextdb_triggers_dump | | mysqldump -umyadmin -ppassword --triggers --no-create-info --no-data wp_squad /var/dump/wp_squad_triggers_dump | +---------------------------------------------------------------------------------------------------------------------+ [/SHELL]