[SQL Server] 利用batch 備份資料庫
備份資料庫除了利用內部 SQL Server Agent 的schedule job 外, 還可以透過指令檔進行. 這樣的好處是可以透過中央化管理的形式去管理排程工作.
備份資料庫除了利用內部 SQL Server Agent 的schedule job 外, 還可以透過指令檔進行. 這樣的好處是可以透過中央化管理的形式去管理排程工作.
當rename database 時, 有時會出現elusive lock 問題. 這是因為執行時有其他user 正在使用而令database locked.
有時進行維護時, 總會須要將系統offline. 但有時會出現錯誤指TABLE 被Lock. 這是因為執行ALTER TABLE 時, 會見到有process 仍在執行.
當Server Sysprep 完 OOBE (Out-of-Box Experience)後, GUID 通常都會重新分派, 但如果之前安裝了SQL server 的話, Instance 名因為儲了在master DB 內, 故有機會與Seed image 同名.
當做系統整合時, 將不同database 接駁是其中一項平常事. SQL server 之間接駁沒啥難度, 然而, SQL server 接駁Oracle卻大有學問, 在這裡, 會示範如何在SQL server 中制作Oracle Link Database.
利用SQL statement做Report時, join table 是無可避免的. 但如果join 不同database 的 table 時, 有機會出現錯誤信息如下: Msg 468, Level 16, State 9, Line 11 Cannot resolve the collation conflict between “Chinese_Taiwan_Bopomofo_BIN” and “Chinese_Hong_Kong_Stroke_90_CI_AS” in the equal to operation.
有時搬SQL server 時, 正路的方法, 當然是於新DB server 建立schema及相關user privilage, 再透過ETL 將data full load 過去, 然後再從application level 修改 connection string 指往新DB server. 但有時只有一個bak file, restore 後再建立login 時, 會出現user group already existed的錯誤訊息. 這是因為與DB user name 的名字相同所致.
有時寫code時, 有需要call 到SQL server 內的Function 但卻不能順利進行. 除了DataContext.ExecuteCommand()進行外, 還可以透過DbFunctionAttribute使用.
當進行測試時, 有時為了測試不同程式是否得到相同結果(如Regression Test), 重覆restore DB 會是其中一個手段. 然而DBA 與developer 不是同一人時, 便會令測試變得麻煩. 故在測試時backup 指定table, 事後再restore 會是更快的方法.
Copyright © 2024 | MH Magazine WordPress Theme by MH Themes