2011年7月21日 星期四

Reporting Services - 匯出PDF時錯誤處理方式

        近日遇到同事詢問的一個情況,當開發Reports Services的報表時,在執行與匯出其他檔案格式時都沒有問題,但是偏偏在匯出PDF的時候卻發生下列的錯誤訊息,看起來好像是我匯出的頁數太多了,但是也只有8頁而已,而且匯出其他的格式都是正常的。

環境:
版本:SQL Server 2008 R2


開發工具的錯誤:
An error occurred during local report processing.
ScalableList:Index 8 outside the allowed range [0::7]

Reports Service Log:
library!ReportServer_0-4!27e4!07/21/2011-10:32:40:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: ScalableList: Index 8 outside the allowed range [0::7], Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: 報表伺服器發生內部錯誤。請參閱錯誤記錄以取得更多詳細資料。;

當下進行錯誤排除時,在網路上找發現也有人發生此類的情況,所以得到的解決方法為下列二種:
1、 更新SQL Server 2008 R2 Service Pack 1.
2、 將報表畫面上的TextBox強制設定HideDuplicates的欄位值為None。

但是進行上述的兩個方法後,問題還是無法解決,後來就將問題點轉移至報表設計時的結構問題著手。
後來發現主要是Report Header中的欄位參考Report Body的兩個隱藏欄位,所以當匯出PDF的時候,如果有發生換頁的情況,就會發生問題,針對這個案例,後來透過修改報表的結構,也就是將Report Header的兩個欄位移到Report Body中(這樣也比較合理),問題就解決了。

關鍵字:Reporting ServicesExport PDF匯出ScalableList

2011年7月19日 星期二

SQL Server 2012 (CTP3) 開放下載與安裝介紹

        在2011/7/11的時候,SQL Server傳來一個非常高興的消息,那就是SQL Server 2011 Denali CTP3(Community Technology Preview 3) 終於開放下載了,這個的CTP釋放算是一個新的里程碑,將給客戶與其相關的伙伴帶來不同的感受與增加許多不同的價值在此次的版本中。

        SQL Server 2011 Denali CTP3 將帶個客戶數個不同的新功能可以進行預覽與測試,重點如下:
  1. 最大化高可用性:在CTP1中介紹的AlwaysOn,在這個版本中你可以看到更多的功能。
  2. 超快的效能:Apollo專案將帶給你一個空前效能上的提升,他透過一種新的方式儲存索引,將可以提高 Join 與相似查詢效能達10 ~ 100倍的提升在第一次進行預覽查詢的時候。
  3. 突破性的觀察:Crescent專案解開一個新的觀察與高速的資料瀏覽跨越你的組識,讓客戶在第一時間進行資料的預覽查詢,透過手持裝置上的資料瀏覽器和視覺化工具,任何人可以在很快速的情況下去劉覽資料。
  4. 可信任與一致性的資料:提供一個一致性的檢查跨越異質資料來源與商業智慧語意模型(Business Intelligence Semantic Model) ,從報表與分析到儀表版和績效卡。建立資料的品質是每天生活的一部份,透過Windows Azure市集可以讓Excel的Master Data Services增益集功能和新的資料質量服務整合其他廠商的資料提供者。客戶可以在第一時間測試這個功能如放置資料管理和清除工具在需要他的時候。可應用的整合市集提供包含:
    • Cdyne: CDYNE 電話驗證將有效的透過你的電話號碼前7數字和傳回你被分配到的電話識別碼,無論是行動號碼或是市內號碼,如果是行動號碼將可包含額外資訊、時間區域、區碼和Email位址。
    • Digital Trowel: Powerlinx 允許使用者去傳送精緻、增強、接收清楚和豐富的資訊。而資料庫中包含1千萬筆公司網址的位址,2千5佰萬詳細的公司資訊和2千5佰萬筆高階經理人,其中包含5佰萬筆深入的個人資訊與E-mail和電話號碼。
    • Loqate:Loqate驗證啟用使用去轉譯、標準化、驗證、乾淨、直譯和格式化240多個國家城市的位址資料。透過地理編碼啟用一個經緯度坐標去增加任何國家的位址與超過120國家全球城市轉換或區碼。
    • Melissa Data:智慧型網路住址檢查程序,標準化,正確和豐富 美國 和 加拿大的位址去增加可應用率,減少郵資的浪費和印列成本,並且增加寄出後的回應率。
  5. 開發工具經驗:最佳化IT和開發者生產力跨越伺服器和雲端與資料層應用元件(DAC) 、SQL Azure 和SQL Server,開發者工具名稱為 "Juneau" ,一個統一和現代化的開發經驗,可跨越資料庫,商業智慧和雲端。額外的,客戶能夠測試一個全新的LocalDB版本,而且可快速的不需任何其他的配置就可進行安裝。




