データベース管理者

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

9
間違ったデータベースを誤って変更するリスクを最小限に抑えるにはどうすればよいですか?
オブジェクトエクスプローラーでサーバーから切断しても、そのサーバーで既に開いているクエリウィンドウの実行が停止しないという難しい方法を学びました。 私の状況は次のとおりです。開発/ステージングサーバーと運用サーバーに接続するために使用するSSMSのインスタンスが1つあります。devで大量のデータを削除しなければならなかったため、本番環境への接続を閉じる必要があると考えましたが、使用しているクエリウィンドウには注意を払いませんでした。(幸運にも、ほんの数時間前のバックアップがありました。) 実稼働データを破壊するのは私が最初ではなく、最後になるとは思いません。そこで、間違ったデータベースでクエリを実行するリスクを最小限に抑えるのに役立つチェックリスト、ベストプラクティスなどを探しています。以前にこれを経験しましたか?また、これを回避するためにワークフローをどのように適合させましたか?
12 sql-server  ssms 

11
2つのSQLテーブル間のコンテンツの違いを見つけて、同期SQLを生成する方法
正確なスキーマを持つ2つのテーブル間のデータの違いを見つける方法と、ユニオンの結果(重複なし)を取得するための同期SQLの生成方法 これらは2つのテーブルです。 SOURCE01.dbo.Customers (31,022 rows) TARGET01.dbo.Customers (29,300 rows) 各テーブルのスキーマは次のとおりです。 [CustomerId] : nvarchar(255) [CustomerSerializedProfile]: nvarchar(max) [CreatedDatetime] : DateTime

1
再帰クエリの結果をツリーのように展開してソートするにはどうすればよいですか?
あなたが持っていると仮定しましょう nodesようなテーブル。 CREATE TABLE nodes ( node serial PRIMARY KEY, parent integer NULL REFERENCES nodes(node), ts timestamp NOT NULL DEFAULT now() ); これは、最上位にルートノードがあり、ルートノードまたは他の子ノードからぶら下がっているいくつかの子ノードを持つ、標準的なノードのようなツリー構造を表します。 いくつかのサンプル値を挿入しましょう: INSERT INTO nodes (parent) VALUES (NULL), (NULL), (NULL), (NULL), (1), (1), (1), (1), (6), (1) , (6), (9), (6), (6), (3), (3), (3), (15); 次に、深さ4までの最初の10個のルートノードとそのすべての子を取得します。 WITH …

2
Windows7の起動時にMySQLサービスの開始を無効にする方法は?
デスクトップ(Windows 7 SP1)をオンにすると、多くの場合、2 GBまたは3 GBのメモリが既にMySQLプロセスによって占有されていることがわかります。データベースが実際にいくつかのクエリを実行する場合、データベースに必要なメモリの量は気にしませんが、それがアプリであればまだ起動していません。さらに言えば、ローカル環境でいくつかのWebアプリを開発するときに、MySQLの禁止をほとんど使用しません。 だから、この大食いを止めることは可能ですか?を介してスタートアップグループからMySQLを削除しようとしましmsconfigたが、その名前を見つけることができませんでした。 追加情報があります。 mysql Ver 14.14 Distrib 5.6.15, for Win64 (x86_64) MySQL Server 5.6 MySQL Workbench 6.0
12 mysql  windows 

1
SQL Server 2008 R2インデックスの再構築が重大度17で失敗する
インデックスのメンテナンス中に、SEV 17エラーでジョブが失敗し、再構築中のオブジェクトに十分なスペースを割り当てられないことがあります。データベースは次のようにレイアウトされます。 Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED 基本的に、4つのデータファイルのうち3つがいっぱいで成長が許可されず、4つ目がいっぱいで成長が許可されています。ファイルはさまざまなLUNに分散しています(そして、その理由は面倒です)。そのため、オンラインインデックスの再構築が開始されると、追加のスペースが必要な場合、Data_file4に成長して問題ないことを理解していますが、成長が許可されておらず失敗する別のファイルに成長しようとしているようです。このエラーを再現することはできませんが、なぜこれが発生するのかについての洞察を誰かが持っているかどうか疑問に思っていました。 SQL Serverの完全バージョンは2008 R2 Enterprise、SP2 CU 4(10.50.4270)です。Ola …

