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

体系的な方法で大量のデータを処理するシステム

6
安価なSSDハードドライブを使用したデータベースのスケーリング
サーバーフォールトで回答できるため、 この質問はStack Overflowから移行されました。 8年前に移行され ました。 多くの人がトラフィックの多いデータベース駆動型Webサイトで作業していることを望みます。そして、主なスケーラビリティの問題がデータベースにある可能性があります。最近、いくつかのことに気付きました。 大規模なデータベースのほとんどは、拡張するためにDBAのチームが必要です。彼らは常にハードドライブの制限と格闘しており、非常に高価なソリューション(SANまたは大規模なRAID、最適化と再パーティション化のための頻繁なメンテナンスウィンドウなど)になります。私には急すぎる:) 最後に、Intel、Samsung、FusionIOなどのように、SLCフラッシュテクノロジーに基づいて非常に高速で手頃な価格のSSDハードドライブの販売を開始した企業をいくつか獲得しました。これらのドライブは、市場で最高の回転するハードドライブよりもランダムな読み取り/書き込みで100倍高速です(1秒あたり最大50,000回のランダム書き込み)。シーク時間はほとんどゼロであるため、ランダムI / OのコストはシーケンシャルI / Oと同じです。これはデータベースにとって素晴らしいです。これらのSSDドライブの価格はギガバイトあたり約10〜20ドルで、比較的小さい(64GB)。 そのため、SSDドライブの十分に大きいRAID 5アレイ(わずか数千ドル)を構築するだけで、従来の方法でデータベースをスケーリングする莫大なコストを回避する機会があるようです。データベースファイルが断片化されているかどうかは気にしません。データベースを100スピンドルに分散させることなく、1秒間に100倍のディスク書き込みを行う余裕があります。。 他の誰かがこれに興味がありますか?私はいくつかのSSDドライブをテストしてきましたが、結果を共有できます。このサイトの誰かがすでにSSDでI / Oボトルネックを解決しているなら、あなたの戦争の話を聞きたいです! PS。実績のあるRAMベースのSANなど、スケーラビリティに役立つ高価なソリューションがたくさんあることを知っています。私は、$ 50Kでさえ私のプロジェクトには高すぎることを明確にしたいと思います。コストが1万ドル以下で、実装にそれほど時間をかけないソリューションを見つける必要があります。 デイブ、NXC、およびバリー、 返信いただきありがとうございます!私の状況では「安い」という言葉が非常に重要であることを明確にしたいと思います。そのため、安価なDellサーバー(メモリバンクが8つしかない2950ドル$ 4K)を使用する必要があります。既に32 GBのRAMがインストールされているため、この方法でスケーリングを続けることはできません。それに、RAMを追加しても、ディスクWRITEのボトルネックからあなたを救うことはできません。これが今の私の主な問題です。 以前はSSDの寿命に関心がありましたが、最新のウェアレベリングアルゴリズムについて読んだ後、これらのドライブは十分に長く続くと確信しています。私のデータベースは1日あたり300GBを書き込み、2009年には1日あたり1TBを超えると予測されています。エンタープライズSSDは、複数年にわたって1日あたり約10TBの書き込みを処理するように設計されています。 SASからSSDに移行するには手間がかかりすぎるというBurlyの主張には同意しません。私のデータベースは同期ミラーであるため、ミラーの片側をアップグレードしてから数か月間監視し、それが壊れた場合、古いSASハードディスクドライブがまだ残っている2番目のサーバーにフェールオーバーできます...

1
SQLite db3ファイルが有効/一貫性があることを確認するにはどうすればよいですか
さまざまな理由で、稼働中の実稼働システム(不正なシステム管理者、不正なシステム管理者を知っています)からコピーしたいくつかのsqliteバージョン3 db3ファイルがあります。これらのファイルからすべてのデータを読み取ることができることを確認するために実行できるいくつかのsqliteコマンドがあります(時間がかかるかどうかは気にしません)。 すべてのデータをダンプし、それを新しいファイルに再インポートするperlをハックすることを検討していました。破損したデータに遭遇すると、sqliteは例外をスローすると思います。もっと良い方法はありますか? 私はCentOS 5.3およびsqlite-3.3.6-2です。
24 linux  database  sql  sqlite 

3
Postgres:データベースサーバーによって実行されているすべてのSQLステートメントを確認するにはどうすればよいですか?
パフォーマンス上の理由から、アプリケーションがデータベースに対して行うすべてのSQLステートメントを確認しています。PostgreSQLデータベースサーバーによって実行されるすべてのステートメントを記録する簡単な方法はありますか?ありがとう。

