目次
准备,配置数据库主从
启动 MySQL的并配置 Slave 的同步
主从切换
ホームページ データベース mysql チュートリアル MySQL 不停服务来启用 innodb_file_per_table_MySQL

MySQL 不停服务来启用 innodb_file_per_table_MySQL

Jun 01, 2016 pm 01:12 PM
空間 Webサイト プロジェクト

InnoDB  是一个非常不错的 MySQL 的存储引擎,目前使用非常广泛基本所有的网站和项目,我想都会优先选择这个,这个也有很好的诊断和微调的工具.我发现其中一个缺点,就是磁盘空间管理时设计非常低效.这个设计成给所有数据都存到 ibdata1 文件,所以这个文件的存储空间会不断的扩展.InnoDB 并不会收缩这些空间,就算你删除表和数据库.

所以我们需要注意我们的配置.最好一开始就使用 innodb_file_per_table 的选项.这样可以使得更加灵活性的给数据存到每个单表的数据库. 我非常不幸地, 最开始我的数据并没有考虑这个所以没有打开这个参数.后来我测试过,在之后打开这个参数根本不能生效.所以只能 dump 整个数据库,然后在启动这个参数后重新恢复数据库才行.这时我们在想有没有法子,不用关掉数据库的服务时就能完成这个工作.

目前看来只能使用 mysqldump 输出,然后才能恢复.所以我们只能使用 MySQL 的主从模式来切换,才能最大限度地减少停机时间.

所以,我使用的基本步骤是:

  • 配置为当前的原始数据库为 Master 数据库.
  • 使用 Xtrabackup 来备份你的原始数据库.
  • 恢复你的备份和到第二个 MySQL 的实例上.
  • 恢复,但不同步,然后运行 mysqldump 在第二个做为 Slave 的数据库上然后导出.
  • 停止第二个数据库实例,并删除数据库.
  • 创建一个新的数据库,使用前面导出的数据来恢复 MySQL 的实例,记得先要打开 innodb_file_per_table 的选项恢复.
  • 配置这个数据库为 slave 然后运行复制.
  • 当复制完成时,给这个 slave 切换成主,然后重新配置你的客户端使用这个实例
  • 现在可以停止主数据库和删除它.

下面是详细的步骤

准备,配置数据库主从

这个看以前的 Blog 有讲怎么在线做 MySQL 的主从.接下来在 Slave 上做转换的操作

Dump 出 Slave 上的数据

假设你根据我以前的文章都做好了.现在配置好 slave 了.记得使用 innobackupex-1.5.1 -apply-log 恢复后,然后复制到数据库的目录.并修改权限.

这时记得先不要设置同步.直接启动数据后.直接使用 MySQL 的 mysqldump 来导出整个数据库.

123 service mysqld start

mysqldump-uroot-p--quick --default-character-set=utf8 bbsee >dump_data.sql

service mysqld stop

创建新的数据库

在新的机器上.安装新的数据库文件.只保留 dump_data.sql.然后使用 mysql_install_db 来建权限数据,MySQL 的数据库

1

mysql_install_db--user=mysql

创建新的配置文件

vim /etc/mysql/my.cnf
ログイン後にコピー

添加以下行到新的文件:

innodb_file_per_table = 1server-id = 2bin-log = 1
ログイン後にコピー

我在次声明,这是成功的关键,innodb_file_per_table 会让过一会导入的数据按表来存, binlog 是为了以后切主的时候使用.

启动 MySQL的并配置 Slave 的同步

先要启动数据库

1 server mysqld start

恢复导出的数据库

1

mysql-uroot-p --default-character-set=utf8

配置复制
因为刚导入数据库,所以要从现在开始复制,需要在主数据库上根据我以前的文章,给这个设置好权限,然后我们在 Slave 配置一下 slave 的设置

1234567

change mastertomaster_host='127.0.0.1',

master_user='repl',

master_password='passwd',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=3874;start slave;

这个中的 master_log_file 和 master_log_pos 是根据我以前文章刚开始使用 innobackupex 做主数据备份时 xtrabackup_binlog_info 中的信息

1

mysql-uroot-p-e"show slave status/G"|grep Seconds

当MySQL显示 Seconds_Behind_Master: 0 时,这就 Slave 就同步的和主数据库一样了.

主从切换

现在备份完 Salve 也同步成和主一样,这时因为使用了  innodb_file_per_table 的参数,所以可以切成主了.直接在主数据库中锁一下数据库

1

SETglobalread_only=1;

然后查看主数据库的状态,写 binlog 到那个文件,什么位置了.

1 SHOW master STATUS;

接着到 Slavle 的数据库上看看是不同步到一样的状态了.

1 SHOW slave STATUS /G;

确保主从同步的一样后,先到 Slave 上停止 Slave 的复制变成新的 master,这时才方便切成主,所以要在新的 master上执行

1234 stop slave

change mastertomaster_host=”

reset slavereset maters

