MySQL Cluster恢复过程记_MySQL
bitsCN.com
最近在项目的生产环境中使用了mysql-mmm来提高数据库的可用性和处理能力。在项目初期,mysql-mmm安装、配置和部署对我们开发人员一直都是透明的。于是一个“美好”的愿望开始在心中滋生:我们不需要管理数据库,一旦有问题就会系统管理人员过来修复。可是,随着项目的深入,这个愿望也在逐步破裂。由于某些开发人员不当操作(当然,开发人员是不应该具有直接操作数据库的权利的,这是管理上的问题。),导致MySQL Cluster主从状态不统一,无法完成同步,从而造成主程序无法启动。这时,我们的最初创建环境的系统管理人员,却因为其他项目无法抽身,而他当初的警告也让我们不敢“越雷池半步”。中间的几次问题,都通过不同的方法临时解决了:邀请了其他项目组的DBA、写了脚本定时监控mysql-mmm的状态等等。可是到了9月30号这一天一切都变了。数据库又一次毫无征兆的崩溃了。这次更严重:一台slave无法启动,两台slave无法同步,只剩下master,还在苟延残喘(这个词有点过分!)。
难道MySQL Cluster真的有那么麻烦吗?终于忍无可忍了,不能再把希望寄托到别人身上!在把主程序的数据库读写都切换到了master上以后,开始尝试恢复MySQL Cluster的状态。
继续之前,交代一下MySQL Cluster的配置:典型的writer/reader。db01和db02为master,db01,db02都为writer,同时db02还作为reader,db03和db04都是slave,作为reader。其中db04已经无法启动。
为了防止万一失败不会造成更坏的影响,选择了db04作为练手的对象。
问题1:MySQL无法启动
现象1:使用service mysql start启动时,进度一直持续。
备份现有的配置文件my.cnf,重新安装MySQL。安装后MySQL启动正常,将备份的my.cnf,恢复到/etc/,重新启动MySQL。出现错误:
现象2:Starting MySQL. ERROR! Manager of pid-file quit without updating file.
查看/var/lib/mysql/下面的*.err日志,找到相应的提示,根据错误提示进行相应的操作。由于现场丢失,只能在这里给出错误原因:
a. 日志文件夹已满,无法写入。MySQL的数据文件和日志文件并没有放在默认的/var/lib/mysql下面,而是另外指定了目录/opt/mysql/data和/opt/mysql/log。通过df -h和du -h --max-depth=1命令查看,发现该目录/opt/mysql目录已经满了,于是清空了/opt/mysql下面的所有文件,重新启动,还是同样的问题
b. 日志文件和数据文件不存在。于是重新创建data(数据)和log(日志)两个目录,根据my.cnf里面的配置,分别将/var/lib/mysql下面的ibdata1和ib_logfile0、ib_logfile1分支复制到数据和日志目录中。重新启动,问题依旧。
c. mysql用户无权读取data和log目录。和其他几台服务器上的目录比较结合错误日志发现,原来上面两个文件夹是由root用户创建的,mysql用户没有读写权限。chown -R mysql.mysql data修改目录所有者。重新启动,同样错误信息跃然于眼前。
d. mysql无法在现有的数据文件和日志文件上进行操作。将ibdata1和ib_logfile0、ib_logfile1删除,重新启动。终于启动成功,回到目录下查看,已经新建了ibdata1和ib_logfile0、ib_logfile1。
问题2:无法导入dump文件。
服务启动成功后,下面就是按照MySQL-MMM安装指南进行配置了。从db01上dump出当前的数据库内容,然后在db04上导入。由于导入是在9月30号下午进行,当时为了不耽误班车,强行退出了导入进程,就出现这个错误 http://blog.csdn.net/mydeman/article/details/6843398。
今天在删除了一些比较大的并且不再使用的数据库后(一定要记得备份!!),dump出来的数据文件小了很多,可是在导出过程中直接退出了。通过ps查看,发现mysql已经停止,而且无法重启。查看错误日志,发现如下信息:
[ERROR] /usr/sbin/mysqld: Disk is full writing './myapp/session.MYD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
原来在导入时,数据库被创建到了默认的/var/lib/mysql下面,而这个目录由于分配的空间很小,所以被占满了。通过mv命令,将除了mysql以外的其他数据库都移动到/opt/mysql/data/下面,然后通过ln -s建立连接。数据正常启动,重启导入进程,Bingo!
问题3:无法完成执行CHANGE MASTER命令。
在db04上数据文件导入完毕,按照MySQL-MMM安装指南完成后续步骤,启动SLAVE。然后到mysql-mmm admin节点上通过mmm_control set_online db04,将db04上线。mmm_control show查看状态一切正常。
安装恢复db04的步骤,恢复db02和db03。前面的步骤都很顺利,可是执行CHANGE MASTER命令时出现了错误,日志中的错误信息:
Failed to open the relay log '//opt/mysql/log/mysql-bin-slave1.005457' (relay_log_pos 147636219)。
到/var/lib/mysql目录下,发现其中已经存在了master.info和relay-log.info两个文件。查看master.info文件,其中还是上一次同步时设置的内容。删除这两个文件。重新执行CHANGE MASTER命令。
由于在之前已经安装了mysql-mmm的组件,因此这次恢复过程没有涉及到mysql-mmm的配置,这个是接下来要解决的问题
摘自 mydeman的学习日志
bitsCN.com
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フェルマーの最終定理、AIに征服されようとしている?そして、全体の中で最も意味のある部分は、AI が解決しようとしているフェルマーの最終定理は、まさに AI が役に立たないことを証明するものであるということです。かつて、数学は純粋な人間の知性の領域に属していましたが、現在、この領域は高度なアルゴリズムによって解読され、踏みにじられています。画像 フェルマーの最終定理は、何世紀にもわたって数学者を悩ませてきた「悪名高い」パズルです。それは 1993 年に証明され、現在数学者たちはコンピュータを使って証明を再現するという大きな計画を立てています。彼らは、このバージョンの証明に含まれる論理的エラーがコンピュータによってチェックできることを望んでいます。プロジェクトアドレス: https://github.com/riccardobrasca/flt

