2011/12/30

MSDTC 問題集錦

最近處理了 MSDTC 的問題,一定要寫一篇記錄下來,黑大真的太強了啊!!!

 

第一步:MSDTC 是否安裝及設定成功?

a.設定(含防火牆)

MSDTC on Windows 2003 SP1的注意事項

http://blog.darkthread.net/blogs/darkthreadtw/archive/2006/03/07/msdtc-on-windows-2003-sp1.aspx

心得:上面這一篇,超級超級超級重要,一定要有耐心看完!!

====我是小抄=====

Enable network DTC access(Win2003 程式集)

MSDTC Security Configuration :Allow Inbound , Allow Outbound , No Authentication Required , Enable XA Transactions

=================

b.安全性設定

心得:不小心遇到了需要做 sc sdshow msdtc 及 sc sdset msdtc <權限> 記得要非常非常小心,最好在做 sdshow 時,直接下這樣子的指令存到一個文字檔中來修改。

sc sdshow msdtc > msdtc-sec.txt 這樣子比較保險一點。

 

【茶包射手專欄】奧妙的MSDTC咒語

http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/04/17/transactionscope-web-access-denied.aspx

 

第二步:確認發生關係的主機,互相都認得?

 

在主機上使用 Ping 主機名稱就知道囉!!

 

KB-MSDTC cross different domains

http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/02/12/kb-msdtc-cross-different-domains.aspx

 

還有遇到多網卡的問題,要確定【發動主機->配合主機】的網路路線,要跟【配合主機->發動主機】的網路路線相同,否則可能出現時好時不好的狀況。

 

第三步:拿MSDTC 除錯工具來驗證

測試DTC設定-使用Mini C# Lab

http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/02/22/test-dtc-with-csharplab.aspx

 

 

 

SQL 2008 / Windows 2008 之 MSDTC 注意事項

http://blog.darkthread.net/post-2010-11-12-msdtc-2008.aspx

 

 

Oracle

【茶包射手專欄】錯怪Oracle~~

http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/08/31/1011.aspx

Distributed Transaction With MS OLEDB Provider For Oracle

http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/11/07/distributed-transaction-with-ms-oledb-provider-for-oracle.aspx

 

MSDTC 除錯工具

測試DTC設定-使用Mini C# Lab

http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/02/22/test-dtc-with-csharplab.aspx

 

 

 

.NET分散式交易程式開發FAQ

http://blog.darkthread.net/blogs/darkthreadtw/archive/2008/05/09/distributed-transactoin-with-dotnet-faq.aspx

2011/12/14

SQL Reporting Service 虛擬化時複製機器的小技巧

虛擬化的好處就是機器可以快速的複製,Windows 系統上,用 sysprep 就可以進行更換 newid ,但是 Reporting Service 就會出現錯誤:

The report server cannot decrypt the symmetric key. Most likely, the service account or password has changed. To continue, run rsconfig.exe to update the report server account information.

由於直接複製,所以 SSRS 的 InstallationID 都會一樣,建立 Reporting Service Cluster 時就會相衝,有以下小技巧可以進行,不用重新安裝:

 

STEP 1:

修改 C:\Program Files\Microsoft SQL Server\<SSRS Instance ID>\Reporting Services\ReportServer\rsreportserver.config 中的 InstallationID,換新的 Guid

 

   1:  <Configuration>
   2:      <Dsn>......</Dsn>
   3:      <ConnectionType>Default</ConnectionType>
   4:      <LogonUser></LogonUser>
   5:      <LogonDomain></LogonDomain>
   6:      <LogonCred></LogonCred>
   7:      <InstanceId>MSRS10_50.MSSQL2008</InstanceId>
   8:      <InstallationID>{12345-f89c-4c11-ae78-52117dafbcc2}</InstallationID>
   9:      <Add Key="SecureConnectionLevel" Value="0"/>
  10:      <Add Key="CleanupCycleMinutes" Value="10"/>
  11:      <Add Key="MaxActiveReqForOneUser" Value="20"/>
  12:      <Add Key="DatabaseQueryTimeout" Value="120"/>
  13:      <Add Key="RunningRequestsScavengerCycle" Value="60"/>
  14:      <Add Key="RunningRequestsDbCycle" Value="60"/>
  15:      <Add Key="RunningRequestsAge" Value="30"/>
  16:      <Add Key="MaxScheduleWait" Value="5"/>
  17:      <Add Key="DisplayErrorLink" Value="true"/>
  18:      <Add Key="WebServiceUseFileShareStorage" Value="false"/>
  19:  </Configuration>

 