之所以要在新的master上执行change master to master_host=”及reset slave,主要是为了断开与老的master之间连接信息.

现在切完了,可以根据以前设置 msater 的经验来给原来的主数据库设置成这个的 slave .也可以给这个重新备份一个出来,在恢复了.

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C言語を学べるサイトはありますか? C言語を学べるサイトはありますか? Jan 30, 2024 pm 02:38 PM

C 言語を学習するための Web サイト: 1. C Language Chinese Website; 2. Rookie Tutorial; 3. C Language Forum; 4. C Language Empire; 5. Script House; 6. Tianji.com; 7. Red and Black Alliance; 8, 51 自習ネットワーク; 9. リコウ; 10. C プログラミング。詳細な紹介: 1. C 言語中国語 Web サイトは、初心者向けの C 言語学習教材を提供することに特化した Web サイトであり、基本的な文法、ポインタ、配列、関数、構造体およびその他のモジュールを含む豊富なコンテンツが含まれています; 2. ルーキー チュートリアル、プログラミング学習などの総合サイトです。

PyCharm プロジェクトをパッケージ化する簡単な方法を共有する PyCharm プロジェクトをパッケージ化する簡単な方法を共有する Dec 30, 2023 am 09:34 AM

シンプルでわかりやすい PyCharm プロジェクトのパッケージ化方法を共有する Python の人気に伴い、Python 開発のメイン ツールとして PyCharm を使用する開発者が増えています。 PyCharm は、開発効率の向上に役立つ多くの便利な機能を提供する強力な統合開発環境です。重要な機能の 1 つはプロジェクトのパッケージ化です。この記事では、PyCharmでプロジェクトをパッケージ化する方法をシンプルかつ分かりやすく紹介し、具体的なコード例を示します。プロジェクトをパッケージ化する理由Pythonで開発

AIはフェルマーの最終定理を克服できるか?数学者は100ページの証明をコードに変えるために5年間のキャリアを放棄した AIはフェルマーの最終定理を克服できるか?数学者は100ページの証明をコードに変えるために5年間のキャリアを放棄した Apr 09, 2024 pm 03:20 PM

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

PyCharm を詳しく見る: プロジェクトを簡単に削除する方法 PyCharm を詳しく見る: プロジェクトを簡単に削除する方法 Feb 26, 2024 pm 04:21 PM

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

PyCharm の実践的なヒント: プロジェクトを実行可能な EXE ファイルに変換する PyCharm の実践的なヒント: プロジェクトを実行可能な EXE ファイルに変換する Feb 23, 2024 am 09:33 AM

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

Ubuntu 22.04 LTSにスワップスペースを追加する方法 Ubuntu 22.04 LTSにスワップスペースを追加する方法 Feb 20, 2024 am 11:12 AM

Linux システムでは、特にシステムのメモリが少ない場合に、スワップ スペースが重要な役割を果たします。これは、システムがスムーズに動作し、高負荷下でも安定性を維持できるようにするバックアップ メモリの保存スペースとして機能します。この記事では、システムのパフォーマンスが最適化され、さまざまなワークロードを処理できるようにするために、Ubuntu 22.04LTS にスワップ領域を追加するための詳細なガイドを提供します。スワップ スペースについて スワップ スペースは、システムの物理 RAM を補足するために使用される仮想メモリを提供します。システムの RAM が不足すると、カーネルはメモリ不足やシステムのクラッシュを防ぐためにデータをディスクにスワップします。 Linux システムは通常、この状況に対処するためにスワップ領域を使用します。メモリを大量に消費する複数のアプリケーションを同時に実行して、非常に大きなファイルやデータを処理します。

win11アップグレードに必要なCドライブの空き容量について紹介 win11アップグレードに必要なCドライブの空き容量について紹介 Dec 23, 2023 am 08:57 AM

ご存知のとおり、システムのインストール完了後にシステム ディスクの占有量が大きすぎると、システムの遅れ、遅延、さらにはファイルの損失が発生する可能性があります。したがって、win11 システムをインストールする前に、win11 のアップグレードに必要な C ドライブの空き容量をエディタで確認してみましょう。 win11 のアップグレードに必要な C ドライブの空き容量: 回答: win11 のアップグレードには、20 ~ 30 GB の C ドライブの空き容量が必要です。 1. Microsoft の win11 構成要件によると、win11 のインストールには 64 GB のハード ドライブ容量が必要であることがわかります。 2. しかし、実際には、一般的には、それほど広いスペースは必要ありません。 3. すでに win11 をインストールしているユーザーからのフィードバックによると、win11 のアップグレードには約 20 ~ 30GB の C ドライブ容量が必要です。 4. しかし、もし私たちのドアにこれしかないとしたら、

PyCharm チュートリアル: PyCharm で項目を削除するには? PyCharm チュートリアル: PyCharm で項目を削除するには? Feb 24, 2024 pm 05:54 PM

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

See all articles