您的当前位置:首页正文

Centos7.3,mysql5.7环境,数据存储空间加大调整方案。

2023-11-11 来源:好兔宠物网

lvextend -l +100%FREE /dev/cl_gr61/rootxfs_growfs /dev/cl_gr61/root

重新格式化home分区为xfs格式,挂载home分区,还原数据。

mkfs.xfs -f /dev/cl_gr61/homexfsrestore /home.xfsdump /homemount /home

完成后,分区信息如下

df -h

Filesystem                  Size  Used   Avail Use%    Mounted on/dev/mapper/cl_gr61-root   108G  9.1G   99G   9%           /devtmpfs                    3.9G    0  3.9G   0%         /devtmpfs                       3.9G    0  3.9G   0%          /dev/shmtmpfs                       3.9G  8.3M  3.9G   1%         /runtmpfs                       3.9G    0  3.9G   0%          /sys/fs/cgroup/dev/sda2                   1014M  174M  841M  18%       /boot/dev/sda1                   200M  9.5M  191M   5%         /boot/efi/dev/mapper/cl_gr61-home   10G   1.7G  8.4G  17%          /hometmpfs                       782M   0   782M   0%           /run/user/0

方案二,虚拟机扩展硬盘或更换大硬盘DD克隆后,扩展lvm分区,危险,仅做实验。

使用parted工具对磁盘已扩大的sda磁盘进行分区处理

parted /dev/sda

更改显示单位为磁盘扇区,查询磁盘状态,因磁盘大小已变更,如有提示修复分区,请按F回车修复

(parted) unit s(parted) print free                                                   Error: The backup GPT table is not at the end of the disk, as it should be.  This might mean that another operating system believes the disk is smaller.  Fix, by moving the backup to the end (andremoving the old backup)?Fix/Ignore/Cancel?Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 41943040 blocks) or continue with the current setting? Fix/Ignore?Number    Start     End       Size     File system  Name             Flags        34s      2047s     2014s     Free Space 1      2048s     411647s   409600s    fat16      EFI System Partition   boot 2      411648s    2508799s   2097152s   xfs 3      2508800s   266336255s  263827456s                          lvm        266336256s  629145566s  362809311s  Free Space

删除lvm分区3,将剩余空间一起重新分区,此操作可能会损失所有数据,注意4K对齐。

(parted) rm 3(parted) mkpart Partition name? [] #分区名,无就直接回车。File system type? [ext2] #文件分区类型,请勿填写,不然有可能格式化丢数据,直接回车。Start? 508800s #原lvm分区开始扇区。End?  629143551s #磁盘结束扇区。Flags? lvm #磁盘标识,填写lvm回车。——如果没有,请使用set命令更改flags(set NUMBER FLAG STATE)Error: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain inuse.  You should reboot now before making further changes.Ignore/Cancel? I # /dev/sda 分区 3 变更已写入,但未能告知内核,分区可能在使用。因此,旧的分区将保留在使用。在做其它变更前请重新启动。——这里选择忽略,不要重启系统

查看分区信息并退出parted。

(parted)print freeNumber  Start     End         Size   File system  Name             Flags      34s       2047s       2014s   Free Space 1    2048s     411647s     409600s   fat16      EFI System Partition  boot 2    411648s   2508799s    2097152s   xfs 3    2508800s  629143551s  626634752s                           lvm           629143552s  629145566s    2015s            Free Space (parted)quit

允许lvm分区sda3进行PE物理块分配,并加10G到/home,剩余空间分配到/root,用xfs_growfs进行xfs文件分区扩展。可额外使用pvs,vgs,lvs查看lvm相关信息。

pvchange -x y /dev/sda3 #允许分配指定物理卷上的PElvextend -L +10G /dev/cl_gr61/home #增加10G空间到/home分区xfs_growfs /dev/cl_gr61/home #扩展/home分区表到新增空间lvextend -l +100%free /dev/cl_gr61/root #增加剩余的所有空间到/root分区xfs_growfs /dev/cl_gr61/root #扩展/root分区表到新增空间

完成后,分区信息如下

df -h

