發表文章

目前顯示的是有「SQL2005」標籤的文章

SQL Profiler應用

最近因為資料庫的效能出現瓶頸,所以開始學習用 SQL Profiler來記錄某段時間的資料庫使用狀況。只是SQL Profiler記錄下來的資料有一大堆,要如何從中找出感興趣的部份,也是一件要學習的工作了。 用SQL Profiler記錄下來的資料,可以先儲存成檔案,副檔名為.trc。再 將它匯入到資料表 中。用如下的指令: SELECT * INTO trace1108 FROM ::fn_trace_gettable('E:\Test.trc', default) 因為已經匯入成資料表了,所以要查詢所需的資訊就可以用SQL指令來進行查詢。 不過要注意幾點: 1) Duration的單位 在SQL Profiler中所顯示的Duration單位是千分之一秒,而用儲存過的檔案匯入到資料表中所用的單位是百萬分之一秒。 2) 在EventClass這欄原本SQL Profiler中顯示的是文字資料,但匯入到資料表後所使用的是原本的 分類代碼 。是整數的資料。

將SQL2005的作業排程昇級到SQL2008時發生錯誤

最近試著將SQL 2005的作業排程利用產生SQL指令的方式要昇級到SQL 2008時,出現以下的錯誤訊息: 訊息 515,層級 16,狀態 2,程序 sp_add_job,行 137 無法插入 NULL 值到資料行 'owner_sid',資料表 'msdb.dbo.sysjobs'; 資料行不得有 Null。INSERT 失敗。 陳述式已經結束。 查了一下,在MSDN中好像有說這是 因為SQL 2008本身沒有建sa的問題 。最好的方式是要昇級到SQL 2008 SP1

SQL Server遠端伺服器連線失敗

圖片
錯誤訊息: 連結伺服器 "10.6.228.43" 的 OLE DB 提供者 "SQLNCLI" 傳回訊息 "登入逾時終止"。 連結伺服器 "10.6.228.43" 的 OLE DB 提供者 "SQLNCLI" 傳回訊息 "建立連線至伺服器時發生錯誤。連線至 SQL Server 2005 時,發生此失敗,可能是因為在預設設定下,SQL Server 不允許遠端連線。"。 訊息 65535,層級 16,狀態 1,行 0 SQL 網路介面: 從登錄取得已啟用的通訊協定清單時發生錯誤 [xFFFFFFFF].  解決方式:開啟SQL Server Configuration Manager,到「用戶端通訊協定」中,開啟TCP/IP的通訊方式。

資料庫還原時發生:「1130 可用伺服器儲存空間不足,無法處理這項指令。」的問題

最近在進行資料庫的備份還原時,發生在進行還原時,出現: 1130 可用伺服器儲存空間不足,無法處理這項指令。 這個錯誤訊息。 查了一下Google發現所有的相關文章,都只是在條列出一堆的Windows錯誤訊息代碼而已。根本就沒有人有相關的解決方式。 我遇到的狀況是,有一台主要的資料庫伺服器,會先將資料庫備份到一台共用伺服器中。而另一台要進行還原的備援資料庫伺服器則會試著由這台共用伺服器中的備份檔案進行還原。 基本上這樣的方式連續幾天下來都是正常的。只是偶爾就會出現上述的錯誤訊息。我試著先用網路的方式將共用伺服器中的檔案複製一份到備援資料庫服器的本機硬碟中。但是發現,就在複製進行到3/4時,就又出現如上的錯誤訊息了。 可是我看備援資料庫伺服器的本機硬碟空間是足夠的。在沒有其它方式下,我只好先重新開機。重開機後,再手動進行檔案的複製。沒想到這次就成功了。 所以我想,如果在遇到這個錯誤訊息時,或許可以先手動重新開機試看看喔。

奇怪的SQL錯誤訊息:錯誤訊息為: 由於某個無效的多部名稱

今天同事在兩台SQL DB伺服器間查詢資料時,發現要由A這台去查B那台的某個資料表時,就會出現如下的錯誤訊息: 執行批次時發生錯誤。錯誤訊息為: 由於某個無效的多部名稱,故無法處理來自 SQL Server 的結果 "xxxxxx","4" 目前的限制不足。 也發現如果只查某幾個欄位是OK的。 所以我就一個個欄位試,發現其中有個型別為image的欄位,如果要這樣跨DB伺服器查詢時,就會出現這樣的錯誤訊息。 目前的解決方式就是先不查這個欄位了。

安裝SQL2005測試資料庫--AdvantureWork

一般在安裝SQL 2005時,如果沒有特別指定的話,它是不會自動為你安裝測試用的資料庫AdvantureWork的。 要自行安裝的話,如果只是拿原本的SQL 2005安裝光碟來安裝的話,也是無法正確安裝的。後來就上網查了一下資料, 原來是要再自行去下載測試資料庫的安裝檔 。 不過,目前這些測試資料庫的安裝檔都不在微軟的網站裏了,都已經移到CodePlex中。有需要的人 要到CodePlex中下載 。 SQL 2005測試資料庫 AdvnatureWork的下載 在此。 安裝後,其實只是將資料庫的檔案放到你的電腦中而已。直接開啟Management Studio的話,還是看不到AdvantureWork這個資料庫。你必須手動去「附加」這個資料庫。