STEP 2:

Restore Key (SSRS Key 一定要備份出來,否則連線帳密、設定等資訊都沒有辦法再恢復,等於要重新安裝資料庫,非常重要!!)

延伸閱讀

Configuring a VMWare clone for SSRS disaster recovery

http://www.pertell.com/sqlservings/archive/2011/07/configuring-a-vmware-clone-for-ssrs-disaster-recovery/

SQL Server 的版本編號

Release

Report server

Report server database

SQL Server 2008 R2

10.50.nnnn.nn

n/a

SQL Server 2008 Service Pack 1 (SP1)

10.0.2531.00

C.0.9.45

SQL Server 2008

10.0.1600.00

C.0.9.45

SQL Server 2005 Reporting Services Service Pack 3 (SP3)

9.0.4035.00

C.0.8.54

SQL Server 2005 Reporting Services Service Pack 2 (SP2)

9.0.3042.00

C.0.8.54

SQL Server 2005 Express with Advanced Services

9.0.3042.00

C.0.8.45

SQL Server 2005 Reporting Services Service Pack 1 (SP1)

9.0.2049.00

C.0.8.43

SQL Server 2005 Reporting Services

9.0.1399.01

C.0.8.40

SQL Server 2000 Reporting Services Service Pack 2 (SP2)

8.00.1038

C.0.6.54

SQL Server 2000 Reporting Services Service Pack 1 (SP1)

8.00.0878

C.0.6.51

SQL Server 2000 Reporting Services

8.00.0743

C.0.6.43

2011/09/29

Tips-Oracle TNSName.ora Compare Tool

最近因為 TNSName.ora 檔案的整理,需統一一個 TnsName.ora ,問題來了,近100個 TNS 主機,要怎麼對呢?

後來使用了 TOAD 的 TNS Editor來完成任務

如何比對呢? TOAD TNSEditor 可以依據 Host(IP) 或者是 Service 來排序,若有新增,實體的文字檔會直接新增在檔案尾端。

image

2011/05/20

Excel 2007 的 Pivot Table 樞鈕分析表就差這個功能

 

在列標籤,若是以列表的方式表現時,Excel 2007 無法重覆項目名稱,在將資料匯出至別的用途時,就會很麻煩。

 

Excel 2010 新增了這個貼心的功能

SNAGHTML119405f

 

SNAGHTML11ab649

 

另外Excel 2010 也可以使用 Powerpivot 這個增益集,看來還是要升級至 Excel 2010 呀

2011/05/18

Win7,Win2008 使用檔案總管開啟 Sharepoint 文件庫時異常緩慢

image

 

Sharepoint 可以支援使用網芳(或說檔案分享,UNC ,FileSharing)的方式,在 IE or 檔案總管上進行操作。

 

新灌的Win2008 Server 連線 Sharepoint 的文件庫就很慢,一直百思不得其解,後來發現,原來是 IE 的自動偵測 Proxy 搞的鬼,關掉就 OK 囉!!

 

參考連結

http://oddballupdate.com/2009/12/18/fix-slow-webdav-performance-in-windows-7/

如何用ICS讓遠端可以連線主機內部(NAT)的虛擬機器

 

微軟WinXP之後有新增了一個網際網路共用服務( ICS,全名叫 Internet Connection Sharing)

