2007年12月24日星期一

Oracle 9i在RH Linux AS4 x86_64上的Segmentation fault

在RH Linux AS4 x86_amd64正常安装好Oracle 9i后使用tnsping,sqlplus等命令全部报segmentation fault.
Google了下,还是gcc的版本问题,解决办法如下:

Subject: Segmentation Fault When Execute Sqlplus, Oracle, Lsnrctl After New/Patchset Install

Doc ID: Note:316746.1 Type: PROBLEM

Last Revision Date: 28-APR-2006 Status: MODERATED
In this Document

Symptoms

Changes

Cause

Solution
--------------------------------------------------------------------------------
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) Rapid Visibility (RaV) process, and therefore has not been subject to an independent technical review.
Applies to: Oracle Server - Enterprise Edition - Version: 9.2.0 to 10.1.0

Oracle Server - Standard Edition - Version: 9.2.0 to 10.1.0

Linux x86-64

Linux x86SymptomsAfter fresh install and latest patchset 9.2.0.6.0 on Linux x86_64 every attempt to use sqlplus, lsnrctl fails with an segmentation fault. ChangesNew install or patchset apply. CauseThe gcc/g++ compilers in /usr/bin are a script (with additional parameters)

which caused an incorrect compilation.
make.log shows this incorrect compilation:

/tpp/oracle/920/bin/genclntsh

/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a whensearching for -lgcc

/usr/bin/ld: skipping incompatible /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a whensearching for -lgcc

/usr/bin/ld: warning: i386 architecture of input file`/usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbeginS.o' is incompatible with i386:x86-64 output

/usr/bin/ld: warning: i386 architecture of input file`/usr/lib/gcc-lib/i386-redhat-linux/2.96/crtendS.o' is incompatible with i386:x86-64 output.

SolutionTo implement the solution, please execute the following steps:
1. cd /usr/bin (as root)

2. mv gcc gcc.script

3. mv g++ g++.script

4. ln -s gcc32 gcc

5. ln -s g++32 g++

6. login as oracle software owner (make sure environment is correct)

7. cd $ORACLE_HOME/bin

8. relink all

阅读全文...

2007年12月21日星期五

解决:ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignored.

在RH Linux AS4 x86-64 安装Oracle9.2.0.4前打补丁Patch 4198954中的compat-libcwait-2.1-1.i386.rpm 报如下的错误:

[root@oracle8 oracle]# rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm

ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignored.


Google了半天找到解决办法:

# echo "" > /etc/ld.so.preload

64位系统没有这个文件导致报错

阅读全文...

TIPS:关于cpio解压

很久没用这个命令居然把解压参数忘记了,在这里留个纪念,免得又忘记了,汗.....

解压cpio文件

cpio -idmv < filename.cpio

同样可以解压img文件:

cpio -idmv < filename.img

阅读全文...

2007年12月20日星期四

Android-Google的手机利器,试玩~

虽然google的手机报道最近比较火,Android也早早的发布了,一直都没空研究。今天早上没事终于把Android的SDK down下来了,试玩了一下,还不错的说,可惜大学时Java没好好学,唉,惭愧啊。有空补补课,也开发个什么东东出来:P
开机界面:搜索网络:待机界面:
用Google的Brower访问e21:电话本/通话:

阅读全文...

2007年12月19日星期三

NND,终于突破我们伟大的GFW,正常显示blogger啦

国家伟大的GFW对Google可是特别的照顾,Blogger时能上时不能上,本申请了个域名准备转移过去的,可惜Blooger的种种限制只能作罢,重新建个Blog目前也没时间,算了,还是搞了代理吧。
昨天同事推荐了个Your Freedom,早上装了试试。
首先需要个jre(jre1.4以上版本),上http://www.java.com/ 上面down一个吧
趁下载的档儿到这里注册一下,记住账号密码
下载装完jre就开始安装YourFreedom
第一次运行会弹出 configuration wizard窗口,点next,问你是不是用已有的代理一般跳过点next,开始自动扫描可用的服务器,等待列表出现,然后选择速度快的服务器吧