MS SQL 資料庫檔案移動

有時會遇到需要將已存在的資料庫由某個目錄移到另一個目錄。 移動的方式有幾種: 一種是 利用SQL Managerment介面來下SQL指令移動 。 另一種則是用手動的方式。先卸離資料庫,再用檔案總管移動檔案(含Log檔),再用附加的方式掛載資料庫。 以上是目前試過的方式,記錄一下,以免忘記。

設定SQL Server主動通知排程狀態

圖片
一般在SQL Server中,或多或少都會設定一些資料庫所需的排程作業。這些作業會定時地在指定的時間啟動、執行。執行如果成功那也就還好,但如果失敗的話,或許就要重新執行一次,或是要做另外的處理。 可是總不可能每天都在固定的時間去檢查每個作業執行的結果吧。這樣例行性的檢查工作,如果也能請SQL Server代勞的話,那管理人員就可以更專心地去處理其它重要的工作。只要當排程執行失敗時,SQL Server能主動通知一下的話。 以下,我就來分享一下,如何在SQL Server 2005中設定讓排程在失敗時(或是執行成功時)寄送警告的訊息。警告的方式有許多種。在此就先介紹使用寄送電子郵件的方式。 首先要讓排程在執行後,不論是成功或失敗時能寄送電子郵件的話,首先要在SQL Server中設定用來寄送電子郵件的方式。 SQL Server可用來寄送電子郵件的方式有兩種:一種是使用SQL Mail;另一種是使用Database Mail。 這次我要分享的是使用Database Mail來寄送電子郵件的設定方式。 在Enterprise Manager的管理介面中,找到您要設定的資料庫伺服器。找出在伺服器中的「管理」中的「Database Mail」。 在Database Mail項目上按下右鍵,會出現如下圖的選單。選擇第一項:設定Database Mail。 接著會出現一連串的精靈式設定方式,導引您去一步步地設定好Database Mail。 此時,直接執行下一步。會出現如下圖的畫面。在這個畫面中,如果您是第一次設定的話,可選擇第一個選項:執行下列工作以設定Database Mail。如果您先前有已設好的項目的話,可以選擇第二個選項來進行修改。 如果您是第一次設定的話,在下一步時,會出現如下圖的畫面,要求您設定「設定檔」。 在其中的「設定檔名稱」中您可以自行取一個名稱來識別這個設定檔。例如上圖中的Report Mail。「描述」的部份可寫可不寫。 接著在下方的「SMTP」帳戶中是要設定在使用這個設定檔時,所可以使用的電子郵件寄送伺服器的設定。一開始會是空白的。此時請到右邊的「加入」中開始新增第一個SMTP的設定。 在開始新增時,一開始會出現如上圖的視窗。會讓您加入已設定好的SMTP設定。不過,如果您是...

安裝SQL 2005用戶端開發環境的怪事

公司的電腦已經有兩年沒有重灌了。所以就找了一個時間重灌整個系統。使用的還是XP。 因為開始程式時要使用到MS SQL2005,所以就在大致上安裝完畢後,開始進行MS SQL 2005的安裝。結果一安裝就失敗。一開始也不知是什麼原因,就一直重試,結果就是不行。於是就先放棄了。 沒多久,發現這樣不行,有些有用到Reporting Service的程式就無法修改了。只好再來開始想辦法。於是就仔細看了一下安裝時的錯誤訊息。發現在安裝MSXML時失敗。於是就google了一下, 沒想到還真有人發生跟我一樣的問題呢。 原來我重新安裝好系統後,就執行Windows Update,於是它就更新了新版的MSXML。造成在安裝MS SQL 2005,它的舊版MSXML無法安裝,於是就整個都安裝失敗了。 所以首先就是要將我更新到的MSXML給移除。要移除軟體,當然就是到控制台去進行囉。結果由控制台無法手動移除MSXML。沒辦法,只好再google一下了。哈,沒想到還真有解。原來微軟也會出一個工具可用來移除這些更新的套件,當然是下載來進行移除囉。 就在搞定MSXML之後,一切安裝順利後,想說只要能安裝個MS SQL 2005 Express就好了。應該也可以開發Reporting Service吧。後來雖然是可以開發Reporting Service,可是MS SQL Management Studio Express版本無法進行排程的管理。 沒辦法,只好移除,乖乖地安裝一般的MS SQL2005版本了。這下又好了,在安裝前的檢查是,又出現什麼「Performance Counter錯誤」的問題。當然還是要google一下囉。發現微軟上有相關的說明,不過,是有看沒有懂。大意是說要去改Registry的機碼。可是要改成什麼值,它就沒有說的很清楚了。 後來又查到 一篇有人提供的比較詳細的說明 ,才知道如何修改。於是就修改了所需的機碼。重新進行安裝。 天啊,這下總算是全部安裝完成了。 什麼怪事都遇到了。下次不會再有其它問題了吧。