具体问题解决:分离脚本

简介: 原文:具体问题解决:分离脚本  有时候需要从一个服务器转移数据库到另一个。如果打算一下子分离所有数据库,那么下面的脚本就是有用了。   生成分离脚本:   SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10) ...
原文: 具体问题解决:分离脚本

  有时候需要从一个服务器转移数据库到另一个。如果打算一下子分离所有数据库,那么下面的脚本就是有用了。
 
生成分离脚本:
 
SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10)                 
+ 'ALTER DATABASE [' + CONVERT(VARCHAR(500), Db_name(database_id)) + '] '
+ 'SET SINGLE_USER WITH ROLLBACK IMMEDIATE'
+ Char(10) + 'use master;' + Char(10) + 'GO'
+ Char(10)
+ 'EXEC master.dbo.sp_detach_db @dbname = N'
+ '''' + CONVERT(VARCHAR(500), Db_name(database_id)) + ''''
+ ';' + Char(10)
+ 'GO' + Char(10)
FROM master.sys.master_files WHERE Db_name(database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' )

 

这个脚本生成了需要分离数据库的脚本。在where子句中排除了四个系统数据库。

 
 
附加数据库操作脚本:
 
  下面将生成一个脚本来分离数据库。确保运行在原服务器上。因为一旦你分离数据库,数据库将在原来的服务器上消失。
  脚本基于一个重要假设,假定每个数据库只包含一个数据文件和一个日志文件。如果有数据库实例带有多个数据或者日志文件,还要手动分离。另外,脚本假定源和目标服务器有相同的文件路径。如果日志或者数据文件路径不同,也需要重新替换生成的脚本。
 
SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10)                 
+ 'CREATE DATABASE [' + CONVERT(VARCHAR(500), Db_name(x.database_id)) + ']'
+ ' ON ' + Char(10) + '( physical_name = N' + ''''
+ x.physical_name + '''' + '),' + Char(10)
+ '( physical_name = N' + '''' + y.physical_name + '''' + ')'
+ Char(10) + ' FOR ATTACH' + Char(10)
+ 'GO' FROM master.sys.master_files x, master.sys.master_files y
WHERE Db_name(x.database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' )
AND x.database_id = y.database_id AND x.physical_name LIKE '%mdf'
AND
y.physical_name LIKE '%ldf'

 

 

 

目录
相关文章
|
7月前
|
安全
集群同步文件分发脚本编写
集群同步文件分发脚本编写
58 0
|
Java 调度 开发工具
QuickTask动态脚本支持框架整体介绍篇
一个简单的动态脚本调度框架,支持运行时,实时增加,删除和修改动态脚本,可用于后端的进行接口验证、数据订正,执行定时任务或校验脚本
223 0
QuickTask动态脚本支持框架整体介绍篇
如何从一个大文件中分离小文件
互联网应用经常需要存储用户上传的图片,比如facebook相册。 facebook目前存储了2600亿张照片,总大小为20PB,每张照片约为80KB。用户每周新增照片数量为10亿。(总大小60TB),平均每秒新增3500张照片(3500次写请求),读操作峰值可以达到每秒百万次
如何从一个大文件中分离小文件
|
缓存 JSON NoSQL
180628-动态任务执行框架想法篇
对于后端而言,数据订正可算是非常非常频繁且常见的事情了,常见的有DB、缓存、内存等数据源中的数据订正,对于非应用内存而言,其他有实体或者可以直接通过官方的提供的控制台连接进行修改的数据订正,相对比较简单,而对于应用内存,如果没有应用内通知并处理相关逻辑,多半就只能重启应用来实现刷新内存缓存了
145 0
180628-动态任务执行框架想法篇
|
canal 消息中间件 JSON
简化ETL工作,编写一个Canal胶水层(上)
这是一篇憋了很久的文章,一直想写,却又一直忘记了写。整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架"。这个精悍的胶水层已经在生产环境服役超过半年,这里尝试把耦合业务的代码去掉,提炼出一个相对简洁的版本。
306 0
|
canal 消息中间件 SQL
简化ETL工作,编写一个Canal胶水层(下)
这是一篇憋了很久的文章,一直想写,却又一直忘记了写。整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架"。这个精悍的胶水层已经在生产环境服役超过半年,这里尝试把耦合业务的代码去掉,提炼出一个相对简洁的版本。
522 0
|
XML JSON API
代码改动和配置文件相分离
因为我们支持的字段可能会发生变化,为了避免因为这些变化导致我们频繁调整代码,我把所有字段的全集和每个网站支持的字段都放到配置文件里了。 Backend仓库下有个配置文件koiFieldList.xml, 存放的是支持字段的全集。 我会写一个API,将这个文件的内容暴露出来。
代码改动和配置文件相分离
|
JSON 前端开发 JavaScript
在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息
在前端的JavaScript脚本中,如何高效率的使用数据库中的配置信息
128 0