現在你有機會去預覽和測試這些功能與更新或整合的經驗。CTP3是一個以正式產品品質為標準發行,其中包含存取更新和整合工具類似如Upgrade Advisor,Distributed Replay和SQL Server Migration Assistant (SSMA)。Upgrade Advisor和Distributed Replay允許你透過分析和測試了解你目前的SQL Server在整合或更新後的變化。你能夠同樣的使用SSMA去自動整合非SQL Server的資料庫到SQL Server Code Name "Denali"。更多關於SQL Server Migration Assistant V5.1的新資訊,你可以瀏覽SSMA team blog

PS:關於SSMA的整合,你也可以參考我的另一篇作品 - Oracle轉換至SQL Server的介紹與流程和轉換比率


網站下載畫面:



建議大家可以進行線上的註冊,日後有任何關於 Denali 的更新訊息,都會第一手的通知你。

下載完成後會有4個檔案,請點選 [ SQLFULL_x64_CHT_Install ] 即會自行開始解壓縮 






安裝畫面:
由於我是安裝Windows 2008 R2的機器上,他會檢查你是否有裝.Net Framework 3.5 SP1,如果沒有請先至下列的網址安裝。

安裝時發生的問題:
.Net Framework 3.5 SP1:http://www.microsoft.com/downloads/zh-tw/details.aspx?familyid=67cdf390-c6ec-49be-8977-4eea228a3b91&displaylang=zh-tw













在定序的指定中,這個版本特別有將SQL Server 的Database Engine與Analysis Services分開,所以你可以依照自已的環境設定進行區隔。



在這你可以指定Analysis Services的設定儲存模式,有[Multidimensional and Data Mining Mode] 和 [Tabular Mode]兩種,建議選擇第一個。










安裝完成後,你就可以看到CTP3的啟動預覽畫面。




參考網址:
  1. https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/default.aspx
  2. http://blogs.technet.com/b/dataplatforminsider/archive/2011/07/11/sql-server-code-name-denali-ctp3-is-here.aspx

其他相關網址:

  1. SQL Server 2011 Code Name(Denali) 新功能介紹與預覽
  2. SQL Server 2011(Code Name Denali) - 新T-SQL語法介紹 – 分頁功能
  3. SQL Server 2011(Code Name Denali) - 新T-SQL語法介紹 – Sequence
  4. SQL Server 2011(Code Name Denali) - 新T-SQL語法介紹 – Code Snippet Manager
  5. SQL Server 2011(Code Name Denali) - 以列為主的新儲存方式(雲端儲存架構)
  6. SQL Server 2011(Code Name Denali) - FileTable介紹
  7. 微軟介紹雲端平台就緒的資訊 - TechEd 2011
  8. SQL Server 2011 (Code Name Denali) - HA 新功能 - AlwaysOn
  9. SQL Server 2011 (Code Name Denali) - AlwaysOn 安裝與設定教學
關鍵字:SQL ServerDenaliCTP3SQL Server 2011

2011年7月14日 星期四

SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part I

        在以往安裝叢集環境都需要相關的硬體環境才能進行安裝,所以讓很多人只能望而止步,但是隨著虛擬機器(VM)的興起,所以可以透過Hyper-V模擬出多電腦的環境,但是儲存裝置仍然是一個問題,所以本篇特別介紹透過Windows Storage Server (WSS)模擬出SAN Storage的架構,讓你只要一台記憶體多一點(建議4G以上)的電腦,就可以模擬出一個叢集的環境。

