首页 > 数据库 >SQL SERVER 物理分区和读写分离主从库数据同步

SQL SERVER 物理分区和读写分离主从库数据同步

时间:2023-05-15 16:22:42浏览次数:40  
标签:读写 分区 SERVER 点击 SQL 可以 数据 主从

对于对现有系统进行数据性能优化顺序建议

1. 先考虑物理分区,因为物理分区对我们代码业务不会有改动,但是有局限性,优化效果不是很好

2. 再考虑读写分离,读写分离对代码改动不会太多,并且只试用超过读:写=8:2的比例,因为读写分离主要是缓解读数据库的压力,如果读的压力并没有那么大,就不用考虑这种方式

3. 最后考虑分库分表或者微服务,这种就是对业务代码进行大改,但是效果也是最好的

数据库物理分区

优势

1. 可以快速、高效地传输或访问数据的子集,同时又能维护数据收集的完整性。 例如,将数据从 OLTP 加载到 OLAP 系统之类的操作仅需几秒钟即可完成,而如果不对数据进行分区,执行此操作需要几分钟或几小时。
2. 可以更快地对一个或多个分区执行维护或数据保留操作。 这些操作的效率更高,因为它们仅针对这些数据子集,而非整个表。 例如,可以选择压缩一个或多个分区中的数据、重新生成索引的一个或多个分区或截断单个分区中的数据。 还可以将单个分区从一个表切换到存档表。
3. 可以根据经常运行的查询类型提高查询性能。 例如,在分区依据列与表联接的列相同时,查询优化器可以更快地处理两个或多个已分区表之间的相等联接查询。 有关详细信息,请参阅下面的查询。

使用

官网地址:https://learn.microsoft.com/zh-cn/sql/relational-databases/partitions/create-partitioned-tables-and-indexes?view=sql-server-ver16

选择分区的列,我这里用的时间,也可以根据其他列作为分区的算法

随便填写一个函数和方案

这里边界就是设置刚才那列的值,根据自己使用情况设置,文件组用的同一个,官网说不会影响分区的优势

分配好后点击预计存储空间可以看到分区后的数据信息预计值

点击下一步生成脚本,然后执行就行了

最后我们右键这张表的属性页,在存储里面就可以看到分区信息

 

读写分离配置主从库

这里就不演示代码了,只演示主从库配置和数据同步,

就相当于主库主要负责写(增删改),从库负责读(查),一般业务需要读:写=8 : 2 ,并且数据一致性要求不高的场景,因为主从数据同步有延迟,正因为有延迟,所以主库除了负责写,特定情况比如对数据要求一致性比较高的情景就也可以用于读

先打开sql server服务代理

 

 

配置分发服务器

先创建共享文件夹并设置访问权限,不然后期会提示没有权限导致失败

随便新建一个文件夹,点击属性-》共享就可以生成一个路径,复制这个路径待会儿会用。

 

再设置这个文件访问权限,我这里加了个Everyone都可以访问读写

现在就可以配置分发了,如果没有这个配置分发的选项,要么是版本不对,我本地是express版本就没有这个选项和本地发布文件夹。下载企业版就有了

如果版本对了就是没有这个选项就是之前用过,直接选择禁用配置和分发,删除之前的记录就可以了

一直点击下一步,到这里配置快照文件夹路径就选择刚才共享的路径就行了

 

一直点下一步,最后点完成就可以出现这个界面了

添加发布

选择需要发布的数据库

选择发布类型,这里一般选择事务发布,主从同步比较快,具体看业务

选择需要发布的表字段和存储过程(我这里没有)

点击下一步这里要配置账户

 

点击安全设置

确定之后,点击下一步,填写发布名称,点击完成等待就可以了

 

添加订阅

这里新建一个数据库,新建了一个cs_db_s1的库

 

下一步,点击这个按钮配置服务连接

 

确定之后下一步,最后点击完成就可以了

这里校验一下,可以看到刚刚新建的数据库,已经把数据表同步过去了

 

测试一下

这里修改主库后马上查询主库和从库,发现数据对不上,这里就可以看出问题,主从同步需要时间,所以读写分离主从库这种模式适用对数据一致性要求不高的场景

等过几秒再查询从库,这个时候就可以看出数据已经同步了

 

标签:读写,分区,SERVER,点击,SQL,可以,数据,主从
From: https://www.cnblogs.com/roubaozidd/p/17358824.html

相关文章

  • 将CSV导入到MySQL数据库
    参考:https://blog.csdn.net/fwdwqdwq/article/details/126081152.使用一下命令查看是否允许从外部路径导入文件mysql>showvariableslike"%secure%";+--------------------------+-------+|Variable_name|Value|+--------------------------+-------+|r......
  • sql server 中 COALESCE()函数的使用
    一、sqlserver 中coalesce函数的介绍COALESCE(expression,value1,value2……,valuen); COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。如果expression不为空......
  • mysql ssl
    服务器提示:Causedby:javax.net.ssl.SSLHandshakeException:Remotehostclosedconnectionduringhandshake,atsun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1002)~[na:1.8.0_161],atsun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSoc......
  • mysql终止慢查询进程
    要终止执行慢查询的MySQL进程,你可以使用`KILL`语句。以下是在MySQL中使用`KILL`语句终止慢查询的一般步骤:1.首先,使用以下命令查找正在执行的慢查询的进程ID(也称为线程ID):SHOWFULLPROCESSLIST;这将显示当前正在执行的所有MySQL进程的列表,包括进程ID、执行时间和查询语句。2......
  • SQL Server 夸数据库查询
    数据需要在两个服务器之间的数据库查询DB1DB2  1.安装MicrosoftSQLServerDataTools 2.把DB1里面要查询的表保存成csv文件,命个名假设叫f.csv3.安装路径里面C:\ProgramFiles(x86)\MicrosoftSQLServer\130\DTS\BinnDTSWizards.exe 点开这个文件选择Fla......
  • CAS Server 搭建
    1、CASServer下载,我这里选择了5.3的版本,下载地址https://github.com/apereo/cas-overlay-template/tree/5.32、HTTPS证书生成,我是用JDK自带的keytool工具生成的,进入JDK安装目录,在bin目录下打开cmd,输入以下命令行就可以生成证书了keytool-genkey-aliascasserver-keya......
  • SQL Server中 函数 ROW_NUMBER()OVER 的使用
    ROW_NUMBER()OVER,它为结果集的分区中的每一行分配一个连续的整数。行号以每个分区中第一行的行号开头。语法实例:SELECTROW_NUMBER()OVER(PARTITIONBYttTJ.ID_TeamsORDERBY(SELECTNULL))ASRowNumFROMscDayRpt_Teams_JobContentttTJ在上面语法中:PAR......
  • NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成
    VeritasNetBackup10.2(Unix,Linux,Windows)下载-一流的企业备份和恢复原文来自:VERITAS中文社区2023-04-27在执行恢复任务时,手动提取、更新数据库和实例并将其附加到PostgreSQL和MySQL是常规操作。而在最新的NetBackup10.2版本中,执行恢复已不再需要上述手动流程......
  • MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究
    MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究关键词:主从博弈共享储能综合能源微网优化调度参考文档:《基于主从博弈理论的共享储能与综合能源微网优化运行研究》完全复现仿真平台:MATLAByalmip+cplex主要内容:代码主要做的是基于主从博弈理论的共享储能与综......
  • 安装 MySQL 数据库
    1、默认yum存储库安装[[email protected]~]#yum-yinstallwget  #安装wget下载工具[[email protected]~]#wgethttps://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm#下载mysql官方yum源安装包[[email protected]~]#yum-ylocalinstallmysql......