Tip/Trick: How to upload a .SQL file to a Hoster and Execute it to Deploy a SQL Database 【原文發表日期】 Thursday, January 11, 2007 12:20 AM 上個月 (英文),我討論了新的(免費的)數據庫發布向導,它是設計來充分簡化在web主機環境中上傳和部署 SQ
Tip/Trick: How to upload a .SQL file to a Hoster and Execute it to Deploy a SQL Database
【原文發表日期】 Thursday, January 11, 2007 12:20 AM
上個月 (英文),我討論了新的(免費的)數據庫發布向導,它是設計來充分簡化在web主機環境中上傳和部署 SQL Express 和 SQL Server數據庫的。
在 第一個關于數據庫發布的貼子 (英文)里 ,我示范了你如何可以使用數據庫發布向導自動生成 .SQL 安裝文件,該文件中將包含重建你的數據庫數據定義(表,視圖,存儲過程,觸發器,全文索引目錄等等)以及以你原來數據庫中同樣的數據填充新數據庫所需的腳本。這提供了一個極其容易的方法來構造在另外一個服務器上完全復制你的數據庫的 .SQL 腳本:
在我以前的帖子里,我提到主機供應商經常提供在線SQL管理工具,你可以用它來打開/運行你新生成的 .SQL 文件,或者會提供SQL查詢工具允許你拷貝/粘貼 .SQL 文件的內容到一個查詢執行窗口來運行這些SQL語句。但不幸的是,并不是所有的主機供應商支持類似的工具。即使在那些支持類似工具的主機供應商那里,你也會遇上一些情形,譬如你生成的 .SQL 文件是如此之大,把它拷貝/粘貼進一個文本框是行不通的(提交一個 200M 字節內容的表單一般都會造成超時)。
這個帖子示范了把 .SQL 文件部署到遠程主機環境中去的另外一個方法,這個方法不要求你的主機供應商在后端為你配置和安裝任何東西。
下面是把一個本地數據庫不通過使用任何管理工具就部署到遠程主機上去的步驟:
第一步:生成一個包含數據定義和數據的 .SQL文件
遠程部署數據庫到主機環境的第一步是生成一個 .SQL 文件,內含你數據庫的數據定義和數據。按我的 第一個關于數據庫發布的博客帖子 (英文)里的步驟,來了解如何為 SQL Express 或 SQL Server數據庫生成一個 .SQL 文件。
第二步: 把 .SQL 文件FTP到你的遠程主機上去
生成 .SQL 文件之后,使用FTP或者其他文件傳輸機制將它上傳到你的遠程主機上去。最好是把這個文件拷貝到一個遠程用戶不易訪問的受保護的場所。一個建議,給這個文件一個隨機的名字,然后將它上傳到 /app_data 文件夾,因為在默認情形下,該文件里的內容是受保護的。
用FTP來上傳這個文件的好處是,它不會強迫你限制 .SQL 文件的大小。有必要的話,該文件的大小可達幾百個M字節之多。
第三步: 下載 RunSQL.aspx 輔助頁面
訪問這個頁面,下載其上連接的 RunSQL.aspx 文件。
RunSQL.aspx文件是個ASP.NET頁面,是SQL Server產品組編寫的,支持2個參數: 1) .SQL 文件的名字, 以及 2) 數據庫的連接字符串。運行RunSQL.aspx頁面,它會打開指定的 .SQL 文件,在通過連接字符串指定的數據庫中迭代執行文件中的每一句SQL語句。這就會把 .SQL 文件中定義的數據庫配備到遠程的目標數據庫中去。
第四步: 編輯 RunSQL.aspx 輔助頁面
在本地打開/編輯RunSQL.aspx文件,設置好你的 .SQL 文件名字,以及提供與你的主機供應商給予你的SQL數據庫對應的連接字符串:
把 <
// Filename of the T-SQL file you want to run
string fileName = Server.MapPath("personal.SQL");
// Connection string to the server you want to execute against
string connectionString = @"Server=server123;User ID=user123;Password=password123;Initial Catalog=MyDBName123";
// Timeout of batches (in seconds)
int timeout = 600;
第五步: 把 RunSQL.aspx 輔助頁面上傳到你的遠程主機
完成更改文件名和連接字符串值之后,把RunSQL.aspx文件上傳到你的遠程主機上去(譬如,使用FTP)。
為安全的原因,我建議你在上傳時給該文件一個隨機的文件名,這樣,別人就不容易找到這個文件并執行它了。
第六步: 用瀏覽器訪問 RunSQL.aspx 輔助頁面
上傳后,通過瀏覽器訪問遠程的RunSQL.aspx網頁,這會導致你遠程服務器上的網頁分析 .SQL 文件,執行其中的所有SQL語句。 因為 .SQL 文件包含了重建數據庫所需的數據庫數據定義和數據填充的所有語句,網頁執行完畢后,你就將一個一模一樣的數據庫部署到你的遠程主機上了:
第七步: 刪除 RunSQL.aspx 和 .SQL 文件
運行完你的 .SQL 腳本之后,把RunSQL.aspx網頁和 .SQL 文件同時從你的遠程主機服務器上刪除。
為安全的原因,你不想要任何其他人能夠遠程訪問RunSQL.aspx網頁,因為它也許會重建你的數據庫,導致數據丟失。
第八步: 更新你應用的Web.Config文件來指向主機環境中的數據庫
剩下的最后一步是更新你的web.config文件的
希望本文對你有所幫助,
Scott
附注:要閱讀我寫的其他的技巧,訣竅和Recipes帖子的話,請訪問這個網頁。
ASP.NET, .NET, Data, SQL Server, Tips and Tricks
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com