破損したデータベースからのデータ抜き出し方法

  前回ご案内したバックアップが存在しない、または、バックアップからのリストアが行えない場合のデータベース復旧手順では、バックアップを採取していなかったり、バックアップからのリストアに失敗したという場合のデータベースの修復方法をご案内しました。その中では、DBCC CHECKDB コマンドの修復オプションを用いてデータベースの修復を行いましたが、DBCC CHECKDB の修復オプションを用いてもデータベースを修復できない場合もあります。そのような場合は、データを抜き出して、そのデータを元にデータベースを再構築する以外にはありません。今回は DBCC CHECKDB コマンドの修復オプションでも復旧できない場合に、破損したデータベースから可能な限りのデータを抜き出すための方法をご案内します。 ※ 注意事項 ※ 以下の手順は検証済みの手順ですが、必ずしもデータをすべて抜き出せることを保証しているものではありません。手順の実施につきましては、自己責任において行ってください。 本手順を実施した後、インデックスの作成や外部キー(FK)の設定を行う必要がある場合もあります。そのため、本作業は、対象データベースに格納されているデータ間の関連性を熟知している方、もしくは、この手順を実施する方の責任において実施する必要があります。データ間の関連性が保たれているかどうかの確認が行えない場合には、この手順を実施しないで下さい。 ■抜き出し手順   1. 移行先となる新規データベースを作成します。 Create Database データベース名 GO Use データベース名 GO Alter database ‘データベース名’ set RECOVERY FULL GO 2. 以下のいずれかの方法にて、データの抜き出しを行います。 方法 特徴 Export ウィザード 破損データベースの複数のテーブルおよびデータを新規作成したデータベースへ直接コピー。 Select into 破損データベースの一つのテーブルを新規作成したデータベースへ直接コピー。 bcp 事前にテーブルを作成する必要あり。 破損データベースの一つのテーブルを一度、テキストファイルに出力後、そのファイルを元に、新規作成したデータベース内の新規作成したテーブルにコピー。 ※注意事項※  いずれの方法も、アクセスできないデータにヒットした時点でエラーになります。 それぞれの実行方法は以下の通りです。  1.Export ウィザード ※以降はSQL Server 2012 のSQL Server…


NicolTIP#030: How to disable Direct Access via Powershell

in order to disable Direct Access on Windows 8.1, you can run the following powershell script (as administrator) remove-itemproperty -Path “HKLM:SOFTWAREPoliciesMicrosoftWindows NTDNSClient” -name DnsPolicyConfig Net stop iphlpsvc /y Net start iphlpsvc ipconfig /flushdns Write-Host “” Write-Host “Press any key to continue …” $x = $host.UI.RawUI.ReadKey(“NoEcho,IncludeKeyDown”)


バックアップが存在しない、または、バックアップからのリストアが行えない場合のデータベース復旧手順

  データベースが破損しエラーが返されたり、アクセスできないといった状況が発生した場合、バックアップからリストアするという対処がもっとも一般的かつ確実な対応であり、SQL Server サポートでは、通常、バックアップからのリカバリ手順をご案内しております。 しかしながら、バックアップを採取していなかったり、バックアップからのリストアに失敗したという場合もあります。 今回は、そのようなバックアップからのリストアが行えない場合のデータベースの修復方法を紹介します。 ※ 注意事項 ※ 以下の手順は検証済みの手順ですが、必ずしもデータベースの復旧を保証しているものではありません。手順の実施につきましては、自己責任において行ってください。 データベースの破損状況によっては、以下で紹介する修復手順を実施しても、データベースに接続でき、アプリケーションが実行できるまでの状態に復旧できない場合もあります。その場合はデータベースの再作成が必要となります。 本手順を実施すると、トランザクションの一貫性が失われる場合があります。トランザクションの一貫性が保たれているかどうかの確認は、対象データベースに格納されているデータ間の関連性を熟知している方、もしくは、この手順を実施する方の責任において実施する必要があります。トランザクションの一貫性が保たれているかどうかの確認が行えない場合には、この手順を実施しないで下さい。      ■修復手順 1. 対象データベースのファイルコピーを行います。 SQL Server サービスを停止し、対象データベースファイルのファイルバックアップ(別フォルダにデータベースファイルをコピー)を行います。 データベースファイル、ログファイルのファイルパスは以下のクエリにて確認可能です。以降の手順で予期しない問題が発生した場合、このファイルを用いて手順 1. の状態まで戻すことができます。バックアップ完了後、SQL Server サービスを再起動します。 select d.name as databasename,f.name as filename ,f.physical_name as filepath from sys.master_files f,sys.databases d where d.database_id = f.database_id GO 2. Microsoft SQL Server Management Studio を起動し、sa 等の管理者権限をもつ sysadmin ロールメンバとして SQL Server へ接続します。…


Microsoft Azure のクォータ増加について

