データファイルの破損で複数のMySQLデータベーステーブルの例としては、xxxのライブラリーにアクセスできなく回復を引き起こしました

問題の一つが見つかりました。

  データベース操作へのコマンドラインアクセスの例手動で次のエラーを見つけ、特定のテーブルを変更します。

MySQLの> xx_xxx使用しています。
接続がありません。再接続しようとすると... 
接続ID5 
現在のデータベース: *** NONE *** 

読書テーブル情報のためのテーブルとカラム名の補完
あなたがより速く起動取得するには、この機能をオフにすることができます - 
データベースが変更さ
mysqlの > ショーテーブル; 
ERROR 2006 (HY000):MySQLのサーバがなくなっていない
ん接続を。再接続しようとすると... 
コネクションID3 
現在のデータベース:xx_xxxの
ERROR 2006 (HY000):MySQLのサーバが立ち去りました

 
接続なしに。再接続しようとすると...
ERROR 2002(HY000):できます' tはソケットを介してローカルのMySQLサーバに接続する' /tmp/mysql.sock ' (111)
ERROR:
できます' tはサーバーに接続

ポジショニングの第二に、問題

  このエラーは、MySQLが閉じたまたは非通常のダウンタイムは、MySQL接続タイムアウト、MySQLの要求スレッドが殺傷され​​、一般的に上記の例です。既存のビジネス・シナリオによると、審査のプラットフォームでも、通常の外のデータベーステーブル、MySQLサービスを構築し、データベース接続の問題に接続することができ、異常なエラーログ出力は、存在するデータベースの問題の使用を反映するために、何の開発やテストスタッフはありません。しかし、接続はデータベース・コマンドを実行し、他のデータベースへのデータベース・エラーの問題Navicatは(MySQLサーバがなくなった)、コマンドラインインターフェイスによって開かれる正常で、変数の値やステータス値を対応するアクセスデータベースデータベースのも、最も基本的な問題は表示されません。

  ソースデータベース接続のトラブルシューティングをしようとするブルートフォース、問題の狭いソースは(ここで間違って調査を行って)、我々は問題がまだ存在することがわかりました。しかし、成功したテーブルを構築することが可能であることを理解することはより困難、ライブラリ全体のデータファイルが破損していると、ライブラリのプラットフォームを使用することを承認した会議の前と同じではありませんが、ここでは、特定のテーブルのデータファイルの破損は、エラーの原因となったと思われます。

   ログを表示する異常シャットダウンレコードインスタンスとクラッシュリカバリを見つけましたが、具体的な原因は、それは問題の単一株式ことを、あなたは他のソースから回復するために行くことができるで明らかであるかを決定することはできません。しかし、それは我々が最初の問題を解決するためのコストを最小限に抑えるために、できるだけ多くを試すことができ、貴重なDBAが存在しています。破損したデータファイルによって引き起こされる、ハードウェア障害の前に何度も遭遇しますが、復旧を完了することができます大幅に他のビジネス例およびバックアップクラスターによって影響されることはありません、また、単一のライブラリファイルに遭遇した彼自身が非常に徹底的に悪いテストしたが、それができこれは、データ・ファイルをダンプすることによって回収されます。

  問題を解決する質問が来るとき、それは分析を与えるために、その多くの時間を持っていない可能性があり、あなたはすぐに予備的な問題を見つけて解決する必要があり、ログはより遠くの(問題をさかのぼり、失敗の次のログポイントを発見した後、時間がこの重要な発見行の問題を解決することができないかもしれません間違った根拠、)バックログを置くと、誤動作のちょうど参照のための唯一の原因。

