博文

puppet(第45天)

图片
 puppet:IT基础设施自动化管理工具: provisioning   系统安装 configuration  配置 orchestration  编排 reporting  报告   官网: https://puppet.com/ 源码: https://github.com/puppetlabs/puppet/tags    作者:Luke Kanies 开发语言:ruby puppet工作特性: puppet工作特性:master/agent 模式 master: puppet server,指挥调配各agent agent:  agent管理各个节点,真正执行相应管理操作的核心部件;周期性地去master请求与自己相关的配置 puppet的工作模式: 声明性的,基于模型的配置语言:      定义:使用puppet配置语言定义基础配置信息     模拟:模拟部署     执行:强制当前与定义的目标状态保持一致     报告:通过puppet api将执行结果发送给接收者 puppet的三个层次: 配置语言: 事务层: 资源抽象层:     资源类型:例如用户,组,文件,服务,cron任务等     属性及状态与其实现方式分离     期望状态 puppet核心组件:资源 资源清单:manifests 资源清单以及清单中的资源定义的所依赖文件,模板等数据按照特定结构组织起来即为模块。 master,agent交互如下图: 没人用了,不想更了

MySQL复制及分布式(第43天)

 MySQL replication: MHA:master HA 主节点高可用,在mysql主从架构基础上研发的,对主节点进行监控,可实现自动故障转移至其他从节点,通过提升某一个从节点为新的主节点,前端需要mysql读写分离器 Galera Cluster  :不基于mysql的主从架构复制架构,所有节点都可以读写,通过wresp协议在全局实现复制,各个节点使用ssh协议通信。前端不需要mysql读写分离器。(在生产环境中可用) 分布式系统: 1:系统的各个组件分布于网络上上的多个计算机 2:各个组件之间仅仅通过消息传递来通信并协调行动 多线程编程模型有如下: 1:互不通信的线程模型 2:基于共享容器(队列)协同工作的模型,有线程安全和线程不安全之分,实现机制有COW(写时才复制),锁等 3:通过事件协调的多线程模型

