搜尋本站文章

2008-10-30

「錯誤處理」:Outlook 2007 無法正常開啟


傍晚開啟每天必使用的軟體:Microsoft Office Outlook 2007。
天呀,竟然開不起來,等很久都沒有反應,CPU 也被 Office Outlook 2007 吃掉一半的資源,強迫結束 Office Outlook 2007 ,再重新開啟還是遇到一樣的問題。


第一個想法是,會不會 *.pst 檔案壞了?怎麼辦,備份檔案已經超過一週了,即便是復原,也會掉了這週的信件...>_<

工作、友人等等聯絡信件都在此,很想打電話給老闆說,沒收到信,不知道要作那些工作...Haha,但是其他的信件....>_<

而且這個 *.pst 是主要的檔案,由 Exchange Server 下載下來的郵件,都是放在此閱讀、等待處理、歸檔,以及寄件備份也是在此。

以下是問題的描述:
導致狀況:
CPU 被 OUTLOOK.EXE 吃掉快要60%的資源。
Microsoft Office Outlook 2007 無法正常開啟執行。

只能強迫結束Office Outlook 2007,但是即便再度重新開啟 Office Outlook 2007,也是發生同樣的狀況。

檢查事件檢視器後,找到可能的相關資訊:
顯示的訊息: 存放區 ***.pst 因為下列原因,正與索引器調整為一致: Non-matching max change numbers。

請參考下圖所示:




處理方式:
參考了數篇文章後,找不到頭緒,有的朋友甚至重新安裝 Office Outlook 2007 後,也是沒解。

筆者的作法是:


1. 關閉 Office Outlook 2007。
2. 刪除 C:\Users\Administrator\AppData\Local\Microsoft\Outlook\outlook.ost
3. 先在「控制台」\「郵件」,將此 *.pst 檔案移除。
4. 將此 *.pst 移動到新的資料夾。
5. 重新開啟 Office Outlook 2007 ,系統會提示找不到此 *.pst。
6. 請選擇重新建立 *.pst。
7. 此時 Office Outlook 2007 已經可以正常的開啟。
8. 關閉 Office Outlook 2007。
9. 將先前備份的 *.pst,覆蓋掉新建立的 *.pst。
10. 重新開啟 Office Outlook 2007。
11. 呵呵,沒想到竟然沒有問題,可以正常執行了。

可能需要重新設定與 Exchange Server 的連線機制。

小提示:
個人資料夾檔案 (.pst)
離線資料夾檔 (.ost):.ost 檔案會與執行 Microsoft Exchange 之伺服器上的項目同步化。

參考網址:
Import-mailbox fails with "Non-matching max change numbers" in Outlook log entry
http://professionalinsight.net/exchange2007.aspx

當您正在使用大型的 . pst 檔案中或在大型 . ost 檔案中 Outlook 2007 項目時可能會遭遇效能問題
http://support.microsoft.com/kb/932086

KB946983 stop indexing for Vista Search - Known regression?
http://forums.microsoft.com/msdn/showpost.aspx?postid=3100943&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=0

Office Outlook 2007 Hotfix 套件的描述: 20, 2008 年 3 月
http://support.microsoft.com/default.aspx/kb/950282

MS08-015:說明 Outlook 2007 安全性更新:2008 年 3 月 11 日
http://support.microsoft.com/default.aspx/kb/946983

Outlook 2007 Freezes
http://www.pcreview.co.uk/forums/thread-3468995.php

修復 .ost 或 .pst 檔案
http://office.microsoft.com/zh-tw/outlook/HA010563001028.aspx

Microsoft Office Outlook 2007 儲存資訊和設定的位置在哪裡?
http://office.microsoft.com/zh-tw/outlook/HP100669141028.aspx

2008-10-29

架設網域控制站:Windows Server 2008



以下是架設網域控制站:Windows Server 2008 的抓圖:
http://picasaweb.google.com/DerrickLaLa/WindowsServer200802


使用 Windows 介面安裝新的 Windows Server 2008 樹系
Windows 介面提供兩個精靈,可引導您完成 AD DS 安裝程序。第一個精靈是 [新增角色精靈],您可以在 [伺服器管理員] 中存取此精靈。第二個精靈是 [Active Directory 網域服務安裝精靈],您可以利用下列幾種方式來存取此精靈:


• 當您完成 [新增角色精靈] 時,請按一下連結來啟動 [Active Directory 網域服務安裝精靈]。

• 依序按一下 [開始] 及 [執行],輸入 dcpromo.exe,然後按一下 [確定]。


系統管理認證

若要執行此程序,您必須以電腦的本機系統管理員身分登入。根據您為電腦選取的作業系統安裝選項,本機系統管理員密碼可能是空白或不需要。在此案例中,請先在命令提示字元中執行下列命令,然後再開始安裝 AD DS:

net user Administrator /passwordreq:yes

以強式密碼取代


使用 Windows 介面安裝新樹系

1. 按一下 [開始],然後按一下 [伺服器管理員]。

2. 在 [角色摘要] 中,按一下 [新增角色]。

3. 必要時,檢閱 [在您開始前] 頁面上的資訊,然後按 [下一步]。

4. 在 [選取伺服器角色] 頁面上,按一下 [Active Directory 網域服務] 核取方塊,然後按 [下一步]。

5. 必要時,檢閱 [Active Directory 網域服務] 頁面上的資訊,然後按 [下一步]。

6. 在 [確認安裝選項] 頁面上,按一下 [安裝]。

7. 在 [安裝結果] 頁面上,按一下 [關閉此精靈,然後啟動 Active Directory 網域服務安裝精靈 (dcpromo.exe)]。

8. 在 [歡迎使用 Active Directory 網域服務安裝精靈] 頁面上,按 [下一步]。

如果您選取 [使用進階模式安裝] 核取方塊,精靈會顯示 [網域 NetBIOS 名稱] 頁面,供您變更精靈產生的預設 NetBIOS 名稱。


9. 在 [選擇部署設定] 頁面上,按一下 [在新樹系內建立新網域],然後按 [下一步]。

10. 在 [命名樹系根網域] 頁面上,輸入樹系根網域的完整網域名稱系統 (DNS) 名稱,然後按 [下一步]。

11. 在 [設定樹系功能等級] 頁面上,選取適用於您計畫在樹系中任何地方安裝之網域控制站的樹系功能等級,然後按 [下一步]。

如果選取 Windows Server 2008 之外的任何樹系功能等級,接下來會出現 [設定網域功能等級] 頁面。


12. 在 [設定網域功能等級] 頁面上,選取適用於您計畫在網域中任何地方安裝之網域控制站的網域功能等級,然後按 [下一步]。

13. 在 [其他網域控制站選項] 頁面上,預設選取 [DNS 伺服器],因此可在安裝 AD DS 時建立您的樹系 DNS 基礎結構。如果您要使用與 Active Directory 整合的 DNS,請按 [下一步]。如果您有現有的 DNS 基礎結構,而且不希望將此網域控制站當做 DNS 伺服器,請清除 [DNS 伺服器] 核取方塊,然後按 [下一步]。

如果此精靈無法建立 DNS 伺服器的委派,它會顯示訊息來指示您可手動建立委派。若要繼續,請按一下 [是]。

14. 在 [資料庫、記錄檔及 SYSVOL 的位置] 頁面上,輸入或瀏覽資料庫檔案、目錄服務記錄檔以及 SYSVOL 檔案的磁碟區及資料夾位置,然後按 [下一步]。

Windows Server Backup 會依磁碟區來備份目錄服務。為了備份和復原效率,請將這些檔案儲存在不含應用程式或其他非目錄檔案的獨立磁碟區中。

15. 在 [目錄服務還原模式的系統管理員密碼] 頁面上,輸入並確認還原模式密碼,然後按 [下一步]。此密碼的用途是針對必須離線執行的工作以「目錄服務還原模式」啟動 AD DS。

16. 在 [摘要] 頁面上檢閱您的選擇。必要時請按 [上一步] 變更任何選擇。

若要將您選取的設定存成回應檔案,以便用來自動執行後續的 AD DS 操作,請按一下 [匯出設定]。輸入回應檔案的名稱,然後按一下 [儲存]。

當您確定您的選擇正確時,請按 [下一步] 以安裝 AD DS。


