SSブログ

SQL server のトランサクションログの圧縮方法

SQL Server Management Studio にて、未使用ログ領域の切り捨て -> ログファイルの圧縮 という手順

1. オブジェクトエクスプローラで対象のデータベースを選択

2. 選択したデータベースを右クリック -> データベースのプロパティ -> オプション
     -> 復旧モデル を "完全" から "単純" に変更する

3. 使用領域の確認
   選択したデータベースを右クリック -> 新しいクエリ -> 以下のコマンドを実行

     DBCC SQLPERF('LOGSPACE')  ->  各データベースの ログファイルサイズと空きスペースの表示
     SELECT * FROM sys.database_files  ->  対象データベースのデータベースおよびトランザクションログの使用領域

4. 未使用ログ領域の切り捨て
   選択したデータベースを右クリック -> タスク -> バックアップ -> そのまま OK

   コマンドで実行するなら、

     ”BACKUP LOG [対象のデータベース名] TO DISK=[バックアップ先のパス/ファイル名] WITH INIT

   既に過去のバックアップファイルが存在している場合、以下のコマンドの実行により、
   バックアップファイルを改めて取得しなくともよい

     BACKUP LOG [対象のデータベース名] TO DISK='NULL'

   ※ 通常、ログの切り捨ては自動的に行われる
        単純復旧モデルではデータベースのバックアップ時
        完全復旧モデルではトランザクション ログのバックアップ時

5. ログファイルの圧縮
   タスク -> 圧縮 -> データベース -> 圧縮アクション で "未使用領域の開放前..." にチェックをつけ、
     "圧縮後のファイル..." の欄に "0" を指定する -> OK とする

   コマンドで実行するなら、

     DBCC SHRINKFILE (<FileName>, <TargetSize>) WITH NO_INFOMSGS

   ※ 単純復旧モデルで、圧縮を行うと、バックアップ/ログの切り捨ても自動的に行われる

6. 圧縮後の確認

   以下のコマンドでログファイルサイズと空きスペースを確認

          DBCC SQLPERF('LOGSPACE')

7. 選択したデータベースを右クリック -> データベースのプロパティ -> オプション
     -> 復旧モデル を "完全" に戻しておく

(SQL Server 2008 R2、Windows Server 2008 R2)


データローダで、フィールドを NULL値 (ブランク) で更新する方法

以下の手順で、NULL値の上書きを許可する設定を行う

 

1.NULLにしたいフィールドを含む .csv ファイルを用意する

2.データローダの Settings で、Insert NULL Values にチェックを付ける

3.データローダで update を実行する

 

(Salesforce, DataLoader)

 


NICの2枚構成(同一セグメント)でNetBIOS名が重複する (IISで複数ドメイン構成時)

NICの2枚実装で、IISにて、
   NIC#1、192.168.10.10 をデフォルトサイト、hostname.ドメイン
   NIC#2、192.168.10.20 を別サイト、altsitename.ドメイン
で構成すると、NetBIOS名が重複するエラーが発生する

   NetBT ID:4319 TCP ネットワーク上で重複する名前が検出されました。
   そのメッセージを送信したコンピュータの IP アドレスは、データ中にあります。
   重複状態にある名前を参照するには、コマンド ウィンドウで NBTSTAT -n コマンドを実行してください。

nbtstat -n で確認すると 2枚のNICとも同じNetBIOS名が表示される

ローカル エリア接続 1: Node IpAddress: [192.168.10.10] Scope Id: []
    hostname       <00>  UNIQUE      Registered
    ドメイン       <00>  GROUP       Registered
    hostname       <20>  UNIQUE      Registered

ローカル エリア接続 2: Node IpAddress: [192.168.10.20] Scope Id: []
    hostname       <00>  UNIQUE      Registered
    ドメイン       <00>  GROUP       Registered
    hostname       <20>  UNIQUE      Registered

NetBUEIプロトコルをバインドしていると発生するらしい -> していないが発生する

WINS参照の設定、lmhosts設定 を実施するも改善なし。。。。。。。。

 

 

ちなみに、

NetBIOS名からIPアドレスを求める方法
   ブロードキャストを使う方法
   LMHOSTSファイルを使う方法
   WINSサーバを使う方法

ブロードキャスト使用時のマスタブラウザを知る方法
   net view でホスト一覧を表示
   nbtstat -a <ホスト名> と一つずつ指定して、
   結果に ..__MSBROWSE__.<00> が表示されるホストがマスターブラウザ

 

一般的に、

NICを2枚構成する目的としては、
   ポートのトランキングによる帯域の拡張(同一セグメント)
   ルーティング(異なるセグメント)

いづれの場合も、ネットワークアダプタの設定にて、
各々のNICに対してデフォルトゲートウェイの設定はできない(どちらか一方のみに設定する)