相關文章:
  1. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part I
  2. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part II
  3. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part III(終)
  4. 容錯移轉叢集中多個節點切換順序的設定
1、環境設定:
  1. 第一台電腦(設定請依照自行的環境調整)
    1. Hostname:CARY-Storage
    2. Operation System:Microsoft Windows Storage Server 2008 Enterprise
    3. Hard Disk * 2 
      • 第一顆為系統安裝磁碟
      • 第二顆為放置共用磁碟 - 此磁碟在後面的設定還會再切割成下列四顆用途
        • 叢集仲裁磁碟 (Quorum Disk),建議最少需1GB
        • 分散式交易調節器(MSDTC) 專用磁碟,建議最少需1GB
        • SQL Server 系統資料庫專用磁碟,建議最少需20GB
        • SQL Server 使用者資料庫專用磁碟,建議最少需20GB
  2. 第二台電腦(設定請依照自行的環境調整)
    1. Hostname:CARY-SQL-NODE
    2. Network Card:
      • Public(對外):10.10.10.168
      • Private(對內 – 只有供叢集進行heartbeat偵測):192.168.1.68
    3. Operation System:Windows 2008 R2 Enterprise
    4. Database:Microsoft SQL Server 2008 R2 Enterprise
  3. 第三台電腦:
    1. Hostname:CARY-SQL-NODE-2
    2. Network Card:
      • Public(對外):10.10.10.169
      • Private(對內 – 只有供叢集進行heartbeat偵測):192.168.1.69
    3. Operation System:Windows 2008 R2 Enterprise
    4. Database:Microsoft SQL Server 2008 R2 Enterprise

2、Hyper-V的設定
在本次的設定中,主要產生三台vm的機器,在設定上皆相同,而建議最好第一台的硬碟空間要設定大一點,因為但是為了兩台資料庫的第二張網卡實際只有對內,而且不影響外部的網路,所以在設定上會略有不同。

2-1 將vm機器產生後,在啟動前,請先進行網卡的設定。


2-2 選擇目前實體的網卡。

2-3 選擇網卡的網路類型,因為本張網卡我只需在vm中進行通訊,所以在這我選擇 [Private]


2-4 定義此張網卡的名稱與選擇網路的連結類型

2-5 完成上述的程序後,你就可以到你的網路卡介面中再新增一張內部專用的網卡,名稱選擇上一個程序中設定的名稱即可。

3、第一台電腦的設定
第一台電腦主要負責叢集架構中的共用磁碟的部份,由於沒有多餘的錢來買硬體設定,所以我就透過Windows Storage Server來進行模擬與管理,此套軟體主要用來進行儲存裝置的管理,大部份是與硬體合併販售並內嵌至硬體設備中,基本上不對外販賣,但你可以透過線上申請的方式進行軟體的試用。



下載完成後,裡面還有包含一個 iSCSI Target 的工具,這個軟體主要用來控制儲存設備,讓一般的 iSCSI 可以變成 SAN 的架構,而連接端(第二、三台的電腦)只要安裝 iSCSI Initiator 即可,因為 Windows 2008 R2 已有內建,所以不需額外安裝,所以請先安裝iSCSI,檔案中有分成x64與x86環境,請依照你自已的環境設定。



詳細的iSCSI Target觀念與說明,可以參考下列的網址說明:

3-1 安裝完成Windows Storage Server之後就會馬上要求你輸入帳號與密碼,但是安裝的過程中並沒有任何輸入密碼的地方,所以在這只需要輸入 wSS2008! 即可。


3-2 登入之後可以開始來進行 iSCSI Target 與 iSCSI Initiator 的設定,所以我們在第一台電腦上先啟動 iSCSI Target。


3-3 選擇建立一個新的 iSCSI Target。

3-4 將此Target設定一個名稱。

3-5 在這裡需要設定有那些電腦可以存取到此共用磁碟,由於在此需輸入IQN的名稱,所以需要先至用戶端先設定連線到此台電腦,這樣在點選 [Browse]的時候就可以直接選擇加入即可。