17. 您可以選取 [完成後重新開機] 核取方塊讓伺服器自動重新啟動,或在收到提示時重新啟動伺服器以完成 AD DS 安裝作業。

參考資料:
使用 Windows 介面安裝新的 Windows Server 2008 樹系
http://technet2.microsoft.com/windowsserver2008/zh-CHT/library/e398ac0c-0e73-494f-954c-f98fb04624c91028.mspx

使用 Windows Server 2008 架設網域控制站
http://www.microsoft.com/taiwan/technet/howtovideos/ws2008/001.mspx

強制移除 Windows Server 2008 網域控制站
http://technet2.microsoft.com/windowsserver2008/zh-CHT/library/ae4dd0e3-2019-4278-8efd-61c36ba9e1c01028.mspx?mfr=true

2008-10-25

新手學SQL Server 2008「透明資料加密(Transparent Data Encryption,TDE)」(2) : 技術文章



在前一篇文章中,你學習了如何建立透明資料加密(TDE),讓資料庫內的資料模糊化,達成保護機密資料的需求。在本文中,將繼續帶領你認識透明資料加密如何保護資料庫的檔案與備份檔案。
...
使用透明資料加密,讓你無需修改應用程式的程式碼,就可以輕鬆達成防護資料庫檔案與備份檔案意外被竊或是遺失的災難。

完整的文章,請參考:
第80期之四《新手學透明資料加密(二)》





更多相關的技術文章,請參考:
DB World 資料庫專家電子雜誌
http://www.dbworld.com.tw/




新手學透明資料加密(1) TDE : 技術文章
http://sharedderrick.blogspot.com/2008/10/1.html

新手學SQL Server 2008「透明資料加密(Transparent Data Encryption,TDE)」(1) : 技術文章



資料庫存放了企業營運的核心資料,一旦意外遺失或是被竊取,將對企業與顧客,造成莫大的損害。對於機密資料的保護,SQL Server 2008提供了使用金鑰加密與透明資料機密等機制,更進一步地提高資料庫系統的防禦能力。
機密資料的保護
想要保護資料庫內的資料,基本上會先由資料庫系統的登入帳戶之密碼與權限進行管理與控制。但有些資料可能具備高度的機密與敏感度,例如:薪水、人身考核資料、秘密xx等機密資料,若要更進一步保護這些機密資料,將會採取「資料加密」的技術來進行防禦工作。

...


完整的文章,請參考:
第80期之三《新手學透明資料加密(一)》






更多相關的技術文章,請參考:
DB World 資料庫專家電子雜誌
http://www.dbworld.com.tw/


SQL Server 2008 快速上手營 研討會:資料庫開發篇



很榮幸筆者有機會與幾位大師:尹相志、許致學老師。
共同向大家介紹 SQL Server 2008 這項資料庫的神器。

SQL Server 2008 快速上手營 - 台北場 (2008/10/24)
SQL Server 2008 快速上手營 - 高雄場 (2008/11/06)

筆者負責的主題是:SQL Server 2008 資料庫開發






參考網址:
SQL Server 2008 快速上手營 - 台北場 (2008/10/24)
SQL Server 2008 快速上手營 - 高雄場 (2008/11/06)
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389090&Culture=zh-TW



SQL Server 2008 快速上手營 研討會:資料庫管理篇



很榮幸筆者有機會與幾位大師:尹相志、許致學老師。
共同向大家介紹 SQL Server 2008 這項資料庫的神器。


SQL Server 2008 快速上手營 - 台北場 (2008/10/24)
SQL Server 2008 快速上手營 - 高雄場 (2008/11/06)


筆者負責的主題是:SQL Server 2008 資料庫管理





參考網址:
SQL Server 2008 快速上手營 - 台北場 (2008/10/24)
SQL Server 2008 快速上手營 - 高雄場 (2008/11/06)
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389090&Culture=zh-TW



2008-10-19

【已經解決】:x64 環境開發 SQL Server Compact 3.5 遇到問題:無法載入 DLL 'sqlceme35.dll': 找不到指定的模組。請安裝 SQL Server Compact 3.5 SP1 即可解決此問題。





文章更新 2008/12/27:

感謝朋友「天涯」的分享解決方案:

