MySql不停机添加丛库小记

  拖了很长时间才开始写这篇文章,本来打算上线之后第二天立刻开始记录的,一直有很多碎片事情要做。

  基础是已经有一主一丛,或一主多从,由于业务需要增加新的丛库来分担读的压力。查看如何配置主从复制

不停机平滑加丛库主要原理是: 

1、停掉当前的丛库同步 stop slave。做这一步之前需要需要代码层的改动,将这个从库从web业务脱离,建议访问量少时候操作。

2、查看丛库状态,show slave status  记下 Relay_Master_Log_file 和 Exec_Master_Log_Pos 

3、备份丛库,Myisam直接打包文件拷贝到另一台机器就可以了。Innodb的可以用xtrabackup备份,数据量少可以直接用Navicat数据传输,或者mysqldump导出。 

4、将数据库备份拷贝到待加丛库的机器,数据怎么弄过来方法很多,一定要保证拷贝过来的数据与上一个丛库的数据一致,数据表正常可用。 

5、编辑配置文件 my.cnf  修改 server-id (不要与之前的丛库相同) replicate-do-db(同步的库)  这两个参数

6、在新丛库设置主库的连接信息

change master to
master_host='192.168.0.xxx',
master_port=3306,
master_user='userdb_slave',     
master_password='xxxxxxxxxxxxxxxxx',
master_log_file='mysql-bin.000169',     # 上面记录的
master_log_pos=824721706;               # 上面记录的

7、重启数据库,start slave 开启同步。show slave status  

看这两个参数 Slave_IO_Running    Yes   Slave_SQL_Running   Yes  那就证明主从正常了

8、不要忘了把上一个丛库开启同步 start slave,查看上一个丛库和新加丛库是否正常同步可用,最后加入到web业务代码里面。

SQL四种语言:DDL,DML,DCL,TCL

1.DDLData Definition Language数据库定义语言statements are used to define the database structure or schema.

DDL是SQL语言的四大功能之一。
用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

2.DMLData Manipulation Language数据操纵语言statements are used for managing data within schema objects.

- 阅读全文 -

日志文件分割(将大的日志文件分割成小的)

   通常网站的日志文件之前没有配置自动切割,需要看日志的时候非常大,就需要割成小块,文件分割可以通过split命令来实现,可以指定按行数分割和按大小分割两种模式。文件合并可以通过cat命令来实现,非常简单。

在Linux下用split进行文件分割:

模式一:指定分割后文件行数

对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。

命令:split -l 300 large_file.txt new_file_prefix

模式二:指定分割后文件大小

split -b 10m server.log waynelog

对二进制文件我们同样也可以按文件大小来分割。

在Linux下用cat进行文件合并:

命令:cat small_files* > large_file


Win下文件分割工具

Ultra File Splitte.zip


概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM

CGI

CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。

CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。

FastCGI

FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最 为人诟病的fork-and-execute 模式)。它还支持分布式的运算,即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解 释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、 Fail- Over特性等等。

- 阅读全文 -

PHP比较常见的五大运行模式详解

1、运行模式

关于PHP目前比较常见的五大运行模式:

1)CGI(通用网关接口 / Common Gateway Interface)

2)FastCGI(常驻型CGI / Long-Live CGI)

3)CLI(命令行运行 / Command Line Interface)

4)Web模块模式(Apache等Web服务器运行的模式)

5)ISAPI(Internet Server Application Program Interface)

- 阅读全文 -