ルーティングさせる場合は、コマンドで指定する

   route[ -f][ -p][ PRINT| ADD| DELETE| CHANGE[ 宛先IPアドレス]
     [MASK サブネットマスクアドレス[ゲートウェイIPアドレス][METRIC メトリック数][IF インターフェイス名]]

   -f  ルーティングテーブルのすべての経路情報をクリアする 
   -p  ADD(追加)時に指定すると、追加した経路は次回以降のOS起動時にも自動的に追加される
       指定しない場合は今回限りの設定となる
       PRINT(表示)時に指定すると、このオプションで追加した経路のみを表示する
   PRINT  ルーティングテーブルを表示する 
   ADD  経路を追加する 
   DELETE  経路を削除する 
   CHANGE  すでに登録されている経路を変更する 
   MASK  経路が使用するサブネットマスクアドレスを指定する 
   ゲートウェイIPアドレス  経路が使用するゲートウェイIPアドレスを指定する 
   METRIC  経路のメトリック値を1~9999までの範囲で指定する 
   IF  経路が割り当てられるインターフェースを指定する
       インターフェイス名は「route PRINT」で表示される「Interface List」の16進値を指定する
       省略されるとゲートウェイIPアドレスから最適と考えられるインターフェイスを自動選択する 

(Winsows 2003 Server, IIS6.0)


WinHTTP Web Proxy Auto-Discovery のイベントログ 12503,12517 および 7036,7035 について

Webサーバのシステムイベントログに不定期で、以下のようなイベントが繰り返し記録される。

   イベント ソース:WinHttpAutoProxySvc
   イベント ID:12503
   説明: The WinHTTP Web Proxy Auto-Discovery Service has been idle for 15 minutes, it will be shut down.

   イベント ソース:WinHttpAutoProxySvc
   イベント ID:12517
   説明: The WinHTTP Web Proxy Auto-Discovery Service suspended operation.

   イベント ソース:Service Control Manager
   イベント ID:7036
   説明: WinHTTP Web Proxy Auto-Discovery Service サービスは、停止 状態に入りました。

   イベント ソース:Service Control Manager
   イベント ID:7036
   説明: WinHTTP Web Proxy Auto-Discovery Service サービスは、実行中 状態に入りました。

   イベント ソース:Service Control Manager
   イベント ID:7035
   説明: Volume Shadow Copy サービスは、正常に 開始 コントロールを送信しました。

 

これらのサービスは、インターネットオプションの 接続 > LANの設定 で、

   "設定を自動的に検出する"

にチェックが入っているとクライアントからのリクエストによって起動されるようです。

Webサーバ自身の設定についても同様で、 "設定を自動的に検出する" のチェックを外し、
プロキシサーバを明示的に指定しておくのがベター。

また、Webサーバにおいて、 "WinHTTP Web Proxy Auto-Discovery Service" を
"無効" にしておいても、通常は問題ない。 (デフォルトは "手動" で停止の状態)

参考:
   http://oshiete1.watch.impress.co.jp/qa5809919.html
   http://www.monyo.com/technical/windows/06.html
   http://homepage3.nifty.com/sony/sd/contents/pc_serv_faq.htm#専用Webサーバにおいて無効が推奨されるサービス

(Windows2003 Server, IIS6.0)


HTMLフレームでページ分割 FRAMESET/FRAME/IFRAME

<FRAMESET>でウィンドウを複数フレームに分割して、<FRAME>でコンテンツを指定する

画面を水平(横)に分割するには、
  rows でフレームの高さを上から ,(カンマ)で区切って、ピクセル か % で指定

画面を垂直(縦)に分割するには、
  cols でフレームの幅を左から ,(カンマ)で区切って、ピクセル か % で指定

水平分割と垂直分割を組み合わせるには、
  <FRAMESET>~</FRAMESET> を入れ子にする

フレームAのリンク先を、フレームBで開かせるには、
  各フレームに <FRAME>タグ の name属性 で名前を付けておき、
  <A>タグでリンク先を指定するとともに、target属性 で開かせるフレーム名を指定

フレーム未対応のブラウザや、フレームを無効にしている場合など、
  <NOFRAMES>タグで代替え内容を指定

■例
<html>
 <head><title>フレーム分割</title></head>
 <frameset rows="100,300,*">
     <frame src="Header.htm" name="header">
     <frameset cols="200,*">
         <frame src="Left.htm" name="left">
         <frame src="Right.htm" name="right">
     </frameset>
     <frame src="Bottom.htm" name="bottom">
     <noframes>
     このページはフレームを使用しています。
     </noframes>
 </frameset>
</html> 

 

<IFRAME>でウィンドウの中に、別フレームを表示させる

<IFRAME> = Inline Frame
ウィンドウの中に、独立して表示されるインラインの別フレームが作成できる

<IFRAME>タグ は <BODY>~</BODY> 内で使用する
  src属性、name属性は、<FRAMESET>と同様に指定する

フレーム未対応のブラウザや、フレームを無効にしている場合など、
  <IFRAME>~</IFRAME> に代替え内容を指定

■例
<iframe src="Inline.htm" name="inline" width="250" height="150">
この部分はインラインフレームを使用しています。
</iframe> 

(HTML)

 


SQL Server 2008 -> SQL Server 2012 リンクサーバの設定

SQL Server 2008 R2 から SQL Server 2012 のリンクサーバを設定したときのメモ

 

SQL Server 2008 R2 の Management Studio にて、

サーバ > サーバーオブジェクト > リンクサーバー を右クリックして、"新しいリンクサーバ" を開く

左ペイン "全般" で以下を設定する
  リンクサーバ: <クエリなどで使用したい名称>
  サーバーの種類: その他のデータソース
     プロバイダー: SQL Server Native Client 10.0
     製品名: <SQL Server 2008 R2 のサーバ名>
     データソース: <SQL Server 2012 のサーバ名>\<インスタンス名>
     プロバイダー文字列: uid=<IDname>;pwd=<password>
     場所: 空欄のまま
     カタログ: <SQL Server 2012 の接続するDB名>

左ペイン "セキュリティ" で以下を設定する
  "このセキュリティコンテキストを使用する" を選択
     リモートログイン: <IDname>
     パスワード: <password>

"ok" とするとリンクサーバが作成されます。

 

クエリで参照するには以下のように指定します。

  select * 
  from [リンクサーバ名].[DB名].[dbo].[テーブル名]

 

(Windows Server 2008 R2, SQL Server 2008 R2, SQL Server 2012)

 


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。