在最近的数据库跨机房迁移中,由于硬件的限制,需要滚动式地将数据库一台台迁移到新机房,先在新机房搭建一个新环境,将数据迁移过去,再将旧机房的机器下架搬到新机房,重新配置后用于下一轮的升级,重新配置过程中,有以下几个问题:

1:由于机房和IP已经发生变化,因此需要按照命名规则修改服务器名称。

2:原数据库上的数据如登录账号/作业/链接服务器等等需要删除

3:部分服务器因磁盘变动,仅保留系统盘,部分SQL Server文件(如果系统数据库文件)已经丢失

对于问题1和问题2,可以进行手动删除或者写个脚本进行清理,但对于问题3,有三种处理方式:

1:卸载SQL Server然后重新安装

2:重新安装OS和SQL Server

3: 修改注册表信息,然后重新初始化系统数据库

方式2最简单但也最耗时,方式1有卸载失败和卸载不干净导致无法重装SQL Server的风险,而方式3相对简单,且能同时处理问题1和问题2,因此优先选择方式3来处理。

操作步骤:

1:修改服务器IP和服务器名称

2:启动SQL Server服务,根据服务启动的错误日志找到已缺少的文件路径,修改注册表将文件指向现有磁盘上某个文件夹

3:重新初始化系统数据库。

--============================华丽的分割线========================--

重新初始化系统数据库可以用命令在cmd模式下完成,理论上参数值可以使用单引号双引号来,就这么个简单问题上,让我一度怀疑人品和人生。

第一次使用域账号xxx\xxxxx,报错用户不存在,以为账号中的反斜杠没写对;

第二次使用域账号xxx/xxxxx,报错用户不存在,以为域账号有问题;

第三次使用本地账号.\administrator,报错用户不存在,以为A没有大写;

第四次使用本地账号.\Administrator,报错用户不存在,以为人品有问题;

第五次使用本地账号ServerName\Administrator,报错用户不存在,开始质疑人生

幸好作为一个老司机,在我几次确认后,我还能准确判断administrator这几个因为单词字符没写错,再次感谢我的初中英语老师。

万幸之前做过小笔记,保留着上次成功执行的脚本,复制过去竟然成功执行,细细对比,竟然只是单引号双引号的问题,心中无数小马奔腾啊!!!

正确打开姿势:

--重建系统数据库
--命令行下转换到安装文件setup.EXE所在目录执行如下命令
--/QUIE 指定在没有任何用户界面的情况下运行安装程序。
--/ACTION=REBUILDDATABASE 标识重建系统数据库
--/INSTANCENAME=MSSQL200801 实例名称
--/SQLSYSADMINACCOUNTS="ALEX/LIDONGSHENG"--需要添加的windows账号。最好是启动账号
--/SAPWD=54546546 SA密码 Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=".\administrator" /SAPWD="SA@PWD"

--===========================华丽的分割线=========================--

总结: 作为DBA,靠经验吃饭,因此好记性不如烂笔头,多做笔记没坏处

SQL Server 重新初始化系统数据库中的单引号问题的更多相关文章

  1. SQL Server 2008 R2 清空数据库中ldf日志文件

    /************************************************************ * Sql Server 2008 R2 清空数据库中ldf日志文件 * 将 ...

  2. SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...

  3. Sql Server 导入还有一个数据库中的表数据

    在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...

  4. SQL Server 使用游标更新数据库中的数据(使用存储过程)

    ALTER PROCEDURE [dbo].[POR_CURSOR_FOR_UPDATE] --创建存储过程 AS BEGIN SET nocount ON --忽略行数显示 DECLARE Upda ...

  5. MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解

    判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大 ...

  6. SQL Server、Oracle和MySQL中查出值为NULL的替换

    参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...

  7. Sql Server来龙去脉系列之四 数据库和文件

        在讨论数据库之前我们先要明白一个问题:什么是数据库?     数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...

  8. SQL Server 2008 R2 主从数据库同步

    一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...

  9. SQL Server 2012 连接到数据库引擎

    第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx   本课将介绍主要的工具以及如何连接并 ...

随机推荐

  1. delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题

    IOS 9 于17号早上正式开始推送,早上起来立马安装,这次升级包只有1G, 安装空间也大大降低(想起IOS 8 升级时,几乎把手机里面的东西删光了,满眼都是泪). 虽然安装后,网上几乎是铺天盖地的吐 ...

  2. 编程实践中C语言的一些常见细节

    对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...

  3. jqGrid学习笔记(二)

    本节介绍jqGrid其他的使用方法,主要是一些基本操作,特殊的数据显示等. 1 刷新jqGrid数据. 常用到刷新jqGrid数据的情况是,在用到查询的时候,根据查询条件,请求数据,并刷新jqGrid ...

  4. js中~~的用法

    ~~(Math.random()*(1<<24))).toString(16) ~~的作用相当于parseInt

  5. LoadRunner常见问题整理

      1  LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开In ...

  6. mongodb:短网址项目

    短网址项目概述 1.短网址项目,是将给定的长网址,转换成短网址. 如 新浪 http://t.cn/zQd5NPw ,其中zQd5NPw就是短网址 前段页面如下

  7. IT_sort用法实例

    form fill_it_sort.     iw_sort-spos = '1'.      iw_sort-fieldname = 'AUFNR'.      iw_sort-up = 'X'. ...

  8. js判断用户是否禁用了cookie

    function CookieEnable() { var result = false; if (navigator.cookiesEnabled) return true; document.co ...

  9. Hessian 初探

    Hessian 是一个序列化协议, 他的优点在于比 Java 原生的对象序列化/反序列化速度更快, 序列化出来以后的数据更小. 序列化协议跟应用层协议无关, 可以将 Hessian 序列化以后的数据放 ...

  10. [php-src]窥探Php内核中的变量

    内容均以php-5.6.14为例. 在看各种组合数据类型之前,有必要先熟悉下 Zend/zend_types.h 里面的自定义数据类型. #ifndef ZEND_TYPES_H // 防止多次 in ...