SQLServer 服务器架构扩展之数据库扩展的一些步骤

愚人节那晚,公司进行了全面系统架构更改。
下面只列出了数据库方面该考虑的一些信息,并不完全列出所有步骤及脚本


【服务器准备】-------------------------------------------------------------------------

确定计算机IP,计算机名称
将服务器加入域环境
SSD加入须添加卷,方可出现该盘
将本机防火墙关闭(或者运行程序sqlserver通过、或者允许1433端口通过)
安装组件:.Net framwork 3.51(服务器管理器——功能——添加功能——勾选下面的.Net framwork 3.51)
sqlServer Enterprise 安装密钥准备
创建业务库文件保存路径
备份业务库空库、报表数据库、报表证书到新服务器


【数据库准备】--------------------------------------------------------------------------------

认内装账户:	NT AUTHORITY\NETWORK SERVICE (全文索引和browser认服务不变)
自启动服务:	sqlServer代理、 sqlServer Database Engine、 Report Services
需要添加账户域管理员:域\username
Reporting services 配置:	安装但不配做报表服务器
(其余认安装!有2台服务器数据库非自己安装,结果ssis没有安装!维护计划不可用!)

还原分库的空库(参考脚本)
(其中包括数据库选项、分区、用户、主键、索引、约束、各对象、扩展属性、权限、程序集、证书等)
迁移登录账号及密码到新库(参考脚本)
使用个人账号和域账号登录数据库,测试是否成功
更改数据库登录模式为: “混合模式(sqlServer 身份验证和windows身份验证)”
创建业务库存放目录及数据库备份目录
启用IP/TCP协议(打开配置管理器—sqlServer的协议,须重启sqlServer服务)
sqlServer服务账号可能没有读写文件夹的权限,在文件夹中添加
新库暂时设置回复模式:简单模式(确认隔离级别)
数据文件每个分区初始大小预先设置10GB,增长设置30MB(日志增长一样)
系统参数配置(clr enabled,max server memory (MB),max worker threads重启服务生效)
	
还原报表数据库(参考脚本)
关联报表数据库用户登录名(参考脚本)
配置及部署报表服务,多余的部署服务器删除
测试打开连接报表数据库


【创建发布】(提前创建)----------------------------------------------------------------------

创建N个分库的发布
发布数据库:P
要发布的对象:(选择所有发布项目)
	排除的存储过程: sp_getsubscriptionpendingcmds,sp_spUserCounter2_getallsubscriptionpendingcmds
	排除的标量函数: Birth_(Birth_开头的函数)
发布类型: 具有可更新订阅的事务发布
筛选的表: (先不筛选)
(不用立即创建快照!)
运行代理的统一登录账户:sql
注意发布名称
创建完成后,右键发布属性修改冲突解决策略:保留订阅服务器更改!(注意!)
用脚本添加行筛选:(参考脚本)(注意筛选条件!!FN % n=1/2/……)
确认航筛选已添加
更改作业的所有者:sa


【创建订阅】--------------------------------------------------------------------------------

分库中创建订阅
推送订阅——>选择订阅库P——>连续运行——>对更改进行排队并在可能时提交
运行代理的登录账户(分发):sql
发布服务器中更改作业所有者:sa
点击发布中的订阅:选择“重新初始化”——>立即生成新快照、标志为要重新初始化
(先创建完成一个快照后再启动另一个,快照锁表)
等待初始化完成,完成后看是否已经生成了同步触发器

(创建快照:25分钟,应用快照:17~19小时)
(报表服务配置可放到这里再配置部署)

创建连接总库的的“连接服务器”(参考脚本)
删除 V_NoXML_ 视图(14个,之前数据对比用)(参考脚本)
初始化后需重新分区(参考脚本)
设置表属性设置:LOCK_ESCALATION(参考脚本)
添加自定义的视图触发器(参考脚本)
添加busixxxx的对象权限(参考脚本)(dbo.f_split 表值函数权限,未包括再之前的脚本中)



【升级中……】--------------------------------------------------------------------------------
前期:不断备份分库到总库并还原,使数据库处于还原状态
升级中……(主要数据对比,2.5小时内完成)
确认数据没有在复制
停止总库及原来分库的sqlserver代理
备份日志尾部,拷贝到总库还原分库
更改参数max server memory (MB),减少限制,增大内存
对比数据:排除日志及作业管理表	6张千万的表(2hours),其余所有表(20minutes),1张扩展表(超1.5h,不做对比)
(不可对比,删除外键)


【后续工作必要】--------------------------------------------------------------------------------
更改参数max server memory (MB),限制内存
更新数据库统计信息: EXEC sys.sp_updatestats   
设置分库为完整模式!ALTER DATABASE [P] SET RECOVERY FULL WITH NO_WAIT
创建相关作业
创建备份方案,并进行第一次完整备份


---------------------------------------------------------------------------------------------

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...