next,输入刚申请好的用户名密码,next,save& exit 。 出现软件的主界面:

配置你的客户端程序,socks默认是127.0.0.1:1080,http默认是127.0.0.1:8080

哈哈,又见我可爱的Blogger了!~

--------------------------

附Linux下安装方法:

首先下载一个下载 Java archive版本的Your Freedom

安装好jre后执行:sudo update-alternatives --config java


YF_config java

务必选择带sun的那个作为默认

解压下载的文件到一个目录,java -jar DOWNLOADDIR/ freedom.jar,应该可以成功运行了





阅读全文...

2007年10月23日星期二

如何从mysql5降级为mysql4

开发部帮某组织开发的一php+mysql网站,开发环境为php5+mysql5。导入到其托管服务器中出现乱码。检查服务器上Mysql为4.0版本,由于不影响服务器上其他应用,决定将数据降级导出后再导入mysql4:


降级的时候导出库可以用这个方法

mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse --compatible=mysql40 > db4.sql

这样导出的就是4.0的库了

阅读全文...

【转】各种unix平台下iostat与vmstst说明

Linux下vmstat输出释疑:

Vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比
system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
swap
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。


Solairs系统下vmstat输出释疑

vmstat 5 5
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s1 s1 -- -- in sy cs us sy id
0 0 0 704968 207640 0 1 2 0 0 0 0 0 0 0 0 302 6 31 0 0 100
0 0 0 705048 206728 1 2 0 0 0 0 0 0 0 0 0 302 4 34 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 302 3 35 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 301 3 34 0 0 100
0 0 0 705048 206728 0 0 0 0 0 0 0 0 0 0 0 302 6 35 0 0 100
procs
r 列表示在运行队列中等待的进程数。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
w 列表示可以进入运行队列但被交换出来的进程
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy 列详述了 CPU 在系统方式下执行一个进程所花时间的百分比。这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
id 列显示了没有未决本地磁盘 I/O 时 CPU 空闲或等待的时间百分比。
faults 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。iostat命令输出更有参考意义。
sy 列表示在某一时间间隔中观测到的每秒系统调用次数。通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超过10000,用户需要注意。
cs 列表示,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
memory
swap 当前可用内存交换区容量(k表示)。
free 当前的空闲页面列表中内存数量(k表示)
page
re 列表示回收的页面数。
mf 列表示小级别错误计数。
pi 列表示进入页面数 (k表示)。
po 列表示出页面数(k表示)。
fr 列表示空余的页面数(k表示)。
de 列表示提前读入的页面中的未命中数。
sr 列表示通过时钟算法扫描的页面计数

solairs下iostat释疑

iostat -xtc 5 2
extended device statistics tty cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id
sd1 0.3 0.0 3.4 0.1 0.0 0.0 13.2 0 0 0 0 0 0 0 100
sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
extended device statistics tty cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id
sd1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 77 0 0 0 100
sd15 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0

tty和CPU使用率报告
tin 显示了系统为所有 tty 读取的字符总数。
tout 显示了系统为所有 tty 写入的字符总数。
us 显示了在用户级应用程序在缺省的优先级别执行时的 CPU 使用率百分比。
sy 显示了在用户级应用程序在降低优先级执行时的 CPU 使用率百分比。
wt 显示了在系统级(内核)执行时生成的 CPU 使用率。
id 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。
磁盘使用率报告
device 被统计的硬盘设备名,包括nfs设备。
r/s 表示每秒钟读的次数
w/s 表示每秒钟写的次数
kr/s 表示每秒钟读的K字节数
kw/s 表示每秒钟写的K字节数
wait 表示平均多少个传输等待被处理,相当于读写等待队列长度
actv 表示平均多少个传输从读写等待队列中移出做处理
svc_t 表示每次硬盘传输平均耗费的时间,以毫秒为单位,这里我们设置的参考值为30ms,超过说明硬盘负载太多
%w 表示每次传输所消耗时间里面,等待所占的百分比
%b 表示硬盘忙的时间所占百分比,这里我们设置参考值为5%,超过5%说明硬盘负载太多,最好采取以下步骤:
1.)调整应用,令其使用磁盘i/o更加有效率,可以通过修改磁盘队列、使用应用服务器的cache
2.)将文件系统分布到2个或多个磁盘上,并使用volume manager/disksuite的条带化特点
3.) 增加系统参数值,如inode cache , ufs_ninode。


