データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

7
大規模なデータベースのmysqldumpを最適化するにはどうすればよいですか?
57テーブルで最大2GBのInnoDBデータベースを使用するsymfonyアプリケーションがあります。データベースのサイズの大部分は、単一のテーブル(〜1.2GB)にあります。現在、mysqldumpを使用してデータベースを夜間にバックアップしています。 コムキャスト接続のため、多くの場合、手動でダンプを実行している場合、ダンプが完了する前にサーバーへの接続がタイムアウトし、ダンプを再実行する必要があります。[現在、毎晩ダンプを実行するcronを実行しています。これは、手動で実行するダンプ用です。] 接続タイムアウトの問題のダンプを高速化する方法はありますが、サーバーがこのプロセスで占有される時間を制限する方法はありますか? ところで、私は現在、この問題を解決するためにデータベース全体のサイズを縮小することに取り組んでいます。

4
mysql innodb_buffer_pool_sizeの大きさはどれくらいですか?
私は、約5GBのサイズのInnoDBテーブルのみを持つビジーなデータベースを持っています。データベースはSSDディスクを使用してDebianサーバーで実行され、最大接続数= 800に設定しました。1秒あたりの平均クエリは約2.5Kです。そのため、可能な限り最大の接続を確保するために、メモリ使用量を最適化する必要があります。 私は、innodb_buffer_pool_sizeが合計メモリの最大%80であるべきだという提案を見てきました。一方、私はチューニングプライマースクリプトからこの警告を受け取ります。 Max Memory Ever Allocated : 91.97 G Configured Max Per-thread Buffers : 72.02 G Configured Max Global Buffers : 19.86 G Configured Max Memory Limit : 91.88 G Physical Memory : 94.58 G 現在のinnodb変数は次のとおりです。 | innodb_adaptive_flushing | ON | | innodb_adaptive_hash_index | ON | | innodb_additional_mem_pool_size | …
170 mysql  innodb 


19
開発者は本番データベースを照会できる必要がありますか?
開発者は、SELECT本番データベースを照会(/読み取り専用)する許可を与えられるべきですか?私が以前働いていた場所では、開発チームがdb_datareader役割を果たしていました。私が現在働いている場所では、開発チームは実稼働インスタンスに接続することさえできません。 テストインスタンスの1つは、1週間に1回、運用環境のバックアップから復元された運用環境のコピーです。したがって、開発者が実際にデータを表示しても問題はありません。 開発者がプロ​​ダクションにクエリを許可しない理由は何ですか(単に機密データの読み取りにアクセス権を持たせたくない場合を除く)。

4
SQL Server 2017のインストールのヘルプ-VS Shellのインストールが終了コード1638で失敗しました
このエラーに対処する方法に関する提案: TITLE: Microsoft SQL Server 2017 Setup ------------------------------ The following error has occurred: VS Shell installation has failed with exit code 1638. For help, click: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=14.0.1000.169&EvtType=0x5B39C8B9%25401434%25403 ------------------------------ BUTTONS: OK ------------------------------ これは新しいラップトップです SQL Server 2016 Express Visual Studio 2017 SSMS 2017 SQL ServerまたはVisual Studioに関連するものをすべてアンインストールしようとしました。 ログ:[3500:3970] [2017-11-03T16:25:20] e000:エラー0x80070666:新しいバージョンがインストールされている場合、製品をインストールできません。 Detailed results: Feature: Full-Text …

5
ユーザーのすべてのテーブルへのアクセスを許可する
私はPostgresが初めてで、MySQLデータベースを移行しようとしています。MySQLでは私が付与できSELECT、UPDATE、INSERT、およびDELETE低特権ユーザの権限を、指定したデータベース内のすべてのテーブルに適用するには、これらの助成金を有効にします。Postgresで何かを見逃しているに違いありません。各テーブルにこれらの特権を一度に1つずつ付与する必要があるように見えるからです。多くのデータベースと、データベースごとに数百のテーブルがあるため、地面から降りるのは大変な作業のようです。さらに、データベースが動作し始めると、テーブルの追加が頻繁に発生するため、絶対に必要な場合を除き、毎回アクセス許可を付与する必要はありません。 これはどのように達成されますか?



13
あるサーバーから別のサーバーにデータベースを移動するにはどうすればよいですか?
物理サーバー間でMySQLテーブルを移動するにはどうすればよいですか? この正確なシナリオのように: innodbテーブルを使用し、サイズが約20GBのMySQLサーバーがあります。 新しいサーバーに移動したいのですが、これを行う最も効率的な方法は何ですか?

