zoukankan      html  css  js  c++  java
  • 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模式下完成,理论上参数值可以使用单引号双引号来,就这么个简单问题上,让我一度怀疑人品和人生。

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

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

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

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

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

    幸好作为一个老司机,在我几次确认后,我还能准确判断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,靠经验吃饭,因此好记性不如烂笔头,多做笔记没坏处

     

  • 相关阅读:
    Python入门篇-面向对象概述
    Python的序列化与反序列化
    Python的csv文件(csv模块)和ini文件(configparser模块)处理
    使用Cloudera Manager添加Sentry服务
    Python的高级文件操作(shutil模块)
    Python的正则表达式re模块
    正则表达式基础知识
    Python语言防坑小技巧
    Python标准库-数字的处理函数(math模块)
    Python数据结构汇总
  • 原文地址:https://www.cnblogs.com/TeyGao/p/5332212.html
Copyright © 2011-2022 走看看