データベース管理者

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

2
listener.oraでSID_LIST_LISTENERを使用せずにOracleリスナーを構成する方法
次のlistener.oraを使用してORACLE 11gサーバーにアクセスできます。 # listener.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.111)(PORT = 1521)) ) ) そして、そのサーバー上のすべてのインスタンスを提供します。 lsnrctl status 私の問題は、仮想マシンでOracle 11gを新規インストールするとき、次のようなlistener.oraを使用する必要があることです。 # listener.ora Network Configuration …


3
トーナメントデータベースを設計する最良の方法
今後のユーロ2012サッカートーナメントのすべての試合に賭けをするためのウェブページを作成しています。ノックアウトフェーズでどのアプローチを採用するかを決めるのに、助けが必要です。 以下のモックアップを作成しました。これは、すべての「既知の」グループステージマッチの結果を保存することにかなり満足しています。この設計により、ユーザーが正しい賭けをしたかどうかを非常に簡単に確認できます。 しかし、四半期および準決勝を保存する最良の方法は何ですか?これらの試合は、グループステージでの結果に依存します。 私が考えたアプローチの1つは、matchesテーブルにすべての試合を追加することでしたが、ノックアウトフェーズでの試合のために異なる変数または識別子をホーム/アウェイチームに割り当てました。そして、それらの識別子がチームにマッピングされた他のテーブルを用意します...

5
SQL Server 2008のフルテキストインデックスが完了していないようです
当社のWebサイトには、Webサイト検索用のフルテキストインデックスを備えたSQL Server 2008 R2 Express Editionデータベースがあります。インデックスが作成されたテーブルの1つで新しいレコードが追加または更新されるたびに、インデックス作成プロセスが完了しないようです。 このサイトで見つかった基本的に同じクエリを使用して、過去数週間にわたってステータスを監視しています:http : //www.sqlmonster.com/Uwe/Forum.aspx/sql-server-search/2155/Why-is-this -人口がかかるほど長い これは、クエリを実行したときに表示されるものです(クリックするとフルサイズになります)。 インデックス付きテーブル内の最新のレコードは完全なものではなく、検索できません。テーブルにあまり多くのデータはありませんが、インデックス作成が完了するかどうかを確認するために何日も待機しましたが、何も変化しません。 インデックス作成を正常に完了することができる唯一の方法は、カタログを再構築するか、すべてのインデックスを削除して再作成することです。 私がそれをするたびに、最初の新しいレコードが追加されるとすぐに同じ問題が再発します。 念のため、サーバーの統計を以下に示します。 クアッドコアAMD Opteron 2.34GHz 4GB RAM Windows Server 2008 R2 Enterprise SP1 x64 SQL Server 2008 R2 Express Edition with Advanced Services x64