Filesystem                Size  Used Avail Use% Mounted on/dev/mapper/cl_gr61-root  271G  9.1G  262G   4% /devtmpfs                  3.9G     0  3.9G   0% /devtmpfs                     3.9G     0  3.9G   0% /dev/shmtmpfs                     3.9G  8.3M  3.9G   1% /runtmpfs                     3.9G     0  3.9G   0% /sys/fs/cgroup/dev/sda2                1014M  174M  841M  18% /boot/dev/sda1                 200M  9.5M  191M   5% /boot/efi/dev/mapper/cl_gr61-home   20G  1.7G   19G   9% /hometmpfs                     782M     0  782M   0% /run/user/0

方案三,增加硬盘作为mysql数据专用盘,将/var/lib/mysql迁移到新硬盘/mysqldata/

创建 LVM 的一般过程:

对磁盘分区(prated) --> 创建物理卷(pvcreate) --> 创建卷组(vgcreate) --> 创建逻辑卷(lvcreate) --> 创建文件系统(mkfs) --> 挂载文件系统(mount) --> 添加到文件系统列表(/etc/fstab)

使用prated工具对新增硬盘进行处理

prarted(parted) print  all #显示所有硬盘                                                          Model: Msft Virtual Disk (scsi)Disk /dev/sdb: 2199GB  #新增的硬盘Sector size (logical/physical): 512B/4096BPartition Table: Disk Flags: (parted) select /dev/sdb #选择要操作的硬盘,一定要再三确认(parted) mklabel gpt #创建分区表格式为gptWarning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?Yes/No? yes(parted) mkpartPartition name?  []?                                                      File system type?  [ext2]?                                                Start? 0%                                                                 End? 100%

查看硬盘信息                                                      

(parted) print                                                            Model: Msft Virtual Disk (scsi)Disk /dev/sdb: 2199GBSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags: Number  Start   End     Size    File system  Name  Flags 1      1049kB  2199GB  2199GB

检查4k对齐

(parted) unit s #改变单位为扇区。(parted) print  #查看4K是否对齐。2048s(开始扇区)*512B(扇区逻辑大小)/4096B(4KB),能整除一般4K就对齐。                Model: Msft Virtual Disk (scsi)Disk /dev/sdb: 4294967296sSector size (logical/physical): 512B/4096BPartition Table: gptDisk Flags: Number  Start  End          Size         File system  Name  Flags 1      2048s  4294965247s  4294963200s

设置分区标识为lvm

(parted) unit compact  #改变现实单位为混合(默认的选项)(parted) set 1  #设置分区1名字为lvm                                                          Flag to Invert? lvm                                                       New state?  [on]/off?

创建LVM物理卷

pvcreate /dev/sdb1 #创建LVM物理卷  Physical volume "/dev/sdb1" successfully created.pvs  PV         VG      Fmt  Attr PSize   PFree   /dev/sdb1          lvm2 ---    2.00t  2.00t

创建LVM卷组

vgcreate cl_gr61_mysql /dev/sdb1 #创建LVM卷组  Volume group "mysql" successfully createdvgs  VG      #PV #LV #SN Attr   VSize   VFree   mysql     1   0   0 wz--n-   2.00t  2.00t

创建LVM分区

lvcreate cl_gr61_mysql -l 100%free -n mysql #在lvm卷组cl_gr61_mysql上创建mysql分区  Logical volume "mysql" created.lvs  LV    VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert mysql cl_gr61_mysql -wi-a-----   2.00t

用xfs格式,格式化分区

mkfs.xfs /dev/cl_gr61_mysql/mysqlmeta-data=/dev/cl_gr61_mysql/mysql isize=512    agcount=4, agsize=134217472 blks         =                       sectsz=4096  attr=2, projid32bit=1         =                       crc=1        finobt=0, sparse=0data     =                       bsize=4096   blocks=536869888, imaxpct=5         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=262143, version=2         =                       sectsz=4096  sunit=1 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0

创建mysql存储目录

mkdir /mysqlmount /dev/mapper/cl_gr61_mysql-mysql /mysqldf -hFilesystem                       Size  Used Avail Use% Mounted on/dev/mapper/cl_gr61_mysql-mysql  2.0T   33M  2.0T   1% /mysqlvi /etc/fstab /dev/mapper/cl_gr61_mysql-mysql  /mysql          xfs     defaults        0 0

停止mysql服务,复制数据库数据到新目录

systemctl stop mysqld.service cp -a -v /var/lib/mysql /mysql