AIX下vmstat释疑:

# vmstat 5 20
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 1 244528 1227 0 3 3 56 151 0 404 1420 1415 4 2 88 6
2 6 244538 1241 0 39 148 2424 3511 0 904 4660 7571 49 12 2 38
5 3 244540 791 0 2 221 3937 6077 0 1183 6605 24619 44 34 1 21
1 7 245326 1009 0 11 331 1071 1934 0 884 3788 13000 23 25 0 52

分析如下:
kthr
kthr列表示每秒钟在采样间隔时间上对各种队列中的内核线程数求得的平均值
r 列表示可运行的内核线程平均数,包括正在运行的线程和正在等待 CPU的线程。如果这个数字大于 CPU 的数目,至少有一个线程要等待 CPU,等待 CPU 的线程越多,越有可能对性能产生影响。
b 列表示每秒 VMM 等待队列中的内核线程平均数。这包括正在等待文件系统 I/O 的线程,或由于内存装入控制而暂挂的线程。这里参考值为2,大于2表示被阻塞列线程数目太多。
[b] !阻塞线程数目太多
CPU
us 列显示了用户方式下所花费 CPU 时间的百分比。一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy 列详述了 CPU 在系统方式下执行一个进程所花时间的百分比。这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
id 列显示了没有未决本地磁盘 I/O 时 CPU 空闲或等待的时间百分比。
wa 列详细显示了暂挂本地磁盘 I/O 和 NFS 加载的磁盘的 CPU 空闲百分比。这里参考值为25%,大于25% 可能表示磁盘子系统可能没有被正确平衡,或者这也可能是磁盘密集工作负载的结果。
[us]+[sy] !IO不平衡
[wa] 正常
fault
in 列表示在某一时间间隔中观测到的每秒设备中断数。iostat命令输出更有参考意义。
sy 列表示在某一时间间隔中观测到的每秒系统调用次数。通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超过10000,用户需要注意。
cs 列表示,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
[sy] 正常
memory
avm 列表示在收集 vmstat 样本时存在的活动虚拟内存页面数(4k为单位)。理想情况下, avm 应该比总 RAM 数小。如果不是,可能会出现一些虚拟内存页面调度量。有多少页面调度发生取决于两个值之间的差值。记住,虚拟内存的概念是提供给我们寻址大于实内存容量的能力(一些在 RAM 内存中,而另一些在调页空间中)。但是如果虚拟内存远大于实内存,可能造成过度的页面调度,从而导致延时。如果 avm 小于 RAM,那么当 RAM 中填满文件页时就会引起调页空间的页面调度。这种情况下,调整 minperm、maxperm 和 maxclient 的值可以减少调页空间的页面调度量。
fre 列显示出空闲内存页面的平均数量(4k为单位)。VMM 在空闲列表上保存的最少页面数由 minfree 参数决定。这里的参考值为maxfree的缺省值720,小于720说明存在内存系统颠簸。
[fre] 正常
[avm] avm的值约为:958MB
page
pi 列详细描述了从调页空间调入的页数。调页空间是驻留在磁盘上的虚拟内存的一部分。当内存过量使用时,它用作溢出。调页空间由用于存储从实内存中窃取到的工作组页面的逻辑卷组成。当进程访问一个窃取页时,产生了一个缺页故障,这一页必须从调页空间读入内存。这里设置pi的参考值为5,大于5说明内存不足。
po 列显示了调出到调页空间的页面数(速率)。无论什么时候窃取工作存储器的一页,如果它仍未驻留在调页空间中或已被修改,那它会被写入调页空间。如果不被再次访问,它会留在页面调度设备中直到进程终止或放弃空间。如果包含在出故障页面中的后续地址引用导致缺页故障,那么这些页面将会由系统个别调进。当一个进程正常终止,任何分配给该进程的调页空间将被释放。
fr 列表示在一定时间间隔内根据页面替换算法每秒所释放的页数。当 VMM 页面替换例程扫描页面帧表(Page Frame Table,PFT)时,它使用一些条件选取要窃取的页面以插入到可用内存帧的空闲列表中。
sr 列表示在一定时间间隔内根据页面替换算法每秒所检查的页面数。页面替换算法在可以窃取足够的页面以满足页面替换线程的需要之前可能不得不扫描许多页面帧。
cy 列表示每秒页面替换代码扫描了 PFT 多少次。因为插入空闲列表可以不需要完全扫描 PFT,并且因为所有的 vmstat 字段报告为整数,这一字段通常为 0。
这里设置fr:sr的参考值为3,超过说明内存不足。
[pi] !存在内存不足
[fr:sr] 正常