4
PostgreSQL設計ツール[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 PostgreSQLで実行するデータベースを設計しようとしています。私は、MySQLデータベース用のMySQL Workbenchという素晴らしいツールに慣れています。便利で、見栄えがよく、データベース設計ソフトウェアに期待しています。 新しいデータベース設計ツールを学ぼうとしているのであれば、最も人気のあるものにしたいです。したがって、私の質問は、PostgreSQLでデータベースを設計するための最も一般的なツールは何ですか?

3
SQL JOINまたはIN句を使用する必要がありますか?
最善のアプローチについて質問があります。データのサイズが可変であると考えられる場合、どのアプローチが最適かはわかりません。 次の3つの表を検討してください。 社員 EMPLOYEE_ID、EMP_NAME 事業 PROJECT_ID、PROJ_NAME EMP_PROJ(上記の2つのテーブルの多くに多数) EMPLOYEE_ID、PROJECT_ID 問題:EmployeeIDを指定すると、このEmployeeが関連付けられているすべてのプロジェクトのすべての従業員を見つけます。 私はこれを2つの方法で試しました。どちらのアプローチも、使用するデータのサイズに関係なく、数ミリ秒だけ異なります。 SELECT EMP_NAME FROM EMPLOYEE WHERE EMPLOYEE_ID IN ( SELECT EMPLOYEE_ID FROM EMP_PROJ WHERE PROJECT_ID IN ( SELECT PROJECT_ID FROM EMP_PROJ p, EMPLOYEE e WHERE p.EMPLOYEE_ID = E.EMPLOYEE_ID AND E.EMPLOYEE_ID = 123) 行く select c.EMP_NAME FROM (SELECT PROJECT_ID FROM EMP_PROJ WHERE …
13 postgresql  join 

2
NoSQLとRDBMSは一緒ですか?
NoSQLデータベースにデータを記録し、それをRDBMSに変換するための優れたソリューションがあるかどうか疑問に思っていましたか? たとえば、セッションログなどの一部のデータをすばやくキャプチャしたいが、それらのレポートを後で作成できるようにする場合です。 私のお気に入りのデータベースはPostgresなので、もしあなたの答えがPostgresに関連しているなら素晴らしいでしょう。
13 nosql  rdbms 

1
コンテキストで例外を生成する
PostgreSQLが例外をスローすると、次のような行「CONTEXT」があります。 ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement しかし、例外をスローすると、この行はありません。追加する方法が見つかりませんでした。 RAISE EXCEPTION 'blablabla' USING HINT = 'blablablabla'; この行を例外に追加することはできますか?

1
テーブルを異なるデータベース名に複製する
私たちのQA環境には、データベース名に接尾辞「test」が付いています。たとえば、実稼働環境のdbname1には、対応するdbname1testがQAにあります。(これは、主にprod / qa構成が混同されるのを防ぐためです)。 実際の実稼働テーブルをQAに複製したいテーブルがいくつかあります。「dbname1からdbname1testにレプリケートする」と言うように指示する方法がわからない これも可能ですか?

2
postgresデータベースから他のすべてのユーザーをデタッチするにはどうすればよいですか?
データベースへの排他的アクセスが必要です。SQLコマンドを使用して、postgresデータベースから他のすべてのユーザーを「切り離す」ことは可能ですか?または、他のすべての接続を閉じてから排他アクセスを取得することもできます。 これは単体テスト用であり、テストは手動でのみ実行されるため、危険はありません。古いデッド接続のみが影響を受けます。 これらの単体テストデータベースに接続している他のユーザーはいません。 古いデッド接続は開発から来ています。これは、書き込まれているテストまたは失敗したテストがクリーンに終了しない場合に常に発生します。 生産シナリオで他のユーザーを切断した後、他のユーザーをしばらくロックアウトしたままにする必要がある場合は、以下のScott Marloweの回答を参照してください。https://dba.stackexchange.com/a/6184/2024 dbaに関する同様の質問もご覧ください。サーバーを停止せずに特定のデータベースへのすべての接続をドロップする方法は?
13 postgresql 

2
ファイルが移動されたInnoDBテーブルを回復する方法
そのため、レプリケーションストリームでセットアップされたテストデータベースサーバーがあります。名前を超えて、スレーブdatadirのスペースをすぐにいっぱいにする最適化が行われました。Mysqlは忠実に、もう少しスペースを待っていました。 このdatadirはmysqlのdatadirとしてのみ使用されるファイルシステムであるため、他に解放するものはありませんでした。 レプリケーションストリームの一部ではない4ギガのinnodbテストテーブルがあったので、それが機能するかどうかを確認するために何かを試してみようと思ったのです。 これが私がとったステップです 移動しようとしていたテーブルをフラッシュしました 読み取りロックを設定しました(書き込みがなく、レプリケーションストリームにない場合でも) .frmと.ibdをファイルシステムにコピーし、予備の部屋を用意しました テーブルのロックを解除しました そのテーブルは切り捨てられました-これにより、最適化が完了するのに十分なスペースが解放され、レプリケーションが再び開始されます。 mysqlのスレーブ化/シャットダウンを停止する ファイルをtmpからデータディレクトリにコピーして戻します mysqlを再起動します .errログには何も表示されず、見た目は良好です。mydbに接続して使用します。ショーテーブルで私がいじっていたテーブルを参照してください。しかし、私が試してみると select * from testtable limit 10; エラーが出ます ERROR 1146 (42S02): Table 'mydb.testtable' doesn't exist 私がこれまでに伝えることができることから、私は他のすべてのテーブルから問題なく読むことができ、複製は苦情なしでバックアップを開始しました。 この時点から回復するためにできることはありますか?必要に応じてゼロから再構築できますが、他の人がこのベンチャーについて一般的に考えていることを知りたいと思いました。完璧な結果が得られなかった一連の手順について何かありましたか? これがテストサーバーでない場合、「ライブで実行」して何が起こるかを確認できませんでした。私がそれを気に入らなければならなかった場合、本番スレーブのスペースを一時的に解放する最良の方法は何でしょうか?

1
BLOBデータのBCPパフォーマンスの最適化
私は、2TBデータベースのパーティションテーブルへのライブマイグレーションを計画するプロセスです。システムは広範に言えばドキュメントストアであり、スペースの大部分は50kbから500kbのLOBに割り当てられ、500kbから1MBの範囲の小さな割合です。移行の一部には、古いデータベースから新しいデータベースへのBCPデータが含まれます。 データの現在/過去の区分により、最終的な切り替えに先立って(静かな期間中に)段階的に古いデータを抽出し、稼働中のシステムへの影響を最小限に抑えることができるため、BCPが好ましいアプローチです。データ量とストレージの可用性により、パーティションスキームへのその場での再構築が不可能になります。 BLOBの内容により、ROWS_PER_BATCHではなくKILOBYTES_PER_BATCHを試してみると、パフォーマンスがいくらか向上するのではないかと思われます。BCPドキュメントでは、SQLがこの値に基づいて操作を最適化できることが提案されています。 私が見つけることができないのは、これらの最適化の性質やテストを開始する場所に関するガイダンスです。提案がなければ、4/8/16/32 / 64mbの境界で短いランを開始してみます。 おそらくパケットサイズを変更することでいくらかの利点が得られます(サーバーレベルの設定ではなく、BCP -aパラメーター)。より一般的なアプローチがない限り、これを最大65535に上げる傾向があります。

5
SentryOne Plan Explorerは動作しますか?
SentryOne Plan Explorerは広告どおりに機能しますか?それは合法ですか?気をつけるべきことや心配することはありますか? SSMSの悪夢のような実行計画の見方と比較して、ホットパスを色で示しているように見えます。 私の懸念は-悪意のあるデータやその他のデータを変更しますか? 編集:私はそれについて聞いたばかりで、会社について聞いたことがありません。

5
MySQLワークベンチの代替[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 私は、MySQL Workbenchで修正できるかどうかわからない問題(つまり、表面化した古いバグのように見えるもの)に遭遇しました。そのため、私はそれを使用できない場合にそれへの良いバックアップ。Navicat(Navicatはビジネスでの使用には無料ではありません。 30日間の試用期間があります)など、いくつかの代替案を検討しましたが、現在の要件を十分に満たしているものはありません。 必要なもの: Linux互換(できればLinuxネイティブ、Ubuntuを使用しています) SSHトンネリング経由でリモートデータベースに接続可能 無料および/またはオープンソース(現在、製品に100ドル以上を払う資金がないため、とにかく優れたオープンソースプロジェクトをサポートします) 少なくともワークベンチと同等のインターフェース(慣れているからかもしれませんが、非常にきれいで直感的なタブ付きインターフェースが好きです;同一である必要はありません) MySQL 5+をサポート 持っているのはいいことですが、Workbenchにある余分なデータモデリングは必要ありません。派手なGUIのもの(クエリデザイナーなど)も必要ありません。整然とした方法でデータを表示する方法とクエリを編集する場所は、本当に必要なすべてです。 現在、HeidiSQLをチェックアウトしていますが、Win9x / Win2kを実行していたときに使用していたものを思い出します。データベースをダンプしたり、複数のテーブルに変更を加えたりする機能。

2
INSERTは自動コミットされますか?
私たちのアプリケーションは、レコードを追加するためにMySQLデータベースに対してINSERTクエリを起動します。レコードが自動コミットされるかどうかを知りたい。ROLLBACKコマンドを実行すると、データベースはいつロールバックを実行しますか?COMMITの後にROLLBACKは可能ですか?
13 mysql  innodb 

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