タグ付けされた質問 「mysql」

MySQLはOracleが所有するオープンソースのデータベースです。

1
MySQLおよびマルチコアプロセッサ
MySQLをマルチコアxeonプロセッサのwin2008サーバーで実行しています。シングルコアのみを使用しているようです。 すべてのコアを使用するように構成する必要があるものはありますか? サーバーは、多くの呼び出しでロードされたWebサイトをサポートしています。同時に複数の呼び出しがあると確信していますが、DBは単一のコアで何かを処理するように見えます。 それを改善するために私は何ができますか?

1
マスター-マスターレプリケーションのリカバリ戦略
マスター/マスターレプリケーションに基づいてMySQLのHAソリューションを実装しました。フロントエンド部分には、一度に1つのdbのみが読み書きされることを保証するメカニズムがあります(つまり、HAのレプリケーションのみを使用します)。 レプリケーションが期待どおりに機能することを確認しましたが、障害のシナリオと回復について疑問に思っています。特に、一方のマスターが回復不可能な状態で失敗し、もう一方のマスターから再作成する必要がある場合にどうなるかについて心配しています。 他のマスターはライブで使用されている可能性が高いため、ロックしてダンプを作成することはできませんmysqldump(データベースは適度に大きく、mysqldump数か月使用すると数時間かかることがあります)。 ダンプがあると仮定しても、データベースがロックされた後に実行されるダンプにSHOW MASTER STATUSで示されるbinlogの位置が対応していることが重要です。 最初の問題の簡単な解決策は、バックアップとして機能する3番目のデータベースを使用することですmysqldump。しかし、どのようにして、再作成されたマスターが一貫した方法で実行中のマスターからレプリケーションを開始できることを確認できますか?

6
MySQLスレーブを別のスレーブから作成しますが、マスターに向けます
問題 マスター(A)とスレーブ(B)の2つのサーバー間でMySQLレプリケーションをセットアップしています。新しいスレーブをミックスに追加する必要があります(C)。このスレーブがマスターから直接更新を取得するようにしたいのですが、スレーブからのチェーンレプリケーションは必要ありません。ただし、マスターは「ホット」です。通常、Xtrabackupを使用してマスターの完全バックアップを作成しますが、データベースのサイズが約20GBであるため、マスターを10分間ロックします。 可能な解決策 スレーブBで読み取りロック付きのテーブルをフラッシュし、BでSHOW SLAVE STATUSを使用して、binlogと位置を書き留めます。次に、Xtrabackup を使用してデータベースをバックアップし、バックアップをCに送信してスレーブを作成し、レプリケーションをAを指すように設定しました。 質問 長い間Bをロックする必要がないより良い方法はありますか?または、より簡単に自動化できるものはありますか?

