数据库服务器的分区管理策略 (数据库服务器分区)

随着数据量的不断增大,数据库服务器的分区管理已经成为了数据库管理中不可忽视的部分。决定了数据的存储方式和数据的可靠性,对于数据库的性能和数据的安全都有着至关重要的影响。因此,本文将从分区设计原则、分区方式、分区键选择、分区数量等方面探讨,希望对读者有所启示。

一、分区设计原则

数据库服务器的分区管理合理性直接影响数据库系统的性能和可用性。分区设计时需要考虑以下几个原则:

1. 数据访问方式

根据数据的读写特点进行分区,将访问频率相似的数据放在同一分区中,以提高系统的性能效率。

2. 分区策略的可行性

分区策略要符合系统架构,要根据场景需求,尽量减少数据迁移的工作量。

3. 数据量大小

根据数据尺寸与分区数量的关系,确定分区数量,分区数量过多会增加管理成本、分区数量过少会影响查询性能。

4. 分区表的稳定性

分区表需要与操作系统的文件系统协同,确保分区表在错误状态下的可恢复性和快速恢复性。

二、分区方式

常见的分区方式有三种:范围分区、哈希分区和列表分区。

1. 范围分区

范围分区是根据某一列的范围值定义分区。范围分区的优势是快速定位到需要查询的数据,查询效率高,数据归档和删除操作简单明了,但缺点是分区键的选择比较困难,缺乏统一性。

2. 哈希分区

哈希分区是根据哈希算法计算值来定义分区。哈希分区的优点是哈希算法规避了不均匀的数据范围,减少了不必要的数据移动,缺点是查询效率相对较低。

3. 列表分区

列表分区是根据列的值将数据分区,使用非标准化的列对数据进行分组。列表分区的优点是更加具有针对性,可以避免因数据分布不均匀而造成分区不利情况,但缺点是维护和分区操作相对复杂。

三、分区键选择

分区键是分区的基准,它决定了数据如何存放到分区内。关于分区键的选择,我们可以根据以下几点进行考虑:

1. 数据符合分布规律

分区键应具有大量重复值,而重复值分布均匀数值相差不悬殊,这样可以均匀分配到各个分区上,避免数据倾斜。

2. 数据增长稳定

分区键应选择业务不会轻易改变的列,如时间戳、事务id等,减少数据整合迁移的工作量。

3. 分区标识易于操作

分区键需要有较多的查询用途,支持复杂查询操作。

四、分区数量

对于分区数量的选择,需要在实际业务和场景考虑的基础上进行权衡。分区数量的过多会增加管理成本,分区数量过少会影响查询性能。应当根据数据量的大小、瓶颈所在、系统的扩展性等因素进行权衡选择。

是数据库管理中非常重要的部分。在设计分区策略时,需要遵循分区设计原则、选择合适的分区方式和分区键以及确定合适的分区数量。同时,在实际操作中,也需要进行分区管理的监控和维护,确保系统的运行稳定和高效。

相关问题拓展阅读:

Linux下如何分区

方案一:“标准”方案

/ 8G SWAP 2G /BOOT 100m /USR 7G /HOME 8G

说明:/ 8G 其实6G这样子就够用了,不过还是要留一些冗余,比如有些软件默认就安装在这里了,或者是您临时将某些文件放在桌面(假如您在ROOT下)因此还是建议8G

SWAP 2G 临时分区,更大饥者值也就是2G了,如果您的物理内存足够大,比如512M或者1G以上,SWAP可以设置得小一点。通常就是将它设置成更大值了,因为这2G对硬盘来说或许不算什么(现在硬盘动则几十上百G的)但是当您在运行很多的程序的时候,或许这个SWAP就派上了用场(我曾经观察过自己的系统,512M的内存竟然也有用光的时候–没开什么大程序,而且也调用到了SWAP。)

/BOOT 100M 这个BOOT分区通常是作为一个独立的分区的,如果您仅仅是实验的话,就不一定需要单独划分。但是要记住,在单独的LINUX系统中,这个分区更好是独立的。

/USR 7G 准确的说7G可能有点小了,如果您需要用到MYSQL服务的话。这里通常是放程序文件的地方,有些数据库比如MYSQL不特意指定数据库存放路径的话神明也是放在这里。。因此您可以根据需要调节这个区的大小。

/HOME 8G您说到需要放置一些音乐文件什么的,因此这个区相应的划分得大一点。您可以根据您的空间总量来确定这个区的大小

以上是比较均衡的划分,相应的如果是单个硬盘全部使用的话,也是基本可以按照这个比烂瞎薯例的。因为是实验,因此就不单独划分/VAR区了,在以后真正应用的时候,可能是需要划分/VAR区的,这里通常用于设置FTP以及WEB服务,还有一些系统日志也放在这里。因为空间有限,就不单独划分了。