3-6 由於 iSCSI Target 與 Initiator 需透過網路來通訊,所以在防火牆上需要先行設定。








3-7 切換到第二台電腦,然後選擇 [iSCSI 啟動器]


3-8 由於預設 iSCSI 服務並不會自動執行,所以第一次會問你是否要設定為自動啟動,請選擇 [是]。

3-9 輸入第一台電腦的IP,然後點選快速連線。

3-10 如果連線正常的話,你會看到顯示出 - 沒有使用 [快速連線] 可登入的目標,而第三台的作法也是相同,再請自行執行。

3-11 再切換到第一台電腦,然後選擇 [Browse]。

3-12 再選擇 [Browse]。

3-13 這時你就可以從下列的表格中找到剛剛第二台與第三台的IQN。

3-14 如果你要一次將第二台與第三台加入時,可以在3-11的步驟中選擇 [Advanced] 即可一次將兩台電腦加入。


3-15 加入IQN之後,再選擇下一步就完成了。

3-16 完成上述的 iSCSI Target 的建立之後,再來就是建立虛擬磁碟 (共用磁碟) 的動作,請在剛剛建立的 iSCSI Target上選擇 [Create Virtual Disk for iSCSI Target]。

3-17 請選擇你這個虛擬磁碟放置的位置,請統一放置在第二顆磁碟上。

3-18 設定磁碟的容量,請參考我們最下方的設定,由於這是第一顆 (叢集仲裁磁碟),所以請先輸入1024。
  • 叢集仲裁磁碟 (Quorum Disk),建議最少需1GB
  • 分散式交易調節器(MSDTC) 專用磁碟,建議最少需1GB
  • SQL Server 系統資料庫專用磁碟,建議最少需20GB
  • SQL Server 使用者資料庫專用磁碟,建議最少需20GB

3-19 輸入此虛擬磁碟的描述,可以不輸入,再選擇下一步即算完成。

3-20 請重覆3-16 ~ 3-19的步驟,分別建立四顆磁碟,如下表,這樣磁碟的設定就算大功告功。

4 第二台與第三台(SQL Node)設定
在此第二台的設定與第三台的設定皆相同,而我會以第二台的設定為主介紹,第三台再請依此類推。

4-1 切換到第二台電腦,然後再一次輸入第一台電腦的IP,然後選擇快速連線,此時在下方就可以看到已連線成功的訊息。

4-2 設定完成 [iSCSI 啟動器] 後,開啟 [伺服器管理員] -> [存放] -> [磁碟管理]你就可以看到剛剛加入的四顆叢集磁碟已經加入了,但由於尚未初使化,所以接下來我們就來進行磁碟設定的動作。

4-3 由於我們有四顆磁碟要設定,所以我們先以第一顆為範例,然後再逐一設定,先點選磁碟1,然後按滑鼠右鍵,選擇 [連線]。

4-4 然後再點選 [初使化磁碟]。

4-5 此時分割樣式選擇 [MBR (主開機記錄)]。

4-6 同樣地再選擇磁碟1,然後在右邊區塊的地方點選滑鼠右鍵,選擇 [新增簡單磁碟區]。

4-7 輸入此磁碟的空間大小(MB)。

4-8 選擇此磁碟機的代號,由於第一顆是仲裁磁碟,所以建議你選擇代號為 Q。

4-9 選擇磁碟分割格式化的選擇,此區可使用預設值即可,而磁碟區標籤建議可以依照我們的規畫,輸入標籤的名稱。

4-10 當你將所有的磁碟設定完成後,如下表所示,如此就代表你已完成磁碟的設定。

由於篇幅的關係,先介紹到這,後續我會再分成兩篇介紹如何進行SQL Server Failover Cluster的安裝,再請多多支持。

相關文章:
  1. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part I
  2. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part II
  3. SQL Server 2008 R2 容錯移轉叢集環境架設 - 利用 VM 與 Windows Storage Server - Part III(終)
  4. 容錯移轉叢集中多個節點切換順序的設定

關鍵字:SQL ServerHyper-VHigh AvailableClusterFailover容錯移轉叢集