3
ec2-consistent-snapshotで取得したスナップショットからのAmazon EBS RAID0アレイの復元
Amazon EC2に新しいMySQLサーバーを構成し、データをEBS RAID0アレイに保存することにしました。これまでのところ、私はec2-consistent-snapshotでこれらのデバイスのスナップショットを撮ることをテストしてきました。 では、これらのスナップショットから新しいインスタンスでアレイをすばやく再構築するにはどうすればよいでしょうか。 ec2-consistent-snapshotを使用して複数のボリュームのスナップショットを作成する場合、RAIDの各デバイスにどのボリュームが使用されたかを知る方法はありません。完全に間違っているかもしれませんが、ボリューム間でデータをストライピングしているので、スナップショットの作成元のボリュームと同じRAID上の場所に各新しいボリュームを配置する必要があるのは当然です。 例: RAID0構成の3x200gbボリューム。 vol-1はRAIDの/ dev / sdhデバイス0です vol-2はRAIDの/ dev / sdh1デバイス1です vol-3は、RAIDの/ dev / sdh2デバイス2です。 次のコマンドでec2スナップショットを作成しますec2-consistent-snapshot <options> vol-1 vol-2 vol-3。 これで3つのスナップショットが作成されました。それらがどのデバイスであるかを追跡する唯一の方法は、ソースボリュームIDを確認し、次にソースボリュームIDがインスタンスにマウントされているデバイスを確認して、RAIDの詳細を確認することです。ソースボリュームのインスタンスの構成。 これは明らかに信じられないほど手動で行われます...高速ではありません(他のインスタンスが失敗した場合に新しいmysqlインスタンスをすばやく起動するのは明らかに難しくなります。言うまでもなく、その時点でRAID上のデバイスの位置を記録する必要がありますソースボリュームインスタンスがクラッシュした場合、RAID構成を取得する方法がないためです。 したがって、結論として: ec2-consistent-snapshotとソフトウェアRAID0アレイがどのように機能するかで何か不足していますか? そうでない場合、スナップショットが属するRAIDアレイのデバイス/位置がわからないという問題に関する既知の解決策/ベストプラクティスはありますか? これが明確であることを願っています。ご協力いただきありがとうございます。

2
sql_errorの後でmysqlレプリケーションを再起動します
2つのmysqlサーバーがあり、1つはマスター、もう1つはスレーブです。 誰かがスレーブに行ってテーブルを作成し、次にマスターに行って同じテーブルを作成しました。もちろん、このDDLステートメントはスレーブに複製されたため、エラーが発生し、エラーの発生時に複製が停止しました。 スレーブのテーブルを削除した後、またはそのステートメントの後にレプリケーションを開始した後に、レプリケーションプロセスをどの程度再開する必要がありますか? スレーブステータス出力を表示します。 mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: xx.xx.xx.xx Master_User: buildbot Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.024536 Read_Master_Log_Pos: 33489509 Relay_Log_File: mysqld-relay-bin.049047 Relay_Log_Pos: 32575097 Relay_Master_Log_File: mysql-bin.024476 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1050 …

3
PostgresとMySQL:スケールアウトが難しいのはどれですか?
あなたの経験から、どのデータベースはスケーリングが難しいですか?MySQLまたはPostgres?MySQLには、すぐに使えるスケーリング/クラスタリング機能がいくつかありますが、Postgresには、すぐに使えるものはありません。CMIIW。 編集: ここで混乱して申し訳ありませんが、私の質問は、スケールアウト(水平スケーリング)、つまりクラスタリング、シャーディングなどに言及しています。どちらも水平方向にスケーリングできることはわかっていますが、どちらを実装する方が簡単ですか? 共有してくれてありがとう。

3
MySQLダンプを取得して暗号化し、s3にプッシュするためのベストプラクティスは何ですか?
この現在のプロジェクトでは、DBをダンプして暗号化し、s3にプッシュする必要があります。このようなタスクの「ベストプラクティス」は何なのでしょうか。今のところ、私はかなり単純な方法を使用していますが、セキュリティが関係しているいくつかのより良いアイデアが欲しいです。これが私のスクリプトの始まりです: mysqldump -u root --password="lepass" --all-databases --single-transaction > db.backup.sql tar -c db.backup.sql | openssl des3 -salt --passphrase foopass > db.backup.tarfile s3put backup/db.backup.tarfile db.backup.tarfile # Let's pull it down again and untar it for kicks s3get surgeryflow-backup/db/db.backup.tarfile db.backup.tarfile cat db.backup.tarfile | openssl des3 -d -salt --passphrase foopass |tar -xvj 明らかに問題は、このスクリプトが攻撃者が地獄を上げるために必要とするすべてのものであることです。 このタスクについての考え、批評、提案は高く評価されます。

6
かなり大きなデータベース(MyISAM / InnoDB)のMySQLバックアップを作成する最適な方法
現在、1つの強力なMySQLデータベースがあり、トラフィックの多いDjangoベースのWebサイトをいくつか実行しています。まともなサイズのeコマースWebサイトもいくつかあります。その結果、InnoDBとMyISAMテーブルの両方を使用するかなりの量の大規模なデータベースができました。 残念ながら、最近トラフィック量が原因で壁にぶつかったため、読み取り/バックアップを軽減するために別のマスターサーバーをセットアップしました。 現時点では、いくつかの引数を指定してmysqldumpを使用するだけで、今までは問題ないことがわかっています。明らかにmysqldumpは遅い高速な方法ですが、私たちはその使用法を超えています。私は今、良い代替案が必要であり、Maatkitsのmk-parallel-dumpユーティリティまたはLVMスナップショットソリューションの利用を検討しています。 簡潔な短いバージョン: バックアップが必要なかなり大きなMySQLデータベースがあります mysqldumpを使用する現在の方法は非効率的で遅い(問題の原因) mk-parallel-dumpやLVMスナップショットなどを調べる あらゆる推奨事項やアイデアをいただければ幸いです-私たちがやっていることをやり直さなければならないので、私はむしろそれを適切に/最も効率的に行っています:)

1
MySQLテーブルの照合順序をutf8_general_csに変更します。
照合MySQLテーブルをutf8_general_csに変更しようとしましたが、次のエラーが発生しました: mysql> ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE 'utf8_general_cs'; ERROR 1273 (HY000): Unknown collation: 'utf8_general_cs' 「SHOW COLLATE」コマンドを実行すると、「utf8_general_cs」が結果に含まれません。 私は今何ができますか?
8 mysql  sql 

