[前][次][番号順一覧][スレッド一覧]

mysql:13718

From: <ska_king2005@xxxxxxxxxx>
Date: Thu, 8 Feb 2007 10:07:46 +0900 (JST)
Subject: [mysql 13718] Re: オンラインバックアップデータのリカバリ時のエラーについて

skakingです。

リカバリ手順の「1.バックアップデータを戻す」時は、スナッ
プショットで取得した
「InnnoDBデータファイル」と「InnoDBログファイル」と「デ
ータベースファイル(.frm)」を戻していますか?
クラッシュリカバリ時には「InnnoDBデータファイル」と「InnoDB
ログファイル」を使用しますので、
あまり内容が食い違っているとリカバリに失敗したような気が
します。

リカバリ時のログを見ると「ibd」ファイルを使用していると
いうことは、
「innodb-file-per-table 」オプションを使用しているのでし
ょうか?
その場合は、「データベースファイル(.frm,
.ibd)」と「InnoDB
ログファイル」になると思われます。

基本的にMySQL5しかさわったことがないので過去バージョンは
詳しくわかりませんが、
「innodb_safe_binlog」は、トランザクションとバイナリログ
の同期性に関するオプション設定なので、
クラッシュリカバリの動きには特に影響ないと思われます。

また、「innodb_safe_binlog」はMySQL5.0.3くらいに廃止され
、
代わりとして「sync_binlog」になっていますので注意して下
さい。

以上です。


--- hiraken <hiraken@xxxxxxxxxx> wrote:

> skakingさん
> 
> たかひらです。
> アドバイスありがとうございます。
> 
> 確かに、バックアップ時のflush
> logs;は、意味がありませんね。(^.^)
> 
> ただ、バックアップ手順「1→3→4→5→6」でも試してみま
したが、
> 同様のエラーがでてしまいます。(;_;)
> 
> 今回、my.cnfにて、innodb_safe_binlogを指定していますの
で、
> バックアップデータを戻し、MySQLを起動すれば、
> InnoDB表に関してはクラッシュリカバリが成功し、エラーは
出ないと考えていたのですが....
> 
> 特に似たような事象はないようですので、バージョンの問題
でしょうか?
> 
> / Takahira Ken
> 
> ----- Original Message ----- 
> From: <ska_king2005@xxxxxxxxxx>
> To: <ml@xxxxxxxxxx>
> Sent: Wednesday, February 07, 2007 10:26 AM
> Subject: [mysql 13713] Re:
> オンラインバックアップデータのリカバリ時のエラーについ> 
> 
> > skakingです。
> >
> > エラーを無視してよいかの回答ではありませんが。。。
> >
> > reset
> masterコマンド実行時に、バイナリログもローテートさ
> > れると思ったのですが、
> >
> あえて、2を実行しているのは何か意図があるのでしょうか> > flush
> logsコマンドはバイナリログを安全にローテートするく
> > らいと認識しているのですが。
> >
> >
> なので、バックアップ手順は「1→3→4→5→6」でよいと思> > ます。
> >
> 特に問題なければこの手順ではエラーが発生しないと思われ> > す。
> >
> もしくは、expire_logs_daysオプション付で「1→3→2→5→6
> > 」でも問題ないのかなと。。。
> >
> >
> ちょっとMySQLを試せる環境が無い状態なので、間違った内> > を書いていた場合はすいません。
> >
> > 以上です。
> >
> >
> > --- hiraken <hiraken@xxxxxxxxxx> wrote:
> >
> >> こんばんは。はじめまして
> >> たかひらと申します。
> >>
> >>
> 最近、OracleDBユーザから、MySQLユーザへ切り替わってき
> > たものです。
> >>
> このMLは、過去ログも含め、非常に参考になる情報ばかりで
> > 重宝しております。
> >>
> >> さて現在、バージョン4.1.12 をRed Hat Linux
> >> ES4上で稼動させた、
> >>
> OLTP系のシステムの、バックアップ・リカバリ設計をしてお
> > りまして、
> >>
> 以下の方法で、オンラインバックアップを行おうと考えてい
> > ます。
> >>
> >> 【バックアップ手順】
> >>  1. flush tables with read lock;
> >>  2. flush logs;
> >>  3. ストレージのスナップショット
> >>  4. reset master;
> >>  5. unlock tables;
> >>  6.
> >>
> 3で取得したスナップショットをテープ等へバックアップ
> >>
> >>
> >>
> しかし、検証環境でリカバリ動作を確認したところ、データ
> > は戻し、MySQLを起動することができたものの、
> >>
> 下記リカバリ手順の2.のタイミングで、/var/log/mysqld.log
> > にエラーが出力されているのに気づきました。
> >>
> >> 【リカバリ手順】
> >>  1.バックアップデータを戻す
> >>  2.ネットワーク接続なしでMySQLを起動
> >>
>  3.バイナリログからロールフォワードリカバリ->MySQLを
> > 停止
> >>  4.MySQLを通常起動
> >>
> >>
> >
>
=[リカバリ時のログ]===============================================================
> 
> > 
> >
> >>
> >>
> >> 070206 15:10:45  mysqld started
> >> 070206 15:10:45 [Warning] --innodb-safe-binlog is
> >> meaningful only if the
> >> global sync_binlog variable
> >> is 1; now setting it to 1.
> >> 070206 15:10:45  InnoDB: Database was not shut
> down
> >> normally!
> >> InnoDB: Starting crash recovery.
> >> InnoDB: Reading tablespace information from the
> .ibd
> >> files...
> >> InnoDB: Restoring possible half-written data
> pages
> >> from the doublewrite
> >> InnoDB: buffer...
> >> 070206 15:10:45  InnoDB: Starting log scan based
> on
> >> checkpoint at
> >> InnoDB: log sequence number 0 44818.
> >> InnoDB: Doing recovery: scanned up to log
> sequence
> >> number 0 44904
> >> InnoDB: Last MySQL binlog file position 0 4, file
> >> name
> >> /var/lib/mysql/binlog.000002
> >> 070206 15:10:45  InnoDB: Flushing modified pages
> >> from the buffer pool...
> >> 070206 15:10:45  InnoDB: Started; log sequence
> >> number 0 44904
> >> 070206 15:10:45 [ERROR] After InnoDB crash
> recovery,
> >> checking if the binary
> >> log
> >> '/var/lib/mysql/binlog.000002' contains rolled
> back
> >> transactions which must
> >> be removed from it...
> >> /usr/libexec/mysqld: ready for connections.
> >> Version: '4.1.12-log'  socket:
> >> '/var/lib/mysql/mysql.sock'  port: 0  Source
> >> distribution
> >>
> >
>
=[リカバリ時のログ]===============================================================
> 
> > 
> >
> >>
> >>
> >>
> >>
> >> [ERROR] After InnoDB crash recovery, checking if
> the
> >> binary log
> >> '/var/lib/mysql/binlog.000002' contains rolled
> back
> >> transactions which must
> >> be removed from it...
> >>
> >> は、
> >>
> 『InnoDBのクラッシュリカバリ後、binlog.000002がロール
> > バックトランザクションを含むバイナリログならば、
> >> チェックしなさい。』
> >> という直訳で理解しましたが、binlog.000002自体が、
> >> バックアップ手順の2.で、flush
> >> logsを実行した時にできた、
> >>
> 最新バイナリログですので、中身に処理は記載されておりま
> > せん。
> >>
> 従いましてこの場合、このメッセージを無視していいものか
> > どうか、迷っております。
> >>
> >>
> >>
> >>
> どなたか、同様のご経験をされた方がいらっしゃいましたら
> > 、何卒ご教授願いませんでしょうか。
> >> 以上、よろしくお願い申し上げます。
> >>
> >> / Takahira Ken
> >>
> >>
> >>
> >
> >
> > --
> 
=== 以下のメッセージは省略されました ===