在 SQL Server Compact 3.5 版本,並未支援 64 位元程式開發。但是在 SQL Server Compact 3.5 SP1 上,就有支援 64 位元程式開發。

以下是關於 SQL Server Compact 3.5 SP1 的相關資訊:
Microsoft SQL Server Compact 3.5 Service Pack 1 和適用於 Windows 桌上型電腦的 Synchronization Services for ADO.NET 1.0 版 Service Pack 1

版本: 3.5.5692.0
發佈日期: 2008/8/6
可下載的程式:
SSCERuntime-CHT-x64.msi
SSCERuntime-CHT-x86.msi

下載網址:
Microsoft SQL Server Compact 3.5 Service Pack 1 和適用於 Windows 桌上型電腦的 Synchronization Services for ADO.NET 1.0 版 Service Pack 1
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=dc614aee-7e1c-4881-9c32-3a6ce53384d9

下載檔案 64位元版本:SSCERuntime-CHT-x64.msi

參考資料:
KB955965:Description of SQL Server Compact 3.5 Service Pack 1
http://support.microsoft.com/default.aspx?scid=KB;%5bLN%5d;955965

Microsoft SQL Server Compact 3.5 Service Pack 1 線上叢書和範例
http://www.microsoft.com/downloads/details.aspx?FamilyId=07829770-73A7-41E4-880D-E74B1A353623&displaylang=zh-tw





在使用 Visual Studio 2008 開發 SQL Server Compact 3.5 資料庫,可能會遇到以下的問題。

適用環境:
x64 版本的作業系統,例如:Vista、Windows Server 2008 等等。


遇到的錯誤訊息:



無法載入 DLL 'sqlceme35.dll': 找不到指定的模組。 (發生例外狀況於 HRESULT: 0x8007007E)

System.DllNotFoundException 未處理
Message="無法載入 DLL 'sqlceme35.dll': 找不到指定的模組。 (發生例外狀況於 HRESULT: 0x8007007E)"
Source="System.Data.SqlServerCe"
TypeName=""
StackTrace:
於 System.Data.SqlServerCe.NativeMethods.SafeRelease(IntPtr& ppUnknown)
於 System.Data.SqlServerCe.SqlCeCommand.ReleaseNativeInterfaces()
於 System.Data.SqlServerCe.SqlCeCommand.Finalize()
InnerException:


請參考下圖所示的錯誤:




可能的處理方式如下:
這可能是因為目前sqlceme35.dll等相關元件,尚未支援x64位元的版本。處理方式:
1. 在右邊的「方案總管」,點選先前建立的專案「資料同步服務」。
2. 滑鼠右鍵,選擇「屬性」。
3. 在左邊的專案屬性視窗內,點選「建置」頁面。
4. 在「平台目標」方塊,改選取為「x86」。

請參考下圖所示:


5. 點選上方的工作選單「檔案」\「全部儲存」,再關閉專案屬性的設定視窗。

參考文件:

SQL Server Compact 3.5 和 Visual Studio
http://msdn.microsoft.com/zh-tw/library/aa983341.aspx

64 位元程式開發 針對使用 Visual Studio 和 SQL Server Compact 3.5 進行的 64 位元程式開發,[進階編譯器設定] 中的 [目標 CPU] 選項必須明確設定為 [x86]。當 [目標 CPU] 設定為預設值 [任何 CPU] 時,將會出現「無法載入 sqlceme35.dll」這個訊息。因此請務必設定專案屬性中,[進階編譯器設定] 的 [目標 CPU] 選項。


HOW TO:連同應用程式部署 SQL Server Compact 3.5 資料庫
http://msdn.microsoft.com/zh-tw/library/aa983326.aspx


Unable to load DLL 'sqlceme35.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
http://forums.microsoft.com/msdn/showpost.aspx?postid=2616204&siteid=1&sb=0&d=1&at=7&ft=11&tf=0&pageid=0

x64 and SQL Compact
http://erikej.blogspot.com/2008/01/x64-and-sql-compact.html


2008-10-05

升級 SQL Server,效能變差



最近開始陸續有朋友開始進行升級作業,將 SQL Server 7.0、2000版本,升級到 SQL Server 2005、2008 版本上。但卻發覺執行並沒有提昇,甚至變得更差。

