Archive

Author Archive

Open_tables &table_open_cache

July 5th, 2011

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 1 |
+—————+——-+
1 row in set (0.00 sec)

mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 1 |
+——————+——-+
1 row in set (0.00 sec)

mysql>
mysql>
mysql>
mysql>
mysql> set global table_open_cache=3;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 3 |
+——————+——-+
1 row in set (0.00 sec)

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 1 |
+—————+——-+
1 row in set (0.00 sec)

mysql> select * from t1,t2,t3 ;
Empty set (0.00 sec)

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 3 |
+—————+——-+
1 row in set (0.00 sec)

mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 3 |
+——————+——-+
1 row in set (0.00 sec)

mysql> select * from t4;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 3 | 3 |
| 2 | 2 | 3 |
+—-+——+——+
2 rows in set (0.01 sec)

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 3 |
+—————+——-+
1 row in set (0.00 sec)

mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 3 |
+——————+——-+
1 row in set (0.00 sec)

mysql> set global table_open_cache=1 ;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 1 |
+——————+——-+
1 row in set (0.00 sec)

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 3 |
+—————+——-+
1 row in set (0.00 sec)

mysql> select * from t5;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 3 | 3 |
| 2 | 2 | 3 |
+—-+——+——+
2 rows in set (0.00 sec)

mysql> show status like ‘Open_tables’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_tables | 1 |
+—————+——-+
1 row in set (0.00 sec)

mysql> show variables like ‘table_open_cache’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| table_open_cache | 1 |
+——————+——-+
1 row in set (0.00 sec)

mysql>

数据库

ERROR 1030 (HY000): Got error 28 from storage engine

May 24th, 2011

[root@dbatest1 ~]# mysql -uroot -pabc123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5268
Server version: 5.1.50-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use information_schema
Database changed

mysql> desc TABLES
-> ;
ERROR 1030 (HY000): Got error 28 from storage engine
mysql>
mysql>
[root@dbatest1 tmp]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
131G 124G 0 100% /
/dev/sda1 99M 11M 83M 12% /boot
tmpfs 1014M 622M 392M 62% /dev/shm
/dev/sdb3 7.4G 5.5G 1.5G 79% /u03
[root@dbatest1 tmp]#

[root@dbatest1 tmp]# mysql -uroot -pabc123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5269
Server version: 5.1.50-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> show variables like ‘%dir%’ ;
+—————————————–+—————————————-+
| Variable_name | Value |
+—————————————–+—————————————-+
| basedir | /usr/local/mysql/ |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
| datadir | /mysql/data/ |
| innodb_data_home_dir | /mysql/ibdata |
| innodb_log_group_home_dir | /mysql/log |
| innodb_max_dirty_pages_pct | 90 |
| plugin_dir | /usr/local/mysql/lib/mysql/plugin |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+—————————————–+—————————————-+
10 rows in set (0.00 sec)

AUTHOR
[root@dbatest1 tmp]# mv rda /u03
[root@dbatest1 tmp]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
136805368 129708824 35040 100% /
/dev/sda1 101086 10906 84961 12% /boot
tmpfs 1037772 636780 400992 62% /dev/shm
/dev/sdb3 7700700 5790880 1518640 80% /u03

[root@dbatest1 tmp]# mysql -uroot -pabc123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5270
Server version: 5.1.50-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use information_schema;
Database changed
mysql> desc TABLES;
+—————–+———————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+—————–+———————+——+—–+———+——-+
| TABLE_CATALOG | varchar(512) | YES | | NULL | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| TABLE_TYPE | varchar(64) | NO | | | |
| ENGINE | varchar(64) | YES | | NULL | |
| VERSION | bigint(21) unsigned | YES | | NULL | |
| ROW_FORMAT | varchar(10) | YES | | NULL | |
| TABLE_ROWS | bigint(21) unsigned | YES | | NULL | |
| AVG_ROW_LENGTH | bigint(21) unsigned | YES | | NULL | |
| DATA_LENGTH | bigint(21) unsigned | YES | | NULL | |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES | | NULL | |
| INDEX_LENGTH | bigint(21) unsigned | YES | | NULL | |
| DATA_FREE | bigint(21) unsigned | YES | | NULL | |
| AUTO_INCREMENT | bigint(21) unsigned | YES | | NULL | |
| CREATE_TIME | datetime | YES | | NULL | |
| UPDATE_TIME | datetime | YES | | NULL | |
| CHECK_TIME | datetime | YES | | NULL | |
| TABLE_COLLATION | varchar(32) | YES | | NULL | |
| CHECKSUM | bigint(21) unsigned | YES | | NULL | |
| CREATE_OPTIONS | varchar(255) | YES | | NULL | |
| TABLE_COMMENT | varchar(80) | NO | | | |
+—————–+———————+——+—–+———+——-+
21 rows in set (0.00 sec)