AIX命令iostat释疑


# iostat hdisk1 hdisk2 5 5

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 0.3 0.2 0.4 99.4 0.1

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.1 1.0 0.2 45090 51075
hdisk1 0.0 0.0 0.0 0 0

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 70.6 45 54 99.4 0.0

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.0 70.6 0.0 0.4 99.6 0.0

Disks: % tm_act Kbps tps Kb_read Kb_wrtn
hdisk2 0.0 0.0 0.0 0 0
hdisk1 0.0 0.0 0.0 0 0
分析结果
tty和CPU使用率报告
tin 显示了系统为所有 tty 读取的字符总数。
tout 显示了系统为所有 tty 写入的字符总数。
% user 显示了在用户级(应用程序)执行时生成的 CPU 使用率百分比。
% sys 显示了在系统级(内核)执行时生成的 CPU 使用率百分比。
% idle 显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。
% iowait 显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。
[user][+][sys] !CPU能力不足
[wait] 正常
磁盘使用率报告
% tm_act 表示物理磁盘处于活动状态的时间百分比(驱动器的带宽使用率)。
Kbps 表示以 KB 每秒为单位的传输(读或写)到驱动器的数据量。
tps 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有不确定的大小。
Kb_read 读取的 KB 总数。
Kb_wrtn 写入的 KB 总数。
磁盘负载均衡评估 正常
带宽使用评估 带宽值为:0Kbps


Hp-UNIX 命令vmstat释疑


# vmstat 5 5
procs memory page faults cpu
r b w avm free re at pi po fr de sr in sy cs us sy id
2 0 0 52260 24324 9 4 0 0 0 0 1 109 427 81 2 1 97
2 0 0 52260 24285 0 0 0 0 0 0 0 110 207 90 0 0 99
1 0 0 56211 24285 0 0 0 0 0 0 0 106 192 80 0 0 100
1 0 0 56211 24285 0 0 0 0 0 0 0 107 152 76 0 0 100
2 0 0 56552 24285 0 0 0 0 0 0 0 106 154 72 0 0 100

分析结果
procs
r 列表示在运行队列中等待的进程数。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
w 列表示可以进入运行队列但被交换出来的进程 。
[b] 正常
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy 列详述了 CPU 在系统方式下执行一个进程所花时间的百分比。这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
id 列显示了没有未决本地磁盘 I/O 时 CPU 空闲或等待的时间百分比。
[us]+[sy] 正常
fault 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。iostat命令输出更有参考意义。
sy 列表示在某一时间间隔中观测到的每秒系统调用次数。通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超过10000,用户需要注意。
cs 列表示,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
[sy] 正常
memory
avm 当前激活的虚拟内存数量(k表示)。
free 当前的空闲页面列表中内存数量(k表示)
[free] 正常
page
re 列表示回收的页面数。
at 列表示地址翻译错误计数。
pi 列表示进入页面数 (k表示)。
po 列表示出页面数(k表示)。
fr 列表示空余的页面数(k表示)。
de 列表示提前读入的页面中的未命中数。
sr 列表示通过时钟算法扫描的页面计数
[po] 正常
[fr:sr] 正常


