データベース管理者

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

4
2つの異なるスキーマ間のデータ比較を実行するツールはありますか?
データベースを新しいスキーマに移行していますが、データが正しく移動されたことを確認したいと考えています。 スキーマが同じ場合、従来のデータ比較ツールは2つのデータベースの違いを比較できます。今回のケースでは、テーブルのデザインに変更がありましたが、古いスキーマのすべてのデータは新しいスキーマにあり、少し移動されただけなので、正しいことを確認する必要があります。数千万行あるため、手動で検査することはできません。 このタイプの比較に役立つツールはありますか? カスタムソリューションの開発を始めるのに役立つライブラリ/フレームワークがない場合はどうなりますか? 必要に応じて、データベース固有のソリューションを使用できます。この場合は、SQL Server 2008です。 私の解決策:VIEW新しいデータベーステーブルと同じフィールドを持つ古いデータベースに各テーブルのを作成して、2つのデータセットを比較しています。 次に、ここで説明する手法を使用してデータを比較します。SQLServerの2つのテーブルを比較するための最短、最速、最も簡単な方法:UNION! 全体的なテーブル構造は古いデータベースに似ており、フィールドが1つのテーブルから別のテーブルに移動、削除、または追加されているので、この移行で私は幸運です。ドロップして追加した場合、比較するものは何もありません。移動または集計されたフィールドについては、比較のために正しい情報を提供するためにビューで計算を行います。 UNION比較を示してくれ差がある行のみが、そうとすぐにデータが正確であるように私は、空の結果セットを取得します。

4
異なる文字セットが原因のOracleインポートの問題
Oracle 11のエクスポートをOracle 11 XEにインポートしようとしています。 次のメッセージが表示されます。 XEでのインポートfehlerhaftインポートはWE8MSWIN1252文字セットで行われ、AL16UTF16 NCHAR文字セット インポートサーバーはAL32UTF8文字セットを使用します(可能な文字セット変換) アイデア、このダンプをOracle 11 XEにインポートする方法を教えてください。 編集: テーブルを考える CREATE TABLE BDATA.Artikel( Key VARCHAR2(3) NOT NULL, Name VARCHAR2(60) NOT NULL, Abkuerzung VARCHAR2(5) NOT NULL ); このようなエラーが発生します IMP-00019: row rejected due to ORACLE error 12899 IMP-00003: ORACLE error 12899 encountered ORA-12899: value too large for column "BDATA"."ARTIKEL"."ABKUERZUNG" …
11 oracle  import 

3
マスターがオフラインになった場合、マスターMySQL DBをスレーブDBの変更とどのように再同期しますか?
MySQLサーバー1はマスターとして実行されています。 MySQLサーバー2はスレーブとして実行されています。 両方のDBがオンラインの場合、「完全に同期」しています。スレーブがオフラインになった場合でも、マスターがオンラインのままであれば問題はありません。スレーブが再びオンラインになると、同期が戻ります。 サーバー構成に加えて、マスターがオフラインになった場合、スレーブDBの接続を(JSPコードで)リダイレクトしました(もちろん、/ etc / init.d / mysqld stopでテストしました)。 マスターがオンラインに戻ったときに、マスターとスレーブの更新を自動的に同期する方法はありますか?

5
SQLiteからPostgreSQLに移行するためのツール
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答や相互作用を受け入れていません。 SQLiteからPostgreSQLに継続的に移行する必要があります。継続的に、私は毎日SQLiteデータベースをPostgreSQLに再インポートすることを意味します。手動でPostgreSQLデータベースに変更を加える必要なく、SQLiteのテーブルに変更を加えることができれば素晴らしいと思います。私はPythonから移行を実行しますが、コマンドラインから制御できる任意の外部ツールを使用できます。ツールはLinuxで使用できる必要があり、Windowsでも実行できると便利です。

5
デッドロックを監視する方法
SQL Server 2005/2008のデッドロックのトラブルシューティングを開始する時期と方法は?アラートは、SQL Serverのパフォーマンス条件アラート、オブジェクト-> SQLServer:Locks、カウンター->ロック待機/秒、インスタンス:_Total、カウンターが値を超えた場合にアラートを介してSSMSでオンになります。これは、予防的な監視方法ですか?許容値は何ですか?よろしくお願いします。ありがとうございました!!!

3
魔法のコラム「名前」はどこから来たのですか?
私は偶然これを手に入れました: db=> select name from site; ERROR: column "name" does not exist LINE 1: select name from site; ^ db=> select site.name from site; name --------------- (1,mysitename) (1 row) 2番目のクエリは、行全体を含むタプルを返します。postgres 9.0.1を使用します。 編集:リクエストによるサイトの定義。私は本当に問題ではありません、この癖はどのテーブルでも機能します。 db=> \d site Table "public.site" Column | Type | Modifiers --------+---------+--------------------------------------------------- id | integer | not null default …

3
SQL 2005ストアドプロシージャにエラー処理を追加する最良の方法は何ですか?
ストアドプロシージャを十分に堅牢にし、非常に適切にスケーリングし、エラー処理を含めるための良い方法は何ですか? さらに、ストアドプロシージャで複数のエラーシナリオを処理し、呼び出し元のアプリに意味のあるエラー情報を返すインテリジェントなフィードバックシステムを使用するための最良の方法は何ですか?