变更mysql配置,修改存储目录地址

vi /etc/my.cnfdatadir = /mysql/mysql/socket = /mysql/mysql/mysql.sock

启动mysql服务,检查数据是否正常。

systemctl start mysqld.service

本文出自 “专注打孔100年” 博客,请务必保留此出处http://titandeng.blog.51cto.com/823817/1933384

Centos7.3,mysql5.7环境,数据存储空间加大调整方案。

标签:mysql

小编还为您整理了以下内容,可能对您也有帮助:

优化mysql 多大内存 centos6

一、mysql的优化思路

mysql的优化分为两方面:

1. 服务器使用前的优化

2. 服务使用中的优化

二、mysql的基础优化步骤

1. 硬件级优化

(1). 最好mysql自己使用一台物理服务器

(2). 内存和CPU方面,根据需求给予mysql服务器足够大的内存和足够多的CPU核数

(3). 避免使用Swap交换分区–交换时从硬盘读取的它的速度很慢,有的DBA安装系统时就不装swap分区

(4). 如果是mysql主库,硬盘可以选用比较好的高速硬盘,系统用SSD固态硬盘,数据盘用sas替代sata硬盘,将操作系统和数据分区分开

(5). mysql产生的日志与数据库也放到不同的磁盘分区上面

(6). mysql数据库硬盘格式化时,可以指定更小的硬盘块

(7). 关于做RAID方面,主库尽量做成RAID10,既提高了数据的读写速度也提到了数据的安全性

(8). 服务器双线双电,保障服务器运行稳定,不会因为突然断电影响业务和损坏磁盘数据

2. mysql数据库设计优化

(1). 根据需求选择正确的存储引擎,比如说读的特别猛就用MySAM,如果对事务性要求高就用InnoDB

(2). 设置合理的字段类型和字段长度,比如说你这个字段就20多个字段你设置成VARCHAR(255)就是对磁盘空间的浪费

(3). 默认值尽可能的使用 NOT NULL,如果空值太多对mysql的查询会有影响,尤其是在查询语句编写上面

(4). 尽量少的使用VARCHAR,TEXT,BLOB这三个字段

(5). 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]

(6). 不要滥用索引,大表索引,小表不索引

(7). 表的设计合理化(符合3NF)

3. mysql配置参数的优化

这里是mysql5.5版本的配置文件

vi my.cnf

[client]

port = 3306 #mysql客户端连接时的默认端口

socket = /tmp/mysql.sock #与mysql服务器本地通信所使用的socket文件路径

default-character-set = utf8 #指定默认字符集为utf8

[mysql]

no-auto-rehash #auto-rehash是自动补全的意思,就像我们在linux命令行里输入命令的时候,使用tab键的功能是一样的,这里是默认的不自动补全

default-character-set = utf8 #指定默认字符集为utf8

[mysqld]

user = mysql

port = 3306

character-set-server = utf8 #设置服务器端的字符编码

socket = /tmp/mysql.sock

basedir = /application/mysql

datadir = /mysqldata

skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。

open_files_limit = 10240 #MySQL打开的文件描述符,默认最小1024;当open_files_limit没有被配置的时候,比较max_connections*5和ulimit -n的值,哪个大用哪个,当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个。

back_log = 500 #back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可 以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自 己的。 试图设back_log高于你的操作系统的将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。

max_connections = 800 #MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多, 介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。可以过’conn%’通配符查看当前状态的连接 数量,以定夺该值的大小。

max_connect_errors = 3000 #对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。

table_cache = 614 #物理内存越大,设置就越大.默认为2402,调到512-1024最佳

external-locking = FALSE #使用–skip-external-locking MySQL选项以避免外部锁定。该选项默认开启

max_allowed_packet =8M #设置最大包,server接受的数据包大小,避免超长SQL的执行有问题 默认值为16M,当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇“丢失与MySQL服务器的连接”错误。默认值16M。

sort_buffer_size = 6M #用于表间关联缓存的大小,查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。

join_buffer_size = 6M #联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。

thread_cache_size = 100 #服务器线程缓存这个值表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求, 那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能.通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用

thread_concurrency = 8 #设置thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那么thread_concurrency的应该为4; 2个双核的cpu, thread_concurrency的值应为8,属重点优化参数

