接触了Node.js大概有一周时间了。异步的非阻塞编程很适合服务器端大量数据库/IO等信息的获取,减少了服务器线程的数量和负载。
第一步是配置Oracle的连接,Oracle的node.js driver基本都依赖于OCCI(Oracle C++ Call Interface),一共有两三个实现。其中node-oracle应该是比较稳定的一个。通过npm编译安装连接Oracle有些麻烦,下面是安装配置的方法。 Continue reading
node.js连接Oracle数据库
Cloudera Manager 5离线安装参考
0. 主机规划
Cloudera Manager需要一台单独的主机
debugo01 Cloudera Manager, yum repo
debugo02 NameNode, DataNode, Yarn RM, Spark Master, Spark Worker …
debugo03 DataNode, Spark Worker, Secondery NameNode …
Continue reading
Linux 多彩提示符设置
今天看到一些大神的环境有非常酷炫的Linux BASH命令提示符,比默认的'[root@localhost ~]# ‘多了不少内容,而且设置了区分度比较大的颜色,避免了对一些误操作行为。我觉得非常有意义,所以配置一份自己PS1变量。
PS(Prompt Sign): 是指命令提示符。Linux中可以通过修改PS1来修改命令提示符的格式的内容,PS1还提供了一些特殊的符号来表示PS1的内容(参考鸟哥私房菜):
\d 日期
\H 完整的主机名称(带上domain)
\h 仅取主机名
\t 显示时间,为 24 小时格式,如: HH:MM:SS
\T 显示时间,12 小时的时间格式
\A 显示时间,24 小时格式, HH:MM
\u 目前使用者的账号名称
\v BASH 的版本信息
\w 当前工作目录完成路径。home目录会以 ~ 取代
\W 利用 basename 取得工作目录名称
\# 下达的第几个指令,相当于一个当前连接的命令计数器
\$ 提示字符,如果是 root 时,提示字符为 # ,普通用户连接就是 $
Bash中不仅可以设置八种不同的颜色, 还可以设置下划线、粗体和背景色。详细信息可以在这个文档中找到:Color Bash Prompt
下面的PS1变量输出了user,host_name.domain_name, pwd, 和上一个进程的exit code,并将该命令提示符单独分割一行。这样太长的路径和主机名也不会影响正常的命令输入。后面如果需要还可以加入更多的内容。该PS1应该在/home/<username>/.bash_profile中被export,不应该取代全局/etc/bashrc中的PS1设置。
1 |
PS1='\n \[\e[0;32m\]----- \[\e[1;33m\]\u\[\e[m\]@\H \[\e[1;34m\]\w\[\e[m\] \[\e[1;35m\]last:\[\e[4;35m\]`echo $?`\[\e[0;32m\] -----\n\[\e[0;31m\]\$ \[\e[m\]\[\e[1;36m\]' |
^^
MySQL Percona xtrabackup
Percona XtraBackup是一个MySQL中完全免费开源的热备工具,而备份时并不会锁定数据库(innodb和xtradb)。xtrabackup的下载地址可以在Percona XtraBackup 找到,percona提供了rpm和deb的发行包来进行快速安装。
Percona支持增量、加密、并行和压缩流(compressed Stream)等功能,并具有较快的恢复速度。并适用于MySQL,MariaDB和Percona Server等主流版本,可以完全取代商业产品MySQL Enterprise Backup。二者功能的对比可以参考:About Percona Xtrabackup
XtraBackup由下面4个工具组成:
innobackupex 提供MyISAM,InnoDB和XtraDB表的MySQL数据库实例备份的封装脚本。
xtrabackup 使用C语言开发的热备工具,只能备份InnoDB和XtraDB数据。
xbcrypt 用于对备份文件加密和解密。
xbstream 提供streaming和从xbstream格式中写入/提取数据等功能。
Percona建议使用innobackupex来代替使用xtrabackup这个二进制工具来完成备份的功能。
1. 全量备份
innobackupex/xtrabackup使用非常简单,指定连接参数–host, –user, –password, -socket, –port等参数和备份目录就可以完成全量备份。另外可以使用并行–parallel=n来提高备份速度。
innobackupex –user=root –password=” –no-timestamp /root/backup
……
innobackupex: Backup created in directory ‘/root/backup0′
140724 08:36:51 innobackupex: Connection to database server closed
140724 08:36:51 innobackupex: completed OK!
当指定了–no-timestamp选项时,就会直接将文件备份到/root/backup下。否则就会在/root/backup目录下建立一个带timestamp标记的目录名,例如:/root/backup/2014-07-25_08-38-33.
被备份目录下,可以找到备份的详细信息。由于是全量备份,innodb_from_lsn =0。
1 2 3 4 5 6 7 8 9 10 11 12 |
# cat xtrabackup_info uuid = c1f0940a-1393-11e4-95cf-441ea172901c name = tool_name = innobackupex tool_command = --user=root --password=... --no-timestamp /root/backup ...... end_time = 2014-07-25 08:36:46 lock_time = 2 binlog_pos = innodb_from_lsn = 0 innodb_to_lsn = 9594065461 ...... |
MySQL event
MySQL事件调度器(Event Scheduler)类似于Oracle的scheduled job,可以在某一个时间点或者或者每隔固定间隔重复执行执行SQL语句、存储过程或过程体(BEGIN … END)。 Continue reading
MySQL mysqladmin
mysqladmin是mysqld后台进程的管理工具,非常方便。一定程度取代了使用mysql客户端工具登录命令行执行一些管理命令。该命令行工具中,和登录、验证、连接相关的参数和其他mysql*工具是一样的(-u,-p,-h,-P,-s,–ssl*,-C/–compress, –protocol, –secure-auth, –default-character-set等)。其他常用的参数如下:
-f, –force Don’t ask for confirmation on drop database; with multiple commands, continue even if an error occurs.
# 输出信息
–debug-check Check memory and open file usage at exit.
–debug-info Print some debug info at exit.
-v, –verbose Write more information.
# 定期执行一次,间隔为-i秒,一共执行-c次。对比输出。
-c, –count=# Number of iterations to make. This works with -i (–sleep) only.
-i, –sleep=# Execute commands again and again with a sleep between.
-r, –relative Show difference between current and previous values when used with -i. Currently only works with extended-status.
-E, –vertical Print output vertically. Is similar to –relative, but prints output vertically.
#连接错误则静默退出,超时选项
-s, –silent Silently exit if one can’t connect to server.
–connect-timeout=#
–shutdown-timeout=#
-w, –wait[=#] Wait and retry if connection is down.
mysqladmin主要提供了下面命令功能:
Continue reading
MySQL mysqldump
mysqldump是mysql自带的一个基本的逻辑备份工具,用于转存储数据库结构和数据。它主要产生一个SQL脚本,其中包含创建数据库所必需的命令CREATE TABLE INSERT等命令。下面总结一下mysqldump的参数,方便日后查询使用。
mysqldump –help
mysqldump Ver 10.13 Distrib 5.6.19-67.0, for Linux (x86_64)
……
# 通过usage可以看出,可以逻辑导出某个数据库、数据库中的表或者全部数据库。一般后面加重定向将逻辑语句写入文件。
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] –databases [OPTIONS] DB1 [DB2 DB3…] #或-B
OR mysqldump [OPTIONS] –all-databases [OPTIONS] #或-A
# 模式和错误输出
Continue reading
MySQL InnoDB parameter
innoDB是事务型数据库的首选引擎,支持ACID事务,支持行级锁定,也是现在Percona等发型版本的默认引擎。innoDB支持4个事务隔离级,默认为repeatable read,比Oracle支持的两个事务隔离级更加强大。(参考:Innodb事务隔离级别 )
MySQL innodb事务引擎的逻辑框架图和Oracle非常类似,包含一个大的buffer pool,重做日志(redo log),表空间文件ibddata1(等同于Oracle数据文件头+system表空间)。另外,回滚(undo)也不是使用独立的undo表空间来管理undo segment,而是使用主表空间文件。undo相关参考:
概念原理——MySQL数据库InnoDB存储引擎Log漫游
Mysql Innodb的undo redo操作过程
深入分析——InnoDB undo log解析(一)
InnoDB undo log解析(二)
Continue reading
Docker入门
Develop, Ship and Run Any Application, Anywhere.
Docker consists of:
The Docker Engine – our lightweight and powerful open source container virtualization technology combined with a work flow for building and containerizing your applications.
Docker Hub – our SaaS service for sharing and managing your application stacks.
Docker hub(app仓库)也是docker的组成,可以在https://hub.docker.com/ 登录并注册一个docker账户,搜索、下载别人分享的docker app,也可以自己上传和保存自己修改/创建的docker app(即docker image托管)。hub repository上提供了APP非常丰富多彩,基本上囊括了常用的一切应用平台。相关资料参见:
Docker1.0发布—迈入云(DockerHub应用分发平台)端(Docker引擎)时代
http://www.openstack.cn/p1961.html
官方文档:
https://docs.docker.com/
另外官方有个在线模拟的tutorial,10分钟就可以了解docker的基本使用。
http://www.docker.com/tryit/
15个有用的docker技巧
http://www.21ops.com/linux/13512.html
Continue reading
TPCC-MySQL基准测试
TPC(Transactionprocessing Performance Council,事务处理性能委员会)是由数十家会员公司创建的非盈利组织。TPC是制定商务应用基准程序的标准规范、性能和价格度量,并管理测试结果的发布。TPC-C使用三种性能和价格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。TPC-C还经常以系统性能价格比的方式体现,单位是$/tpmC,即以系统的总价格(单位是美元)/tpmC数值得出。(摘自百度百科) Continue reading