Hp-unix下iostat释疑


# iostat 5 5

device bps sps msps

c0t6d0 0 0.0 1.0

c0t6d0 2 1.0 1.0

c0t6d0 2 0.8 1.0

c0t6d0 4 2.0 1.0

c0t6d0 2 1.0 1.0
分析结果
缓冲区性能分析
device: iostat统计的设备名称。
bps: 每秒该设备传输的K字节数。
sps: 每秒检索该设备次数。
msps: 平均每次检索所花费的时间,单位毫秒。
[bps] 正常




 原文地址 http://blog.chinaunix.net/u/25173/showart_289270.html

阅读全文...

2007年9月24日星期一

解决MySQL镜像master/slaver不同步的问题

一台主Mysql服务器,上面开了两个Mysql应用:3306,3307;两台从Mysql服务器。今天早上发现从服务器的3306都未和主服务器同步。
登录从服务器的mysql:
mysql> show slave status\G
********* 1. row ***********
Master_Host: xx.xxx.xxx.xxx
Master_User: repl
Master_Port: 3306
Connect_retry: 60
Master_Log_File: app2-bin.001
Read_Master_Log_Pos: 214
Relay_Log_File: db2-relay-bin.001
Relay_Log_Pos: 295
Relay_Master_Log_File: app2-bin.001
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_do_db:
Replicate_ignore_db: mysql
Last_errno: 0
Last_error:
Skip_counter: 0
Exec_master_log_pos: 214
Relay_log_space: 2951
row in set (0.00 sec)

发现Slave_IO_Running: No Slave_SQL_Running: No 这两项都停掉了

mysql> slave start;

重新打开slave监控就OK了!查看error日志发现是Relay_Log_File的文件名未指明,my.conf里面指明就好了~

阅读全文...

2007年9月12日星期三

vsftpd: 怎样取消(禁用)本地用户的删除权限

引用:原帖由 wolfg 于 2006-2-28 09:41 发表
cmds_allowed

This options specifies a comma separated list of allowed FTP commands (post login. USER, PASS and QUIT are always allowed pre-login). Other commands are rejected. This is a powerf ...

找到一个详细一点的:
http://wiki.nightlabs.de/en/Documentation:Linux/vsftpd
A common problem is to force certain file permissions for new files. There is file_open_mode and local_umask, but what drove me nearly crazy is that some clients do a chmod!!! E.g. when using konqueror, the permission related settings in /etc/vsftpd.conf just do not have any effect at all. The solution came with the option cmds_allowed. Here is an excerpt from my /etc/vsftpd.conf. Note, that lines beginning with "#" are comments and "\" marks that the following line should directly be appended (no linefeed in /etc/vsftpd.conf). The following line forbids the command for setting file permissions (by allowing everything except SITE):

cmds_allowed=ABOR,CWD,DELE,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,\
RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,\
NOOP,REIN,STAT,STOU,STRU,SYST
---------------------------------------------
以前的精彩贴: http://www.chinaunix.net/jh/15/661281.html
cmds_allowed=ABOR,APPE,CWD,CDUP,FEAT,LIST,MKD,MDTM,PASS,PASV,PWD,QUIT,RETR,REST,\
STOR,STRU,TYPE,USER

阅读全文...

2007年8月23日星期四

cron 启动出错

执行cron时出现下面的错误(Sun Solaris 8):
! cannot start cron; FIFO exists Thu Apr 23 10:55:56 2007!
******* CRON ABORTED ******** Thu Sep 26 10:55:56 2002

解决办法:
注意/etc/cron.d/FIFO文件,出现这个问题应该是cron发现存在那个文件,认为cron已经在系统中运行。你可以先将cron这个进程kill掉,再删掉该文件 rm -f /etc/cron.d/FIFO,然后再运行cron。

