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,靠经验吃饭,因此好记性不如烂笔头,多做笔记没坏处

时间: 2024-08-09 06:32:47

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

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

原文:SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二:调用模板存储过程创建存储过程: 总结 扩展阅读 参考文献(References) 二.背景(Contexts) 在我的数据库服务器上,同一个实例

SQL Server四个“系统数据库”作用的简介

master.model.msdb.tempdb简称为“3M1T”,在后续的版本选择安装不同的组件后也有其他系统级数据库,如ReportServer.Distribution等,本次主要介绍3M1T数据库. [master数据库]:master数据库是SQL Server中最重要的数据库,记录了SQL Server系统中所有的系统信息,包括登入账户.系统配置和设置.服务器中数据库的名称.这些数据库文件的位置.系统进程. linked server及SQL Server初始化信息等.一旦数据库文件

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

在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management Studio.在对象资源管理器中,展开"SQL Server 实例"→"数据库"→"你须要导入数据的数据库"节点.单击鼠标右键,选择"任务"→"导出数据"命令. 出现导入和导出向导的欢迎界面,单击"下

Sql Server 导入另一个数据库中的表数据

在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例,阐述一下: 1.打开SQL Server Management Studio,在对象资源管理器中,展开"SQL Server 实例"→"数据库"→"你需要导入数据的数据库"节点,单击鼠标右键,选择"任务"→"导出数据"命令.出现导入和导出向导的欢迎界面,单击"下一

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

在讨论数据库之前我们先要明白一个问题:什么是数据库? 数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多的数据库.一个数据库实例最多能创建32767个数据库,但是按照实际情况,一般设计是不会达到这个限制值. 为了更明显地说明数据库,数据库包含了以下属性和功能: *. 它是很多对象的集合,比如表.视图.存储过程.约束.对象集合的最大值是2(31) - 1(超过2百亿).一般对象的数量在几百至一万. *. 它维持拥有的用

SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)

注意事项: 1.为主从服务器添加新的系统用户并设置好密码: 2.主从服务器都开启SQL Server的代理服务,并设置为开机自动启动 3.在数据库配置管理其中把SQL Server服务和SQL Server的代理服务的登录信息设置为上边添加的系统用户,并设置好密码.(记得主从服务器都需要这样设置,不要忘记了,我都是忘记了,怎么弄都不行) 4.用户共享的文件目录,共享访问时需要密码,记得要先访问共享并记住凭证,不然会提示失败. 5.SQL Server的备份,是主库的数据库服务器自动备份数据库,生

使用SQL Server Management Studio 创建数据库备份作业

SQL Server 作业无非就是按照规定的时间执行指定的脚本,这里介绍如何用SSMS(SQL Sever 2008)创建作业备份数据库. (0)假设在创建作业之前你所要备份的数据库已经存在:其次,你已经会启动SQL Sever 代理(一般是关闭的) (1)创建SQL Server代理作业 (1.1)新建作业,输出常规信息 如上图:输入作业名称(如:BackupJobTest),这里所有者和类别都是默认的,输入说明(就跟写代码要写注释一样,利人利己) (1.2)设置作业执行步骤 点击左边“选择页

SQL Server 2008 R2 主从数据库同步

一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB  IP: 192.168.1.224/24    dg: 192.168.1.1 DNS: 192.168.1.19    DNS: 202.96.209.133 从数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXSla

SQL SERVER 判断是否存在数据库、表、列、视图

SQL SERVER 判断是否存在数据库.表.列.视图 --1. 判断数据库是否存在 IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = '数据库名') DROP DATABASE [数据库名] --2. 判断表是否存在 IF EXISTS (SELECT * FROM SYSOBJECTS WHERE ID = OBJECT_ID(N'[表名]') AND OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1) PRI