query_cache_size = 2M #指定MySQL查询缓冲区的大小,在数据库写入量或是更新量也比较大的系统,该参数不适合分配过大。而且在高并发,写入量大的系统,建系把该功能禁掉。

query_cache_limit = 1M #默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费

query_cache_min_res_unit = 2k #MySQL参数中query_cache_min_res_unit查询缓存中的块是以这个大小进行分配的,使用下面的公式计算查询缓存的平均大小,根据计算结果设置这个变量,MySQL就会更有效地使用查询缓存,缓存更多的查询,减少内存的浪费。

default_table_type = InnoDB #默认表的引擎为InnoDB

thread_stack = 192K #限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用transaction_isolation = READ-COMMITTED #设定默认的事务隔离级别.可用的级别如下:

READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE,1.READ UNCOMMITTED-读未提交2.READ COMMITTE-读已提交3.REPEATABLE READ -可重复读4.SERIALIZABLE -串行

tmp_table_size = 246M #tmp_table_size 的默认大小是 32M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。

max_heap_table_size = 246M #内存表,内存表不支持事务,内存表使用哈希散列索引把数据保存在内存中,因此具有极快的速度,适合缓存中小型数据库,但是使用上受到一些

long_query_time = 1 #记录时间超过1秒的查询语句

log_long_format #

log-error = /logs/error.log #开启mysql错误日志,该选项指定mysqld保存错误日志文件的位置

log-slow-queries = /logs/slow.log #慢查询日志文件路径

pid-file = /pids/mysql.pid

log-bin = /binlog/mysql-bin #binlog日志位置以及binlog的名称

relay-log = /relaylog/relay-bin #relaylog日志位置以名称

binlog_cache_size = 1M #binlog_cache_size 就是满足两点的:一个事务,在没有提交(uncommitted)的时候,产生的日志,记录到Cache中;等到事务提交(committed)需要提交的时候,则把日志持久化到磁盘,默认是32K。

max_binlog_cache_size = 32M #binlog缓存最大使用的内存

max_binlog_size = 2M #一个binlog日志的大小

expire_logs_days = 7 #保留7天的binlog

key_buffer_size = 124M #索引缓存大小: 它决定了数据库索引处理的速度,尤其是索引读的速度

read_buffer_size = 16M #MySql读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySql会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能

read_rnd_buffer_size = 2M #MySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大

bulk_insert_buffer_size = 1M #批量插入数据缓存大小,可以有效提高插入效率,默认为8M

myisam_sort_buffer_size = 1M #MyISAM表发生变化时重新排序所需的缓冲

myisam_max_sort_file_size = 10G #MySQL重建索引时所允许的最大临时文件的大小 (当 REPAIR, ALTER TABLE 或者 LOAD DATA INFILE). 如果文件大小比此值更大,索引会通过键值缓冲创建(更慢)

myisam_repair_threads = 1 #如果一个表拥有超过一个索引, MyISAM 可以通过并行排序使用超过一个线程去修复他们.这对于拥有多个CPU以及大量内存情况的用户,是一个很好的选择.

myisam_recover #自动检查和修复没有适当关闭的 MyISAM 表

lower_case_table_names = 1 #让mysql不区分大小写

skip-name-resolve #禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

#slave-skip-errors = 1032,1062 #这是选填项让slave库跳过哪些错误继续同步

#replicate-ignore-db=mysql #选填,同步时候哪个数据库不同步设置

server-id = 1

innodb_additional_mem_pool_size = 4M #InnoDB 存储的数据目录信息和其它内部数据结构的内存池大小。应用程序里的表越多,你需要在这里分配越多的内存,默认是2M

innodb_buffer_pool_size = 2048M #这对Innodb表来说非常重要。Innodb相比MyISAM表对缓冲更为敏感。MyISAM可以在默 认的 key_buffer_size 设置下运行的可以,然而Innodb在默认的 设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存。一些应用于 key_buffer 的规则有 — 如果你的数据量不大,并且不会暴增,那么无需把 innodb_buffer_pool_size 设置的太大了

innodb_file_io_threads = 4 #文件IO的线程数,一般为 4

innodb_thread_concurrency = 8 #你的服务器CPU有几个就设置为几,建议用默认一般为8

