背景 在mysql 5.6 版本以前,修改表结构如添加索引、修改列,需要锁表,期间不能写入,对于一个有几千万数据的大表来说,这个简直不能接收,对于分秒必争的互联网时代,服务中断很长时间的后果是很严重的。 升级Mysql 到5.6 版本后,情况会好转,支持online-DDL, 但是实际在Alter表的时候,还会有可能锁表。 pt-online-schema-change是Percona-toolkit一员, 支持在不锁表的情况下,在线改表。 pt-osc的工作原理 创建一个和要执行 alter 操作的表一样的新的空表,后缀默认是new。 在新表执行alter table 语句,因为是空表,执行速度很快。 在原表中创建触发器3个触发器分别对应insert,update,delete操作。 以一定块大小从原表拷贝数据到临时表,拷贝过程中通过原表上的触发器在原表进行的写操作都会更新到新建的临时表,注意这里是Replace操作。 表明替换 将原表名table修改为 tableold, 将tablenew 表明修改为原表名table 如果有参考该表的外键,根据alter-forei....
SQL标准 SQL92 SQL99 Mysql5.7版本之后启用了SQL_Mode 严格模式 SQL语句类型 SQL语言类型英文缩写作用 DDL:数据定义语言data definition language建库、建表、改表 DCL:数据控制语言data control languageGRANT 和 REVOKE 两个指令构成 DML:数据操作语言data manipulation languageINSERT、UPDATE、DELETE DQL:数据查询语言data query language查询数据 数据类型 制数据的规范性,让数据有具体含义,在列上进行控制 数据类型种类功能说明 char、varchar字符类型255 65535定长(固定存储空间) 变长(按需)varchar存数据时,首先进行字符串长度判断,按需分配存储空间,会单独占用一个字节来记录此次的字符长度,超过255之后,需要两个字节长度记录字符长度。 enum枚举类型enum('bj','sh','sz','cq','hb',......)数据行较多时,会影响到索引的应用数字类禁止使用enum....
下载 https://downloads.mysql.com/archives/community/ mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 安装方式 安装方式优点缺点 rpm安装卸载简单可定制性差 glibc可定制性相比rpm包灵活些安装相比rpm包复杂些,需要手动初始化数据库 源码安装可定制性最强,根据需求和功能定制安装麻烦,需要手动初始化数据库 RPM: mysql-community-server-5.7.28-1.el7.x86_64.rpm ,需要在特定linux版本下安装。 glibc: mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz,依赖glibc库,可以安装在通用的Linux系统下 源代码编译安装: mysql-5.7.31.tar.gz,通用的Linux下都可以编译安装 glibc方式安装 # 解压软件 [root@localhost software]# ls mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz [root@loc....
1、注释/etc/fstab关于swap的配置 2、执行如下命令 echo vm.swappiness=0 >> /etc/sysctl.conf 3、重启 reboot 4、验证(Swap行均为0) free -m
NameSpace 实现了资源隔离 UTS:每一个NameSpace都拥有独立的主机或域名,可以把每个NameSpace认为一个独立主机。 IPC:每个容器依旧使用linux内核中进程交互的方法,实现进程间通信 Mount:每个容器的文件系统是独立的 Net:每个容器的网络是隔离 User: 每个容器的用户和组ID是隔离,每个容器都拥有root用户 PID:每个容器都拥有独立的进程树,由容器是物理机中的一个进程,所以容器中的进程是物理机一个进程的线程 容器使用的命名空间有哪些? 应用程序运行环境隔离的空间,就是一个容器,每一个容器都将拥有UTS,IPC,Mount,Net,User,PID。 CGroup 实现了资源限制、限制、审计等… LXC Linux Container,可以提供轻量级的虚拟化。Docker底层就是使用LXC来实现的。以LXC为基础实现了更强的功能。 Docker安装 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://m....
查看主机10.1.1.1收到的和发送的数据包 [root@node1 Desktop]# tcpdump -i eth0 -nn host 10.1.1.1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 22:33:25.148389 ARP, Request who-has 10.1.1.254 tell 10.1.1.1, length 28 22:33:25.148896 ARP, Reply 10.1.1.254 is-at 00:50:56:c0:00:01, length 46 22:33:30.714605 IP 10.1.1.254 > 10.1.1.1: ICMP echo request, id 1, seq 237, length 40 22:33:30.714619 IP 10.1.1.1 > 10.1.....
镜像源查看 1[root@localhost ~]# ll /etc/yum.repos.d/ 2-rw-r--r--. 1 root root 1991 Mar 28 2017 CentOS-Base.repo 网络yum源配置文件 3-rw-r--r--. 1 root root 647 Mar 28 2017 CentOS-Debuginfo.repo 内核相关的更新包 4-rw-r--r--. 1 root root 289 Mar 28 2017 CentOS-fasttrack.repo 快速通道 5-rw-r--r--. 1 root root 630 Mar 28 2017 CentOS-Media.repo 本地yum源配置文件 6-rw-r--r--. 1 root root 7989 Mar 28 2017 CentOS-Vault.repo 最近版本加入老本的YUM配置 配置阿里云 yum 源 1① 备份默认源 2[root@yumserver ~]# mkdir /etc/yum.repos.d/backup 3[root@yumserver ~]# ....