1
SQL Server 2008で破損したページを見つける方法
を実行しDBCC CHECKDBてデータベースのステータスを取得できることはわかっています。 ご質問 データベースに破損したデータページがあるかどうかを確認するにはどうすればよいですか? ページの破損が原因でエラーが発生した場合、破損しているページはどこにありますか? 破損した各ページのページ番号を確認するにはどうすればよいですか。 誰かがそれらのページIDの場所を教えてもらえますか?

2
このクエリがデッドロックを引き起こすのはなぜですか?
このクエリがデッドロックを引き起こすのはなぜですか? UPDATE TOP(1) system_Queue SET [StatusID] = 2, @ID = InternalID WHERE InternalID IN ( SELECT TOP 1 InternalID FROM system_Queue WHERE IsOutGoing = @IsOutGoing AND StatusID = 1 ORDER BY MessageID ASC, InternalID ASC) 追加されたデッドロックグラフ: <keylock hobtid="72057594236436480" dbid="9" objectname="Z.dbo.system_Queue" indexname="PK_system_Queue" id="lock5b25cc80" mode="X" associatedObjectId="72057594236436480"> <owner-list> <owner id="processc6fe40" mode="X"/> </owner-list> <waiter-list> …

2
非DBAからの質問:SQL Serverインスタンスをバックアップ/復元を介して別のサーバーに簡単にコピー/移動する方法は?
新しいサーバーができたので、既存のSQL Server 2008インスタンスを古いdbボックスからコピーする必要があります。 私は通常、.mdfとログファイルをコピーしてそれらを添付することでこれを行いますが、データベースを24時間年中無休で使用しているため、データベースをオフラインにできないため、データベースをバックアップし、新しいデータベースに復元しました機械。しかし、私はいくつかの問題を抱えており、そのうちの1つは孤立したユーザーに関連しています。だから私が探しているのは、すべてを最小限の手間/母/頭痛で動かすフェイルセーフプロセスです。私は.Net開発者であり、かなりの量のSQLを身につけていますが、SQL Serverの内部の仕組みはほとんど謎であり、MSのドキュメントはトロールするのに苦労します。 助けてください。

1
SQL Server 2008 R2ダーティリード-どのように非アトミックですか?
「ダーティ」なダーティリードが、コミットされていない読み取りの分離レベルに達する可能性があるのではないかと思っています。更新されたがまだコミットされていない行が表示されることを理解していますが、 行は部分的に更新されたように見えますか?つまり、一部の列は更新され、一部は更新されていませんか? 1つの列が部分的に更新されたように見えますか?たとえば、完全に更新中のvarchar(4000)列があり、実際には4000文字が含まれていると想定しているとします。前の状態の2k文字と新しい状態の2k文字を読み取ることができますか?長さが> 8kのvarchar(max)はどうですか? 更新:ある程度の議論の後、最小限のコンセンサスは、列のサイズが> 8KBの場合、たとえ列自体の中であってもダーティリードが可能であるということです。

2
大規模なデータ移動
何十億もの行をschema1.table1から新しいschema2.table2に移動したいと思います。table2はtable1からリファクタリングされたものです。したがって、それらのテーブル構造は異なります。table1とtable2の両方がパーティション化されていますが、table2は空です。これらのスキーマは両方とも同じOracle DBにあります。このデータ移行を実行するためのパフォーマンス効率の良い方法は何ですか?最後にのみコミットを実行しますか、それとも増分コミットを選択しますか?つまり、数時間かかったジョブの99%を完了した後にデータの移行が失敗したとしましょう。今ロールバックしますか?増分コミットを行う場合、どのように失敗を処理しますか?
11 oracle 

8
一意のIDを明示的に生成するID列またはUDF?
私は、一意のIDを明示的に生成するUDFからPRIMARY KEY、Identity Columnsを使用する方が良いかどうかについて議論しています。 Identity列について議論しています。 私のパートナーは、手動で値を生成することを主張しています、と彼は主張します UDFを作成できる別のテーブルにUDFを配置する リソースをロックする ID_Valueによって呼び出される1つのフィールドでIDテーブルをインクリメントする1 これをグローバル一意識別子として使用します またはid+1、挿入時にテーブルに 識別制約のないサーバーや環境間でデータを移動する方が簡単です。データがあるDBから、ステージングデータやダミーデータなどの別の類似のDBに移動する。非本番環境でのテストでは、すべてのレコードを昨日からテスト用のステージングまで引き下げたい場合があります。 どの実装がより意味がありますか?

1
SELECTステートメントの各行に異なるランダムな値を割り当てるにはどうすればよいですか?
このコードを見てください: create table #t1( id int identity (1,1), val varchar(10) ); insert into #t1 values ('a'); insert into #t1 values ('b'); insert into #t1 values ('c'); insert into #t1 values ('d'); 今、これを実行するたびに select *, ( select top 1 val from #t1 order by NEWID()) rnd from #t1 order by 1; …

2
データベース/テーブルをスタックとして実装するにはどうすればよいですか
さまざまなユーザーのためにいくつかのファイル名をプッシュ/ポップする必要があるステートマシンがあります。私は伝統的にスタックをデータ構造の選択として使用していましたが、これはデータベースを使用して行う必要があります。これは、着信するWebリクエスト間でデータ構造を保持する方法がないためです。 データベースを使用してスタック機能を実装する良い方法は何でしょうか? 私はサポートする必要があります: push(fileName、user):ユーザーのfileNameをプッシュします pop(user):ユーザーの最上位のfileNameをポップします 編集: 私はアイデアのプロトタイピングをしているので、Pythonでsqlite3を使用しています。 ありがとう!

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