一般來講,可能是少作兩項作業所造成的原因。在此提醒各位,將資料庫升級到 SQL Server 2005、2008 版本後,請務必執行以下兩項作業:

(1)更新統計資料 - 若要協助最佳化查詢效能,我們建議您在升級之後,更新所有資料庫的統計資料。請使用 sp_updatestats 預存程序來更新 SQL Server 資料庫中使用者定義資料表的統計資料。
(2)更新使用方式計數器 - 在舊版 SQL Server 中,資料表和索引資料列計數與頁面計數的值可能會變成不正確。若要更正任何無效的資料列或頁面計數,我們建議您在升級後,針對所有資料庫執行 DBCC UPDATEUSAGE。


範例程式如下:

/*
sp_updatestats
更新統計資料 - 若要協助最佳化查詢效能,我們建議您在升級之後,更新所有資料庫的統計資料。
請使用 sp_updatestats 預存程序來更新 SQL Server 資料庫中使用者定義資料表的統計資料。

針對目前資料庫中的所有使用者自訂資料表和內部資料表來執行 UPDATE STATISTICS。
*/
--01 更新 AdventureWorks 資料庫中之資料表的統計資料。
USE Northwind;
GO
EXEC sp_updatestats 

--02 對每一個資料庫執行 sp_updatestats 作業
USE master
GO
EXEC sp_MSforeachdb @command1="print '?' EXEC [?].dbo.sp_updatestats"

/*
DBCC UPDATEUSAGE 
更新使用方式計數器 - 在舊版 SQL Server 中,資料表和索引資料列計數與頁面計數的值可能會變成不正確。
若要更正任何無效的資料列或頁面計數,我們建議您在升級後,針對所有資料庫執行 DBCC UPDATEUSAGE。

報告和更正目錄檢視中不準確的頁面和資料列計數。這些不準確可能會使 sp_spaceused 系統預存程序傳回不正確的空間使用方式報表。
在 SQL Server 2005 和更新版本中,永遠會正確維護這些值。從 SQL Server 2000 升級的資料庫可能會包含無效的計數。
我們建議您在升級之後執行 DBCC UPDATEUSAGE,以便更正任何無效的計數。
*/
--01 更新目前資料庫中之所有物件的頁面及 (或) 資料列計數
USE Northwind
DBCC UPDATEUSAGE (0);
GO

--02 對每一個資料庫執行 DBCC UPDATEUSAGE 作業
USE master
GO
EXEC sp_MSforeachdb @command1="print '?' DBCC UPDATEUSAGE (?)"


站在使用者的角度來看,相信大家都期待 SQL Server 開發團隊能夠更貼心的設計出更好用的升級功能、工具。例如:
1. 自動提醒 IT 人員,必須要更新更新統計資料、更新使用方式計數器等兩項系統資料。
2. 在升級後,提供選項讓 IT 人員,可以選擇立刻更新這兩項系統資料,或是排程更新之。




參考文件:

如何:升級到 SQL Server 2008 (安裝程式)
http://msdn.microsoft.com/zh-tw/library/ms144267.aspx




若是升級 SQL Server後,效能變差,
依據不同的情境整理,請參考以下的建議:


(一)若是為同一台伺服器執行升級作業

建議的作法是:
(1) 執行 sp_updatestats
(2) 執行 DBCC UPDATEUSAGE

(3) 重建索引(Rebuild Index)


(二)若是移轉到新的伺服器上的移轉升級作業

建議的作法是:
(1) 執行 sp_updatestats
(2) 執行 DBCC UPDATEUSAGE

(3) 重建索引(Rebuild Index)

經過評估分析後:
(4) 停用「超執行緒(HT,Hyper-Threading)」。
(5) 設定 max degree of parallelism 選項;「平行處理原則的最大程度」。


參考資料:

認識平行(parallelism)處理,以MAXDOP、cost threshold for parallelism與max degree of parallelism選項為例
http://sharedderrick.blogspot.com/2009/12/parallelismmaxdopcost-threshold-for.html

在 SQL Server 上,是否該停用「超執行緒(HT,Hyper-Threading」?
http://sharedderrick.blogspot.com/2010/11/sql-server-hthyper-threading.html