1
これらのDMVの結果をどのように解釈して、パーティション戦略を評価するのに役立ちますか?
バージョン:SQL Server 2008 R2 Enterprise Edtn。(10.50.4000) パーティション戦略を評価するために、このクエリを作成して、パーティションのインデックスに対するアクセス方法を取得しました(用語の最も広い意味では、ヒープを削除しています)。私は、パーティション表への私の焦点を絞るように、私は私が見てする必要があると考えているrange_scan_countとsingleton_lookup_countしたが、ハードディスクの時間概念化が生じています。 SELECT t.name AS table_name, i.name AS index_name, ios.partition_number, leaf_insert_count, leaf_delete_count, leaf_update_count, leaf_ghost_count, range_scan_count, singleton_lookup_count, page_latch_wait_count , page_latch_wait_in_ms, row_lock_count , page_lock_count, row_lock_wait_in_ms , page_lock_wait_in_ms, page_io_latch_wait_count , page_io_latch_wait_in_ms FROM sys.dm_db_partition_stats ps JOIN sys.tables t ON ps.object_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id …

2
プロンプトなしでrootパスワードなしでMariaDB 10をUbuntuにインストールします
この質問とほとんど同じですが、ルートパスワードは必要ありません(これは単なる開発マシンです)。 ここに私が持っているものがあります: export DEBIAN_FRONTEND=noninteractive sudo debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password password PASS' sudo debconf-set-selections <<< 'mariadb-server-10.0 mysql-server/root_password_again password PASS' sudo apt-get install -y mariadb-server これにより、MariaDBがサイレントインストールされますが、rootパスワードが「PASS」に設定されます。それを削除すると、それはまだ私にプロンプ​​トを表示しようとしているため、奇妙な部分的なインストールを行います。
12 ubuntu  mariadb 

1
SSISトランスフォームが非ブロック、部分ブロック、または完全ブロックのいずれであるかを判断するにはどうすればよいですか?
SSIS変換をブロッキング(非同期)、非ブロッキング(同期)、および部分ブロッキング(非同期)に分類すると主張するブログがいくつかあります。 特定の質問を見るとき:マルチキャストは同期(非ブロッキング)ですか、非同期(部分的にブロッキング)ですか? 1つのリソースが非同期を主張している:「マルチキャストは非同期(部分ブロックとも呼ばれる)変換」ソース:http : //social.technet.microsoft.com/wiki/contents/articles/7392.ssis-multicast-transformation.aspx および別の同期:https ://jorgklein.com/2009/04/14/ssis-lookup-is-case-sensitive/ 他のリソースは、DQS Cleansingトランスフォームが非ブロッキングトランスフォームであると主張していますが、部分的にブロックしているように思えます。 タイプ別に分類された変換のリストへのリンクで答えないでください。この質問に対する答えにより、より厳密な方法で正しい答えを証明できるようになることが期待されます。 部分的にブロックする変換とブロックする変換は、所定のバッファーで動作する非ブロックではなく、新しいバッファーにデータを移動するため、変換の実行中にバッファーの作成を監視するのが解決策になると思いますが、 )これが決定的な答えを生成する場合、および(b)これを行う方法。 非ブロッキング変換では新しい実行ツリーが開始されないため、PipelineExectionTreesとPipelineExecutionPlanのログに答えが存在する可能性があります。これにより、同期と非同期が区別される場合がありますが、部分ブロックと完全ブロックは区別されない場合があります。

4
なぜMongoはSTARTUP2で動かなくなるのですか?
Mongoいくつかのセカンダリを含むレプリカセットがあります。セカンダリインスタンスをホストするボックスがクラッシュし、データベースが失われました。 セカンダリMongoインスタンスを再び起動しましたが、現在は12時間以上STARTUP2で停止しています。それは理にかなっていますか?ドキュメントはMongo、RECOVERING状態に入る前に、短時間STARTUP2にあるべきだと言っています STARTUP2とはどういう意味ですか?プライマリからデータベースをコピーしていますか?どうすれば検証できますか(MongoがLinuxで実行されていると仮定)?
12 mongodb  recovery 

2
TM REQUESTおよび計画ハンドル0x0000でセッションがハングする
多数の接続がTM REQUEST(from sys.dm_os_waiting_tasks)でハングアップし、進行しない定期的なイベントがあります。KILL影響を受けた上でsession_id何もしません サーバーはデータベースミラーリング(2008R2)を実行します。ミラーリングを一時停止して再開すると、問題が発生したときに修正されます。 この状態のままになっているセッションは強制終了できません。ミラーへの負荷は通常のもので、バースト的ではありません。この状態で多数の接続がスタックすると、システムがフリーズし、ミラーの複製が停止します(すべてのクエリがブロックされます)。 誰もこれを前に見て、それが何を引き起こしているのか知っていますか?エラーログには何もありません。
12 sql-server 