1
1ビットだけが切り替わって、ファイルに「S」ではなく「Q」という文字が表示される可能性はありますか
このアプリケーションでは、HibernateとPostgreSQLを使用してデータを保存します。データベーステーブルの1つに、たとえば「TIPPSPIEL」と言う識別列があります。これは固定文字列であり、どのユーザーも操作できません。 突然、この巨大なテーブルに「TIPPSPIEL」ではなく「TIPPQPIEL」というエントリが1つありました。これがどのように発生するかはわかりません。 ハードディスクが1ビットを切り替える可能性があるため、文字「S」は「1010001」としてエンコードされなくなりましたが、1ビットが1010011のように切り替わったハードディスクで突然「Q」になりますか? 私はハードディスクの専門家ではありませんが、OSやディスクにはチェックサムなどがあり、これが起こらないようにしています。 ファイルが「S」ではなく「Q」という文字を表示するように1ビットだけ切り替えることは可能ですか? 更新:さらに分析を行いました。スレーブデータベースは、マスターからWALレコードを取得します(PostgreSQL機能)。いずれにせよ:スレーブサーバーは同期している必要があります。しかし、この特定の行に関してスレーブは同期していませんでした。この特定のエントリに対するユーザーの操作なしで、数日前に発生したことがわかりました。そのため、少しひっくり返さなければなりません。怖い!


4
MySQLは64 GBのRAMを効果的に利用できますか?
約5,000万行があり、インデックスサイズが4 GB(テーブルサイズが約6 GB)のテーブルを照会すると、データベースサーバーがメモリをスワップし、劇的にスローダウンするという問題に直面しています。これは、一時テーブルのサイズが超過し、ディスクにスワップされることに関係していると確信しています。 データベースサーバーを32 GBのRAMから64 GBのRAMにアップグレードした場合、MySQLデータベースがスワップではなくこの追加メモリを完全に利用できるかどうか疑問に思います。いくつかの変数(例:KEY_BUFFER_SIZEなど)を調べましたが、64 GBを超える値の設定をサポートしているようです。ただし、MySQLのドキュメントには、tmp_table_sizeが4 GBで最大になると書かれています。 それで、メモリのアップグレードは価値がありますか?「querying-large-table」問題はこれの恩恵を受けるのでしょうか、それとも4 GBの制限のために助けになりませんか テーブルをさまざまな方法でパーティション分割するなど、他のソリューションが潜在的にあることを知っていますが、テーブルについて何も変更せずに、追加のメモリが役立ちますか? また、一般的に、32 GBから64 GBのRAMに移動するときにMySQLが利用できないメモリ関連の変数は他にありますか? データベースサーバーとして64ビットLinux(Ubuntu)を使用しています。 ありがとう、ガレン

5
MySQLは単独でインストールされることになっていますか
「私たちのMySQLサーバーマシンが失敗しました」などの声明をよく耳にします。これは、1台のマシンをMySQLサーバー専用にしているような印象を与えます(OSのみをインストールし、MySQLのみをインストールします)。システム管理者ではなく開発者として、MySQLはWebサーバーとPHPとともにLAMPスタックの一部としてインストールされることに慣れています。 誰かが私に説明できますか: MySQLを別のサーバーにインストールする意味は何ですか?ランプスタック全体と追加のサーバーも追加できる場合、リソースの無駄のように聞こえます。 データベースが別のマシンにある場合、使用する必要があるアプリはどのように接続しますか?
20 mysql  database 

2
InnoDB(5gbデータベース)のみを使用する8gb RAM専用MySQLサーバーの最適なMySQLキャッシュ設定
パフォーマンスのためにMySQLを設定することになると、私は非常に大物です。そして正直なところ、MySQLのパフォーマンスの最後の部分をすべて絞り出すための微調整については心配していませんが、最良の結果のいくつかを提供する最も重要なことは、キャッシュ/バッファを正しく設定することです。 InnoDBのみをストレージエンジンとして使用することで、物事をシンプルにしようとしました。また、MySQL専用のサーバーがあります。8GBのRAMがありますが、パフォーマンスを最大化するにはどのように割り当てる必要がありますか?最高のパフォーマンスを得るために、データベース全体をメモリに収めることができます。データベースは約5GBです。これは可能ですか? クエリキャッシュに割り当てるメモリ量はどれくらいですか?InnoDBバッファープールはいくらですか?コンピューターの残りの部分(つまり、MySQLに関連しないプロセス)はいくらですか?等。 MyISAMを使用していないので、キーキャッシュに多くのメモリを正しく入れる必要はありませんか?

7
PostgreSQLでの挿入パフォーマンスに最適なファイルシステムは何ですか?
そこにいる誰かが、ファイルシステムとデータベースのパフォーマンスを実験または比較したことがあれば、私は興味があります。Linuxでは、postgresデータベースに最適なファイルシステムは何だと思います。また、どの設定(inodeなど)が理想的ですか?これは、データベース内のデータに基づいて大幅に異なる可能性がありますか? 一般的なファイルシステム/データベースのパフォーマンスに関連する質問を探している場合、この投稿には良い情報があります。 ただし、読み取りパフォーマンスではなく、挿入パフォーマンスに関するアドバイスをできるだけ多く取得したいと思います。すばらしい回答をありがとうございました!