方案二 “极端”方案

先确定您在/HOME下大概需要多少空间,然后将剩余的空间全部分配给/

或者您不能确定,那么请将所有的空间都分配给/

希望我提出的方案能够对您有用~

方案一:“标准”方案(现在硬盘都是TB的,这里以最基本的分区大小来说明)

/根分区:8G

SWAP交换分区:2G

/BOOT引导分区:100m

/USR分区:7G

/HOME分区:8G

说明:

/ 8G 其实6G这样子就够用了,不过还是要留一些冗余,比如有些软件默认就安装在这里了,或者是临时将某些文件放在桌面(假如您在ROOT下)因此还是建议8G。当然现在硬盘越来越大,基本没有太多讲究。

SWAP 2G 临时分区,更大值也就是2G了,如果您的物理内存足够大,比如512M或者1G以上,SWAP可以设置得小一点。通常就是将它设置成更大值了,当然现在物理内存基本是1块钱1MB,8G、16G的都很常见,基本原则是物理内存超过8G,如果做服务器,交换分区则要8G以上。

/BOOT 100M 这个BOOT分区通常是作为一个独立的分区的,如果您仅仅是实验的话,就不一定需要单独划分。但是要记住,在单独改清档的LINUX系统中,这个分区更好是独立的。

/USR 7G 准确的说7G可能有点核乱小了,如果您需要用到MYSQL服务的话。这里通常是放程序文件的地方,有些数据库比如MYSQL不特意指定数据库存放路径的话也是放在这里。因此您可以根据需要调节这个区的大小。

/HOME 8G您说到需要放置一些音乐文件什么的,因此这个区相应的划分得大一点。您可以根据您的空间总量来确定这个区的大小

方案二 “极端”方案

先确定您在/HOME下大概需要多正顷少空间,然后将剩余的空间全部分配给/

或者您不能确定,那么请将所有的空间都分配给/

老鸟谈生产场景如何对linux系统进行分区?

前言:

我们买房子时,会考虑1室1厅,2室1厅,或3室2厅……!那么具体如何选,是要看手中的money和家庭的人口数量。

同理,服务器操作系统在分区时也是如此,到底分3个区,4个区,要不要分/home/ /var,这也要看我们的业务需求,和运维规范或者说运维领导的喜好。分多了,分少了,在不同的业务场景都可能会有一些麻烦问题(LVM可以解决这个问题,不过有他的弊端,或者说,某些场景是画蛇添足)。

在阐述这个问题之前我们先来简单说下基础分区/boot分区、swap分区和/(根)分区的作用。

Linux的/boot分区、swap分区和/(根)分区的作用

/boot 引导分区,存放引导文件和Linux内核等。

启动文件:用于判断你需要启动哪个操作系统或启动哪个内核。

内核:简单的讲腔升,程序与硬件间的桥梁,你使用应用程序通过内核控制整个计算机。

分区时一般设定:M,正式环境下,linux引导文件及内核全部大小小于100M。

SWAP交换分区,作为虚拟内存使用。用于当物理内存不足时,调用硬盘的一部分来充当内存使用,这个就是所谓的虚拟内存。 其作用类似windows的pagesfile.sys。

分区时一般设定:swap分区的大小=1.5*物理内存容量。当前,服务器的内存已经很便伍吵老宜了(4G价格小于800)。因此,现在的生产环境服务器内存一般都比较大了(如:我的生产环境内存一般为16-32G),此时swap分区的大小分的内存差不多就好了。而内存比较小(8G或8G以下)的话,可以为内存的1.5-2倍,另外,请大家注意一点,swap分区尽可少用,正常情况下,当内存充足的情况下,swap分区是不会被使用的,因此,一旦发现内存充足时,而swap确使用了很多,说明,应用程序等进程有内存 泄露,此时,要和开发程序的人员一起来,排查哪里内存泄露。当系统使用swap分区用的越多,系统性能反而会下降,某些大内 存数据库也可能不使用SWAP分区,也是可以考虑的。不过,这也 会带来系统内存耗尽,服务直接挂掉的风险。而SWAP是内存不够时一个缓冲的地带。虽然慢,服务器不会挂掉。具体如何使用人者见仁了。

/ 根分区,作为整个文件系统的根目录,硬盘不论分几个区。所有的文件都会在根目录下。在windows里,我们把硬盘分为c: d: e: 等,然后分别存放系统、程序、游戏、歌曲等。而在linux下不一样了:不论你分几个区,你都要在给他们单独起个名字,然后分别用 /data,/music,/study这样名字的目录来把分的分区挂载到各自的目录上提供访问,和目录完全一样的待遇。

在linux下,硬盘看起来就像一个分区一样。这个分区的根目录,就是/ 。分区时一般设定:分完上面两个区后,剩下的都给根分区即可。 在生产场景大规模(200台以上服务器)网站运维中,普通服务器的分区,分上面三个区是不

