タグ付けされた質問 「sql-server-2012」

SQL Server 2012(メジャービルドバージョン11.00.xxxx)。sql-serverにもタグを付けてください。

2
SQL Serverトランザクションログの圧縮
私は現在、制御不能になったSQL Serverトランザクションログを処理する必要があります。免責事項:私はdbaではなく、これは私の専門分野ではないので、ご容赦ください。 現在、500 MBのデータベース用に115 GBのトランザクションログファイルがあり、この状態になるには(明らかに)しばらく管理が不十分でした。 最優先事項は、実行する前に、このファイルによって占有されているディスク上のスペースを再利用することです。ドライブのサイズを増やすことは一時的であってもオプションではないと言われています。過去の成長に基づいて、我々はすぐに行動する必要があります。 私が理解しているように、最良のアプローチは、dbを完全復旧モードに保ちながら、ログファイルの定期的なバックアップをとり、一定期間監視し、初期サイズと増分を適切に調整することです。大丈夫。 午前0時に定期的にフルデータベースバックアップを実行しているときに、データベースを一時的にシンプルリカバリモードにして(これらのバックアップの1つが実行された後)、ログファイルを圧縮して(事実上すべての)領域を解放し、次に、上記のバックアップ戦略でそれを完全復旧に戻しますか? 私の考えでは、この時期に何かが起こった場合、ログを使用せずに完全なバックアップを復元することができます。 更新 いくつかの回答とコメントへの返信におけるいくつかの追加詳細: データベースを完全復旧モードのままにしておくために、ポイントインタイムリストアを実行する機能を保持したいと思います。 t-logファイルが非常に大きくなった理由は、バックアップされたことがないためです。log_reuse_wait_descが「LOG_BACKUP」を返すことを確認。

1
LocalSystemで以前に実行されている場合、NT SERVICE \ MSSQLSERVERアカウントでSQLサービスを実行する方法
最近、実験的なpuproseのために、サーバー設定のデフォルト(C:...)data \ logファイルパスを新しい場所(G:\ DBA)に再配置しました。 次に、既存のdbのdata \ logファイルを新しい場所(G:\ DBA)に移動し、SQLサービスを再起動しました。それ以来、私がDBを作成しているときはいつでも、期待どおりに機能しています。つまり、data \ logファイルが新しい場所(cool ...)に作成されています。 しかし、問題は、以前に存在していたすべてのDBがRecoveryPending状態であり、Access deniedのようなエラーが発生したことです。 SQLが実行されているサービスアカウント(NT SERVICE \ MSSQLSERVER)に新しい場所(G:\ DBA)へのアクセス権がないと考え、ログオンアカウントをコンピューターの管理コンソールでSQLサービスのローカルシステムとして変更しました。これで、すべてのdbが良好であることがわかります。 しかし、SQLサービスをNT SERVICE \ MSSQLSERVER(デフォルトのインスタンス)サービスアカウントで実行したいのですが。NT SERVICE \ MSSQLSERVERのG:\ DBA \へのフルアクセスを与えてみましたが、使用しませんでした。SQLサービスをNT SERVICE \ MSSQLSERVERサービスアカウントで実行する場合に必要なすべてのことを手伝ってください。私はこの分野の初心者です。私を助けてください。 前もって感謝します。。。

1
ログ配布SQL Server 2012
私はDBAがいない小さなショップの開発者で、SQL Server 2012を使用してログ配布を取得しようとしています。トランザクションシステムから新しいデータウェアハウスにレポートの負荷を軽減しようとしています。このデータベースをステージング領域として使用します。 ログ配布ウィザードを実行したところ、主要なバックアップジョブとファイルコピージョブが毎回機能しました。セカンダリリストアジョブがランダムに失敗するようです。 プライマリサーバーには、1つのトランザクションログジョブしかありません。差分バックアップは無効になっています(問題かどうかは不明です)が、完全バックアップがあります。 セカンダリサーバーは、メンテナンスプラン、バックアップ、またはアクティブユーザーのいないフレッシュインストールです。 バックアップを強制的に同期させる方法はありますか、または常に同期を維持することを保証しますか? とても壊れやすいようです。お知らせ下さい。 以下の編集ログ: *Starting transaction log copy. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' Retrieving copy settings. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' Retrieved copy settings. Primary Server: '', Primary Database: 'db', Backup Source Directory: '\\server\folder', Backup Destination Directory: '\\server\folder', Last Copied File: '\\server\folder\db_20160105070002.trn' Starting transaction log restore. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' …

2
サイズ5kの行を更新するときの8k行オーバーフローエラー
サイズが5kの行が1つあるターゲットテーブルも、サイズが5kの行に更新しようとしています。 1行なので、行の実際のサイズを簡単に知ることができます。 select * from sys.dm_db_index_physical_stats(DB_ID('RODS_HSD_ES'), OBJECT_ID(N'TBL_BM_HSD_SUBJECT_AN_148_REPRO'), NULL, NULL, 'DETAILED') 再現する テーブルは作成以来変更されていません。失敗する理由はありません。アイデア?