5
ダウンタイムがほとんどまたはまったくない非常に大きなmysqlテーブルの列の変更
私は定期的にmysql 5.1のテーブルを変更する必要があり、ほとんどの場合は列を追加します。alter tableコマンドを使用すると非常に簡単です。しかし、私のテーブルには現在最大4,000万行あり、急速に成長しています...したがって、これらのalter tableコマンドには数時間かかります。数ヶ月で彼らは私が推測している数日かかるでしょう。 Amazon RDSを使用しているため、スレーブサーバーを使用してマスターに昇格させることはできません。私の質問は、最小限のダウンタイムでこれを行う方法があるかどうかです。ユーザーがもちろんデータベースを使用できる場合、数時間または数日かかる操作を気にしません...列が追加されている間に少なくとも読むことができますか?アプリが書き込もうとするとどうなりますか?挿入または更新しますか?すぐに失敗した場合、実際にはそれほど悪くはありません。ハングしただけで、大きな問題であるdbサーバーに問題が発生した場合。 これはかなり一般的なスケーリングの問題である必要があり、誰もが列を追加する必要があります。スレーブ->マスター移行? 更新 -私はinnodbストレージエンジンを使用していることに言及するのを忘れました

2
PostgreSQLのmax_connectionsとpgbouncerのdefault_pool_sizeの計算方法は?
私はかなりの数を計算するために使用できるルールまたは何かがあるmax_connections、default_pool_sizeとmax_client_conn? デフォルトは奇数です。PostgreSQLのデフォルトはmax_connections = 100で、pgbouncerのデフォルトはdefault_pool_size = 20です。default_pool_sizeを常にmax_connectionsより大きくするべきではありませんか?それ以外の場合、ポイントは何ですか?pgbouncerは、オーバーヘッドを下げることで(PostgreSQLの接続を再利用することで)より多くの接続を処理できるようにするためのものだと思いました。よくわかりません。 「このパラメータはメモリの最大50%である必要があります」など、PostgreSQLのwikiにあるアドバイスと同様のアドバイスを探しています。 これらの種類のパラメータを計算できるMySQLのスプレッドシートがあったことを覚えています。PostgreSQL / pgbouncerにそのようなものがあれば素晴らしいでしょう。

2
sshトンネル経由でmongodbサーバーに接続する方法
sequelproを使用してAWSのリモートmysqlサーバーに接続するのは簡単でしたが、mongodbで同じことをするのに苦労しています。 私は次のようにコマンドラインでsshトンネルを設定しようとしました: ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com ホストをIPアドレスに置き換えて試しました ポート9999のすべてのmongodb接続を、ポート27101のホストの接続に転送するという考え方です。ただし、コマンドを実行すると: mongo --host localhost --port 9999 接続が失敗し、代わりにこれを取得します: MongoDB shell version: 2.6.0 connecting to: localhost:9999/test channel 2: open failed: connect failed: Connection timed out channel 3: open failed: connect failed: Connection timed out 2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed 2014-05-22T14:42:01.374+0300 Error: …

5
32ビットデータベースまたは64ビットデータベースをインストールする必要がありますか?
(64ビット対32ビットのOS /アプリについて多くのことを読みましたが、この質問は特にデータベースに関するものです。) 32ビットデータベースと64ビットデータベースの長所と短所、つまり、64ビットインストールを使用することが理にかなっている状況を理解しようとしています。 興味のあるデータベースシステムは、SQL Server 2008、MySQL、およびPostgreSQL 9.0です。 PostgreSQLの9.0より前のバージョンはWindowsの32ビットのみであり、64ビットWindowsでの32ビットPostgreSQLの実行に関するこの記事では、混乱の一部を解決したことを読みましたが、詳細を探しています。 64ビットデータベース(データベースサイズ/ディスク領域、利用可能なシステムメモリ、その恩恵を受けることが知られているデータサーボの種類、使用されているデータベースエンジンなど)を使用するメリットはいつですか?

4
`mysql`データベースをバックアップおよび復元する必要がありますか?
MySQLサーバー全体をバックアップおよび復元するための自動化されたソリューションを作成する過程でmysql、ユーザーアカウント、権限、メタデータなどが含まれていると思われるデータベースに出会いました。このデータベースをバックアップする必要がありますか?バックアップして復元しようとすると問題が発生しますか? ご想像のとおり、「mysqlがmysqlデータベースをバックアップする」ためにグーグルでやったことがあります。


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