数据库

On duplicate key update

February 28th, 2011

mysql> create table t1(f1 int,f2 int,f3 int) ;
Query OK, 0 rows affected (0.05 sec)

mysql> desc t1;
+——-+———+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+———+——+—–+———+——-+
| f1 | int(11) | YES | | NULL | |
| f2 | int(11) | YES | | NULL | |
| f3 | int(11) | YES | | NULL | |
+——-+———+——+—–+———+——-+
3 rows in set (0.00 sec)

mysql>
mysql> alter table t1 add constraint pk_f1 primary key(f1) ;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0

m
mysql>
mysql> insert into t1 values(1,2,3) ;
Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values(1,2,3) ;
ERROR 1062 (23000): Duplicate entry ’1′ for key ‘PRIMARY’
mysql>
mysql>
mysql>
mysql> select * from t1;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 2 | 3 |
+—-+——+——+
1 row in set (0.10 sec)

mysql>
mysql> insert into t1 values(1,2,3)
-> on duplicate key update f3=f3+1 ;
Query OK, 2 rows affected (0.01 sec)

mysql> select * from t1;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 2 | 4 |
+—-+——+——+
1 row in set (0.00 sec)

mysql>
mysql> insert into t1 values(1,2,3) on duplicate key update f3=f3-1,f2=f2+1 ;
Query OK, 2 rows affected (0.01 sec)

mysql> select * from t1;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 3 | 3 |
+—-+——+——+
1 row in set (0.00 sec)

mysql> insert into t1 values(2,2,3) on duplicate key update f3=f3+1,f2=f2+1 ;
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+—-+——+——+
| f1 | f2 | f3 |
+—-+——+——+
| 1 | 3 | 3 |
| 2 | 2 | 3 |
+—-+——+——+
2 rows in set (0.00 sec)

mysql> select version();
+————+
| version() |
+————+
| 5.1.50-log |
+————+
1 row in set (0.00 sec)

数据库

Linux top 相关说明

February 24th, 2011

us: user cpu time
sy: system cpu time
ni: user nice cpu time
id: idle cpu time
wa: io wait cpu time
hi: hardware irq (servicing hardware interrupts)
si: software irq (servicing software interrupts)
st: steal time (time in involuntary wait by virtual cpu while hypervisor is servicing another processor)

操作系统

设置PHP的memory_limit的大小

February 9th, 2011

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1099 bytes) in
解释是可用内存已耗尽,这关系到PHP的memory_limit的设置问题。

这里有两种方法解决

1、修改php.ini

Php代码
memory_limit = 128

这种方法需要重启服务器,很显然,此方法对虚拟机有限制。

2、通过ini_set函数修改配置选项值
Php代码
ini_set (‘memory_limit’, ’128M’)
很显然, 这种方法更合适。

软件开发

什么是POI?

December 13th, 2010

  中国POI(Point of Interest)数据库
  什么是POI?
  POI是“Point of Interest”的缩写,可以翻译成“兴趣点”吧,每个POI包含四方面信息,名称、类别、经度、纬度。
  这个计划的远景目标是建立全国的POI数据库,并且全部开放。
  目前POI数据库计划已经发布有北京市区POI数据16000条,全国村镇POI数据8万余条。全国其它地区的POI数据正在搜集整理中,同时还有一个全国公路收费站POI数据的计划也在进行。

生活随笔

HP-UX UNIX: Start / Stop and Configure Cron Services

November 15th, 2010

Q. I need to run a backup and other stuff everyday. How do I check and start cron service under HP-UX UNIX operating system? How do I write cron jobs?

A. Cron service is required to run jobs and tasks such as backup.

