bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries for the ‘Database’ Category

解決MSSQL6.5設定TempDB in RAM過大導致SQL Server無法啟動問題

因為 MSSQL 6.5 Server 出現 TempDB 空間不足的訊息,所以通知所有用戶離線並進行系統調教增加空間,然後重新啟動服務就出現下列錯誤訊息:

1
2
3
kernel udactivate(IN_RAM): Operating system error 8(Not enough storage is available to process this command.) encountered
spid1 Device activation error. The physical filename 'IN_RAM' may be incorrect
spid1 crdb_tempdb: Unable to move tempdb into RAM; RAM device doesn't exist, cannot be created, or doesn't have enough space for tempdb

慘了,踩到地雷了。因為當資料庫啟動時,如果系統設定 tempdb 是存放在 RAM 上,則 SQL Server 必須建立 temp_db Device 在可用的系統記憶體空間上,若空間不足無法建立裝置就會導致資料庫啟動失敗而得到上面的錯誤訊息。

解決方式:

1. 開啟命令列視窗(cmd.exe),並以最小的配置模式啟動SQL Server使用下列命令:

sqlservr -c -f

這時會看到命令列視窗傾印錯誤紀錄,然後看到最後一行出現:

kernel   Warning: override, autoexec procedures skipped.

(Read the rest of this entry…)

Leave a Comment

PHP Object Generator 幫你寫資料庫物件程式

一個滿好玩的開放原始碼的 PHP Object Generator (簡稱 POG)網站。能夠幫助程式設計師快速的產生具有 CRUD (Create、Read、Update、Delete)功能的 PHP database 物件程式碼。

只要簡單的三大步驟,首先輸入所使用的 PHP 語言版本(PHP4、PHP5、PHP5.1+)以及資料庫系統(目前只有看到 MySQL 的版本),再來輸入你想要的物件名稱,然後依序輸入所需要的欄位名稱與型態,預設只有三個欄位當然是不夠的,可以按下 [+ Add attribute] 按鈕來增加欄位數,最後按下 Generate code 的送出按鈕。

哇啦,程式碼就出來了,連建立資料表的 SQL 語法都幫你產生好了。所產生的程式碼會自動幫你加入一個以物件名稱加上 id 當作欄位名稱的自動編號欄位作為主鍵。

不過單就所產生出來的程式碼來說,對於想學習 PHP 程式設計的人很具有參考價值喔。

PHP Object Generator Form

網址:http://www.phpobjectgenerator.com/

Leave a Comment

MySQL Performance Blog

http://www.mysqlperformanceblog.com/

Everything about MySQL Performance

專門討論 MySQL 調校的,當然要認真觀摩

Leave a Comment

資料庫故障

MS SQL 6.5 資料庫又爆炸了,有一些資料莫名奇妙的亂掉,檢查日誌只有看到下列錯誤訊息。

2006/11/02 14:55:09.49 spid138  Error : 1105, Severity: 17, State: 1
2006/11/02 14:55:09.49 spid138  Can’t allocate space for object ‘-4417’ in database ‘tempdb’ because the ‘system’ segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.
2006/11/02 14:55:09.51 spid138  Error : 1510, Severity: 20, State: 2
2006/11/02 14:55:09.51 spid138  Sort failed: Out of space or locks in database ‘tempdb’

2006/11/02 15:36:33.51 spid120  Error : 1105, Severity: 17, State: 1
2006/11/02 15:36:33.51 spid120  Can’t allocate space for object ‘-3841’ in database ‘tempdb’ because the ‘system’ segment is full. If you ran out of space in Syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment to increase the size of the segment.
2006/11/02 15:36:33.52 spid120  Error : 1510, Severity: 20, State: 2
2006/11/02 15:36:33.52 spid120  Sort failed: Out of space or locks in database ‘tempdb’

Leave a Comment

MSSQL6.5 upgrade to MSSQL2005

使用 MSSQL2005 的匯入資料功能,連接 MSSQL6.5 用 OLE DB Provider 的資料連接

碰到下列問題

作業已停止…
– 建立 TransferProvider。 (成功)
– 建立破壞性 SQL 的暫存檔。 (成功)
– 建立建設性 SQL 的暫存檔。 (成功)
– 建立資料表中繼資料的 XML 暫存檔案。 (成功)
– 使用檔案和來源/目的地連接資訊來設定 TransferProvider。 (成功)
– 使用 TransferProvider 執行傳送。 (錯誤)
 訊息
 * 錯誤 : errorCode=-1071636471 description=發生 OLE DB 錯誤。錯誤碼: 0x80040E14。
 有 OLE DB 記錄可用。 來源: “Microsoft OLE DB Provider for SQL Server”  Hresult: 0x80040E14  描述: “Line 1: Incorrect syntax near ‘[‘.”。
  helpFile=dtsmsg.rll helpContext=0 idofInterfaceWithError={8BDFE893-E9D8-4D23-9739-DA807BCDC2AC} (Microsoft.SqlServer.DtsTransferProvider)
 
 如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
 
– 執行破壞性 SQL。(卸除資料表) (成功)
– 執行建設性 SQL。(建立資料表) (成功)
– 建立 [FBUSA].[ACIPDF] 的暫存資料表傳送封裝 (已停止)
– 執行 [FBUSA].[ACIPDF] 的傳送封裝 (已停止)
– 正在複製到  (已停止)
因為SQL2005撈資料時會將資料表的SQL語法設為

select [F1],[F2],… from [DBName].[Schema].[TBName]

的格式,而MSSQL6.5不支援此種語法格式,所以發生錯誤。

所以改用 MSSQL2000 的匯出匯入精靈來處理,結果資料的傳輸順利完成。

不過主鍵、索引、預設值、約束條件的設定就要全部手動重建。

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整