詳細說明可以看這裡(http://windows.microsoft.com/zh-TW/windows-vista/Using-ICS-Internet-Connection-Sharing)

 

可以讓我們連到主機背後VM的遠端桌面

看看怎麼做吧

 

OnBoard 網卡是對外的網路

VMNAT是HyperV虛擬的網卡

image

啟用 ICS

SNAGHTML449a1ff

 

新增一個 VM RDP Service

image

 

設定 VM 的 IP,並且定義外部的 Port 與內部遠端桌面的 Port

SNAGHTML447d1f4

 

特別注意,Port Forwarding 的測試,需要在外部機器上測試,在主機上是測不通的哦!!

2011/05/06

Tips-如何使用 Windows 驗證連接 SQL Server

    SQL Server 2005/2008 之後,因為安全性增強的關係,所以已經不允許使用控制台中[儲存的帳號/密碼]直接透通。

那該如何做呢?

我們可以使用 RunAs.exe 這個指令啟動 SQL Server Management Studio

    RunAs.exe 指令語法是這樣子的,詳細可以至微軟網站查詢(http://technet.microsoft.com/en-us/library/bb490994.aspx)

Syntax

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program

Parameters

/profile : Loads the user's profile. /profile is the default.

/no profile : Specifies that the user's profile is not to be loaded. This allows the application to load more quickly, but it can also cause a malfunction in some applications.

/env : Specifies that the current network environment be used instead of the user's local environment.

/netonly : Indicates that the user information specified is for remote access only.

/smartcard : Indicates whether the credentials are to be supplied from a smartcard.

/showtrustlevels : Lists the /trustlevel options.

/trustlevel : Specifies the level of authorization at which the application is to run. Use /showtrustlevels to see the trust levels available.

/user: UserAccountName : Specifies the name of the user account under which to run the program. The user account format should be user@domain or Domain\User.

program : Specifies the program or command to run using the account specified in /user.

/? : Displays help at the command prompt.

我們可以建立一個文字檔,取名為: SSMS(michadel_mike).cmd,再填入以下內容。

這個指令的意思是,用我的身份啟動 ssms.exe ,但當遇到網路連結時,請改用 michadel\mike

    ==(x64)注意雙引號====

    runas /netonly /user:michadel\mike "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

    ==(x32) 注意雙引號====

    runas /netonly /user:michadel\mike "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

    ===========

存好後,執行時,會出現底下的視窗,要求輸入密碼。

 

image

 

 

最後,提醒一點,由於此方法是使用到網路的部份,改用 michadel\mike 帳號,

所以,若有要在程式裡面存取網路磁碟機(例如:載入*.sql文件),會用 michadel\mike 存取,會造成存取被拒的狀況發生!!

 

 

參考連結:

stackoverflow:Connect to SQL Server with Management Studio using a Windows Credential while not on the domain

http://stackoverflow.com/questions/1678216/connect-to-sql-server-with-management-studio-using-a-windows-credential-while-not

2011/04/21

容許主機/服務一年停機多久呢?

 

最近購買的線上相簿出了兩次的錯誤,造成了約莫5個小時的停機時間,對於老外來看,似乎影響不大,因為都在他們的睡覺時間,對於我而言,就會有朋友來關切網站掛點的問題,所以從底下的可用性換算公式的背後,還有一個加權的分數,當停機時間是落在睡覺時間時的感受就會不同

 

可用性百分比與一年停機時間

可用性百分比 一天 24 小時為基準 一天 8 小時為基準

90%

876 小時 (36.5 日)

291.2 小時 (12.13 日)

95%

438 小時 (18.25 日)

145.6 小時 (6.07 日)

99%

87.6 小時 (3.65 日)

29.12 小時 (1.21 日)

99.9%

8.76 小時

2.91 小時

99.99%

52.56 分鐘

17.47 分鐘

99.999% (「5 個 9」)

5.256 分鐘

1.747 分鐘

99.9999%

31.536 秒

10.483 秒