You must login as the root to run following commands. Each user that is using the cron service must have a cron configuration file in the /var/spool/cron/crontab directory. Also users are permitted if their name appeared in /var/adm/cron/cron.allow file
Task: Find out if cron is running under HP-UX

Type the following command at a shell prompt
# ps -ef | grep cron

Open /etc/rc.config.d/cron file
vi /etc/rc.config.d/cron
Set control variable to 1 to enable cron : CRON=1
Set control variable to 0 to disable : CRON=0
Close and save the file. To start or stop cron you can type the following command:
# /sbin/init.d/cron start <-- start cron
# /sbin/init.d/cron stop <-- stop cron
Task: HP-UX Start cron service

If cron is not running, simply type:
# cron
Task: Edit / create cron jobs

Type the following command to submit a cron job:
# crontab -e
List your cron file:
# crontab -l
Backup all your cron jobs:
# crontab -l > ~/backup.cron.jobs
Remove ALL cron job:
# crontab -r
Task: Crontab file format

Cron file format is as follows:

MIN HOUR DATE MONTH DAY /PATH/TO/COMMAND
0-59 0-23 1-31 1-12 0-6 /root/scripts/backup2tape.sh

Easy to remember crontab file format:

* * * * * command to be executed
- – - – -
| | | | |
| | | | —– Day of week (0 – 7) (Sunday=0 or 7)
| | | ——- Month (1 – 12)
| | ——— Day of month (1 – 31)
| ———– Hour (0 – 23)
————- Minute (0 – 59)

To run /root/script/backup at 23:00, every day, enter:
# crontab -e
Append following

0 23 * * * /root/script/backup

Run foo job very weekday (MON-Fri) at 6am, enter:

0 6 * * 1-5 /root/script/backup

For more information refer to cron and crontab man pages.

操作系统

SMP(Symmetrical Multi-Processing)

October 13th, 2010

SMP(Symmetrical Multi-Processing)
  对称多处理”(Symmetrical Multi-Processing)又叫SMP,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部终端。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。
  要组建SMP系统,首先最关键的一点就是需要合适的CPU相配合。我们平时看到的CPU都是单颗使用,所以看不出来它们有什么区别,但是,实际上,支持SMP功能并不是没有条件的,随意拿几块CPU来就可以建立多处理系统那简直是天方夜谭。要实现 SMP功能,我们使用的CPU必须具备以下要求:
  1、CPU内部必须内置APIC(Advanced Programmable Interrupt Controllers)单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers–APICs)的使用。CPU通过彼此发送中断来完成它们之间的通信。通过给中断附加动作(actions),不同的CPU可以在某种程度上彼此进行控制。每个CPU有自己的APIC(成为那个CPU的本地APIC),并且还有一个I/O APIC来处理由I/O设备引起的中断,这个I/O APIC是安装在主板上的,但每个CPU上的APIC则不可或缺,否则将无法处理多CPU之间的中断协调。
  2、相同的产品型号,同样类型的CPU核心。例如,虽然Athlon和Pentium III各自都内置有APIC单元,想要让它们一起建立SMP系统是不可能的,当然,即使是Celeron和Pentium III,那样的可能性也为0,甚至Coppermine核心的Pentium III和Tualatin的Pentium III也不能建立SMP系统–这是因为他们的运行指令不完全相同,APIC中断协调差异也很大。
  3、完全相同的运行频率。如果要建立双Pentium III系统,必须两颗866MHz或者两颗1000MHz处理器,不可以用一颗866MHz,另一颗1000MHz来组建,否则系统将无法正常点亮。
  4、尽可能保持相同的产品序列编号。即使是同样核心的相同频率处理器,由于生产批次不同也会造成不可思议的问题。两个生产批次的CPU作为双处理器运行的时候,有可能会发生一颗CPU负担过高,而另一颗负担很少的情况,无法发挥最大性能,更糟糕的是可能导致死机,因此,应该尽可能选择同一批生产的处理器来组建SMP系统。

操作系统

新版)CCNP课程内容

August 14th, 2010

考试号
642-901 BSCI (Building Scalable Cisco InternetWorks)
642-812 BCMSN (Building Converged Cisco Multilayer  Switching Networks)
642-825 ISCW (Implementing Secure Converged Wide  Area Networks)
642-845 ONT (Optimizing Converged Cisco Networks)

