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 本课将介绍主要的工具以及如何连接并 ...
随机推荐
- delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题
IOS 9 于17号早上正式开始推送,早上起来立马安装,这次升级包只有1G, 安装空间也大大降低(想起IOS 8 升级时,几乎把手机里面的东西删光了,满眼都是泪). 虽然安装后,网上几乎是铺天盖地的吐 ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- jqGrid学习笔记(二)
本节介绍jqGrid其他的使用方法,主要是一些基本操作,特殊的数据显示等. 1 刷新jqGrid数据. 常用到刷新jqGrid数据的情况是,在用到查询的时候,根据查询条件,请求数据,并刷新jqGrid ...
- js中~~的用法
~~(Math.random()*(1<<24))).toString(16) ~~的作用相当于parseInt
- LoadRunner常见问题整理
1 LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开In ...
- mongodb:短网址项目
短网址项目概述 1.短网址项目,是将给定的长网址,转换成短网址. 如 新浪 http://t.cn/zQd5NPw ,其中zQd5NPw就是短网址 前段页面如下
- IT_sort用法实例
form fill_it_sort. iw_sort-spos = '1'. iw_sort-fieldname = 'AUFNR'. iw_sort-up = 'X'. ...
- js判断用户是否禁用了cookie
function CookieEnable() { var result = false; if (navigator.cookiesEnabled) return true; document.co ...
- Hessian 初探
Hessian 是一个序列化协议, 他的优点在于比 Java 原生的对象序列化/反序列化速度更快, 序列化出来以后的数据更小. 序列化协议跟应用层协议无关, 可以将 Hessian 序列化以后的数据放 ...
- [php-src]窥探Php内核中的变量
内容均以php-5.6.14为例. 在看各种组合数据类型之前,有必要先熟悉下 Zend/zend_types.h 里面的自定义数据类型. #ifndef ZEND_TYPES_H // 防止多次 in ...