SQL Server 重新初始化系统数据库中的单引号问题
在最近的数据库跨机房迁移中,由于硬件的限制,需要滚动式地将数据库一台台迁移到新机房,先在新机房搭建一个新环境,将数据迁移过去,再将旧机房的机器下架搬到新机房,重新配置后用于下一轮的升级,重新配置过程中,有以下几个问题:
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 重新初始化系统数据库中的单引号问题的更多相关文章
- SQL Server 2008 R2 清空数据库中ldf日志文件
/************************************************************ * Sql Server 2008 R2 清空数据库中ldf日志文件 * 将 ...
- SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...
- Sql Server 导入还有一个数据库中的表数据
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...
- SQL Server 使用游标更新数据库中的数据(使用存储过程)
ALTER PROCEDURE [dbo].[POR_CURSOR_FOR_UPDATE] --创建存储过程 AS BEGIN SET nocount ON --忽略行数显示 DECLARE Upda ...
- MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解
判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大 ...
- SQL Server、Oracle和MySQL中查出值为NULL的替换
参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...
- Sql Server来龙去脉系列之四 数据库和文件
在讨论数据库之前我们先要明白一个问题:什么是数据库? 数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...
- SQL Server 2008 R2 主从数据库同步
一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...
- SQL Server 2012 连接到数据库引擎
第 1 课:连接到数据库引擎 https://msdn.microsoft.com/zh-cn/library/ms345332(v=sql.110).aspx 本课将介绍主要的工具以及如何连接并 ...
随机推荐
- LESS与SASS的伯与仲
工作中用到了Bootstrap,涉及到了LESS,对其做了一个简单的了解,CSS的预处理器使用最广泛的就是LESS和Sass,都是努力把CSS武装成为开发语言,让它从简单的描述性语言过渡到具有程序式特 ...
- phpPgAdmin安装与配置
1.phpPgAdmin不需要安装,直接从Sourceforge下载压缩包,解压到“/var/www/”文件夹下即可. 解压后,要为该文件夹赋予root用户和root组的权限 chown -R roo ...
- C#去掉list集合中的重复数据
List<string> conList= new List<string>(); List<string> listII = new List<string ...
- LeetCode OJ 274. H-Index
Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...
- andorid Activity和Service音乐播放器
AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...
- ng-repeat指令应用
1.ng-repeat 一看就知道跟foreach等指令类似,用于循环重复.一般用于列表和表格中.用法如下: <tr ng-repeat="data in dataList" ...
- [转]linux14.04下caffe的安装步骤
linux14.04下caffe的安装步骤 原文地址:http://blog.csdn.net/xiaoyang19910623/article/details/52997481?locatio ...
- spring expression
http://transcoder.baidu.com/from=1014517c/bd_page_type=1/ssid=0/uid=0/baiduid=C286FE95679B12426FD1A9 ...
- Java泛型总结(转)
本文是转载,原文链接:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: ...
- JSP 中文乱码显示处理解决方案
来源: <http://blog.csdn.net/joyous/article/details/1504274> JSP 中文乱码显示处理解决方案 分类: 所有 Web前端 J2EE20 ...