レプリケーション環境でデータの不整合が発生するのはよくあることでしょう。pt-table-checksumやpt-table-syncを使ってそういった問題を解決する方法を解説した記事はたくさんあります。多くの場合、データの整合性には気を使うと思いますが、サポート窓口では、以下のような質問を受けることもよくあります。
サーバ間でテーブル定義が一致しているか調べる方法は?
…
[さらに読む]レプリケーション環境でデータの不整合が発生するのはよくあることでしょう。pt-table-checksumやpt-table-syncを使ってそういった問題を解決する方法を解説した記事はたくさんあります。多くの場合、データの整合性には気を使うと思いますが、サポート窓口では、以下のような質問を受けることもよくあります。
サーバ間でテーブル定義が一致しているか調べる方法は?
…
[さらに読む]
MySQL5.7にてレプリケーションに新たなオプションが加わったので、
ここで軽くご紹介させて頂きます。
今回は、以下の2点のみ検証してみました。
1. マルチスレッドスレーブ(同一スキーマ)
– 全体的なパフォーマンス次第ですが、トランザクションを並列して実行可能。
レプリケーションのパフォーマンスが向上します。
2. 動的フィルタリング
– オンライン処理増えると、メンテンナンス時間の制限が減らせてますね。
検証、MySQL Version
root@localhost [REPLI]> select @@version; +--------------+ | @@version | +--------------+ | 5.7.7-rc-log | +--------------+
以下は、また時間見てご紹介させて頂きます。
■ …
[さらに読む]
先日は、共通テーブルスペース(Generated Tablespace)の紹介をさせて頂いたので、
5.7でより細かく設定出来るようになった
undo tablespaceとInnoDB temporary table tablespaceの設定
を紹介してみます。インスタンスの初期設定のタイミングで設定する必要がある為、
出来るだけインスタンスを構築する前にファイルパスなどの設計も行って頂ければ宜しいかと思います。
※まだ、GAになっていないのでRC(リリース候補)での確認のみなので、実際に本番環境で利用する場合は事前検証お願い致します。
■ Separate UNDO tablespace
…
Resizing the InnoDB Buffer Pool Online
MySQL5.7.5DMRからオンラインで、InnoDB Buffer
Poolのサイズを変更出来るようになっています。他の商用データベースでも同じ機能があり、運用において数回程度実行した事がありますが、
正直利用する頻度はそれ程多く無いかと思いますが, “Nice to
Have”と言った機能になるでしょうか。いざという時に、インスタンスを再起動せずに変更出来れば色々と凌げる場面もあるかと思います。
―――― 留意点 ―――― 抜粋:8.9.1.1 Resizing the InnoDB Buffer Pool
Online
When initiating a resizing operation, the operation does not
start until all active transactions are completed. Once the
resizing operation is in …
MySQL5.6ではinnodb_file_per_tableがDefaultでテーブル毎にテーブルスペース(ファイル)が作成されますが、MySQL5.7.6
DMRからは、CREATE TABLESPACEステートメントによって、
複数テーブルで共有出来るテーブルスペースが作成出来るようになりました。また、Defaultデータディレクトリーとは別のパスにテーブルスペースを作成出来るので、
負荷が高いテーブルなどをSSDなどに配置するなど柔軟に対応することが可能になります。Oracle(テーブルスペース)やMS
SQL(ファイルグループ)に関しては、
以前から同様に指定出来ますが、オープンソースデータベースのMySQLは5.7になり、更にそれらの商用データベースと同様の機能も利用出来る汎用性を備えたデータベースになってきました。
…
どのようなシステムにも完全が無いように、
Webサイトのセキュリティに気を付けてコーディングしたり、セキュリティ診断しながら運用しても、
どこかしら運用している中でセキュリティ対策漏れが出て来てしまう事が往々にしてあります。
また、それらのセキュリティ問題は、社内システムに関しても同様です。
個人情報を管理しているデータベースや企業秘密情報を管理するデータベースに関しては、
IPSやFW機能などのアプライアンスなどでカバーしてくれる製品もありますが、
非常に高価なものが多いです。本日、検証し共有させて頂くMySQL Enterprise
Firewall機能に関しては、
White List方法(2015年4月現在)を用いたデータベース側で不正アクセスをブロックする
…
需要が無いかもしれませんが、産まれて初めて、MySQL on Windows について触れます(起動したのも初めて)。
私自身はWindows上のMySQLを性能評価できる環境には無いのですが、 敢えてSQL
ServerとWindowsという相手のホームグラウンドでアウェイ対決させよう、 という猛者のためにこのエントリを残します。
猛者向けですし、私は無責任でおねがいします。陰ながら応援します。
MySQL on Windows
MySQLの性能・スケールを追求・普及していく上で、Windows上での性能評価はやはり避けては通れないと思います。
(実際にどこまで使うかは別として、正確な要素比較は必要でしょう。)
しかし、標準APIを使わなければいけない「地の利が無い」状態では不安が残ります。
できるだけ不安要素は予め解消しておきたいものです。
…
5.7.6 DMRではutf8mb4でのFTインデックスの作成が出来ませんでしたが、
5.7.7 RCで以下のバグ修正が行われたので、基本的なmecab設定をMySQL5.7.7RCにて確認。
今回のリリースで、5.7はRC(リリースキャンディデート)になったので、次のバージョンでGAになり色々な用途で使えるようになりそうです。
Changes in MySQL 5.7.7 (2015-04-08, Release
Candidate)
InnoDB: The InnoDB MeCab full-text parser plugin now supports the
eucjpms,
cp932, and utf8mb4 character sets. (Bug #20534096)
直接関係ないですが、5.7.7からはInnoDBのDefaultファイルフォーマットがBarracudaに変更されています。
Tableデータの圧縮を使う方には、手間が省けて良い変更かと思います。
…
や、EXPLAINの説明用の資料作ってて気付いたんですが、こんなサンプルテーブルに対して
mysql56> show create table cards\G[さらに読む]
*************************** 1. row ***************************
Table: cards
Create Table: CREATE TABLE `cards` (
`seq` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`suite` varchar(6) NOT NULL,
`number` tinyint(3) unsigned NOT NULL,
UNIQUE KEY `seq` (`seq`),
KEY `suite` (`suite`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql56> SELECT * FROM cards ORDER BY _rowid LIMIT 3;
+-----+--------------+--------+
| seq | suite | number |
+-----+--------------+--------+
| 1 | ダイヤ | 2 |
| 2 | クラブ | 9 |
| 3 | スペード | 3 |
+-----+--------------+--------+
3 rows in set (0.01 sec) …
近況などをブログに書いたことはなかったんですが、4月からTreasure Dataで働くことになりました。
3月に新しい仕事を探してたタイミングでちょうど声をかけてもらって、他に誘ってくれてるところもあっていろいろ考えたんですけど、今まで自分がやってたWeb屋さんとは結構ちがう専門的なプロダクトが面白そうだったこと、話してみてエンジニアリング上の解決したい課題についてすごく具体的にいろいろ話してくれたので、畑違いな気もするけどやれることは結構ありそうだなとイメージできたので入社することにしました。
…
[さらに読む]