1
FreeProcCacheとFreeSystemCacheの違い
現在DBCC FREEPROCCACHE、実行中のSQLクエリ間でバッファプールから情報を消去するときに実行します。しかし、私はこの Technetの記事を参照していましたDBCC FREESYSTEMCACHE。どのキャッシュがFREESYSTEMCACHEワイプFREEPROCCACHEしないのですか?
12 sql-server  cache 

1
SQL-Server-データベースのユーザーDBOパーミッションを付与
実稼働データベースのバックアップから毎晩復元するレポートデータベースがあります。復元するときにDBO、そのデータベースのロールにユーザーを追加する必要があります。 私はこれがうまくいくと思った: use Restored_Prod go exec sp_addrolemember 'db_owner', 'chris' go しかし、そのユーザーはRestored_Prodデータベースに存在しないため、次のエラーが表示されます。 Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75 User or role 'chris' does not exist in this database. どのようにして実行できるようにするデータベースにユーザクリス」を追加しないsp_addrolemember彼を作るためにDBO、そのデータベースのか?sp_addrolememberユーザーが存在するマスターDBからのコマンドを使用してユーザー権限を追加する方法はありますか?

3
ALTER DATABASEステートメントはマルチステートメントトランザクション内では許可されません
ここからAdventureWorksベースのインメモリサンプルをダウンロードし、付属のドキュメントに記載されているすべての手順を実行しました。ただし、SQL Server Management Studioでスクリプトを実行しようとすると、次のエラーメッセージが表示されます。 ALTER DATABASEステートメントはマルチステートメントトランザクション内では許可されません エラーは9行目を指しています。 IF NOT EXISTS (SELECT * FROM sys.data_spaces WHERE type='FX') ALTER DATABASE CURRENT ADD FILEGROUP [AdventureWorks2012_mod] CONTAINS MEMORY_OPTIMIZED_DATA GO これは(多かれ少なかれ)Microsoftの公式ドキュメントであるため、私はそれが間違っていると思っていますが、それが何かを理解することはできません。

2
整数型の空のフィールドを選択するPostgreSQL
テーブルがあり、fk_fc_idフィールドの値が空のすべての行を選択する必要があります(削除する前置きとして)。 Column | Type | Modifiers ---------------+-----------------------------+------------------------------------------------------------ di_timestamp | timestamp without time zone | di_item_value | character varying(10) | fk_fc_id | integer | di_id | integer | not null default nextval('data_item_di_id_seq1'::regclass) ただし、これは機能しません。 # select fk_fc_id,di_timestamp,di_item_value from data_item where fk_fc_id=""; ERROR: zero-length delimited identifier at or near """" LINE 1: ...di_timestamp,di_item_value …
12 postgresql 

1
50個のインスタンスを持つSQL Server 2012 Standardサーバーはインスタンスをアンインストールしません
SQL Serverの50インスタンスの上限に達したため、これは問題だと思われます。限界では、当然、それ以上のインスタンスはインストールされません。ただし、それらもアンインストールされないようです。さらに悪いことです。 インスタンスのSQLエンジンを選択した後、次にヒットすると、[機能の選択]ダイアログでハングします。 私はこれについて多くの情報を見つけませんでした。最も興味深いヒットはこれでした:http : //social.msdn.microsoft.com/Forums/sqlserver/en-US/24a1e5f3-25f3-48c8-973a-4c6a18578e42/trying-to-uninstall-1-of-50-sql -server-2008-r2-express-hangs-on-please-wait また、使用することをお勧めします setup.exe、いくつかのパラメーターをしてインスタンスをアンインストールするますが、GUIを起動せずに失敗し、通常のアンインストールを実行しないと、インスタンスをアンインストールできません。 標高は何もしません。再起動は役に立ちません。ログには「ユーザーによってキャンセルされました」としか表示されません。その時点までに明らかなものはありません。検証はすべて緑色です。 セットアップでは、SQL Server 2012 SP1-すべてのインスタンスが11.0.2100であると表示されます。 マイクロソフトが「修正しない」のステータスでチケットをクローズしたため、自分の質問に答える/閉じることを選択します。 彼らがSQL Server 2014でこれを修正することを願っていますが、私はそれを自分でテストしたり、計画したりしていません。

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