阅读全文...

2007年7月12日星期四

解决vsftp时间与系统时间不同步的问题

做FTP的时候发现上传文件的修改时间是格林威治标准时间,比北京时间慢整整8小时。
查vsftp的配置文档找到解决方法:
修改vsftpd配置文件:
# vi /etc/vsftpd/vsftpd.conf
在最后一行加上下面的参数就好了(vsftpd默认的是use_localtime=NO)。
#use_localtime zone
use_localtime=YES

阅读全文...

2007年6月27日星期三

修复MyISAM数据表

一个PHPWind的论坛,登录mysql数据库报错:Didn't find any fields in table 'pw_tmsgs'
这个问题是由于客户端(client)没有正常关闭造成的(看来以后mysql服务死了后不能随便用Kill了,危险啊)
使用 mysiamchk命令修复:
root# /data/app/mysql/bin/myisamchk --recover \
/data/app/mysql/data/bbs/pw_tmsgs.MYI
结果修复报错:
myisamchk: Disk is full writing '/data/app/mysql/data/bbs/pw_tmsgs.TMD' (Errcode: 28)

Google得知:
- make sure you have at least 2 times the amount of free disk space in your mysql data partition as the size of the table you are repairing.

一检查/data目录已经满了,汗,全被bbs的错误日志占满了,清空日志,重新执行命令,顺利通过。Web又访问正常了~
-------------------------------------
几个修复参数:
-r (--recover)
-q (--quick) 快速修复,仅修复索引
-o (--safe-recover)
-f (--force)

阅读全文...

2007年4月25日星期三

Linux下打开ISO文件

· 什么是ISO文件
ISO文件:就是以iso为扩展名的文件,它是iso9660文件格式,一种光盘(CD)上的文件系统格式。简单地说,就是数据在数据光盘上的组织形式:
它的特点是:
1)最多只包含8级子目录(可以用 RockRidge Extension增大这个限制)
2)文件名最大32字符
3)文件大小不超过650M

· 在Linux下如何使用ISO文件
通常,Linux系统的内核(Kernel)是支持iso9660文件格式的,如果不支持你需重新编译内核增加对其的支持。你只需简单使用以下命令就可以从/path目录中读到它的内容了:
mount -t iso9660 -o loop xxx.iso /path

· 在Linux系统中如何制作ISO文件:
在Linux系统中,我们可以通过拷贝命令,将光驱上的内容拷贝到一个ISO文件中,如:
cp /dev/cdrom xxx.iso

阅读全文...

2007年4月19日星期四

SQLServer忘记sa密码修改方法

最近几台Win2003的服务器老出问题,两台被黑,两台中毒.......
看来还是Linux的安全啊,嚯嚯
一台被黑的SQLServer的sa空密码被篡改(不安全也是因为这个空密码),无法连接数据库,解决办法如下:
通过企业管理器进入查询分析执行:
EXEC sp_password NULL, '你的新密码', 'sa'

