2016年6月19日日曜日

MySQL on Microsoft Azure ハンズオン

MySQL on Microsoft Azure ハンズオンに参加をしてきました。

日時: 2016/6/16(木) 18:00-21:30
場所: 日本マイクロソフト 品川本社 



会場までGoogle MAPを使いながら向かっていました。
行く途中で、1ブロック違う道を歩いていることに気づき、
予定よりも10分ほど遅れて会場に到着。

時間に余裕をもって行動しておいてよかった... 





本社に入るとビルの1階にMicrosoftの受付が。
オフィス内はとても綺麗で、「ここがあの日本Microsoftか!」と心が躍りました。



セミナールームに入ると、思っていたより若手の方が少なく感じました。
一人で来られてる方が多かったからなのか、雰囲気は静かでした。




予定通りの時間に勉強会が始まり、まずは日本マイクロソフト テクニカルエバンジェリスト 久森さんから発表がありました。

・Azure機能めっちゃ多い。 
・サーバの物理的な場所を選択できる。(西日本、東日本)
・仮想サーバ作るとリソースグループができて、その中に仮想ネットワークができて、その中にロードバランサ、NSGができる。
・データセンターの中にはクラスタが複数あり、それぞれ別の障害ドメインに配置することを可用性セットと呼ぶ。

などのAzureの基本とAzureを活用するための情報についての発表でした。




続いて、日本オラクル株式会社 梶山さんから発表がありました。


・OSSの中でMySQLは、OracleDBに続いて2位
・MySQLの歴史 MySQL→Sun→Oracle(現)
 日本でMySQLが広まったのはVer3.2〜
 レプリケーション機能は3.23〜
 Oracleは5.5〜
 開発コミュニテイを持たずに、企業として開発をしている。
 Youtube、Facebook、Twitterで使われている。
・MySQLサポートの特徴
 パフォーマンスチューニングやSQLチューニングまで通常サポートで行っている。
・高可用性構成のパターン
 レプリケーション(非同期、準同期)
 Oracle Clusterwareなど共有ディスクにデータを格納
 MySQL+DRBD
 MySQL Cluster

などのMySQLの概要説明でした。


そして、ハンズオンでは、

 AzureでUbuntuの仮想環境を作成
MySQLサーバのバイナリのダウンロード 、初期化、起動
MySQLサーバへの接続とユーザー認証
MySQLの権限管理
の流れで進みました。

その中でも、権限管理の部分を書いていきたいと思います。


ユーザーに付与する権限にレベルがあります。
grant文を使うとユーザーに権限を与えられます。

グローバルレベル  :サーバ上にある全データベースを操作可能
mysql > GRANT ALL PRIVILEGES ON
    -> *.*
    -> TO 'ユーザー名'@'localhost'
    -> IDENTIFIED BY 'パスワード';

データベースレベル :'db_sample'データベースの全テーブルを操作可能
mysql> GRANT ALL ON
    -> 'db_sample'.*
    -> TO 'ユーザー名'@'localhost'
    -> IDENTIFIED BY 'パスワード';

テーブルレベル   :'db_sample'データベースの'tb_sample'テーブルを操作可能
mysql> GRANT ALL ON
    -> 'db_sample'.'tb_sample'
    -> TO 'ユーザー名'@'localhost'
    -> IDENTIFIED BY 'パスワード';


revoke文を使うと権限を削除できます。
mysql> REVOKE ALL ON *.* 'ユーザー名'@'localhost';

show grants文では権限の確認ができます。
mysql> SHOW GRANTS FOR 'ユーザー名'@'localhost';

2016年6月12日日曜日

「MyNA会 2016年5月」に参加をしてきました。




勉強会情報

日 時: 2016/05/30(月) 19:30 〜 21:30
会 場: 日本オラクル株式会社 本社(外苑前) オラクル青山センター 13F
住 所: 東京都港区北青山2-5-8


先日、MyNA会という勉強会に参加をしてきました。



勉強会は初めての参加だったので、技術的な話についていけるか心配でした。
勉強会が始まり、しばらくして。


発表者A:PITRをやったことある人いますか?
発表者B:MySQLとPostgreSQLのレプリケーションの比較が...



さっぱり分からん...ということで分からない単語をひたすらメモっていました。



↓分からない単語
・レプリケーション
・スキーマレス
・Galera
・Split Brain
・AliSQL
・PITR
・リストア作業





ということで今回は、メモをとった単語の中から3つを選んで調べてまとめることにしました。



・レプリケーション

どうやらレプリケーションは、データベースAとBがあったとして、データベースAと全く同じ内容の複製を別のコンピュータ上にデータベースBとして作成し、常にデータベースの内容を同期させている機能とのこと。
データベースの冗長性をあげるためや、負荷分散を行うことができます。


・スキーマレス

スキーマとは、例えば、リレーショナルデータベースのテーブルを設計する際、各フィールドのデータ型やデータの大きさ、主キーの選択なども、スキーマ定義のひとつです。
スキーマレスDBとは、このようなスキーマが必要ではないデータベースを意味します。

プログラミング言語でも、int型、string型なんていう風に定義をしなきゃいけないものもあれば、そうでない言語もあるからそれに近いのかなと感じました。


・PITR

 ポイント・イン・タイム・リカバリ(PITR)とは、指定した時間にデータを戻すこと。
ベースバックアップと差分バックアップを使ってデータを戻す。
PITRは、mysql、PostgreSQLで別々にあるらしい。


- mysql PostgreSQL
ベースバックアップ mysqldumpで取得したファイル OSコマンドで取得したファイル
差分バックアップ バイナリログ WALおよびアーカイブWALログ