工作经验~数据库迁移的一些体会

本文探讨了在多业务和多数据库环境下,如何通过数据库拆分和迁移来提高系统性能和稳定性。具体介绍了磁盘利用率高、从库延迟及慢日志异常等情况下的拆分策略,并提出了实施迁移的一些建议。

一 简介:本文是本人对于迁移库的理解,仅供参考

二 描述: 在业务众多,DB众多的情况下,什么情况下需要针对 一机多库的情况进行数据库的拆分

三 现象:

    如果有以下情况之一的,建议进行数据库的迁移与拆分

    1 磁盘利用率util值:对于机械硬盘,一定要持续关注utl值,一旦utl值一直处于饱和状态,这样就需要考虑拆分业务密集的库,防止相互影响

    2  从库的延迟:对于一主N从的架构,如果N从都出现延迟警报,而这些从库还参与了读的功能,这时候就需要分析binlog,定位DML密集的N个库,进行拆分处理,防止读受到影响

    3  不寻常的慢日志: 在已经优化完大表慢查询的情况下,慢日志出现很多不该慢的sql(比如扫描千行这种),甚至还有DML语句,这样情况下也要进行拆分处理,防止业务受到影响

四 建议

   1 对于业务量增长很迅速,表数据量很大的库,建议独占一组集群.比如程序的分库分表业务,比如核心库,建议不要再放置其他DB,防止受到影响

    2 业务上线DB最好能提供关于新DB的描述,越详细越好,这样有助于DBA进行规划放置

五 如何迁库

    做法 1 建议一组新集群,作为原主的从库,新主作为新从的级联库

            2 针对 切业务的时间,要和研发讨论好,最好不要有任何DML操作,因为如果频繁的话,可能导致新主的级联复制发生错误,导致数据混乱,虽然时间很短 

            3 建议采用ZK etcd这样的前端,这样,只需更改value值,然后程序重启,观察程序IP进行漂移即可

            4 进行善后清理工作         

五 总结

    针对DB越来越多,物理机无法完全满足的情况下.根据物理机的容量极限和业务库的本身进行评估,需要一个比较成熟的方案,这样可以避免日后出现问题,才进行迁移数据库

转载于:https://www.cnblogs.com/danhuangpai/p/9378303.html

<think>好的,用户想要了解关于SQL Server数据库创建和管理的实验心得与体会。首先,我需要回顾用户提供的三个引用内容,看看里面有哪些关键点可以整合到回答中。 引用[1]提到实验目的包括掌握数据库创建方法、分离、备份、附加和删除,以及使用交互式和T-SQL两种方式。用户可能想了解实际操作中的步骤和注意事项,比如如何正确使用这两种方法,以及实验中可能遇到的问题和解决方法。 引用[2]是关于数据库完整性的实验,涉及创建数据表和设置主键约束。这说明在数据库管理中,表结构的定义和约束的设置也是重要部分,可能需要在心得中提及数据表设计的经验。 引用[3]详细展示了使用T-SQL创建数据库的示例,包括文件路径、大小设置等。这里需要注意路径的正确性以及参数设置的合理性,比如初始大小和增长方式,这些都是实际操作中容易出错的地方。 接下来,我需要组织这些信息,形成结构化的心得。可能分为几个部分:创建数据库的方法(交互式和T-SQL)、文件路径管理、分离与附加的重要性、备份策略、约束设置的重要性,以及常见问题解决。 需要确保回答符合用户的要求,结构清晰,分点说明,并且结合实验中的实际例子。同时,根据用户的指令,生成相关问题,可能涉及T-SQL与交互式的区别、文件路径错误处理、分离与备份的区别、约束的作用等。 还要注意使用正确的中文表达,避免技术术语使用不当,同时保持口语化,让读者容易理解。最后检查是否有遗漏的关键点,比如引用中的实验意义和实际应用,如在不同设备转移数据库的需求,这也是备份和附加的实际应用场景之一。</think>### SQL Server数据库创建与管理实验心得 通过SQL Server数据库创建与管理的实验,我掌握了数据库全生命周期管理的核心技能,以下是具体体会: --- #### 一、数据库创建方法对比 1. **交互式创建** 通过SSMS图形界面创建时,需特别注意**文件组设置**和**自动增长参数**。例如,主数据文件(.mdf)建议设置初始大小为$5-10MB$,日志文件(.ldf)初始大小通常为主文件的$1/3$,文件增长方式推荐百分比增长以避免频繁扩容[^3]。 2. **T-SQL创建** 使用`CREATE DATABASE`语句时,路径参数需要**绝对路径**且必须存在,否则会报错。例如: ```sql CREATE DATABASE [TEST] ON PRIMARY (NAME = 'TEST_data', FILENAME = 'D:\SQLData\TEST.mdf') LOG ON (NAME = 'TEST_log', FILENAME = 'D:\SQLLog\TEST.ldf') ``` 这种方式的优势在于可保存为脚本重复使用[^3]。 --- #### 二、数据库文件管理要点 - **分离与附加操作** 分离数据库时需确保**无活动连接**,附加时若出现权限问题,需检查.mdf/.ldf文件的NTFS权限。这是跨设备迁移数据库的核心方法[^1]。 - **备份策略** 实验中发现完整备份(`BACKUP DATABASE`)会锁定数据库,而差异备份(`WITH DIFFERENTIAL`)可减少备份时间,适合频繁更新的数据库[^1]。 --- #### 三、数据完整性实践 通过创建带约束的数据表,例如: ```sql CREATE TABLE Table1 ( Class_id VARCHAR(6) PRIMARY KEY, Class_name VARCHAR(20) NOT NULL ) ``` 深刻理解到**主键约束**能避免重复数据,`NOT NULL`约束可强制业务规则,这是保证数据质量的关键[^2]。 --- #### 四、常见问题总结 | 问题类型 | 解决方法 | |---------|----------| | 文件路径错误 | 使用`xp_cmdshell`创建目录或手动建立文件夹 | | 服务无法启动 | 通过SQL Server配置管理器检查TCP/IP协议状态 | | 权限不足 | 在Windows资源管理器中对数据库文件添加`SQLServerMSSQLUser`权限组 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值