4
mysqldumpなしでリモートデータベースをダンプする方法
シェルスクリプトを使用して、リモートでホストされているサイトのデータベースを定期的にダンプしたいのですが。残念ながら、サーバーはかなりタイトにロックされており、mysqldumpインストールされておらず、バイナリファイルは通常のユーザーやホームディレクトリでは実行できないため(自分で「インストール」することはできません)、データベースは別のサーバーにあるため、ファイルを直接取得することはできません。 私ができる唯一のことは、SSH経由でWebサーバーにログインし、mysqlコマンドラインクライアントを使用してデータベースサーバーへの接続を確立することです。内容をmysqldumpSQL形式でファイルに保存するにはどうすればよいですか? おまけ:可能であれば、SSH接続の最後に直接コンテンツをダンプするにはどうすればよいですか? 以下に提案するSSHトンネルのアイデアは気に入っていますが、二重にトンネルする必要があります。 localhost -> remote web server -> remote database server これは大丈夫です: $ ssh -f -L 3306:mysql.example.com:3306 user@ssh.example.com -N ただし、mysqlにログインしようとすると失敗します。 $ mysqldump -P 3306 -h localhost -u user -p db Enter password: mysqldump: Got error: 1045: Access denied for user 'user'@'localhost' (using password: YES) when trying to connect …
8 backup  mysql 

1
.pgpassに相当するMySQL、またはmySQLのcronジョブでの自動認証
データベースをバックアップするbashスクリプトを書いています。ほとんどはpostgresqlであり、postgresには、postgresパスワードを含む〜/ .pgpassファイルを作成することで認証を回避する方法があります。これをルートのホームディレクトリに置き、chmod 0600にしたので、ルートは認証なしでpostgresデータベースをダンプできます。mysqlデータベースは1つしかありませんが、mysqlについても同様の処理を行います。これどうやってするの?mysqldumpのコマンドラインでパスワードを指定したくありません。これは、他のユーザーには多少見える可能性があるスクリプトの一部であるためです。これを行うには、rootだけが読み取り、次に読み取ってmysqlパスワードを取得できるファイルを作成し、それをbashスクリプトで変数として使用するよりも良い方法(つまり、mysqlに組み込まれている)がありますか?
8 backup  bash  cron  mysql 

6
単一サーバーのセットアップから拡張する方法
サーバーのセットアップを拡大する方法に関するリソースを探しています。 現在、英国にはラックスペースを備えた次の仕様の専用サーバーが1台あります。 HPDL385_G2_PrevGen HPシングルデュアルコアOpteron 2214(2.2Ghz) 4GB RAM 2x 10,000 SCSIドライブ(RAID 1) 私たちのトラフィックは1か月あたり最大550,000 UVです。 このサイトは、PHPとMySQLのセットアップで実行されます。データベースは完全に破壊され、複数のテーブルを結合する多くの複雑なクエリがあります。 PHPキャッシングにはAPCを使用しています。 私はできる限り多くのDBとクエリの最適化を行った段階になり、次のステップはどうあるべきかと思います…… memcacheを確認しましたが、彼は大量のRAMと理想的には専用のボックスを必要とする印象を受けました。 2つのボックスを作成する次のステップも同様です。1つはデータベース用、もう1つはApache用ですか?または私が見落とした一歩はありますか。 負荷は通常2マーク前後ですが、現在は20です。 Muninのグラフの一部:

7
MySQLはPostgreSQLよりも優れていますか?
質問は挑発的に聞こえますが、実際はそうではありません。最近、多くの分野でMySQLの制限が見つかり、PostgreSQLがますます好きになっています。これは、MySQLよりもはるかに優れたスケーリングとSQL標準への準拠を実現しています。 私はまだPostgreSQLの世界に不慣れですが、将来のすべてのプロジェクトでMySQLから離れることをいとわないので、知りたいことは、MySQLの特定の機能が優れていることですPostgreSQLよりも高性能またはよりユーザーフレンドリーなど)? 私はMySQLから何を逃してしまうのだろうと思っています。MySQLのAUTO_INCREMENTフィールドはPostgreSQLのSEQUENCESよりも便利であり、Windowsでの展開は以前から問題がありました(問題ではなくなりました。私にとっては問題ではありません)。 ほかに何か?
8 mysql  sql  postgresql 

1
PHP / mySQL:「接続が多すぎます」エラーをデバッグする方法?
現在、クライアントの専用サーバーでPHP Webサイトを使用していますが、定期的にエラーtoo many connectionsが発生しますが、最大5人のユーザーがこのページを閲覧しています。 ではphpMyAdmin、max connections変数がに設定されていることがわかります400。 私の会社のローカルMySQLサーバーでは、他の仲間がこのサーバーと同時に使用max connectionsするように設定し200ました。 彼らのサーバーでは他のいくつかのウェブが同じMySQLを大量のトラフィックで使用していると聞きました。 ここに私の質問があります: この問題をデバッグする方法は? 過去10分間に実行されたSQLクエリのリストを調べて、それが私たちの問題なのか、それとも問題なのかを確認できますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.