Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2016/08/24

Ubuntu 14.04 で MySQL 5.6 or 5.7 をインストール

| Ubuntu 14.04 で MySQL 5.6 or 5.7 をインストール - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - Ubuntu 14.04 で MySQL 5.6 or 5.7 をインストール - id:rx7(@namikawa)の技術メモ Ubuntu 14.04 で MySQL 5.6 or 5.7 をインストール - id:rx7(@namikawa)の技術メモ のブックマークコメント

$ wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.7.3-1_all.deb

上記パッケージのインストール・設定時に、 server の選択欄から 5.6 か 5.7 を選択して、 apt-get update すれば、参照できるようになるはず。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20160824

2014/09/30

MacPortsでmysql-clientのインストール

| MacPortsでmysql-clientのインストール - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - MacPortsでmysql-clientのインストール - id:rx7(@namikawa)の技術メモ MacPortsでmysql-clientのインストール - id:rx7(@namikawa)の技術メモ のブックマークコメント

$ sudo port install mysql56
$ sudo port select mysql mysql56

2個目のコマンドを実行しておかないと、"/opt/local/bin" にシンボリックリンクが作られない。

(MacPortsでバージョン単位で管理されているパッケージは全般的にこうなっている。)

トラックバック - http://tech.g.hatena.ne.jp/rx7/20140930

2014/07/01

"The new table `DATABASE`.`_TABLE_new` does not have a PRIMARY KEY or a unique index which is required for the DELETE trigger."

| "The new table `DATABASE`.`_TABLE_new` does not have a PRIMARY KEY or a unique index which is required for the DELETE trigger." - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - "The new table `DATABASE`.`_TABLE_new` does not have a PRIMARY KEY or a unique index which is required for the DELETE trigger." - id:rx7(@namikawa)の技術メモ "The new table `DATABASE`.`_TABLE_new` does not have a PRIMARY KEY or a unique index which is required for the DELETE trigger." - id:rx7(@namikawa)の技術メモ のブックマークコメント

pt-online-schema-change 使っていたら、こんなエラーが出た。

書いてあるとおりだが、PRIMARY KEY か unique index が無いとDELETEの際のトリガの挙動で整合性が取れなくなるとかなのだろう。

トラックバック - http://tech.g.hatena.ne.jp/rx7/20140701

2014/06/30

pt-online-schema-change のインストール

| pt-online-schema-change のインストール - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - pt-online-schema-change のインストール - id:rx7(@namikawa)の技術メモ pt-online-schema-change のインストール - id:rx7(@namikawa)の技術メモ のブックマークコメント

簡単。CentOS 6.4でやった。

# yum install perl-Time-HiRes perl-IO-Socket-SSL perl-DBD-MySQL
# rpm -Uvh http://www.percona.com/redir/downloads/percona-toolkit/LATEST/RPM/percona-toolkit-2.2.8-1.noarch.rpm
トラックバック - http://tech.g.hatena.ne.jp/rx7/20140630

2011/02/11

innodb_flush_log_at_trx_commit

| innodb_flush_log_at_trx_commit - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - innodb_flush_log_at_trx_commit - id:rx7(@namikawa)の技術メモ innodb_flush_log_at_trx_commit - id:rx7(@namikawa)の技術メモ のブックマークコメント

設定値       ログバッファ→ログファイル  ディスクフラッシュ
======================================================================
0            毎秒                        毎秒
1 (初期値)   COMMIT時                    COMMIT時
2            COMMIT時                    毎秒

innodb_flush_log_at_trx_commit が0に設定された時は、ログ バッファは1秒に一回ログ ファイルに書き込まれ、ディスク操作へのフラッシュはログ ファイル上で行われますが、トランザクション コミットの際には何も行われません。この値が1(デフォルト)の時は、ログ ファイルは各トランザクション コミットの時にログ ファイルに書き込まれ、ディスク操作へのフラッシュはログ ファイル上で行われます。2に設定された時は、ログ バッファはコミット毎にファイルに書き込まれますが、ディスク操作へのフラッシュはそこでは行われません。しかし、値が2の時もログ ファイル上でのフラッシュは1秒に1回行われます。1秒に1回のフラッシュは、処理スケジュールの発行の為100% 保証された物ではないという事に注意してください。

この変数のデフォルト値は1です。これは ACID 整合性に要求されている値です。より良い性能の為に1以外の値を設定する事もできますが、その場合1つのクラッシュの中で最大1秒分のトランザクションを失う可能性があります。もし値を0に設定すると、全ての mysqld プロセス クラッシュは最後の秒のトランザクションを消す場合があります。もし値を2に設定すると、OS のクラッシュか停電によって、最後の秒のトランザクションが消されてしまいます。 しかし、InnoDB のクラッシュ復旧は影響を受けないので、値に関係なくクラッシュ復旧は行われます。多くの OS といくつかのディスク ハードウェアはディスクへのフラッシュ操作を欺く事があると覚えておいてください。それらはフラッシュが行われていなくても、行われたと mysqld に伝える可能性があります。1の設定がしてあってもトランザクションの耐久力が保証されないという事になり、さらに悪い事に、停電によって InnoDB データベースが破損する可能性もあります。SCSI ディスク コントローラ内やディスク自体の中での、バッテリーに頼っているディスク キャッシュの利用はファイル フラッシュのスピートを上げ、操作を安全に行う事ができます。ハードウェア キャッシュ内でディスク書き込みのキャッシュを無効にする為に、Unix コマンド hdparm を利用してみたり、ハードウェア ベンダに対しての特定の別のコマンドを利用したりもできます。

注意:InnoDB とトランザクションを共に利用して複製設定内で最大の耐久力と一貫性を得る為に、お使いのマスタ サーバ my.cnf 内で innodb_flush_log_at_trx_commit=1 と sync_binlog=1 を利用しなければいけません。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.12 InnoDB の起動オプションおよびシステム変数

1以外は危険ということだな。

1にしておけば、最悪OSクラッシュを招いても、ディスク上のログファイルにフラッシュされているということか。

(ログから復元できる、と。)


確認

mysql> show variables like 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 1     |
+--------------------------------+-------+
1 row in set (0.00 sec)

設定

mysql> set global innodb_flush_log_at_trx_commit = 2;
Query OK, 0 rows affected (0.00 sec)
トラックバック - http://tech.g.hatena.ne.jp/rx7/20110211