2018-12-18T12:30:29.409505Z 0 [注] InnoDBは:ログスキャンは、チェックポイントのLSNを過ぎて進ん3514141201 
2018-12-18T12:30:29.409520Z 0 [注] InnoDBは:こう回復:順序番号3514141210をログに記録するアップスキャン
2018-12-18T12:30:29.409677Z 0 [注] InnoDBは:復旧を行う:順序番号3514141210ログインにアップスキャン
2018-12-18T12を:30:29.409682Z 0 [注] InnoDBテーブル:データベースが正常にシャットダウンしませんでした!
2018-12-18T12:30:29.409685Z 0 [注] InnoDBは:起動するクラッシュリカバリ。
2018-12-18T12:30:30.026781Z 0 [ERROR] InnoDBは:ファイルには、 './xx_xxxxxx/xx_xxxxxx_fans_person.ibd'、表領域IDとフラグは2760と33であるが、InnoDBのデータ・ディクショナリでは、それらは97であります
4および33を使用すると、コマンドはTABLESPACEおよびIMPORT TABLESPACEを破棄せずに使用して周りのInnoDBの.ibdファイルを移動することがありますか?http://dev.mysql.com/doc/refman/5.7/en/innodb-を参照してください
問題を解決する方法のためのトラブルシューティング・datadict.htmlを。 
2018-12-18T12:30:30.026819Z 0 [ERROR] InnoDBテーブル:オペレーティング・システム・エラー番号2のファイル操作で。
2018-12-18T12:30:30.026823Z 0 [ERROR] InnoDBは:エラーは、システムが指定されたパスを見つけることができないことを意味します。
2018-12-18T12:30:30.026827Z 0 [ERROR] InnoDBは:あなたはInnoDBテーブルをインストールする場合は、ディレクトリを自分で作成する必要があることを覚えて、InnoDBはそれらを作成しません。
2018-12-18T12:30:30.026831Z 0 [ERROR] InnoDBは: `xx_xxxxxx / xx_xxxxxx_fans_person`のための有効な表領域ファイルが見つかりませんでした。http://dev.mysql.com/doc/refman/5.7/en/inを参照してください。
問題を解決する方法についてnodb -トラブルシューティング- datadict.html。
2018-12-18T12:30:30.026841Z 0 [警告]のInnoDB:無視テーブルスペース`xx_xxxxxx / xx_xxxxxx_fans_person`それは開くことができなかったからです。
2018-12-18T12:30:32.199013Z 0 [注] InnoDBは:削除しました一時表領域のデータファイル: "ibtmp1" 
2018-12-18T12:30:32.199035Z 0 [注]のInnoDB:一時表の共有テーブルスペースの作成
2018-12-18T12:30:32.199088Z 0 [注] InnoDBは12 MBに設定ファイル」./ibtmp1'サイズ。物理的には完全なファイルを書き込むこと。しばらくお待ちください... 
2018-12-18T12:30:32.286423Z 0 [注]のInnoDB:ファイル」./ibtmp1'サイズは現在12メガバイトです。

[ERROR] [FATAL]のInnoDB:表領域IDは、データ・ディクショナリではなく、ファイル974は、それが2760である./xx_xxxxxx/xx_xxxxxx_fans_person.ibdです! 2018年12月18日夜08時30分29秒0x7f014872b700のInnoDB:ファイルut0ut.ccライン916内のスレッド139643487172352でアサーション失敗 InnoDBは:私たちは意図的にメモリトラップを生成します。 2018-12-18T12:30:29.409505Z 0 [注] InnoDBは:ログスキャンは、チェックポイントのLSNを過ぎて進ん3514141201 2018-12-18T12:30:29.409520Z 0 [注] InnoDBは:こう回復:順序番号3514141210をログに記録するアップスキャン 2018-12-18T12:30:29.409677Z 0 [注] InnoDBは:復旧を行う:順序番号3514141210ログインにアップスキャン 2018-12-18T12を:30:29.409682Z 0 [注] InnoDBテーブル:データベースが正常にシャットダウンしませんでした! 2018-12-18T12:30:29.409685Z 0 [注] InnoDBは:起動するクラッシュリカバリ。 2018-12-18T12:30:30.026781Z 0 [ERROR] InnoDBは:ファイルで、表領域IDとフラグは2760と33であるが、InnoDBのデータ・ディクショナリでは、それらは97である'./xx_xxxxxx/xx_xxxxxx_fans_person.ibd' 4および33。あなたはコマンドがTABLESPACEおよびIMPORT TABLESPACEを破棄せずに使用して周りのInnoDBの.ibdファイルを移動することがありますか?http://dev.mysql.com/doc/refman/5.7/en/innodb-を参照してください。 トラブルシューティング-datadict。問題を解決する方法のためのhtml。 2018-12-18T12:30:30.026819Z 0 [ERROR] InnoDBは:ファイル操作にオペレーティングシステムエラー番号2。 2018-12-18T12:30:30.026823Z 0 [ERROR] InnoDBは:エラーは、システムが指定されたパスを見つけることができないことを意味します。 2018-12-18T12:30:30.026827Z 0 [ERROR] InnoDBは:あなたはInnoDBテーブルをインストールする場合は、ディレクトリを自分で作成する必要があることを覚えて、InnoDBはそれらを作成しません。 2018-12-18T12:30:30.026831Z 0 [ERROR] InnoDBは: `xx_xxxxxx / xx_xxxxxx_fans_person`のための有効な表領域ファイルが見つかりませんでした。http://dev.mysql.com/doc/refman/5.7/en/inを参照してください 問題を解決する方法のためnodb -トラブルシューティング- datadict.html。 2018-12-18T12:30:30.026841Z 0 [警告]のInnoDB:無視テーブルスペース`xx_xxxxxx / xx_xxxxxx_fans_person`それは開くことができなかったからです。 2018-12-18T12:30:32.199013Z 0 [注] InnoDBは:削除しました一時表領域のデータファイル: "ibtmp1" 2018-12-18T12:30:32.199035Z 0 [注] InnoDBは:一時テーブルの共有テーブルスペースの作成 30:2018-12-18T12を32.199088Z 0 [注]のInnoDB:12メガバイトに「./ibtmp1'サイズのファイルを設定します。物理的には完全なファイルを書き込むこと。お待ちください ... 2018-12-18T12を:30:32.286423Z 0 [注] InnoDBは:ファイル」./ibtmp1'サイズは現在12メガバイトです。