この AI 支援プログラミング ツールは、急速な AI 開発のこの段階において、多数の有用な AI 支援プログラミング ツールを発掘しました。 AI 支援プログラミング ツールは、開発効率を向上させ、コードの品質を向上させ、バグ率を減らすことができます。これらは、現代のソフトウェア開発プロセスにおける重要なアシスタントです。今日は Dayao が 4 つの AI 支援プログラミング ツールを紹介します (すべて C# 言語をサポートしています)。皆さんのお役に立てれば幸いです。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot は、より少ない労力でより迅速にコードを作成できるようにする AI コーディング アシスタントであり、問題解決とコラボレーションにより集中できるようになります。ギット

タイトル: PyCharm の詳細: プロジェクトを削除する効率的な方法 近年、Python は強力で柔軟なプログラミング言語として、ますます多くの開発者に支持されています。 Python プロジェクトの開発では、効率的な統合開発環境を選択することが重要です。 PyCharm は、強力な統合開発環境として、プロジェクト ディレクトリを迅速かつ効率的に削除するなど、多くの便利な機能とツールを Python 開発者に提供します。以下では、PyCharm での削除の使用方法に焦点を当てます。

PyCharm は、豊富な開発ツールと環境構成を提供する強力な Python 統合開発環境であり、開発者がコードをより効率的に作成およびデバッグできるようにします。 Python プロジェクト開発に PyCharm を使用するプロセスでは、Python 環境がインストールされていないコンピューター上で実行できるように、プロジェクトを実行可能 EXE ファイルにパッケージ化する必要がある場合があります。この記事では、PyCharm を使用してプロジェクトを実行可能な EXE ファイルに変換する方法と、具体的なコード例を紹介します。頭

Go 言語開発モバイル アプリケーション チュートリアル モバイル アプリケーション市場が活況を続ける中、ますます多くの開発者が Go 言語を使用してモバイル アプリケーションを開発する方法を検討し始めています。シンプルで効率的なプログラミング言語として、Go 言語はモバイル アプリケーション開発でも大きな可能性を示しています。この記事では、Go 言語を使用してモバイル アプリケーションを開発する方法を詳しく紹介し、読者がすぐに始めて独自のモバイル アプリケーションの開発を開始できるように、具体的なコード例を添付します。 1. 準備 始める前に、開発環境とツールを準備する必要があります。頭

世界初の AI プログラマー Devin の誕生から 1 か月も経たない 2022 年 3 月 3 日、プリンストン大学の NLP チームはオープンソース AI プログラマー SWE-agent を開発しました。 GPT-4 モデルを利用して、GitHub リポジトリの問題を自動的に解決します。 SWE ベンチ テスト セットにおける SWE エージェントのパフォーマンスは Devin と同様で、平均 93 秒かかり、問題の 12.29% を解決しました。専用端末と対話することで、SWE エージェントはファイルの内容を開いて検索したり、自動構文チェックを使用したり、特定の行を編集したり、テストを作成して実行したりできます。 (注: 上記の内容は元の内容を若干調整したものですが、原文の重要な情報は保持されており、指定された文字数制限を超えていません。) SWE-A

PyCharm は、開発者が Python プロジェクトをより効率的に作成および管理できるようにする豊富な機能を提供する強力な Python 統合開発環境 (IDE) です。 PyCharm を使用してプロジェクトを開発するプロセスでは、スペースを解放したり、プロジェクト リストをクリーンアップしたりするために、不要になったプロジェクトを削除する必要がある場合があります。この記事では、PyCharm でプロジェクトを削除する方法を詳しく説明し、具体的なコード例を示します。プロジェクトを削除する方法 PyCharm を開き、プロジェクト リスト インターフェイスに入ります。プロジェクトリストでは、

「VSCode について: このツールは何に使用されますか?」 》初心者でも経験豊富な開発者でも、プログラマーとしてはコード編集ツールを使わずにはいられません。数ある編集ツールの中でも、Visual Studio Code (略して VSCode) は、オープンソースで軽量かつ強力なコード エディターとして開発者の間で非常に人気があります。では、VSCode は正確に何に使用されるのでしょうか?この記事では、VSCode の機能と使用法を詳しく説明し、読者に役立つ具体的なコード例を提供します。