MySQL的备份和恢复、主从复制架构(第42天)

 MySQL备份和恢复: 逻辑备份工具介绍 : mysqldump, mydumper, phpAdmin Schema(结构:库,表等的结构)和数据是保存在一起的的巨大的SQL语句,单个的巨大的备份文件 mysqldump 客户端命令, 通过mysql协议连接到mysqld服务 命令的语法格式: mysqldump [OPTIONS] database [tables]:备份单个库,或库指定的一个或多个表 mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]:备份一个或多个库 mysqldump [OPTIONS] --all-databases [OPTIONS]:备份所有库 mysqldump选项: -A, --all-databases MyISAM, InnoDB: 温备      -x, --lock-all-tables:锁定所有库所有表      -l, --lock-tables:对于每个单独的数据库,在备份之前锁定其所有表 InnoDB:      --single-transaction:启动一个大的单一事务实现备份 -B, --databases db_name1 db_name2 ...:备份指定的数据库 -C, --compress:压缩传输; -E, --events:备份指定库的事件调度器; -R, --routines:备份存储过程和存储函数; --triggers:备份表相关的触发器 --master-data[=#]: #表示数字,1或者2       记录备份到的时间点(然后就可以使用mysqlbinlog命令从这个时间点开始继续备份)      1:记录CHANGE MASTER TO语句;此语句未被注释;      2:记录为注释语句; --flush-logs, -F:锁定表之后执行flush logs命令; 注意:二进制日志文件与数据文件不应该放置于同一磁盘; 例子: mysqldump -uroot -p  --databases  php...

MySQL的日志和备份(第41天)

  MySQL日志分类: 查询日志:query log ,一般不开启 慢查询日志:slow query log  错误日志:error log   二进制日志:binary log 中继日志:reley log 事务日志:transaction log   查询日志: 查询日志记录查询操作,这些日志可以保存在文件(file)和表(table)中,查询日志一般不开启 查询日志的相关的变量:  show global variables like '%log%';   general_log      可以设置为ON或者OFF,表示开启或者关闭 general_log_file          c:\wamp64\bin\mysql\mysql5.7.24\data\hp8570p.log log_output      可以设置为TABLE或者FILE或者NONE 慢查询日志:slow query log   慢查询日志一般建议开启 查询时间超过指定时长的查询操作,long_query_time变量就是指定时长 show global variables like 'long_query_time';   查询该变量 set global long_query_time=12;      设置该变量 慢查询相关变量: slow_query_log      可以设置为ON或者OFF slow_query_log_file          c:\wamp64\bin\mysql\mysql5.7.24\data\hp8570p-slow.log 错误日志: 并不是只记录错误日志 该日志记录了mysqld启动和关闭过程中输出的事件信息,mysqld运行中产生的错误信息,event scheduler运行一个event时产生的日志信息,在主从复制架构中的从服务器上启动从服务器线程时产生的信息 错误日志的相关变量: log_error...

MySQL用户,权限,索引,事务,存储引擎,日志管理(第40天)

权限: mysql中的权限可以分为:库级别,表级别,字段级别,管理类权限,程序类级别(是否有执行某些函数,存储过程的权限) 管理类级别的权限有: CREATE TEMPORARY TABLES CREATE USER FILE  读写文件权限 SUPER SHOW DATABASES RELOAD SHUTDOWN REPLICATION  SLAVE REPLICATION  CLIENT LOCK TABLES 锁表权限 PROCESS  进程相关 程序类权限有: FUNCTION 函数 PROCEDURE  存储过程 TRIGGER  触发器 如上配合CREATE, ALTER, DROP, EXCUTE 使用 库级别和表级别:TABLE or DATABASE ALTER CREATE CREATE VIEW DOOP INDEX SHOW VIEW GRANT OPTION  把自己获得的权限赠给其他用户一个副本 数据操作权限: SELECT 查询权限 INSERT  插入数据权限 DELETE  删除权限 UPDATA  更新权限 字段级别: SELECT(col1, col2, col3, ...)  查询某些字段的权限 UPDATE(col1, col2, col3, ...) INSERT(col1, col2, col3, ....) 所有权限: ALL PRIVILEGES 数据库的权限数据保存在元数据库mysql中的,进入mysql时,使用 use mysql;  show tables; 查看具体的权限授权情况, mysql中的授权相关的表有db、host、user,其他的表比如columns_priv、tables_priv, procs_priv mysql的用户: mysql的用户格式如下:有两部分组成用户和主机 用户@主机:表示此用户帐号可从@HOST范围内的某主机对此MySQL服务端建立连接; @HOST: 表示客户端,HOST可以使用通配符(%,_),主机名,ip地址 %: _: 172.16.0.0/16, 172.16.%.% 创建用户: CREATE USER 'username'@'hos...

git笔记

git reset命令三部曲(--soft, --mixed, --hard,只有mixed选项才可以有reset路径,就是可以跟文件名,比如git reset --mixed commithash filename, 如果reset命令带有文件名,那么就会跳过第一步,也就是不会移动HEAD指针了): git reset --soft     commithash  只会移动HEAD指针,并且是HEAD带着分支指针一起移动,不动暂存区和工作目录 git reset [--mixed] commithash  移动HEAD指针,并且是HEAD带着分支指针一起移动,重置暂存区 git reset --hard   commithash  移动HEAD指针, 并且是HEAD带着分支指针一起移动,重置暂存区,重置工作目录 git checkout branchname和git reset --hard commithash的区别: 两者都移动HEAD指针,reset命令中HEAD还会带着分支指针一起移动 两者都会重置暂存区 两者都会重置工作目录 但是,checkou对工作目录是安全的,reset --hard会重置工作目录的 切换分支之前最好保证当前分支是干净的(刚做了提交),或者是git stash保存现场,然后再去切换分支。 git commit --amend 类似于git reset --soft    commithash git reset HEAD file  表示撤销file刚刚做的暂存,类似于git reset [--mixed] HEAD file git checkout branch_name  表示切换到branch_name分支,切换分支时HEAD指针会指向branch_name分支的最后的提交对象。 git checkout branch_name commithash  版本穿梭 git checkout -- filename 表示撤销filename文件所作的修改。这个类似于git reset --hard   commithash  filename...

发哨人(见证一个时代的崛起)

前所未有的訓斥 去年12月16日,我們南京路院區急診科接診了一位病人。莫名其妙高燒,一直用藥都不好,體溫動都不動一下。 22號就轉到了呼吸科,做了纖維支氣管鏡取了肺泡灌洗液,送去外面做高通量測序,後來口頭報出來是冠狀病毒。當時,具體管床的同事在我耳邊嚼了幾遍:艾主任,那個人報的是冠狀病毒。後來我們才知道那個病人是在華南海鮮做事的。 緊接著12月27日,南京路院區又來了一個病人,是我們科一位醫生的侄兒,40多歲,沒有任何基礎疾病,肺部一塌糊塗,血氧飽和只有90%,在下面其他醫院已經治療了將近10天左右都沒有任何好轉,病人收到了呼吸科監護室住院。同樣做了纖維支氣管鏡取了肺泡灌洗液送去檢測。 12月30日那天中午,我在同濟醫院工作的同學發了一張微信對話截圖給我,截圖上寫著:「最近不要去華南啊,那裡蠻多人高燒……」他問我是不是真的,當時,我正在電腦上看一個很典型的肺部感染患者的CT,我就把CT錄了一段11秒鐘的視頻傳給他,告訴他這是上午來我們急診的一個病人,也是華南海鮮市場的。 當天下午4點剛過,同事給我看了一份報告,上面寫的是:SARS冠狀病毒、綠膿假單胞菌、46種口腔/呼吸道定植菌。我仔細看了很多遍報告,下面的註釋寫著:SARS冠狀病毒是一種單股正鏈RNA病毒。該病毒主要傳播方式為近距離飛沫傳播或接觸患者呼吸道分泌物,可引起的一種具有明顯傳染性,可累及多個臟器系統的特殊肺炎,也稱非典型肺炎。 當時,我嚇出了一身冷汗,這是一個很可怕的東西。病人收在呼吸科,按道理應該呼吸科上報這個情況,但是為了保險和重視起見,我還是立刻打電話上報給了醫院公共衛生科和院感科。當時我們醫院呼吸科主任正好從我門口過,他是參加過非典的人,我把他抓住,說,我們有個病人收到你們科室,發現了這個東西。他當時一看就說,那就麻煩了。我就知道這個事情麻煩了。 給醫院打完電話,我也給我同學傳了這份報告,特意在「SARS冠狀病毒、綠膿假單胞菌、46種口腔/呼吸道定植菌」這一排字上畫了個紅圈,目的是提醒他注意、重視。我也把報告發在了科室醫生群裡面,提醒大家注意防範。 當天晚上,這個東西就傳遍了,各處傳的截屏都是我畫紅圈的那個照片,包括後來知道李文亮傳在群裡的也是那份。我心里當時就想可能壞事兒了。 10點20,醫院發來了信息,是轉市衛健委的通知,大意就是關於不明原因肺炎,不要隨意對外發布...