innodb_flush_log_at_trx_commit = 2 #默认为1,如果将此参数设置为1,将在每次提交事务后将日志写入磁盘。为提供性能,可以设置为0或2,但要承担在发生故障时丢失数据的风险。设置为0表示事务日志写入日志文件,而日志文件每秒刷新到磁盘一次。设置为2表示事务日志将在提交时写入日志,但日志文件每次刷新到磁盘一次。

innodb_log_buffer_size = 2M #此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据.MySQL开发人员建议设置为1-8M之间

innodb_log_file_size = 4M #此参数确定数据日志文件的大小,以M为单位,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间

innodb_log_files_in_group = 3 #为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3M

innodb_max_dirty_pages_pct = 90 #Buffer_Pool中Dirty_Page所占的数量,直接影响InnoDB的关闭时间。参数 innodb_max_dirty_pages_pct可以直接控制了Dirty_Page在Buffer_Pool中所占的比率,而且幸运的是 innodb_max_dirty_pages_pct是可以动态改变的。所以,在关闭InnoDB之前先调小,强制数据块Flush一段时间,则能够大大缩短MySQL关闭的时间。

innodb_lock_wait_timeout = 120 #InnoDB 有其内置的死锁检测机制,能导致未完成的事务回滚。但是,如果结合InnoDB使用MyISAM的lock tables 语句或第三方事务引擎,则InnoDB无法识别死锁。为消除这种可能性,可以将innodb_lock_wait_timeout设置为一个整数值,指示 MySQL在允许其他事务修改那些最终受事务回滚的数据之前要等待多长时间(秒数)

innodb_file_per_table = 0 #独享表空间(关闭)

[mysqlmp]

quick

max_allowed_packet = 16M

4. 架构优化

(1). 前端用memcached,redis等缓存分担数据库压力

(2). 数据库读写分离,负载均衡

(3). 数据库分库分表

(4). 存储可采取分布式

5. 后期优化

主要是多观察,后期就是维护工作了,观察服务器负载是需要添加硬件了,还是有语句有问题啊,还是参数要修改了。

6. 查询优化(摘抄别人的)

63. 使用慢查询日志去发现慢查询。

64. 使用执行计划去判断查询是否正常运行。

65. 总是去测试你的查询看看是否他们运行在最佳状态下 –久而久之性能总会变化。

66. 避免在整个表上使用count(*),它可能锁住整张表。

67. 使查询保持一致以便后续相似的查询可以使用查询缓存。

68. 在适当的情形下使用GROUP BY而不是DISTINCT。

69. 在WHERE, GROUP BY和ORDER BY子句中使用有索引的列。

70. 保持索引简单,不在多个索引中包含同一个列。

71. 有时候MySQL会使用错误的索引,对于这种情况使用USE INDEX。

72. 检查使用SQL_MODE=STRICT的问题。

73. 对于记录数小于5的索引字段,在UNION的时候使用LIMIT不是是用OR.

74. 为了 避免在更新前SELECT,使用INSERT ON DUPLICATE KEY或者INSERT IGNORE ,不要用UPDATE去实现。

75. 不要使用 MAX,使用索引字段和ORDER BY子句。

76. 避免使用ORDER BY RAND().

77。LIMIT M,N实际上可以减缓查询在某些情况下,有节制地使用。

78。在WHERE子句中使用UNION代替子查询。

79。对于UPDATES(更新),使用 SHARE MODE(共享模式),以防止独占锁。

80。在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快。

81。使用DROP TABLE,CREATE TABLE DELETE FROM从表中删除所有数据。

82。最小化的数据在查询你需要的数据,使用*消耗大量的时间。

83。考虑持久连接,而不是多个连接,以减少开销。

84。基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询。

85。当负载增加您的服务器上,使用SHOW PROCESSLIST查看慢的和有问题的查询。

86。在开发环境中产生的镜像数据中 测试的所有可疑的查询。

通过vSphere client为Centos7虚拟机增加磁盘空间

有时候我们在新建虚拟机的时候,硬盘空间不够,这时就需要为主机增加磁盘空间,下面将讲解Centos7下如何为主机增加一个新的磁盘。此处我的需求是新建一个新的磁盘空间,并且将其挂载为新的分区,用来存储mysql数据。