错的选择。

采用/boot分区、swap分区和/(根)分区的方案优缺点、优点:

优点:

简单,使用方便,可批量安装部署使用,而且不会因为分多个分区,有的分区满了,有的分区剩余很多空间又不能被利用的情况(LVM的情况这里先不阐述)。(其实也是可以使用的,可以fdisk删除重建分区,然后进行扩展,不过过程就复杂了,有兴趣的朋友可以单独交流)。

缺点:

如果系统坏了,重新装系统时,因为数据都在/(根分区),而导致重装系统时数据备份麻烦了,如果是加分了/usr,/home ,/var等分区,那么系统坏了。可以直接在/(根分区)装系统,而不会破坏其它分区的数据。当然,我刚才也说了,如果是集群的节点,不存在需要备份数据的情况下,本文的分区方案优点非常明显,不需要担心某个分区暴满而其它分区不能使用的问题。

生产环境中安装linux系统时如何进行分区?

下面是我对本文主题的答案,供大家参考使用。仅代表老男孩的个人观点。

有很多学生及朋友会在这里纠结,到底产环境中安装linux系统时如何进行分区?

比如,以上/boot分区、swap分区和/(根碰陪)分区是基本的,另外,要不要分/home /var等,甚至要不要把数据单独分区。其实,这个问题没有固定的答案。那么不给大家答案你们还不甘心,所以呢,我就再详细说下吧。

在生产场景中,一般来说都是根据具体的业务需求及在整个架构中该服务器处于的角色来对该服务器分区,比如: lvs负载均衡下的web服务器,上面的分区方式就是非常好的(/boot分区、swap分区和/(根)分区就可以了),原因是:简单、方便,不必担心某个分区满的问题,实际应用中对/根,swap做好使用监控报警就满好了。

如果是小公司,没有负载均衡只有单机的web server,那把程序数据单独分区(存放web及db数据)比较理想,如:/www。如果是存放数据库的服务器(mysql或oracle)可以把数据文件单独分区,如:/data。

某些网友很执着的,单独分/home /var,然后告诉我说,分/var防止系统被数据撑满(N年前书上确实这么说的),这样的朋友就是处理问题不灵活了,比较呆板,换句话,很可能没真正接触过生产运维环境。

提示:以上的分区方式,是可以建立在raid基础上的。有关生产场景不同角色的服务器如何选择raid的问题,我们下次在谈。

附带:其它常用分区目录介绍

/home 普通用户的家目录默认存放目录;

/usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,比如 /usr/in 或/usr/X11R6/in 或/usr/local/in 等;还有程序的头文件存放目录/usr/include。

/var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;

老男孩调查征集:

linux分区最少两个分区,最多一个硬盘只支持15个分区。这两个州饥区是必需的,一个是根分区,就是挂载点为’/’的,分区类散闷型为ext3或则ext4;另一个没有挂载点,分区类型就是swap。大小方面,swap

一般为内存两倍,如果你的内存就有一两个G,只分一倍内存就够了。而’/’根分区的大小为系统大小,初学都分大点,10G能将光盘里东西全部装完,但推荐装自己需要的就行了。用不上的就不用装了,网上有相应的视频教程。也有分三个区,四个区的,这随自己,但大部分都分三个区,是把/boot分区单独分出来,这是为了方便系统启动冲迹弯,因为如果你的硬盘太大,系统盘放到最后面了,这时常把/boot分区分出来,放在最前面,以防系统启动时,寻址不到。还有就是方便多系统安装。学linux去看《鸟哥的私房菜》里面有讲。

先安装XP,留最少让迟顷5G以上(更好10G以上)的空间。

安装linux,

安装前它会有自带的分区工具叫你分区的。

分区的方按有很多种,初学者不用分得很细的。

一般来说我们需要一个swap分区,一个/boot分区,一个/usr分区,一个/home

分区,一个/var/坦陆log分区。旦册当然这没有什么规定,完全是依照你个人来定的。但记住至少要有两个分区,一个swap分区,一个/分区。

如何设置ecs服务器一个数据盘20g分区

1、首先,我们检查下察锋云服务器的硬盘情况

因为在没有格式化和分区数据盘之前,使悄租用“df –h”命令是看不到数据盘的,所以我们使用如下命令:

fdisk -l

我们可以看到使用“fdisk -l”命令后看到有100G的磁盘没有挂载

2、败运晌对数据盘进行分区操作

使用如下命令对数据盘进行分区:

数据库服务器分区的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数据库服务器分区,数据库服务器的分区管理策略,Linux下如何分区,如何设置ecs服务器一个数据盘20g分区的信息别忘了在本站进行查找喔。


数据运维技术 » 数据库服务器的分区管理策略 (数据库服务器分区)