はじまりは
畜生ペンギン@keny_lala のひとこと。
xtrabackupが今稼働中だよーってことがOSコマンドじゃなくてMySQLから分かる方法ありませんか?—
kentarokitagawa (@keny_lala) 2017年4月13日
Percona Serverには LOCK TABLES FOR BACKUP とかあったよなと思いつつ、たぶんPercona
Serverじゃないので置いておく。 xtrabackup-2.4.6のソースコードをナナメに読んでいくと、 SET SESSION wait_timeout = 2147483 …
TL;DR WITH ROLLUPの結果行をHAVING条件に書けるようすることができる。 それ以外の時には使わない。
MySQL :: MySQL 8.0 Reference Manual :: 13.20
Miscellaneous Functions 使い方。 そもそも WITH ROLLUP の使い方を知らないと楽しくもなんともないので WITH
ROLLUP の説明から。 まずは WITH ROLLUP
なしバージョン(SUM関数を噛ませてるのはあとで WITH ROLLUP した時のため)
mysql80> SELECT Continent, Name, SUM(Population) AS Population FROM country GROUP BY Continent, Name;
+---------------+----------------------------------------------+------------+
| Continent | Name …[さらに読む]
Sushi = Beer ?! An introduction of UTF8 support in
MySQL 8.0 | MySQL Server Blog (ユーザーによる日本語訳: 寿司=ビール問題 : MySQL
8.0でのUTF8サポート入門 (MySQL Server Blogより) |
Yakst)で言及されていた日本語用の照合順序 utf8mb4_ja_0900_as_cs 。
MySQL 8.0.1 で実装されていたので試してみた。
mysql80> SHOW COLLATION LIKE 'utf8%ja%';
+-----------------------+---------+-----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-----------------------+---------+-----+---------+----------+---------+
| utf8mb4_ja_0900_as_cs | …[さらに読む]
InnoDBログをcatしたら見知らぬibdファイルの名前が書いてあることに気が付いた。
mysql/character_sets.ibd なるファイルに書き込みをしているようだが、
mysql80> SHOW TABLES FROM mysql LIKE '%char%';
Empty set (0.00 sec)
そんなテーブルは存在しない。
$ ll data/mysql/character_sets.ibd
-rw-r----- 1 yoku0825 yoku0825 163840 Apr 3 14:44 data/mysql/character_sets.ibd
ファイルは確かにある。 なんだこれ…? と思ってたら、なんか他にもいっぱいあった。
$ diff -y <(./use -sse "SHOW TABLES FROM mysql" | sort) <(ls data/mysql/*.ibd | perl -nle 's/.+\///; s/\.ibd//; print' | sort)
> catalogs
> character_sets
…[さらに読む]
MySQL8.0におけるROLEによるユーザー権限管理についての確認。
MySQL5.7からProxy
Userを利用する事で、ROLEと同じように権限をまとめて管理する事が出来るようになりましたが、MySQL8.0からは正式にROLEが追加されて、複数ROLEの切り替えやROLEのネストが出来るようになります。これにより、多くのユーザーを管理するような環境では、権限管理工数やミスが削減出来る事になるかと思います。
7.3.4 Using Roles
https://dev.mysql.com/doc/refman/8.0/en/roles.html
ROLEの作成とROLEへの権限付与
mysql> CREATE ROLE role80; Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL on DEMO.* TO role80; Query OK, 0 rows affected (0.05 sec) mysql> create user user01 identified by …[さらに読む]
MySQL のプロダクトマネジャーである Matt Lord さんをお招きして 日本MySQLユーザ会会 を開催しました。
当日はベストプラクティス・・・というかDBAからのお願いを発表してきました。
DB利用者に意識してほしいことを中心に取り上げてみました。
My MySQL Best Practices from
Satoshi Mitani
Matt さんからはGroup Replication を使った高可用構成と、さらにGroup
Replicationのセット複数並べてシャーディングする InnoDB Cluster を紹介がありました。
Oracle Cloud MySQL Serviceでは、GUIベースのダッシュボードだけでは無く、APIやPaaS
Service Manager
(PSM)コマンドライン・インタフェース(CLI)を利用してインスタンスを管理する事が可能です。GUIでの管理も使いやすくて良いのですが、Provisioningの自動化による工数削減にはAPIかCLIの活用が必用になるかと思います。
今回は、PSMを利用したインスタンスの作成と削除方法を此方で紹介します。先ずは、MySQL Cloud
Serviceを検証環境等で活用してみて頂ければと思います。
Japanese Manual
https://docs.oracle.com/cd/E60665_01/jcs_gs/PSCLI/GUID-A63D73BD-4F22-472D-9E04-D998CEE68A00.htm
…
[さらに読む]
TL;DR SET GLOBAL sql_select_limit = ?
で結果セットのサイズを制限していると、xtrabackupが内部的に発行している SHOW
ステートメントの出力結果が切り詰められてクラッシュすることがある。
xtrabackupで遊んでいたら、ある時からおもむろにsignal
11で落ちるようになった。それ以前はフツーにバックアップ取れてたのに。
$ innobackupex -S /usr/mysql/5.7.17/data/mysql.sock -uroot .
170321 10:43:26 innobackupex: Starting the backup operation
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
Unrecognized character \x01; marked by <-- HERE after <-- HERE near column 1 at - line 1374.
170321 10:43:26 Connecting to MySQL server host: localhost, user: root, password: not set, port: …[さらに読む]
バックアップをリモートのPublic Cloud上のオブジェクトストレージに直接送り、DR, BCP対策を行う事が可能ですが、mysqlbackupにもオブジェクトストレージに直接バックアップを送るオプションがあるので、OracleのPublic Cloudを利用して動作確認しました。
※ 2017年3月現在、MySQL
Serviceが日本のデータセンタでは提供して無い為、EUの検証環境に対して検証を行いました。
開発環境としては、Enterprise版のモジュール、サポート、コンサルティングサポート含めて利用する事が可能ですので、TCOの削減が可能ですが。レスポンスが要求される本番環境としては、日本のデータセンターでのサービスが待ち遠しい所です。
Additional Note on 2017/04/30:
mysqlbackupを利用してobject …
ネタ的には YAPC::Hokkaido 2016
Sapporo の時のリライト(8.0.1のリリースノートの情報を追加した感じ)で、相変わらずいくつかの側面に分けてMySQL
8.0に期待していることやこうなるんじゃないかな感を発表しました。
MySQL 8.0.1のリリースノート
が結構量が増えていて、時間も前回の20分に対して45分と倍増していたんですが、時間ギリギリまで結構色々しゃべりました。
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう from
…