こんにちは。k.otsukaです。今日はエイプリルフールですね。 早いものでテレワーク生活も1年経過してしまいました。 毎日会社に行ってた日々が懐かしいなと思う今日この頃。毎日満員電車に揺られながら会社に行きたいですね。 さて、Oracle CloudにMySQLのPaaSことMDSが登場してから半年ほど経ちました。 登場してから今日までシングル構成のみ構築できる状態で、障害発生を考えるとなかなかグヌヌ状態でしたが、 なんとついに、HA構成で構築できるようになりました! 今回もいち早く触ってみましたので、使ってみた感想や注意点など含め紹介します。 詳細情報については公式ドキュメントを確認ください。 https://docs.oracle.com/en-us/iaas/mysql-database/doc/business-continuity.html#MYAAS-GUID-2CD8BFB
今さらですけど、自分でもちゃんと把握してなかったので調べてみました。 MySQLのCharsetのうちシフトJIS系のものはsjisとcp932の二つあります。 どちらもコードの範囲は次のように同じです。 1バイト文字 0x00-0x7F, 0xA1-0xDF 2バイト文字の1バイト目 0x81-0x9F, 0xE0-0xFC 2バイト文字の2バイト目 0x40-0x7E, 0x80-0xFC 違いは文字集合です。1バイト文字はどちらも同じ(ASCII + JIS X 0201 カナ)ですが、2バイト文字はsjisはJIS X 0208 で、cp932はWindows-31Jです。 sjisに含まれていない文字 cp932はsjisよりも文字が多く、丸囲み数字(「①」「②」「③」等)、ローマ数字(「Ⅰ」「Ⅱ」「Ⅲ」等)、組文字(「㍉」「㌍」「㍻」等)、その他「彅」「髙」等の JIS X 0
MySQL 5.6が登場してからかなりの月日が過ぎたが、他のことで多忙だったせいか、MySQL 5.6についてはあまりブログで情報を発信していないことに気がついた。これはイカン!!と思い、MySQL Casual Advent Calendar 2014に合わせて、MySQL 5.6を使用する上で最もオススメしたい機能であるクラッシュセーフなレプリケーションについて解説しようと思う。この記事は16日目の記事である。 レプリケーションがクラッシュセーフとはどういうことかクラッシュセーフとは、何らかの事情により、プロセスがダウンしたりマシンが電源ごと落ちたり(つまりクラッシュ)しても、再起動後に以前の状態に戻って処理を再開できるということだ。データのクラッシュリカバリであればみなさん既によくご存知であろう。(REDOやUNDOするアレのことだ。本稿では面倒臭い・・・ではなかった、本題ではないた
1.基本知識 MySQLは、SQLの解析・実行する機能を実現するServer層とデータアクセス機能を提供するストレージエンジン層で構成されています。ストレージエンジンには、MyISAM、InnoDB、Memoryなどが存在します。binlogは、Server層が出力するログです。redo logは、InnoDBエンジンが出力するログです。二つのログは、ともにDBテーブルの更新時に出力されます。 ディスクアクセスに時間がかかるため、InnoDBエンジンはまずメモリにあるレコードを更新します。次に、redo log bufferに記録します。redo log bufferに記録したら、レコード更新操作が完了とします。この仕組みは、WAL(Write Ahead Logging)といいます。別の専用スレッドが適当のタイミングでredo log bufferの内容をディスクにあるredo logフ
1. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |Copyright © 2014, Oracle and/or its affiliates. All rights reserved. MySQL Global Business Unit Shinya Sugiyama / 杉山真也 MySQL Principal Sales Consult, MySQL Global Business Unit Replication Enhancements in MySQL 5.7 2015/04/24 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 以下の事項は、弊社の一般的な製品の方向性に関する概要を
レプリケーションや高可用性構成の検証の為、MySQL5.7に準同期レプリケーションを構築した手順をまとめます。 MySQL5.7でデフォルトでONになっているロスレスレプリケーションの他、GTIDやクラッシュセーフスレーブもONにした手堅い設定になっています。いずれもMySQL5.7ではパフォーマンスを維持しながら可用性を高められるオプションなので、新規導入ならONにするのがお勧めです。 前提 サーバーの用意 サーバーの構成 手順 1. ファイアウォールの設定 2. 準同期レプリケーション用プラグインのインストール マスター スレーブ 3. レプリケーション用ユーザの作成 マスター 4. オプションファイル(/etc/my.cnf)の編集 マスター スレーブ 5. MySQLサーバーの再起動 6. レプリケーションの開始 スレーブ 7. レプリケーションの確認 スレーブ マスター レプリケ
MySQL 5.6のnutshellを読むと、`クラッシュセーフなレプリケーションを実現するためにはmaster_info_repositoryとrelay_log_info_repositoryをTABLEに設定しな! おっと、relay_log_recoveryも1にしておくんだぜ'みたいことが書いてある。 で、このバグレポートを見た時からずっと、sync_master_infoの暗黙のデフォルト10000のまんまじゃクラッシュセーフじゃなくね? sync_master_info= 1必須? それはパフォーマンス的に死ねる。という感じでモヤモヤしていたのだが、やっと合点がいったのでメモしときます。 master_info_repository FILEの場合、従来どおりmaster.infoファイルに書く。 ファイル名はmaster_info_fileにより可変。 更新があるたび(バイ
MySQL Performance Blogの翻訳。MySQL 5.6の新機能である、リレーログのリカバリ機能を使って、クラッシュ誤にスレーブが自動復旧するように設定する方法。 September 13, 2013 By Stephane Combaudon スレーブがクラッシュした時にもリカバリ可能(クラッシュセーフ)に設定できるのは、MySQL 5.6のレプリケーション関連の大きな改善の一つだ。しかし、正しくこの機能を使うにはどう設定したらよいのか混乱してしまいがちなので、ここで手順をはっきりさせておこう。 概要 スレーブのMySQLを停止 relay_log_info_repository = TABLEとrelay_log_recovery = ONをmy.cnf追記 MySQLを再起動して待つ 細かな詳細 クラッシュセーフなスレーブを作りたい時に、なぜ上のような設定をしなければな
11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。 clubmysql.connpass.com MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアックな集まりでした。 自分も1年前に Ruby で MySQL Xプロトコルを実装していたのですが、このツイートを最後に中断していたのでした。 MySQL X Protocol で Collection の追加はできるようになったが、検索がめんどくさい。条件文字列のパースはクライアントで行う必要があるんだな。— とみたまさひろ💎🐬 (@tmtms) 2017年2月20日 今回話を聞いて、無理に謎条件式文字列をパースするんじゃなくて、処理系で書きやすいように書けばいいんだという方式に目から
武蔵野Advent Calendar 2017の20日目の記事です。品川から参加しています。 今日はMySQL InnoDBの領域管理について勉強し、いくつか動作例を見ながらInnoDBに対する理解を深めていきたいと思います。アプリケーション開発者やデータベース管理者の方にとって明日からすぐに使えるノウハウとまではいきませんが、いつか何かの役に立てば幸いです。 まとめ InnoDBにはテーブルスペース、セグメント、エクステント、ページというデータの管理単位があるよ エクステント単位で空き領域が管理されているよ。だけどそれを知ったところであまり役には立たないよ 昇順INSERTが得意でランダムINSERTが苦手なのはよく知られているけれど、実は降順INSERTが得意だよ テーブルスペース、セグメント、エクステント、ページ InnoDBのデータが格納されるファイルのことをテーブルスペースと呼び
この記事は、MySQL Casual Advent Calendar 2017の20日目の記事です。 煽り気味のタイトルですがみなさん SHOW ENGINE INNODB STATUS 読んでますか? SHOW ENGINE INNODB STATUS \G 見づらいのなんとかならんのか。— そーだい@初代ALF (@soudai1025) 2016年12月20日 わかる。でもMySQLの振る舞いを知る中でSHOW ENGINE INNODB STATUSを読まざる得ない場面はそこそこあります。 どんな時に必要になるのでしょうか? そこでSHOW ENGINE INNODB STATUSにまつわる話を書きます。 SHOW ENGINE INNODB STATUS をまず読みやすくする まず末尾に \G を付けましょう。 これで3倍読みやすくなります。 次に pager less -S を
資料:”https://speakerdeck.com/yoshiakiyamasaki/dockerwoshi-tutemysqlhuan-jing-wogou-zhu-siyou" このビデオは ODC2020 Online 12-19 C-4 ”Dockerを使ってMySQL環境を構築しよう!” 2020年12月19日(土) 13:00 〜 13:45 セッション概要 MySQLを開発しているオラクル社では、Docker用の公式イメージも提供しています。本セミナーでは、このMySQL公式イメージを使ってDockerでMySQL環境を構築する方法と、関連する便利なTIPSについて説明します。 講師:山崎 由章 担当:MySQL Community Team (Oracle Corporation) レベル:入門編 対象者:MySQL環境を手軽に構築したい方、Dockerに興味がある
TLDR; MySQL 8.0.20 から INNER JOIN だけじゃなくて、Semi joinや Left/Right outer join でも HASH JOIN が使えるようになったよ MySQL 8.0.20 では (EXPLAIN ANALYZEではなく)EXPLAIN でも、HASH JOINが使われているか、表示されるようになったよ MySQL 8.0.19 から、optimizer_switch で HASH JOIN の OFF/ON がコントロールできなくなったよ MySQL 8.0.20 Release Note Hash joins are now used any time a nested block loop would be employed. This means that hash joins can be used for the followi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く