--
skaking <ska_king2005@xxxxxxxxxx>
DB:MySQL5.0.19, OS:WinXPProSP2

--------------------------------------
Start Yahoo! Auction now! Check out the cool campaign
http://pr.mail.yahoo.co.jp/auction/


[前][次][番号順一覧][スレッド一覧]

     13712 2007-02-07 03:18 ["hiraken" <hiraken@x] オンラインバックアップデータのリカバリ時のエラーについて
     13713 2007-02-07 10:26 ┣[<ska_king2005@xxxxxx]                                       
     13714 2007-02-07 17:38 ┃┣[<kaidnu2@xxxxxxxxxx>] MySQL GUI-tool ( Linux 版)インストール方法
     13715 2007-02-07 22:02 ┃┃┗[舘山 聖司 <tateyan@x]                                   
     13716 2007-02-07 22:30 ┃┃ ┗[<kaidnu2@xxxxxxxxxx>]                                 
     13717 2007-02-08 01:54 ┃┗["hiraken" <hiraken@x]                                     
->   13718 2007-02-08 10:07 ┃ ┗[<ska_king2005@xxxxxx]                                   
     13719 2007-02-08 11:24 ┗[Yasufumi Kinoshita <]                                       
     13720 2007-02-08 16:10  ┗[<ska_king2005@xxxxxx]                                     
     13721 2007-02-08 17:21   ┗[Yasufumi Kinoshita <]                                   
     13722 2007-02-09 01:33    ┗["hiraken" <hiraken@x]                                 
     13724 2007-02-14 02:05     ┗["hiraken" <hiraken@x]