首先,挂载硬盘最让人搞不懂的就是,新增的硬盘如果和原来容量一样,无法确认到底哪个是新增的,哪个是原来的。至少我现在还没能搞懂。所以用了一个笨方法,在开始操作前,先用命令查看当前盘符都有哪些,记下来,然后后续新增的就知道是哪些了。。

1、开始安装前先查看当前有哪些磁盘

如下图,当前只有一个磁盘/dev/sda ,下面那两个线标识的应该是该磁盘挂载的目录

2、在vSphere client新建磁盘

3、添加完成后,查看新增的磁盘是否能显示出来

如下图,没有显示出来。

4、所以我们需要在不关机的前提下,重新扫描SCSI总线来添加设备

确定主机总线号

重新扫描SCSI总线来添加设备

再次查看,可以看到磁盘已经新增上来了,盘符为/dev/sdb

5、给磁盘分区

6、查看分区好的磁盘,/dev/sdb

7、给新建分区指定文件系统

8、根目录下新建storage目录(此处我这个目录是以后放mysql数据的目录)

9、将/dev/sdb挂载到/storage

10、查看磁盘分配情况,可以看到磁盘已经分配好挂载好

11、查看/dev/sdb的UUID

12、打开fstab文件把sdb按照上一行的文件格式写入。此处设置是为了开机就自动挂载该磁盘

13、重启,查看磁盘使用情况。

我有一个Mysql的数据库,每天大概增加1000W条数据,持续至少一年,有如 ...

首先这么大的数据量不建议使用MySQL这种免费版的数据库系统,可以使用Oracle等这种大型数据库系统,其对于数据库中数据的管理、查询等的效率要比MySQL好非常的多。
如果你一定要使用MySQL,其服务器操作系统最好使用Linux,也可以使用国产的红旗Linux。
如果数据库非常的海量,那么可以考虑使用刀片式服务器进行数据库集群模式,采用分布式的数据库系统,如此可以提高查询的效率。
既然你是搞研究的,那么对于这种巨量的数据库管理系统的数据分析可以采用SAS数据仓库来进行对数据进行分析。追问非常感谢你的回答。依照你的经验,在如此海量数据下,用Linux+MySQL的效率和Linux+Oracle效率差距大吗?
我的程序是在前期收集数据时只写不读,分析时继续收集数据,但是对于所有数据经常的遍历读取,这种情况用什么样的储存结构比较好?
这是我个人研究,没有多少经费,希望能获得一个性价比最高的方案。对于你建议的SAS数据仓库,我很感兴
趣,虽然从未接触。请问有相关的文档链接可以提供吗?

我有一个Mysql的数据库,每天大概增加1000W条数据,持续至少一年,有如 ...

首先这么大的数据量不建议使用MySQL这种免费版的数据库系统,可以使用Oracle等这种大型数据库系统,其对于数据库中数据的管理、查询等的效率要比MySQL好非常的多。
如果你一定要使用MySQL,其服务器操作系统最好使用Linux,也可以使用国产的红旗Linux。
如果数据库非常的海量,那么可以考虑使用刀片式服务器进行数据库集群模式,采用分布式的数据库系统,如此可以提高查询的效率。
既然你是搞研究的,那么对于这种巨量的数据库管理系统的数据分析可以采用SAS数据仓库来进行对数据进行分析。追问非常感谢你的回答。依照你的经验,在如此海量数据下,用Linux+MySQL的效率和Linux+Oracle效率差距大吗?
我的程序是在前期收集数据时只写不读,分析时继续收集数据,但是对于所有数据经常的遍历读取,这种情况用什么样的储存结构比较好?
这是我个人研究,没有多少经费,希望能获得一个性价比最高的方案。对于你建议的SAS数据仓库,我很感兴
趣,虽然从未接触。请问有相关的文档链接可以提供吗?

Centos下怎么修改Mysql数据文件位置

