当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 把SQL数据库部署到远程主机环境

MSSQL
sql server的保留关键字
SQL2000 关于 Java JDBC 驱动的安装和设定
SQL Server2005数据库查询中使用CTE
如何整理SQL Server输入数据
SQL优化34条
怎样用SQL服务器调节器收集重要信息
黑客经验谈 MSSQLSA权限入侵的感悟
SQL Server企业管理器和查询分析器简介
SQL Server开发人员应聘常被问的问题
限制系统管理员对SQL Server进行访问
升级到SQL Server 2005之后转换登录
SQL Server 2000中监控失败的登录尝试
MSSQL移动到新服务器出现不匹配问题
让你见识一下SQL Server口令的脆弱性
全面调整SQL Server的硬件性能计划
SQL SERVER数据导成INSERT
SQL Server中保护数据的安全选项
防范SQL注入攻击的新办法
SQL Server数据库安全管理机制详解
妙用SQL子查询来从子表里删除数据

MSSQL 中的 把SQL数据库部署到远程主机环境


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 184 ::
收藏到网摘: n/a

  SQL Server Hosting Toolkit这个工具包允许你在本地操作SQL Express,SQL Server 2000,和 SQL Server 2005数据库,然后把你的数据定义和数据轻松地迁移,安装到一个共享的远程主机SQL Server账号上……

  场景:

  你开发完了一个得意的ASP.NET应用,所有的东西都测试过了而且在你本机上一切工作都正常,充分利用了ASP.NET 2.0中的成员,角色和用户信息等新功能,万事俱备,准备将它发布到一个远程主机环境,跟整个世界分享这个应用。

  SQL Server产品组推出了新的 SQL Server Hosting Toolkit的发布候选版 ,这个工具包将使部署你的SQL解决方案到远程主机环境容易之极。这个工具包允许你在本地操作SQL Express,SQL Server 2000,和 SQL Server 2005数据库,然后把你的数据定义和数据轻松地迁移,安装到一个共享的远程主机SQL Server账号上。

  下面的内容将描述你可以如何开始使用这个工具包。

  SQL Server Hosting Toolkit

  SQL Server Hosting Toolkit可以免费获取,同时发布的还有一个数据库发布向导(Database Publishing Wizard),该向导支持2种数据库主机部署场景:

  1) 数据库发布向导允许你指向一个你正在本机上操作的数据库,然后自动生成一个.SQL脚本文件,该文件包含了在任何远程系统上重建一个当前数据库的完整拷贝所需的安装逻辑。这个.SQL脚本包括了需要创建数据库定义(表,视图,存储过程,触发器,全文索引目录,角色,规则等等,可在此处参考所有细节),以及把与你本地数据库同样的数据内容填充到新数据库里去的所有的东西(这类似于MySQL 的dump工具)。把这些安装逻辑封装在单个.SQL 文件的好处是,大多数主机供应商已经支持上传 .SQL 文件到他们的主机环境,并且通过他们的管理控制面板运行这些脚本的能力。假定你现有一个支持这个功能的web主机供应商,你可以马上开始使用数据库发布向导来轻松地部署你的网站,而不需要主机供应商安装或配置什么东西。

  2) 数据库发布向导也允许你指向一个你正在本机上操作的数据库,然后使用 web service 向你的远程主机环境迁移和重建数据库(而不用创建一个.SQL 文件或者使用主机供应商的管理控制面板运行这个文件)。不过,这个发布选项需要主机环境提供SQL发布web-service。 SQL Server Hosting Toolkit包含了一个免费的SQL发布web-service实现,我们将与主机供应商密切合作来部署这个web-service。

  数据库发布向导允许你在本地使用 SQL Express 或 SQL Server 2000/2005 ,然后在远程主机环境中使用SQL 2000 或 SQL 2005。它不要求SQL服务器的版本是一样的,所以,你可以在本地使用SQL Express 2005,然后上传到主机环境中的SQL 2000服务器,而不用改动任何编码。

  使用.SQL文件把SQL Express数据库部署到一个SQL Server主机账号上去

  起始准备:下载和安装数据库发表向导

  我们要做的第一步是确认我们安装了SQL Hosting Toolkit中的数据库发布向导。点击这里下载安装。

  数据库发布向导既有图形界面的向导,也有命令行工具。图形界面的向导既可以单独运行,也可以通过它向Visual Studio 2005 和 Visual Web Developer Express的解决方案管理器中添加的context-menu支持来运行。为本教程的目的,我们将使用后面这个解决方案管理器的集成方法,它使得发布极其容易。

  第一步:创建一个使用本地SQL Express或SQL Server数据库的ASP.NET网站

  为方便这个演示,我们将使用随VS 2005(VS) 和Visual Web Developer Express(VWD)而来的内置的Personal Starter Kit模板。为创建一个基于这个模板的新web项目,在VWD或VS中选择文件->新网站,然后在新网站对话框中选择Personal Starter Kit模板。在默认情形下,这个personal starter kit应用是配置使用SQL Express(这数据库是免费的,可以在这里下载)的。执行之后,如下图所示:

  在创建应用后,你可以在VWD/VS中选“网站”->“ASP.NET配置”菜单项来运行web管理工具,创建一个新的用户,把该用户添加到网站的“admin”角色中去。然后你就可以这个新的管理员用户账号登录,试着上传新的相片或者定制网站上现有的相片(注意,这么做的话,相片的元数据以及原相片的二进制数据都是储存在数据库里的):

  上述步骤结束之后,我们将拥有2个SQL Express数据库,安装在我们项目的\app_data文件夹里。其中一个SQL Express数据库名为personal.mdf,内含特定于我们网站的数据表和存储过程,譬如photo(相片)和album(相册)表,以及基本的内容管理支持等。另外一个SQL Express数据库名为aspnetdb.mdf,内含默认的ASP.NET 2.0成员,角色和用户信息提供器的数据库贮藏,被我们的应用用来做登录和管理之用。

  第二步:为我们的数据库创建 .SQL 安装脚本

  至此,我们建立了新的应用和本地数据库,向数据库中添加了自定义数据,象新用户账号以及他们的角色成员,以及新的相片和相册等,我们想要把这应用部署到一个远程主机服务器上去。

  我们要做的第一步是创建 .SQL 脚本文件,这些文件将允许我们在远程主机账号上自动重建完全一样的数据库定义和数据库内容。我们将使用作为SQL Hosting Toolkit的一部分安装在本机上的数据库发布向导(Database Publishing Wizard)来做。

  一开始,点击 Visual Studio 或 Visual Web Developer中的服务器管理器页,查看一下我们的程序所用的数据库

  在上图中可以看到,我们用到了2个SQL Express数据库:ASPNETDB.MDF 和 Personal.MDF。想为每个数据库生成一个 .SQL 安装文件的话,只要选择管理器里的数据库,然后按右鼠标,在其上选择“Publish to Provider(发布到提供者)”上下文菜单项(是由数据库发布向导添加的):

  这会启动数据库发布向导,允许我们按部就班地生成数据库的安装脚本。就象在本帖子里的简介部分提到的一样,数据库发布向导支持2个部署选项: 1) 生成 .SQL 安装脚本文件,你能将它们拷贝到远程主机上然后使用他们现有的管理控制面板工具来运行它们,或者 2) 使用主机网站提供的数据库发布Web Service直接把数据库上传。

  在点击“下一步”之后,向导会提供选项让你定制生成 .SQL 安装文件时的一些设置。注意,你可以控制是否要删除目标数据库中的现有对象,脚本针对的是SQL 2000 还是SQL 2005 ,是否要同时安装数据定义和数据,还是只要数据定义,或者只要数据:

  至此,你就拥有一个名为Personal.SQL的文件,内含你可以在任何SQL服务器上运行的脚本,该脚本能用来重建数据库中的数据表,存储过程,视图,全文索引目录等,以及导入创建.SQL文件时对应数据库中的所有的数据记录。

  注意,上面的.SQL文件既包括了创建Photos表所需的DDL SQL语句(包括该表所有约束和主键/外键等关系),也包括了在该表创建后在改该表内插入数据的SQL语句。在上面的例子中,甚至包括了插入相片的二进制数据的SQL语句,因为这些数据是保存在数据库里的。

  把上述步骤对ASPNETDB SQL Express数据库重复执行之后,你将拥有2个你可以用来在任何SQL服务器上自动重建你的SQL数据库的.SQL 安装脚本:

  注意,我们建立的.SQL文可以用来在一个服务器上创建2个单独的数据库,或者也可以在同个数据库里运行,从而生成一个包含了你程序的所有的数据表,存储过程和数据的单一数据库。要实现这个目的,只要对同个数据库运行这两个脚本就可以了。假如没有表名和存储过程名冲突的话,你将拥有一个包括所有东西的单一数据库。当你的主机账号只提供了一个可用的数据库实例时,这后一个选项是非常有用的。

  第三步:用我们的 .SQL 文件创建我们的远程数据库

  至此,我们生成了 .SQL 文件,我们就可以用它们来在我们的主机环境中安装数据库了。我们怎么使用 .SQL 文件安装数据库的细节取决于主机供应商是如何让我们访问我们的SQL账号的。有些主机供应商提供了一个基于HTML的文件上传工具,允许你提供一个 .SQL 文件,然后他们可以在你拥有的SQL数据库里执行这个文件。

  如果你的主机供应商没有可用的HTML web管理工具让你轻松管理你的SQL数据库的话,那么你也可以编写一个简单的ASP.NET 网页,你可以将它和你的 .SQL 文件一起FTP到你的网站,然后访问该网页,该网页则把 .SQL 文件当作文本文件读入内存,然后将其变成一个字符串传给ADO.NET来执行。这将给予你和上面的查询分析器一样的结果,为你完全重建你的数据库

   第四步:更新web.config中的连接字符串

  一旦在我们的主机环境的数据库里上传数据完毕,我们要向远程网站上传我们的.aspx文件,程序集和其他内容(一般是通过FTP来做的)。

  我们要做的最后一步是打开我们的 web.config 文件,更新 部分来指向我们远程主机的新数据库位置。注意,你需要从主机供应商那里得到确切的SQL服务器,数据库名字,以及用户名/密码。

  用我们上面的personal starter kit作为例子,我们要改动 web.config 文件中的 部分中的默认连接字符串(原本使用的是本地\app_data文件夹中的2个SQL Express数据库):

<connectionStrings>
   <add name="Personal" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Personal.mdf" />  
   <remove name="LocalSqlServer"/>
   <add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|aspnetdb.mdf" />
</connectionStrings>

  来使用单个SQL Server 2000数据库(Server123机器上的scottguDB数据库)。

<connectionStrings>
   <add name="Personal" connectionString="Data Source=Server123;Initial Catalog=scottguDB;Integrated Security=True" providerName="System.Data.SqlClient" />
   <remove name="LocalSqlServer"/>
   <add name="LocalSqlServer" connectionString="Data Source=Server123;Initial Catalog=scottguDB;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>


  我们能够使用单个数据库(而不是上面的2个数据库),因为我们对单一数据库运行了2个 .SQL文件,这样,把所有的数据定义和数据库合并到单个数据库实例里去了。

  第五步:完成

  至此,我们就可以在主机环境里远程运行我们的应用了,它应该是工作的。

  总结

  作为SQL Hosting Toolkit的一部分推出的数据库发布向导应该使得为任何数据库(SQL Express 或者 SQL Server)创建 .SQL 文件非常容易。你可以使用它来轻松地dump你本机的数据库,然后用来在远程系统上重新建立完全一样的数据库