5
MySQLに複数のコアを使用させることは可能ですか?
単一のコア以上を使用しない専用のMySQLサーバーをいくつか紹介しました。私はMySQLのDBAよりも開発者なので、助けが必要です セットアップ サーバーは、OLAP / DataWarehouse(DW)タイプのロードでは非常に大きくなります。 プライマリ:96GB RAM、8コア+シングルRAID 10アレイ テスト:4コアの32GB RAM 最大のDBは540 GBで、合計は約1.1TBで、ほとんどがInnoDBテーブルです Solaris 10 Intel-64 MySQL 5.5.x 注:最大のDBはOLTP DRサーバーから複製されたものであり、DWはこれからロードされます。完全なDWではありません。6か月から6週間で終了するため、OLTP DBよりも小さくなります。 テストサーバーでの観察 3つの個別の接続 それぞれに同時(および異なる)があります ALTER TABLE...DROP KEY...ADD INDEX 3つのテーブルには250万行、380万行、450万行があります CPU使用率は最大25%になり(1つのコアが最大になります)、それ以上はなりません 3回のALTERには12〜25分かかります(最小の1つに4.5分かかります)。 ご質問 複数のコアを使用するには、どのような設定またはパッチが必要ですか? つまり、なぜMySQLは利用可能なすべてのコアを使用しないのですか?(他のRDBMSと同様) レプリケーションの結果ですか? その他の注意事項 RDBMS「スレッド」とOS「スレッド」の違いを理解しています 私はどんな形の並列性についても尋ねていません InnoDBとスレッドのシステム変数のいくつかは次善の策です(クイックウィンを探しています) 短期的には、ディスクレイアウトを変更できません 必要に応じてOSを調整できます 最小のテーブル上の単一のALTER TABLEには4.5分かかります(IMOに衝撃を与えます) 編集1 innodb_thread_concurrencyは両方で8に設定されます。はい、間違っていますが、MySQLが複数のコアを使用することはありません innodb_buffer_pool_sizeはプライマリで80GB、テストで10GBです(別のインスタンスはシャットダウンされます)。これは今のところ大丈夫です。 innodb_file_per_table = ON 編集2 innodb_flush_log_at_trx_commit …


8
なぜNULLを許可しないのですか?
データベース設計に関するこの1つの記事を読んだことを覚えています。また、NOT NULLのフィールドプロパティを持つべきだと言ったことを覚えています。しかし、なぜそうなのかは覚えていません。 私が考えることができるのは、アプリケーション開発者として、NULL および存在しないデータ値(たとえば、文字列の空の文字列)をテストする必要がないということだけです。 しかし、日付、日時、および時刻の場合はどうしますか(SQL Server 2008)。あなたは、いくつかの歴史的な日付またはボトムアウト日付を使用する必要があります。 これに関するアイデアはありますか?

13
PostgreSQLのデータディレクトリを見つけるにはどうすればよいですか?
前回(数か月前に)PostgreSQLを起動した方法を忘れてしまいました。データディレクトリの場所を覚えていません。このpostgresコマンドには、データディレクトリの場所が必要なようです。 それが助けになれば、MacOsXにいます。 /usr/local/postgres 私のMacには存在しません。 下記の回答を使用して、ここにあることがわかりました。 /usr/local/var/postgres

12
バイナリファイルをデータベースに保存する必要がありますか?
データベース内のデータに関連するバイナリファイルを保存するのに最適な場所は何ですか?あなたは: BLOBを使用してデータベースに保存する データベース内のリンクを使用してファイルシステムに保存する ファイルシステムに保存しますが、コンテンツのハッシュに名前を変更し、データベースにハッシュを保存します 私が考えていないこと (1)の利点は(とりわけ)トランザクションの原子性が保持されることです。コストは、ストレージ(および関連するストリーミング/バックアップ)要件を劇的に増加させる可能性があることです (3)の目標は、ある程度まで原子性を保持することです。書き込み先のファイルシステムでファイルの変更や削除を許可せず、ファイル名として常に正しいハッシュを持つことを強制できる場合。ハッシュを参照する挿入/更新を許可する前にファイルシステムにファイルを書き込むことが考えられます-ファイルシステムの書き込み後、データベースDMLの前にこのトランザクションが失敗した場合、ファイルシステムはすべてのリポジトリであるため、問題ありません可能性のあるファイルとハッシュ-そこにポイントされていないファイルがあるかどうかは関係ありません(注意すれば定期的にクリーンアップできます) 編集: 一部のRDBMSはこれを個別の方法でカバーしているようです-他の人がそれをどのように行うのか知りたいと思います-特にpostgresのソリューション

4
数値表が「貴重な」のはなぜですか?
私たちの常駐データベースの専門家は、数値表は非常に貴重であると言っています。理由はよくわかりません。これが数字の表です。 USE Model GO CREATE TABLE Numbers ( Number INT NOT NULL, CONSTRAINT PK_Numbers PRIMARY KEY CLUSTERED (Number) WITH FILLFACTOR = 100 ) INSERT INTO Numbers SELECT (a.Number * 256) + b.Number AS Number FROM ( SELECT number FROM master..spt_values WHERE type = 'P' AND number <= 255 ) a …
112 sql-server 

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