我是直接在CentOS 5.5环境下安装的RPM包,mysql默认的数据文件存储目录为/var/lib/mysql
假如要把目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、停止mysql进程
mysql -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样MySQL的数据文件就移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/找到my-medium*.cnf文件,拷贝到/etc/并改名为my.cnf
命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
操作如下:
vi   my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server[mysqld] 
port = 3306
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
把其中datadir=/var/lib/mysql一行中修改成现在的实际存放路径:home/data/mysql
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注释此行)www.linuxidc.com
datadir=/home/data/mysql (加上此行)
最后做一个mysql.sock 链接:
ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock(需要从/home/data/mysql下复制一份过来)
7、重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
8、最后修改下数据库的权限
[root@localhost ~]# chown -R mysql:mysql /home/data/mysql/  ← 改变数据库的归属为mysql
[root@localhost ~]# chmod 700 /home/data/mysql/test/  ← 改变数据库目录属性为700
[root@localhost ~]# chmod 660 /home/data/mysql/test/*  ← 改变数据库中数据的属性为660
9 如果启动不成功,查看/var/log/mysql.log,如果是出现错误:
110222 11:15:07 [Warning] Can't create test file /home/mysql/localhost.lower-test
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110222 11:15:07 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110222 11:15:07 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
#在终端中先输入下面这一行
chown -R mysql:mysql /home/data/mysql
#在输入下面的一行就OK了
chcon -R -t mysqld_db_t /home/data/mysql
#重启下MYSQL试试~
/etc/init.d/mysqld restart

Centos下怎么修改Mysql数据文件位置

我是直接在CentOS 5.5环境下安装的RPM包,mysql默认的数据文件存储目录为/var/lib/mysql
假如要把目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、停止mysql进程
mysql -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样MySQL的数据文件就移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/找到my-medium*.cnf文件,拷贝到/etc/并改名为my.cnf
命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
操作如下:
vi   my.cnf  (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server[mysqld] 
port = 3306
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
把其中datadir=/var/lib/mysql一行中修改成现在的实际存放路径:home/data/mysql
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注释此行)www.linuxidc.com
datadir=/home/data/mysql (加上此行)
最后做一个mysql.sock 链接:
ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock(需要从/home/data/mysql下复制一份过来)
7、重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
8、最后修改下数据库的权限
[root@localhost ~]# chown -R mysql:mysql /home/data/mysql/  ← 改变数据库的归属为mysql
[root@localhost ~]# chmod 700 /home/data/mysql/test/  ← 改变数据库目录属性为700
[root@localhost ~]# chmod 660 /home/data/mysql/test/*  ← 改变数据库中数据的属性为660
9 如果启动不成功,查看/var/log/mysql.log,如果是出现错误:
110222 11:15:07 [Warning] Can't create test file /home/mysql/localhost.lower-test
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110222 11:15:07 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110222 11:15:07 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
#在终端中先输入下面这一行
chown -R mysql:mysql /home/data/mysql
#在输入下面的一行就OK了
chcon -R -t mysqld_db_t /home/data/mysql
#重启下MYSQL试试~
/etc/init.d/mysqld restart

CentOS7安装Mysql5.7.19安装到73%卡住不动了,怎么办?

安装图解

解压缩后运行程序开始安装,选择接受协议,点击下一步。

选择developer default,点击”next“。

检查是否满足安装需求。

点击“Execute”按钮后,可能会下载一些程序,到时你自己点击安装就行了,直到所有安装完成就OK了。当然你也可以选择不下载这些环境点击”next“直接安装。

点击“Execute”按钮后,开始下载安装。等待安装完成。

mysql数据库5.7怎么安装图解

mysql数据库5.7安装的方法:首先进入浏览器,找到mysql数据库5.7下载,下载之后找到安装包保存的文件夹,点击进入,如果电脑的扫毒软件要选择信任,按照提示说明一步一步地安装,最后可以在电脑开始菜单栏中找到安装好的软件,既可以使用了。

1、进入浏览器,搜索Mysql5.7下载。

2、找到要安装的版本。

3、点击下载。

4、选择想要保存的位置。

5、电脑上的杀毒软件会阻止安装,这个时候应该添加信任。

6、信任之后就可以安装了。

7、等待插件安装完成。

8、在保存的文件里,双击插件,进入安装软件页面。

9、进入页面,点击Next。

10、勾选同意规则,点击Next。

11、一般自己使用的类型,都是选择Typical,所以点击标示。

12、进入页面,再点击Install。

13、等待安装MySQL 5.7。

14、点击Finish。

15、点击开始页面,拉出所有程序。

16、找到MySQL文件夹。

17、找到MYSQL Server 5.7文件夹。

18、点击软件,进行使用。