Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
MySQL Casual    #2               1
自己紹介            •       id:oranie                •    @oranie• 渋谷の緑色のグループ会社で、主にサーバ側のなんか  色々やる簡単なお仕事しています。• study2studyという名...
LTテーマMySQL5.0→5.5へのアップデートについて
アップデートについて・アップデートのメリット(5.0→5.5)  ・新機能が色々  ・InnoDB周り性能アップ!!  ・但し、デメリットもあるので、        実サービスで運用しているなら慎重に。  ・アップデートすべきかどうかの見極めな...
鍵本 P471以降を見ましょう。
アップデートについて・実サービスじゃなかったらガンガン上げて、実サービスにも反  映しようぜ!・僕はなんでアップデートした?  ・サービスログの解析用DBで速い方が嬉しかった。  ・元データも再取得が容易に可能+万が一でも多少の誤差  も許せる...
アップデート手法・手法は公式RPMかソースかyumで。  ・どれが良いかは今or好きな管理手法で決めて。  ・どれにも一長一短はあるよね。
アップデート手法次からは、・CentOS5系で元々の5.0.7がインストールされている・大元のサーバは一度mysql-serverをダウン出来るという前提でremiレポジトリを使ってyumでお手軽にやる場合を  想定。それ以外の場合でインストー...
鍵本P31以降を見ましょう。
5.0.7→5.1 アップデート手法 ・データそのまま使うパターンならデータ互換性など踏み台 の為5.1で一度起動してmysql_upgradeによるチェック+リペア。 次に5.5に上げる。  ・これは5.5に上げる為の5.1なので、別のマシン...
5.0.7→5.1 アップデート手法・順番として5.0.7が入っているので、まず  ・データバックアップ→データファイルコピー+dumpデータを  別場所に。コピーする手順は、 1.MySQL サーバーをシャットダウンし、エラーが発生していない...
アップデート・データ遷移イメージ図                   mysqldumpによる                       移行    MySQL 5.0.7    MySQL 5.1 MySQL 5.5           ...
安全なアップデート手順イメージ図                         データ移行環境           実環境                          (AWSなど)                      MySQL...
もっと安全(冗長?)なアップデート手順イメージ図            実環境                         データ移行環境                          (AWSなど)                  ...
5.0.7→5.1 アップデート手法念のため5.0.7→5.1に行く手順の説明 ・今のVerをアンインストール→公式RPMorソースインストー ル                ※yumでは色々なレポジトリ見たんですが、            ...
# mysql_upgrade -u root -pEnter password:Looking for mysql as: mysqlLooking for mysqlcheck as: mysqlcheckRunning mysqlchec...
5.1アップデート手法  一部はmysql_upgradeだけでは解決しておらず、結局コマン  ドを実行するかdump取って入れ直ししろとの表示だった。    ●        でも指定されたコマンド打っても治らないテーブルもあった><  ・な...
# mysqlcheck -h localhost -u root -p -a -o -AEnter password:mysql.columns_priv                          Table is already u...
5.0.7→5.1 アップデート手法  ・データ量が多かったらmysql_upgradeを繰り返すこの手法が  良いかも。(ファイルコピーだけで割と済むので  ・データ量が少ないなら素直にダンプの方が互換性高いは  ずなので効率的かも    –...
5.1→5.5 アップデート手法・まず5.5にアップデートする為、remiレポジトリを使ってyumによ るアップデート。GPGキーをインポート# rpm -import http://rpms.famillecollet.com/RPM-GPG...
アップデート後の補足・で、5.5インストールして起動しようとすると結構起動できないと   かがあると思います。 →変わったor廃止になったオプションをmy.cnfに書いていると   か。代表的なのは「default-character-set=...
おまけ:mysql_upgradeコマンドについて※公式リファレンス:http://dev.mysql.com/doc/refman/5.5/en/mysql-upgrade.htmlのコピペで  す。--help :ヘルプ--basedir=...
おまけ:mysql_upgradeコマンドについて②--force:既にmysql_upgrade実行していても無視して実行する。(mysql_upgrade_infoに書かれている内    容を無視する)--plugin-dir=path:ク...
色々と参考にさせて頂いたサイトMySQL公式サイト「MySQL 5.5 アップデート」で検索して表示された全てのサイトありがとうございましたm(_ _)m
以上    発表終了ありがとうございました!     m(_ _)m
Upcoming SlideShare
Loading in …5
×

MySQL Casual LT : MySQL Upgrade 5.0 to 5.5

  • Login to see the comments

MySQL Casual LT : MySQL Upgrade 5.0 to 5.5

  1. 1. MySQL Casual #2 1
  2. 2. 自己紹介 • id:oranie • @oranie• 渋谷の緑色のグループ会社で、主にサーバ側のなんか 色々やる簡単なお仕事しています。• study2studyという名前で、ミーハーに色々やる勉強会を 不定期にやってます。• 「カジュアル」な発表です。一例なので、多少の間違いは カジュアルに考えて下さい! 2
  3. 3. LTテーマMySQL5.0→5.5へのアップデートについて
  4. 4. アップデートについて・アップデートのメリット(5.0→5.5) ・新機能が色々 ・InnoDB周り性能アップ!! ・但し、デメリットもあるので、        実サービスで運用しているなら慎重に。 ・アップデートすべきかどうかの見極めなどは、現在の使い 方や、状況、システムの重要度などと鑑みて、詳しくは
  5. 5. 鍵本 P471以降を見ましょう。
  6. 6. アップデートについて・実サービスじゃなかったらガンガン上げて、実サービスにも反 映しようぜ!・僕はなんでアップデートした? ・サービスログの解析用DBで速い方が嬉しかった。 ・元データも再取得が容易に可能+万が一でも多少の誤差 も許せる解析+最悪サーバ落ちたらすぐ上げ直せばOK、な どで性能重視でガンガンアップデート。
  7. 7. アップデート手法・手法は公式RPMかソースかyumで。 ・どれが良いかは今or好きな管理手法で決めて。 ・どれにも一長一短はあるよね。
  8. 8. アップデート手法次からは、・CentOS5系で元々の5.0.7がインストールされている・大元のサーバは一度mysql-serverをダウン出来るという前提でremiレポジトリを使ってyumでお手軽にやる場合を 想定。それ以外の場合でインストール方法どうするの?とかは
  9. 9. 鍵本P31以降を見ましょう。
  10. 10. 5.0.7→5.1 アップデート手法 ・データそのまま使うパターンならデータ互換性など踏み台 の為5.1で一度起動してmysql_upgradeによるチェック+リペア。 次に5.5に上げる。 ・これは5.5に上げる為の5.1なので、別のマシンにあらかじめ 入れておいて、無事5.5まで上がるのを確認してからやると楽 &安全。 →周りにマシンが無い?EC2+S3使うと楽っすよ。
  11. 11. 5.0.7→5.1 アップデート手法・順番として5.0.7が入っているので、まず ・データバックアップ→データファイルコピー+dumpデータを 別場所に。コピーする手順は、 1.MySQL サーバーをシャットダウンし、エラーが発生していないことを確認してください。 2.すべてのデータファイルを (ibdata ファイルと .ibd ファイル) 安全な場所にコピーしてくださ い。 3.すべての ib_logfile ファイルを安全な場所にコピーしてください。 4.my.cnf 設定ファイルを安全な場所にコピーしてください。 5.InnoDB テーブルのすべての .frm ファイルを安全な場所にコピーしてください。全て公式リファレンスより。mysqldumpは色々あるので省きます。鍵ほn(ry
  12. 12. アップデート・データ遷移イメージ図  mysqldumpによる 移行 MySQL 5.0.7 MySQL 5.1 MySQL 5.5 mysql_upgrade による移行
  13. 13. 安全なアップデート手順イメージ図  データ移行環境 実環境 (AWSなど) MySQL 5.1 MySQL 5.5 MySQL 5.0.7→5.5 アップデート対象DB 5.5に上げる 本番に移行する 踏み台 為のチェックDB
  14. 14. もっと安全(冗長?)なアップデート手順イメージ図  実環境 データ移行環境 (AWSなど) 5.0.7 5.1 MySQL 5.0.7→5.5 アップデート対象DB 5.1 5.5 MySQL MySQL 5.0→5.1 5.1→5.5
  15. 15. 5.0.7→5.1 アップデート手法念のため5.0.7→5.1に行く手順の説明 ・今のVerをアンインストール→公式RPMorソースインストー ル ※yumでは色々なレポジトリ見たんですが、 5.1配布している所が直近で見当たりませんでした。 ・5.1でmy.cnfの設定を行い、起動後にmysql_upgradeを実行 する。   # mysql_upgrade -u root -p ・多分エラーとかも起きる。こんな感じ。→
  16. 16. # mysql_upgrade -u root -pEnter password:Looking for mysql as: mysqlLooking for mysqlcheck as: mysqlcheckRunning mysqlcheck with default connection argumentsRunning mysqlcheck with default connection argumentsmysql.columns_priv OKmysql.db OKmysql.func OKmysql.help_categoryerror : Table upgrade required. Please do "REPAIR TABLE `help_category`" or dump/reload to fix it!mysql.help_keyworderror : Table upgrade required. Please do "REPAIR TABLE `help_keyword`" or dump/reload to fix it!mysql.help_relation OKmysql.help_topicerror : Table upgrade required. Please do "REPAIR TABLE `help_topic`" or dump/reload to fix it!mysql.host OKmysql.procerror : Table upgrade required. Please do "REPAIR TABLE `proc`" or dump/reload to fix it!mysql.procs_priv OKmysql.tables_priv OKmysql.time_zone OKmysql.time_zone_leap_second OKmysql.time_zone_nameerror : Table upgrade required. Please do "REPAIR TABLE `time_zone_name`" or dump/reload to fix it!mysql.time_zone_transition OKmysql.time_zone_transition_type OKmysql.user OKslow_log.LOG_ANALYZE_RESOURCEerror : Table rebuild required. Please do "ALTER TABLE `LOG_ANALYZE_RESOURCE` FORCE" or dump/reload to fix it!slow_log.LOG_ANALYZE_TOTAL_EVERY_TIMEerror : Table rebuild required. Please do "ALTER TABLE `LOG_ANALYZE_TOTAL_EVERY_TIME` FORCE" or dump/reload to fix it!slow_log.MASTER_CHANNELerror : Table rebuild required. Please do "ALTER TABLE `MASTER_CHANNEL` FORCE" or dump/reload to fix it!slow_log.log_table_historyerror : Table rebuild required. Please do "ALTER TABLE `log_table_history` FORCE" or dump/reload to fix it!Repairing tablesmysql.help_category OKmysql.help_keyword OKmysql.help_topic OKmysql.proc OKmysql.time_zone_name OK
  17. 17. 5.1アップデート手法  一部はmysql_upgradeだけでは解決しておらず、結局コマン ドを実行するかdump取って入れ直ししろとの表示だった。 ● でも指定されたコマンド打っても治らないテーブルもあった>< ・なので、場合によっては初めからdump入れた方が早いか も。  ・諸作業が終わったらmysql_checkを実行して、問題無いか 確認する。 #mysqlcheck -h localhost -u root -p -a -o -Aな感じで。   (-a:テーブルを分析 -o:テーブルの最適化、-A:すべてのデータベース内のす べてのテーブルをチェック )  実行すると
  18. 18. # mysqlcheck -h localhost -u root -p -a -o -AEnter password:mysql.columns_priv Table is already up to datemysql.db OKmysql.func Table is already up to datemysql.help_category OKmysql.help_keyword OKmysql.help_relation OKmysql.help_topic OKmysql.host Table is already up to datemysql.proc Table is already up to datemysql.procs_priv Table is already up to datemysql.tables_priv Table is already up to datemysql.time_zone Table is already up to datemysql.time_zone_leap_second Table is already up to datemysql.time_zone_name Table is already up to datemysql.time_zone_transition Table is already up to datemysql.time_zone_transition_type Table is already up to datemysql.user OKslow_log.LOG_ANALYZE_RESOURCE OKslow_log.LOG_ANALYZE_TOTAL_EVERY_TIME OKslow_log.MASTER_CHANNEL OKslow_log.log_table_history OK
  19. 19. 5.0.7→5.1 アップデート手法 ・データ量が多かったらmysql_upgradeを繰り返すこの手法が 良いかも。(ファイルコピーだけで割と済むので  ・データ量が少ないなら素直にダンプの方が互換性高いは ずなので効率的かも – AWSとかで大量INSERT結構きつい – mysql_upgradeによるTableのrepairとかcheckも結構時間掛かり ます>< – メモリに全部乗っかっていれば割と速かった。 – ので、この辺はケースバイケースで。 ・次に5.1→5.5へ。これも念のため初めから5.5入った別マシ ンでやると良いと思う。安全第一( ゚Д゚)σ
  20. 20. 5.1→5.5 アップデート手法・まず5.5にアップデートする為、remiレポジトリを使ってyumによ るアップデート。GPGキーをインポート# rpm -import http://rpms.famillecollet.com/RPM-GPG-KEY-remiリポジトリファイルを追加# cd /etc/yum.repos.d# wget http://rpms.famillecollet.com/remi-enterprise.repoでレポジトリの設定#yum update –enablerepo=remi mysql-servermysql-serverを5.5に。で、5.1と同じようにmysql_upgradeやる。
  21. 21. アップデート後の補足・で、5.5インストールして起動しようとすると結構起動できないと かがあると思います。 →変わったor廃止になったオプションをmy.cnfに書いていると か。代表的なのは「default-character-set=utf8」とか →ログ見てダメな設定をチクチク潰しましょう。※何が変わったかとかはsakaikさんのブログで日本語の解説一 覧で載っています!http://d.hatena.ne.jp/sakaik/20100414/mysql533obsol公式サイトには英語で一覧が。http://dev.mysql.com/doc/refman/5.5/en/news-5-5-0.html
  22. 22. おまけ:mysql_upgradeコマンドについて※公式リファレンス:http://dev.mysql.com/doc/refman/5.5/en/mysql-upgrade.htmlのコピペで す。--help :ヘルプ--basedir=path:基準パス。MySQLがインストールされているディレクトリを指す。--datadir=path:データ ディレクトリへのパス。--debug-check:プログラムが終了する際、いくつかのデバッグ情報を出力する--debug-info, -T:デバッグ情報とメモリとCPU使用率の統計プログラムの出力--default-auth=plugin:使用するクライアント側の認証プラグイン。5.5.1から。
  23. 23. おまけ:mysql_upgradeコマンドについて②--force:既にmysql_upgrade実行していても無視して実行する。(mysql_upgrade_infoに書かれている内 容を無視する)--plugin-dir=path:クライアント側の認証プラグインのディレクトリパス--tmpdir=path, -t path:一時ファイルの作成に使用するディレクトリのパス名。(何の一時ファイルか は?--upgrade-system-tables, -s:データテーブルはアップグレードしないで、システムテーブルをアップグ レードする。--user=user_name, -u user_name:ユーザ名--verbose:冗長モード。 プログラムの動作についてさらに情報をプリントアウトする。--write-binlog:バイナリログ有効モード。デフォルト設定。(逆に出したく無い時は--skip-write-binlog)
  24. 24. 色々と参考にさせて頂いたサイトMySQL公式サイト「MySQL 5.5 アップデート」で検索して表示された全てのサイトありがとうございましたm(_ _)m
  25. 25. 以上 発表終了ありがとうございました! m(_ _)m

×