如果你在NT下(包括2000)装的SQL Server,则可以这样做:
直接打开"查询分析器"(注意不是从"企业管理器"中进入,可以从开始菜单的程序组进去,如果找不到的话,直接在"运行"中输入"isqlw.exe"也可);
选择"Windows身份验证"进入,不需要输入密码,只要你是本机的系统管理员或者域管理员,此时自动成为SQL Server的管理员;在查询分析器窗口中输入下面的语句直接更改SA密码:
sp_password Null,\'ok\',\'sa\'
运行后sa的密码变为"ok"
sp_password存储过程的功能是更改SQL Server登录的密码;语法格式:
sp_password [ [ @old = ] \'old_password\' , ]
{ [ @new =] \'new_password\' }
[ , [ @loginame = ] \'login\' ]
参数说明:
[@old =] \'old_password\' : 旧密码;
[@new =] \'new_password\' : 要指定的新密码
[@loginame =] \'login\' : 要指定的用户
返回值: 0(成功)或 1(失败)

以上方法的关键原理在于,从"查询分析器"中以"Windows身份验证"连接SQL Server,只要你是本机的系统管理员或者域管理员,此时自动成为SQL Server的管理员.

阅读全文...

2007年4月18日星期三

vsftpd报错500 OOPS: cannot change directory的解决办法

FTP登录时错误信息:
500 OOPS: cannot change directory:/home/xxxxLogin failed.
421 Service not available, remote server has closed connection

开始以为是权限问题,将home/xxxx chmod为777,vsftpd配置文件全开依然不行。
百度一下查处原因:
==================================
I found information at the NSA that indicates you can disable SELinux protection of the ftp daemon.
setsebool -P ftpd_disable_trans 1
This seems a bit drastic. It certainly works for now though.
==================================
原来是新装系统RHEL5 增强的系统安全SELinux在作怪,关掉SELinux对FTP Daemon的保护就OK了:
# setsebool ftpd_disable_trans 1
# service vsftpd restart

阅读全文...

2007年4月17日星期二

Linux图形模式/文本模式切换总结

方法一:
文本模式下,输入:telinit 5 切换到图形界面。
图形界面下,新打开一个终端,输入命令:telinit 3 进入文本模式。

方法二:
也可以修改/etc/initab,
用vi修改/etc/inittab
方法是在命令行输入vi /etc/inittab
找到
/id;x;initdefault
其中x为运行等级,3为文本,5为图形

方法三:
如果在安装的时候你选择的默认格式是:桌面图形格式
ctrl+alt+f1 图形--->文本格式
alt+f7 文本格式--->图形界面
如果在安装的时候你选择的默认格式是:文本格式
startx 即转换到图形界面
根据你的情况,最方便的似乎是最后一句话:startx

阅读全文...

2007年2月27日星期二

日志分析并排序

今天分析Apache的Log日志看到流量偏大,想找出大量访问的IP:

# tail shouye_COMBINE_20070227.log

222.136.203.248 - - [27/Feb/2007:15:59:03 +0800] "GET /e21/20020121/images/0119001.gif HTTP/1.1" 200 4258 "http://xjxw.e21.edu.cn/xjcx.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/)"
222.136.203.248 - - [27/Feb/2007:15:59:03 +0800] "GET /e21/e21_index_menu.php HTTP/1.1" 200 1691 "http://xjxw.e21.edu.cn/xjcx.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/)"
222.136.203.248 - - [27/Feb/2007:15:59:03 +0800] "GET /e21/20020121/images/0119002.gif HTTP/1.1" 200 1549 "http://xjxw.e21.edu.cn/xjcx.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/)"

打开shouye_COMBINE_20070227.log/ 读取第一列/ 相同项出项次数/ 排序/ 更多
#cat shouye_COMBINE_20070227.log /awk '{print $1}' /awk '{a[$1]+=1}END{for(i in a)print i,a[i]}' /sort -k2 -n -r more
211.67.64.225 18754
210.42.140.5 3332
211.67.66.82 2098
202.108.37.223 999
211.67.64.163 870
210.42.140.28 745
58.19.198.66 602
122.204.39.253 512
211.67.66.90 508
......
瞬间找出访问量最大IP

阅读全文...

2007年2月9日星期五

Rokr E2上的第一个C语言程序

        今天终于下到xscale-gcc-vfp-3.3.tar.gz,可以在Redhat Linux上编译Intel xscale CPU的C程序了。这样我的小E2就可以运行我编的C语言程序了^_^
        下面是我手机终端上运行的我编的第一个C语言程序了,改版的Hello Moto!:

阅读全文...

2007年1月31日星期三

从UNIX/Linux访问Windows共享目录

        Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当然也可以到www.samba.org网站下载。
        当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:  
# mkdir –p /mnt/win   
# mount -t smbfs -o username=administrator,password=test123 //192.168.0.66/c$ /mnt/win

阅读全文...

2007年1月30日星期二

看房记

        周日忍不住,去看了下即将竣工的房子。签合同后就再也没去看过,当时外墙还都被围着,保留一点神秘,现在都基本展现在我面前了。买上东一的同事四月一号就可以拿房了,而我还要熬到五月底。

        不说了,把胡乱拍的几张放出来纪念一下:

阅读全文...

2007年1月26日星期五

BORN TO TRY



同事手机上的一首歌,
很好听...





BORN TO TRY
Delta Goodrem

Doing everything that I believe in
做所有我相信的事
Going by the rules that I've been taught
按照我被教导的规则
More understanding of what's around me
更加了解我身边的事物
And protected from the walls of love
在爱的围栏中受到保护
All that you see is me
你所见到的所有都是我
And all I truly believe
我所真正相信的
That I was born to try
我生来为了尝试
I've learned to love
我已经学习去爱
Be understanding
去了解
And believe in life
相信生活
But you've got to make choices
但你不得不做出决定
Be wrong or right
对或错
Sometimes you've got to sacrifice the things you like
有时你不得不牺牲自己喜欢的事
But I was born to try
但我生来为了尝试
No point in talking what you should have been
说你原本应该成为什么,那没有意义
And regretting the things that went on
为已逝去的过去后悔
Life's full of mistakes, destinies and fate
生命充满了错误和命中注定
Remove the clouds look at the bigger picture
移开乌云,看向更大的画面
And all that you see is me
你看到的所有都是我
And all I truly believe
我所真正相信的
That I was born to try
我生来为了尝试
I've learned to love
我已经学习去爱
Be understanding
去了解
And believe in life
相信生活
But you've got to make choices
但你不得不做出决定
Be wrong or right
对或错
Sometimes you've got to sacrifice the things you like
有时你不得不牺牲自己喜欢的事
But I was born to try
但我生来为了尝试
All that you see is me
你看到的所有都是我
All I truly believe
我所真正相信的

阅读全文...

2007年1月24日星期三

胡乱改手机配置文件

        Moto E2从8月份到手到现在终于忍不住写点什么了,其间刷了3次机,还指导一朋友刷了一次。然后就是瞎改手机配置。自己写了方便自己用的几个小软件。Linux的系统就是一个好,可以乱改系统配置。
        看到Apple的iPhone上市,也想把我的E2改成iPhone的界面,试了一小时,重启N次手机,终于大功告成!
----------------------------------------------------------------
修改主题文件里面的phone_p.ini文件
主要修改以下地方:

[Idle]
Bg_Percent = 100
Padding_Top = -25 //待机状态高度
Padding_Bottom = 210 //数字时钟高度
Padding_Right = 75 //数字时钟位置(左右)
Padding_Left = 75 //待机状态位置(左右)
AnalogClockHands_Percent = 100
AnalogClockHands_Color = 16777215
AnalogClockHands_Stretch = 0
AnalogClockHands_Type = 1
AnalogClockHands_Width = 2
Spacing_H1 = 3
Spacing_V1 = 3
Spacing_V3 = 3
Spacing_S1 = 0
AnalogClockFace_Stretch = 0
AnalogClockFace_Percent = 100
Spacing_V2 = 1

[Font_DigitalClockStd]
Leading = 22
Size = 36 //数字时钟字体大小
Color = 16777215
Style = 1
Align = 2
OutlineColor = 0

[Font_IdleStatusStd]
Leading = 25
Size = 18 //待机状态字体大小(如“正在充电” “年/月/日” “键盘已锁定”等)
Color = 16777215
Style = 0
Align = 1
OutlineColor = 0

-------------------------------------------------------------------
和真正的iPhone PK下^_^ (左边为我的E2,右边是iPhone)

阅读全文...

2007年1月17日星期三

遍历查找并删除文件/文件夹

今天同事叫帮忙写个删除SVN下所有.svn的文件夹的脚本,一句话搞定:
#!/bin/bash
find /SVN -name ".svn" -depth -exec rm -rf {} \;

阅读全文...