第三に、この問題は解決され

  データ出会いデータファイルの破損は通常の状態に起因するアクセスすることはできません、通常のソリューションは、バックアップがデッドピクセルを復元含め、バックアップから復元することです。私は、エラーによるダンプ・バックアップデータを修正しようとするときにMySQLサーバが解消された発生案の定、良いアイデアがある知っているしようとしましたが、実際には必ずしも容易ではありません。プロセスが正しい方向を見落とすことは容易であると、問題は、多くの場合、貧しいポジショニングの幅広い問題で、共有するための善意に遭遇しました。友人のサークルを思い出させることにより、および-Aオプションの出力は、あなたがメタデータ情報がデータベースに入力することができますロードできないことを確認したときには、ライブラリを使用しました。

- Aオプションは意義
    我々 dbnameを使用してデータベースを開く、するために、データベースの情報を事前に読んでください。データベースが大きすぎるので、それは、データベーステーブルが非常に大きくなっているので、それが立ち往生して先読みデータベース情報場合は、データベースのテーブルが非常に小さい場合、問題は発生しません、非常に遅くなります

  幸いなことに、あなたは通常、事前に読んでいないデータにより、データベース内の現在のシステム変数値と状態値内のすべてのテーブルを参照し、その後のInnoDBとMyISAMテーブルバッチ修復しようが、これは選択を通してでなければなりません...道にデータを行うことができますここでは、テスト環境および対応する冗長環境であるため、バックアップには、何の治療法はありませんし、バックアップの復元を行います。ベーステーブルとSQL文ステッチの全てを照会するには、次のコマンドで、それは情報MySQLのエラーログを確認し、不正なテーブルが修復できないことが判明しました。

##批量修复のMyISAMは表紙
 選択連結を(' 修復表'、TABLE_NAME、' ; ')TABLE_SCHEMA = INFORMATION_SCHEMA.TABLESから' xx_xxxx 'とTABLE_TYPE = ' ベーステーブル'とエンジン= ' のMyISAM ' 
 
#批量修复InnoDBは表紙
選択(CONCAT ' 最適化テーブル'、TABLE_NAMEを' ; ')TABLE_SCHEMA = INFORMATION_SCHEMA.TABLESから' xx_xxxx 'とTABLE_TYPE = 'エンジン= ' InnoDBの' ; 

#####最適化テーブルxx_xxxxxx_fans_person。  

  最近では、インポート、(表が表は1068エラーが存在するか、テーブルを構築していない表示される場合がありますドロップ)テーブル内の行数を見て、新しいテーブルを作成し直すことにより、不正なテーブルを削除し、修理の結果はコマンドによってテーブルOKではないことが判明し、データはエクスポートすることができなかったことを確認します最初のデータのバックアップ、MySQLインスタンスを再起動し、問題が解決されていること、問題はライブラリにアクセスすることができました。

