私は次の環境を持っています:
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# rpm -qa | grep ^mysql-community-
mysql-community-common-5.5.48-2.el7.x86_64
mysql-community-libs-5.5.48-2.el7.x86_64
mysql-community-client-5.5.48-2.el7.x86_64
mysql-community-release-el7-5.noarch
mysql-community-server-5.5.48-2.el7.x86_64
#
調整する必要がありますinnodb_buffer_pool_size
mysql
の値ですが、前回それを行おうとしたときに、何かが南向きになり、バックアップからデータベースを復元することになりました(データベースは〜100Gなので、理想的にはそのルートに再び行きたくありません。
前回行った手順:
私は何を間違えましたか?今回はどうしたらいいですか?
変更innodb_buffer_pool_size
はib_logfilesをnukeする必要はありません。これが、データベース(*)を復元する必要が生じた理由である可能性があります。
Mysqlを停止する-> my.cnfの設定を変更する-> mysqlを開始する。
(*)ib_logfilesはリカバリデータを保持しています。ページはまだテーブルスペースにチェックポイントされていません。完全にシャットダウンしているかどうかを確認せずにそれらを削除すると、データが失われ、データベースが破損するおそれがあります。
実行しない iblogファイルを削除します。おそらくinnodb_fast_shutdown = 1
を使用すると、起動時に余分な労力を費やすことで、迅速にシャットダウンできます。ファイルが必要です。
my.cnf
の変更-innodb_buffer_pool_size
セクションで[mysqld]
の設定を追加または増加します。通常、利用可能な容量の70%RAMが適切な値です。
バージョン5.7.5はinnodb_buffer_pool_size
の動的サイズ変更を実装しました。このバージョン(またはそれ以降)では、次のことができます
my.cnf
を変更して、再起動後に有効になるようにします。SET GLOBAL...
システムの実行中。バウンスは必要ありません。サイズの変更は、実行中のシステムで正常に実行されます。