3
WHERE句を更新して、値が別のテーブルにないかどうかを確認する
私が使用するクエリ持っているWHERE句を、と私は起こるまったく同じ使用することWHEREで句多く、このテーブル上のクエリ(ら)。 クエリは次のとおりです。 SELECT DATENAME(DW, [AtDateTime]) AS [Day of Week] ,COUNT(*) AS [Number of Searches] ,CAST(CAST(COUNT(*) AS DECIMAL(10, 2)) / COUNT(DISTINCT CONVERT(DATE, [AtDateTime])) AS DECIMAL(10, 2)) AS [Average Searches per Day] ,SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END) AS [Number of Searches with no Results] ,CAST(CAST(SUM(CASE WHEN [NumFound] …

2
DBエンジンの盗まれたサーバーのメモリが高すぎる
System Center Operations Manager(SCOM)からエラーが発生します。 このエラーを解決するには? SQL DB 2012エンジンの盗まれたサーバーのメモリが高すぎます。 クエリを実行してこのカウンターを取得します。 ╔═══════════════════════════════╦═════════════╗ ║ Stolen Server Memory (MB) ║ 7354.773437 ║ ║ Lock Memory (MB) ║ 106.195312 ║ ║ Free Memory (MB) ║ 64.632812 ║ ║ Connection Memory (MB) ║ 24.203125 ║ ║ Log Pool Memory (MB) ║ 14.085937 ║ ║ Optimizer Memory …

1
以下のクエリから階層値を取得するにはどうすればよいですか?
という名前Categoryの列を持つテーブルという名前のテーブルがありますCategoryID。と呼ばれる同じテーブルに参照列がありますfParentCategoryID。 すべてのカテゴリIDとそのサブカテゴリIDをカンマで区切る必要があります。例 -10の親カテゴリIDが1で、20の親カテゴリIDが10の場合、カテゴリID 20を印刷するとき、1と10の両方を親としてカンマ区切り値で印刷する必要があります。 以下のクエリを試してみましたがNULL、ParChild列が表示されます。助けてください。 ;WITH cteReports AS ( SELECT c.CategoryID, c.fParentCategoryID, [level] = 1, ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX)) FROM retail.Category c WHERE c.fParentCategoryID is NULL UNION ALL SELECT c.CategoryID, c.fParentCategoryID, [level] + 1, ParChild = ParChild + ',' + CAST(c.CategoryID AS VARCHAR(200)) …

1
これら2つのHADR DMVが異なる状態を報告するのはなぜですか?
SQL Server 2012(11.0.5058.0)Enterprise Edition 2(HA)+1(DR)クラスターに8つの可用性グループがあり、監視DMVが結果を報告して混乱を招いています。6つの可用性グループはHAおよびDR用に構成され、1つはHA専用に構成され、1つはDR専用に構成されます。 6つのHA / DR可用性グループのそれぞれに、プライマリとして「SQLB」、セカンダリ(同期)HAレプリカとして「SQLA」、セカンダリ(非同期)レプリカとして「SQLC」があります。 両方のセカンダリで: SELECT dhags.group_id, dhags.synchronization_health_desc FROM sys.dm_hadr_availability_group_states dhags レポートのすべての可用性グループのレプリケーション同期健康であることNOT_HEALTHYと、 select replica_id,synchronization_health_desc from sys.dm_hadr_availability_replica_states すべてのレプリカの同期状態はであると報告されていますHEALTHY。 プライマリレプリカは、同期状態がのすべての可用性グループとレプリカを報告しますHEALTHY。 1つはレプリカ同期の正常性に関するレポートで、もう1つはAG同期の正常性に関するレポートであることを理解していますが、より詳細な(AG)状態が正常でない場合、より広いコンテキスト(レプリカ)の全体的な正常性に影響することは当然のようです。各レベルでヘルスがどのように決定されるかを説明するMSDNドキュメントが見つかりません。 セカンダリNOT_HEALTHYが可用性グループの同期の正常性を報告するのにHEALTHY、レプリカの同期の正常性を報告するのはなぜですか?なぜこれがプライマリの報告と異なるのですか?

3
sp_MSForEachDBを使用してデータベースをループするときにIFステートメントがTempDBをスキップしない
[SQL Server 2012 SP2 EE] 次のスクリプトでtempdbに関するエラーが発生するのはなぜですか? exec sp_MSForEachDB ' IF ( (select database_id from sys.databases where name = ''?'') > 4) BEGIN ALTER AUTHORIZATION ON DATABASE::? TO [sa]; ALTER DATABASE [?] SET RECOVERY SIMPLE; END' ここに私が得るエラーがあります: Msg 5058, Level 16, State 1, Line 5 Option 'RECOVERY' cannot be set in …

1
IO_COMPLETIONを待機している中断されたSQL Serverトランザクションを終了する方法は?
5時間以上実行されているトランザクションがあります。ディスク領域が不足しています。セッションは強制終了されましたが、IO_COMPLETIONを待機しています。実際、wait_typeはPAGEIOLATCH_EXに変更されました。一時停止したSQL Serverトランザクションを終了するにはどうすればよいですか?データはすべて再入力できるため、データが失われる心配はありません。 session_id: 54 STATUS: suspended blocked by: 0 wait_type: PAGEIOLATCH_EX Elapsed Time (in Sec): 19750.420000 open_transaction_count: 2

1
SQL Serverのマージ行サイズオーバーフロー-「サイズの行を作成できません。」
データをマージしようとしているターゲットテーブルには、約660列があります。マージのコード: MERGE TBL_BM_HSD_SUBJECT_AN_1 AS targetTable USING ( SELECT * FROM TBL_BM_HSD_SUBJECT_AN_1_STAGING WHERE [ibi_bulk_id] in (20150520141627106) and id in(101659113) ) AS sourceTable ON (...) WHEN MATCHED AND ((targetTable.[sampletime] <= sourceTable.[sampletime])) THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (...) 初めてこれを実行したとき(つまり、テーブルが空のとき)は成功し、1行挿入しました。 同じデータセットを使用してこれを2回実行したときに、エラーが返されました。 許容最大行サイズ8060より大きいサイズ8410の行を作成できません。 すでに挿入されている同じ行を2回目にマージしようとしたときにエラーが発生したのはなぜですか。この行が最大行サイズを超えた場合、そもそも挿入できない可能性があります。 だから私は2つのことを試しました(そして成功しました!): マージステートメントから「WHEN NOT MATCHED」セクションを削除する マージしようとした同じ行で更新ステートメントを実行する …

2
Microsoft SQL Server 2012ミラーが切断される
Microsoft SQL Server 2012のミラーがいくつかあり、非同期モードでの監視なしで、散発的に切断されます。SQL Server 2012 11.0.5058を実行しています。私が見るミラー側のログを見て BUFの割り当てに失敗しました:FAIL_BUFFER_ALLOCATION 1 たくさんのメモリークラークメッセージがあります エラー:802、重大度:17、状態:0。 バッファープールで利用可能なメモリが不足しています。 エラー:1454、重大度:16、状態:1。 データベースミラーリングは一時停止されます。サーバーインスタンス 'instance'は、データベース 'database'のミラーリングパートナーとして機能していたときに、エラー802、状態0、重大度17を検出しました。データベースミラーリングパートナーは、エラーから自動的に回復して、ミラーリングセッションを再開しようとする場合があります。詳細については、エラーログで追加のエラーメッセージを確認してください。 この一連のイベントの後にミラーが一時停止状態になり、その後切断される理由を確認するために何をチェックすべきかについての助けがあれば幸いです。この後、ミラーを再確立できます。ミラーは数日間問題なく機能し、その後、何度も発生します。

2
SQL Serverの累積的な更新-Windows Updateでは表示されません
可能なすべてのWindowsアップデートをWS2008R2 / SQL2012インスタンスにインストールしました。私が走るとき SELECT @@VERSION 私は得る Microsoft SQL Server 2012 - 11.0.5058.0 (X64) May 14 2014 18:34:29 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) による http://sqlserverbuilds.blogspot.com/ およびMicrosoftのWebサイトでは、SQL Server 2012 SP2で利用可能な4つの累積的な更新があり、最新のビルドは11.00.9000です。 なぜWindows Updateも累積的な更新を取得しなかったのですか?手動でダウンロードしてインストールする必要がありますか?

2
SQL Server:特定のホスト名またはIPアドレスからのみアクセスできるユーザーを作成する方法
依存している愚かなアプリが1つあります。このアプリには、接続文字列がハードコードされています。 SQL Serverのセキュリティを高めるために、SQLユーザーをアプリ内にハードコーディングされたものと同じにしたいのですが、そのユーザーが特定のホスト(IPアドレス)からのみSQL Serverを使用できるようにしたいと考えています。

3
メッセージの取得を続行:ページの割り当てに失敗:FAIL_PAGE_ALLOCATION 540
私は次のことでいくつかの助けをいただければ幸いです、私はいくつかグーグルをやったが、これを解決することができませんでした。 SQLログ「失敗した割り当てページ:FAIL_PAGE_ALLOCATION 540」でメッセージを受け取り続け、この質問の最後に追加するダンプが続きます。 参考までに、ビルドは次のとおりです。 vCenterで実行されている仮想サーバー Windows Server 2008 R2 64ビットSQL Server 2012 SP1 Enterprise(11.0.2100)8GB RAM SQL Server Max and Min memory is set to 6144 MB サーバーは2ノードの可用性グループの一部であり、これが現在のプライマリノードです。 このインスタンスはMicrosoft SharePointのデータベースをホストしています 私は、Perfmonトレースを24時間実行しましたが、ダンプの1つの後にPLEがドロップし、その後再び上昇したことがわかりました。他に特に奇妙なものはありません。 SQL Serverはまだ実行中です。 SQLログからの抽出: 10/03/2014 09:59:52,spid866,Unknown,CACHESTORE_XMLDBELEMENT (node 0) KB<nl/>---------------------------------------- ----------<nl/>VM Reserved 0<nl/>VM Committed 0<nl/>Locked Pages Allocated 0<nl/>SM Reserved 0<nl/>SM Committed 0<nl/>Pages …

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