众所周知,Linux的根是整个文件系统的核心目录,那根下都有哪些目录,每个目录都有什么作用呢?本文将从初学者的角度对此做以剖析:
/bin:二进制文件,存放可执行文件。这些文件可以被普通用户所使用。
/lost+found:这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。
进制
概念
进制也就是进位计数制,是人为定义的带进位的计数方法。
常用的进制有哪些?
二进制,四进制,十进制,16进制。
进制的用途
二进制:计算机存储数据以及处理的时使用的就是二进制。使用的数字只有0,1两种。
十进制:生活中用的最多的一种进制计数法。使用的数字有0,1,2,3,4,5,6,7,8,9共10种。
十六进制:计算机内存地址的编号使用的就是十六进制。使用的数字有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16种。进制的转换
进制转换 | 示例 | 方法 |
---|---|---|
十进制>N进制 | 十进制>二进制 十进制>十六进制 | 连除倒取余 |
N进制>十进制 | 二进制>十进制 十六进制>十进制 | 按权求和 |
位是计算机内部数据储存的最小单位。
字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit).
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1,比如,十进制中的+3,假设计算机字长为8位,转换成二进制就是0000 0011,如果是-3,就是1000 0011。那么,这里0000 0011和1000 0011就是机器数。
因为第一位为符号位,所以机器数的形式值就不等于真正的数值,例如上面的有符号数1000 0011,其最高位1代表负,其真正数值是-3,而不是形式值131(1000 0011转换成10进制等于131),所以为了区别起见,将带符号的机器数对应的真正数值称为机器数的真值。例如:0000 0001的真值=+000 0001=+1,1000 0001的真值=-000 0001=-1。
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值,比如如果是8位二进制,[+1]原码=0000 0001。[-1]原码=1000 0001。因为第一位是符号位,所以8位二进制的取值范围就是:[1111 1111,0111 1111]即[-127,127],原码是人脑最容易理解和计算的表示方式。
反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反,[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。
补码是:是一种用二进制表示有号数的方法。表示方法:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
位运算符 | 符号 | 计算规则 | 示例 |
---|---|---|---|
与 | & | 有0则为0,同1则为1 | 3 & 2 = 2 |
或 | 丨 | 有1则为1,同0则为0 | 3 |
非 | ~ | 按位取反 | ~3 = -4 |
异或 | ^ | 相同为0,相异为1 | 3 ^ 2 = 1 |
左移 | << | 整体往左高位移动,相当于乘2 | 2 << 1 = 4 |
右移 | >> | 整体往右低位移动,相当于除2 | 2 >> 1 = 1 |
众所周知,Linux的根是整个文件系统的核心目录,那根下都有哪些目录,每个目录都有什么作用呢?本文将从初学者的角度对此做以剖析:
/bin:二进制文件,存放可执行文件。这些文件可以被普通用户所使用。
/sbin:存放可执行命令,仅用于管理,通常管理员才有权限使用/dev: 设备文件:字符设备:c块设备:b/etc: 操作系统或应用程序的配置文件/home: 用户家目录 useradd时-d可以用来指定用户的家目录/root: root的家目录/lib: 库文件,供其他应用程序调用/meida:挂载点目录,通常用于挂载便携性设备/mnt: 挂载点目录,挂载额外的文件系统/misc: 备用目录:/opt: 可选目录,通常第三方软件偶尔安装与此目录/proc:伪文件系统:内存中内核的映射,系统调休的时候可通过/selinux: 安全加强的Linux/srv: 属于服务的中间数据的存储位置/sys: 伪文件系统,通常用于访问硬件设备属性信息/tmp: 临时文件目录,用于存放临时文件/usr: 只读文件存放目录/var: 经常会发生变化的文件,如日志等/lost+found:这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。
转载于:https://blog.51cto.com/shine009/1343580
姓名: 李小娜
[嵌牛导读] :这篇文章主要介绍了Mysql中复制详细解析,从基本概念、用途、实现方法以及集中模式进行了介绍,然后分享了具体实现代码,具有一定参考价值
[嵌牛鼻子] :mysql复制概念 复制的用途 复制的实现 mysql复制的集中模式 控制主服务器操作
[嵌牛提问] :常用命令有哪些?
[嵌牛正文] :1.mysql复制概念
指将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重新执行,从而使复制服务器和主服务器的数据保持同步。复制过程中一个服务器充当主服务器(master),而一个或多个其它服务器充当从服务器(slaves)。主服务器将更新重新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器、从服务器在日志中读取的最后一次成功更新的位置。从服务器接受从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
2.复制的用途
通过主从复制(master-slave)的方式来同步数据,再通过读写分离(mysql-proxy)来提升数据库的并发负载能力,或者用来作为主备机的设计,保证在主机停止响应之后在很短的时间内就可以将应用切换到备机上继续运行。
优势:
(1)数据库集群系统具有多个数据库节点,在单个节点出现故障的情况下,其他正常节点可以继续提供服务。
(2)如果主服务器上出现了问题可以切换到从服务器上
(3)通过复制可以在从服务器上执行查询操作,降低了主服务器的访问压力,实现数据分布和负载均衡
(4)可以在从服务器上进行备份,以避免备份期间影响主服务器的服务。
3.复制的实现(3种方法)
(1)DRBD是一种用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
(2)Mysql cluster(又称mysql簇)。Mysql replicaion(复制)本身是一个比较简单的结构,即一台从服务器(slave)从一台主服务器(master)读取二进制日志然后再解析并应用到自身。
(3)一个简单复制环境只需要两台运行mysql的主机即可,甚至可以在一台物理服务器主机上启动两个mysqld实例。一个作为master而另一个作为slave来完成复制环境的搭配。但是在实际应用环境中,可以根据实际的业务需求利用mysql复制的功能自己搭建出其他多种更利于扩展的复制架构,如最常用的主从架构。
主从架构指的是使用一台mysql服务器作为master,一台或多台mysql服务器作为slave,将master的数据复制到slave上。在实际应用场合,主从架构模式是mysql复制最常用的。一般在这种架构下,系统的写操作都是在master中进行,而读操作则分散到各个slave中进行,因此这种架构特别适合现在互联网高读写的问题。
Mysql数据库复制操作大概分为以下几个步骤:
(1)master启用二进制日志。启用二进制日志的操作在日志管理中有详细的介绍。
(2)slave上面的I/O进程连接上master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。
(3)master接受到来自slave的I/O进程请求后,通过负责复制的I/O进程根据请求信息读取指定日志指定位置之后的日志信息,返回给slave的I/O。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到master端的bin-log文件的名称以及bin-log的位置。
(4)Slave的I/O进程接收到信息后,将接收到的日志内容依次添加到slave端的relay-log文件的最末端,并将读取到的master端的bin-log的文件名和位置记录到master-info文件中。
(5)Slave的sql进程检测到relay-log中新增的内容后,会马上解析relay-log的内容,并在自身执行。
4.mysql复制的集中模式
mysql5.1之后的版本中,在复制方面的改进就是引进了新的复制技术——基于行的复制。这种技术就是关注表中发生变化的记录,而非以前的照抄binlog模式。从mysql5.1.12开始,可以用以下3种模式来实现。
(1)基于sql语句的复制(statement-base replication,sbr)
(2)基于行的复制(rbr)
(3)混合模式复制(mbr)
相应的,binlog的格式也有3种:statement、row、mixed。Mbr模式中,sbr模式是默认的。在运行时可以动态地改变binlog的格式。设定主从复制模式的方法非常简单,只要在以前设定复制配置的基础上,再添加一个参数,如下:
5.控制主服务器操作
Master:192.168.11.139
Slave:192.168.11.130
(1)主服务器:
在主服务器上开启二进制日志
OFF表示二进制日志是关闭的
开启日志3步骤:
①开启mysql安装目录/my.cnf
②找到[mysqld]这个标签,在此标签下面一行,添加语句如下:
log_bin[filename]
在该语句中,log-bin说明要开启二进制文件;filename是二进制日志的名字。如果没有指定,默认为主机名后面跟-bin作为文件名,默认存放在datadir目录中。在这里指定binary_log如果只对指定数据库生成二进制文件,则需要添加如下语句
1Binlog-do-db=db_name(数据库名称)
如果不对指定数据库生成二进制文件日志,则需要添加如下语句
1Binlog-ignore-db-db_name(数据库名称)
③重启mysql服务。可以在mysql安装目录/data文件夹下看到“binary_log.数字编号”文件,如binary_log.00001.以后每重启一次mysql服务,都会重新生成二进制文件,文件名中的数字编号一次增加。
开机成功后,修改mysql的配置文件my.cnf,设置server-id,代码如下
在master上创建复制所需要的用户
将master主机的数据备份出来,保存在/data/binary_dump.txt文件中,然后导入到slave从机中去,具体执行语句如下
1[root@localhost bin]# mysqldump -h localhost>/data/binary_dump.txt
(2)控制从服务器操作
修改从服务器的数据库配置文件,配置如下:
常用命令如下