1)
CCNP – 稳定的路由实施: BSCI (Building   Scalable Cisco InternetWorks)
学习实施 EIGRP 网络
学习实施多区域 OSPF 网络
描述集成的 IS-IS 网络的实施
学习实施 IOS 路由特性
学习实施在服务运营商网络中实施 BGP 网络
学习构造组播网络的构架
学习实施 IPv6 网络以及 OSPFv3 的操作

2)
CCNP – 扩展的交换接入: BCMSN (Building Converged Cisco Multilayer Switching Networks)
学习使用 VLAN 在园区网中组织部门及用户
学习实施802.1Q,ISL;VTP以及EtherChannel
学习在层次化的网络中实施生成树协议
学习使用路由方式实现 VLAN 间通讯
学习理解多层交换网络中三种不同的转发方式
学习使用 HSRP 等网关冗余协议实现网络的备份
描述和配置无线客户端的接入
描述在交换型网络中实施安全特性
配置实施交换网络对语音的支持

3)
CCNP – 安全的远程访问: ISCW (Implementing Secure Converged Wide Area Networks)
学习实施基本的 Cable, xDSL 网络接入服务
学习实施PPPoE,PPPoA
学习实施基于帧模式的 MPLS
学习实施一个场点到场点的 IPSec/VPN 网络
比较 IPSec 和 GRE 的异同
描述网络攻击的种类和缓解办法
描述如何加强 CISCO 设备的安全性
学习实施基于 IOS 的防火墙
学习实施基于 IOS 的入侵防御系统( IPS )

4)
CCNP – 优化的网络构架: ONT (Optimizing Converged Cisco Networks)
描述基本的 VoIP 网络的实施
学习关于拥塞网络的优化思想
学习实施集成的 QoS 服务特性
学习实施 QoS 的自动配置
学习优化 WLAN 的管理和安全

网络技术

SaaS/PaaS/IaaS

June 14th, 2010

SaaS(Software-as-a-service:软件在线服务)

SaaS是Software-as-a-service(软件在线服务)的简称,是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的 一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自 己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软 件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用 的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径, 它消除了企业购买、构建和维护基础设施和应用程序的需要。

PaaS(Platform-as-a-Service:平台即服务)

全称:(Platform as a service)中文: 平台作为服务,把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了 PaaS(Platform as a Service)。所谓PaaS实际上是指将软件研发的平台(计世资讯定义为业务基础平台)作为一种服务,以SaaS的模式提交给用户。因此,PaaS也 是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。

IaaS(Infrastructure as a Service:基础设施即服务)

消费者通过 Internet 可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务(Infrastructure as a Service,IaaS)。基于 Internet 的服务(如存储和数据库)是 IaaS的一部分。Internet上其他类型的服务包括平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。PaaS提供了用户可以访问的完整或部分的应用程序开发,SaaS则提供了完整的可直接使用的应用程序,比如通过 Internet管理企业资源。

作为 Infrastructure as a Service (IaaS) 在实际应用中的一个例子,The NewYorkTimes 使用成百上千台 Amazon EC2 实例在 36 小时内处理 TB 级的文档数据。如果没有 EC2,TheNewYork Times 处理这些数据将要花费数天或者数月的时间。

IaaS 分为两种用法:公共的和私有的。AmazonEC2在基础设施云中使用公共服务器池。更加私有化的服务会使用企业内部数据中心的一组公用或私有服务器池。

云计算(Cloud Computing)

是 个2007年第3季度才兴起的新名词,是一种新兴的商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、 存储空间和各种软件服务。

云计算的定义有着狭义和广义之分。狭义的云计算,指的是厂商通过分布式计算和虚拟化技术搭建数据中心或超级计算机,以免费或按需租用方式向技术开发 者或者企业客户提供数据存储等。广义的云计算,则指厂商通过建立网络服务器集群,向各种不同类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不 同类型的服务。显然,广义的云计算包括了更多的厂商和服务类型,例如以八百客、沃利森为主开发的在线CRM软件,国内用友、金蝶等老牌管理软件厂商也推出 的在线财务软件,谷歌发布的 Google应用程序套装等,都可纳入这一范畴。

云(Cloud)

是一些可以自我维护和管理的虚拟计算资源,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。云计算将所有的计算资源集中起 来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。

有人打了个比方:这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样, 取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。

云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。

网络技术