Microsoft Azure では、利用できる仮想マシンの数やストレージアカウントの数に対して、利用しすぎないように制限を設けています。しかしながら利用上、この制限を拡張したいというご要望があるかと思います。本トピックでは、Microsoft Azure におけるクォータ増加の方法について説明します。 クォータとは 仮想マシン・クラウドサービスやストレージサービスには、課金が予想外に高くならないように、既定で利用可能な、コア数やストレージサービスアカウント数が決まっています。通常は、その既定のサイズ以上のコア数を利用したり、ストレージアカウントを割り当てたりはできません。この制限値のことを「クォータ」と呼びます。クォータは既定で以下の値が割り当てられています。 サービス クォータ数 クラウドサービス 20 コア 20 ストレージアカウント 100 SQL データベース サーバー数 6 ※上記値は 2018 年時点のデプロイモデルがクラシックの場合であり、変更される場合もあります。また、ご利用いただいている契約により若干割り当て個数が異なる場合があります。 ※ 2018 年現在、無料評価版のクォータ増加は承っておりません。従量課金プランにアップグレードの上、ご申請ください。 ※ 2018 年 現在、日本リージョン(東日本と西日本)のご利用申請には、お時間を要しております。 別リージョンや別サイズでのご利用をご案内する場合がございます。予めご了承くださいますようお願いいたします。   仮想マシンはクラウドサービスの一種であるため (特殊なクラウドサービスとして割り当てられています)、仮想マシンとクラウドサービスを 20個以上ご利用の際には、クラウドサービスのクォータ制限にひっかかります。通常は、割り当てられている個数以上は使うことはできませんが、サービスの運用上必要な場合には、Microsoft Azure サポートサービスに問い合わせることで拡張することが可能です。増加方法については、次の項目で説明します。 クォータ増加方法について クォータ増加については、Microsoft Azureの課金サポートから問い合わせることが可能です。ご契約いただいているサブスクリプションから、以下の手順でお問い合わせください。 Microsoft Azure 管理ポータル に接続します。 契約をお持ちのマイクロソフトアカウントでログインします。 ポータルが表示されましたら、右上のアカウント名をクリックし、「マイクロソフトサポートに問い合わせる」を選択します。 該当するサブスクリプションを選択し、「日本」「日本語」を設定の上、クォータ増加の要望の旨を記載し、ご連絡ください。 お問い合わせにあたって、事前に以下の情報をご用意いただければ幸いです。 ■ 仮想マシン/コアの場合 対象の仮想マシン デプロイモデル:クラシックか、リソース マネージャ 対象のデータセンター、仮想マシンの種類、想定されるストレージ (ディスク) の総容量・種類   …


A Brief History of Windows SDKs

A common source of confusion for Windows development is the Windows SDK naming scheme. For example: Can someone use the “Windows SDK for Windows Server 2008 and .NET Framework 3.5” to target Windows XP? The recommendation is for developers to use the latest version of the Windows SDK they can for access to the latest…


All About Kerberos “The Three Headed Dog” with respect to IIS and Sql

Kerberos Understanding and troubleshooting Steps to be followed while dealing with Troubleshooting Kerberos related issues. Prerequisites: 1) Kerberos can only work in intranet because client needs to interact with the Domain controller directly. 2) Kerberos can be used in internet only if you have a public facing active directory. But public facing active directory is…


Setting Up SQL Server 2008 R2 Log Shipping step by step

Setting Up SQL Server 2008 R2 Log Shipping step by step 1.Prerequisites (1)確認資料庫復原模式recovery model為[完整](Full)或[大量記錄](bulk-logged) (2)建立一個交易紀錄備份用目錄並設定分享,如果只有兩台SQL Server通常建立在主要伺服器Primary Server上,此目錄也可以建立在第三台主機上。 此範例的目錄建立在主要伺服器上,C:LogShip 並給予主要伺服器Primary Server的SQL Agent啟動帳戶SQLservice有寫入與讀取權限   (3) 建立一個放置要還原的交易紀錄檔目錄並設定分享,此目錄建立在次要伺服器secondary Server主機上。 此範例的目錄建立在次要伺服器上,C:LogShipRestore 並給予次要伺服器secondary Server的SQL Agent啟動帳戶SQLservice有寫入與讀取權限 2.Prepare a Secondary Database for Log Shipping (1)在主要伺服器上對要設定log shipping的資料庫執行完整備份。 (2)並執行一次交易紀錄檔備份Log Backup。(非必要Optional) (3)複製備份檔到次要伺服器。 (4)在次要伺服器,以WITH NORECOVERY參數還原完整備份與交易紀錄檔備份。 還原後資料庫狀態為(正在還原中)(Restoring)   3.開始設定Log Shipping (1)在主體伺服器設定主體資料庫屬性 (2)在選取頁面點選[交易紀錄傳送],右邊勾選[將此啟用為記錄傳送組態的主要資料庫] Under Select a page, click Transaction Log…