1は、間違ったテーブルxx_xxxxxx_fans_person削除
 2を、テーブルの再構築
MySQLを >    CREATE TABLE `xx_xxxxxx_fans_person`(
     - >` person_id` のint20 )NOT NULL AUTO_INCREMENT、
     - > person_circle_id` ` int型20 )NOT NULL、
     - >` person_user_id` int型20であり、NOT NULL)
     - >    `person_time`日時NOT NULL、
     - >` type`がのINT4)DEFAULT ' 1 ' COMMENTの' 1ヘッド2メンバー'  - > `merchant_id`のINT11。 DEFAULT)' 0 '  - > `leave_type`のINT11)DEFAULT ' 0 'コメントが' 0いいえ1休暇休暇状態のまま'  - >` COMMENT日時DEFAULT NULLのleave_start_time` ' 開始時間を残します'  - > `COMMENT日時のDEFAULT NULLをleave_end_time` ' 終了時刻を残す'  - >` is_invalid`のint型10)DEFAULT ' 0 'のコメントは' 1 0有効無効無効です' - > `invalid_id`のINT10)DEFAULT ' 0 ' COMMENT ' 失效记录关联ID '  - >    PRIMARY KEY(` person_id`)、
     - >    KEY `person_circle_id`(` person_circle_id`)BTREEを使用して、
     - >    KEY `person_user_id BTREE USING( `` person_user_id`)
     - >)ENGINE = InnoDBテーブルと、
ERROR 1030(HY000):ガット・エラー168 ストレージエンジンからの
 3 、重启
のmysql > 選択数(* )xx_xxxxxx_fans_personから。
ERROR 1812(HY000):表領域が不足しているため、テーブル`xx_xxxxxx`.`xx_xxxxxx_fans_person`。

mysqlの > テーブルxx_xxxxxx_fans_personをドロップ。
クエリOK、0影響を受ける行(0.00 秒)

mysqlのは > TABLE `xx_xxxxxx_fans_person`(CREATE
     >` person_id` - INT20 )NOT NULL AUTO_INCREMENT、
     - > `person_circle_id` のint20 )NOT NULL、
     - >` person_user_id` int型20 )NOT NULL、
     - >    `person_time`日時NOT NULLを、
     - >` type`がのINT4)DEFAULT ' 1 ' COMMENT ' 2人1頭'  - > `merchant_id`のINT11)DEFAULT ' 0 '  - >` leave_type`のINT11)DEFAULT ' 0 'のコメントは状態0のまま。 1.放置しないままに' - > `COMMENT日時をleave_start_time` DEFAULT NULLを' 開始時刻を残す' - >` COMMENT日時DEFAULT NULLのleave_end_time` ' 終了時間を残します- > `is_invalid`のINT10)DEFAULT ' 0 'のコメントは' 0 1無効有効故障である'  - >` invalid_id`のINT10)DEFAULT ' 0 ' COMMENT ' 失敗に関連するレコードID '  - >    PRIMARY KEY( ` person_id`)、
     - >    KEY person_circle_id`( `` person_circle_id`)を用いBTREE、
     - >    KEY person_user_id`( `` person_user_id`)を用いBTREE
     - >)= ENGINE のInnoDB; 
ERROR 1813(HY000):表'`xx_xxxxxx`.`xx_xxxxxx_fans_person`は"存在します。

IVの概要

  1は、データベースは、ハードウェアやその他のデータファイルの破損によるトラブルを防ぐために、スケジュールされたバックアップが必要

  2、問題の最初の分析は、(おそらく私たちはトラブルシューティングに役立つまたは修理)ログ分析の問題を表示するエラーを確認するには、コマンドプロンプトの出力に注意を払う必要がある、基本的なポイントは不可能であり、トラブルシューティング

       3、あなたは先にバックアップの、テーブルを修復しようとするデータベースの情報をロードしない-Aオプションを使用することができます

おすすめ

転載: www.cnblogs.com/liyingxiao/p/11101990.html
おすすめ