-
Feb18
putty for windows源码编译中的几个问题
Posted in Program, 570 views
-
开发工具
可选VC或DEV-C++,putty提供了这2个工具的工程文件,非常方便。
编译过程中的错误
遇到windows.c中的FLASHWINFO结构为定义,在google中得知此结构的信息.
在windows.c文件开头加入如下信息:
#define FLASHW_STOP 0
#define FLASHW_CAPTION 1
#define FLASHW_TRAY 2
#define FLASHW_ALL (FLASHW_CAPTION|FLASHW_TRAY)
#define FLASHW_TIMER 4
#define FLASHW_TIMERNOFG 12typedef struct _FLASHWINFO {
UINT cbSize;
HWND hwnd;
DWORD dwFlags;
UINT uCount;
DWORD dwTimeout;
} FLASHWINFO;在winstore.c开头加入:
#define SHGFP_TYPE_CURRENT 0
找不到htmlhelp.h
这个头文件没有加在源码包中,google一下下载个添加到工程里就ok
-
No Comments » putty 编译
-
Feb06
Mysql导入慢的解决方法
Posted in Database, 655 views
-
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导入的速度。
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值大,否则可能出错。
首先确定目标库的参数值
mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';根据参数值书写mysqldump命令,如:
E:\eis>mysqldump -uroot -p eis_db goodclassification -e --max_allowed_packet=1048576 --net_buffer_length=16384 >good3.sql之前2小时才能导入的sql现在几十秒就可以完成了。
-
No Comments » imp max_allowed_packet mysql mysqldump 导入 慢
-
Feb04
远程数据库管理三思而后行
Posted in Database, View, 431 views
-
是否要选择一个远程数据库管理员来弥补或满足你对数据管理的需求,必须三思而后行。
目前远程数据库管理的市场相当饱和。但是,并不是说无论哪个企业都适合享受这项服务的,而且和大部分人想的恰恰相反,远程数据库管理和现场数据库管理并不一定就是一个非此即彼的概念。对于部分企业来说,让远程数据库管理员辅助内部数据库管理员也是可行的。
总的来说就是要看企业有些什么具体需求。但是,在考虑使用远程数据库管理员时,有不少的问题需要紧记,例如服务涉及的范围、服务商数据中心的安全性等等。
著名市场调研公司Ptak, Noel & Associates的分析师Jasmine Noel认为,需要考虑的关键问题是了解远程服务供应商的管理流程是不是比你自己本身的管理流程更容易定义、更易于管理、更自动化、更方便审计等等。如果远程服务供应商的流程没有想象中的精简高效,那么就不会真正的做到节约成本,因为你得到的不是真正的数据库管理专家,只是一些自动生成报表和非常基本的故障排除等远程数据库监测服务而已。
Jasmine Noel还补充道,还需要考虑的问题就是远程服务供应商在遇到涉及到“数据库-应用程序-网络”三者之间互作和链接方面的问题时,能够排除多复杂的故障。记住你的数据库不仅仅是用来存储数据的罐头,而是要把数据源源不断地供给网络应用。当数据库、应用程序和网络基础设施等都完美无缺而端对端服务性能却下降时究竟出现了什么问题呢?这就是留待远程服务供应商解决的。
目前,有很多公司都可以提供远程数据库管理的业务。其中一些专营供应商包括The Pythian Group、dbaDirect和Ntirety。还有包括甲骨文、IBM和Electronic Data Systems等较大型的供应商也提供此类业务。海外业务供应商则包括Satyam Computer Services、Consultancy Services和Wipro等。
市场分析公司Forrester Research的分析师Noel Yuhanna认为,规模较小的专营厂商倾向于纯粹地把重点放在远程数据库管理上,适合于管理容量小于500GB的数据库;而大型厂商则可以为TB级的数据库提供支持。
Yuhanna表示,企业在考虑使用远程数据库管理服务前,首先得把自己的数据库好好整理好好归档,如果你的车本身已经坏掉了,你可别指望远程数据库管理供应商帮你把车修好了。你必须确保你的数据库没有任何问题能够正常运行,确保它可以和其他数据库和应用程序顺利集成。
远程数据库管理供应商Ntirety公司一般会给客户指派一支由五到七名数据库管理员组成的团队。Ntirety的CEO表示该公司致力于将很多非内部操作的进程业务自动化。例如,如果客户要求花费三个工时来创建备份文件的日志,Ntirety的远程数据库管理员能够编写脚本来自动完成同样的工作,每周可以节省15工时。
有效的远程数据库管理还需要远程数据库管理员能够深入了解客户企业的应用和流程。The Pythian Group的总裁兼创始人Paul Vallee认为,在这个方面,远程数据库管理员和新聘请的企业内部数据库管理员没有太大区别。Paul Vallee表示,在接受客户任务的第一天,他们会让技术专家深入了解客户企业的具体应用和业务流程,就像新丁一样。
但是,有时候正是这些业务流程和数据的性质让一些公司对将数据库管理职能外包望而却步,成为这些企业享受这项服务的绊脚石。例如,在金融服务行业里,企业必须能够确保管理其数据的服务供应商是值得信赖的。
远程数据库管理对大部分企业来说可行,但并不是所有的企业都适用,有时候更像是一种建立监控和开发内部功能的手段,在很大程度上在安全、隐私和端对端控制方面有严格的功能上的要求。
-
No Comments » dba remote 数据库管理 远程
-
Jan06
如何导出用户下所有的sequence
Posted in Database, Script, 630 views
-
Oracle的EXP工具只有在全用户导出时,才会包含secquence。在单独需要sequence时,可以用spool和dbms_metadata包来实现。
在sqlplus中,首先执行这个脚本
set long 90000
set feedback off
set pagesize 0
set heading off
spool get_seq_ddl.sql
select 'select dbms_metadata.get_ddl('''||t.object_type||''',''' ||t.object_name||''') from dual;' from user_objects t where t.object_type='SEQUENCE';
spool off再运行新生成的sql脚本,将DDL输出到seq_ddl.sql
spool seq_ddl.sql
@get_seq_ddl.sql
spool off -
1 Comment » dbms_metadata ddl sequence
-
Dec19
如何在Linux中防御SYN型DOS攻击
Posted in Linux, 515 views
-
在Linux中防御SYN型DOS攻击的方法比较常见的有增大队列SYN最大半连接数,减小超时值,利用SYN cookie技术,过滤可疑的IP地址等常用方法,下面分别进行分析.
- 增大队列SYN最大半连接数
在Linux中执行命令"sysctl -a|grep net.ipv4.tcp_max_syn_backlog",在返回的"net.ipv4.tcp_max_syn_backlog=256"中显示 Linux队列的最大半连接容量是256.这个默认值对于Web服务器来说是远远不够的,一次简单的SYN攻击就足以将其完全占用.因此,防御DOS攻击最简单的办法就是增大这个默认值,在Linux中执行命令"sysctl -w et.ipv4.tcp_max_syn_backlog=3000",这样就可以将队列SYN最大半连接数容量值改为3000了.
- 减小超时值
在Linux中建立TCP连接时,在客户端和服务器之间创建握手过程中,当服务器未收到客户端的确认包时,会重发请求包,一直到超时才将此条目从未连接队列是删除,也就是说半连接存在一定的存活时间,超过这个时间,半连接就会自动断开,在上述SYN攻击测试中,当经过较长的的时间后,就会发现一些半连接已经自动断开了.半连接存活时间实际上是系统所有重传次数等待的超时时间之和,这个值越大,半连接数占用的Backlog队列的时间就越长,系统能处理的 SYN请求就越少,因此,缩短超时时间就可以有效防御SYN攻击,这可以通过缩小重传超时时间和减少重传次数来实现.在Linux中默认的重传次数为5 次,总超时时间为3分钟,在Linux中执行命令"sysctl -w net.ipv4.tcp_synack_retries=1",将超时重传次数设置为1.
- 利用SYN cookie来防御DOS攻击
除了在TCP协议栈中开辟一个内存空间来存储半连接数之外,为避免因为SYN请求数量太多,导致该队列被填满的情况下,Linux服务器仍然可以处理新的 SYN连接,可以利用SYN Cookie技术来处理SYN连接.什么是SYN Cookie呢?SYN Cookie是用一个Cookie来响应TCP SYN请求的,在正常的TCP连接过程中,当服务器接收一个SYN数据包,就会返回一个SYN -ACK包来应答,然后进入TCP -SYN -RECV(半开放连接)状态来等待最后返回的ACK包.服务器用一个数据空间来描述所有未决的连接,然而这个数据空间的大小是有限的,所以攻击者将塞满这个空间,在TCP SYN COOKIE的执行过程中,当服务器收到一个SYN包的时候,他返回一个SYN -ACK包,这个数据包的ACK序列号是经过加密的,它由TCP连接的源地址和端口号,目标地址和端口号,以及一个加密种子经过HASH计算得出的,然后服务器释放所有的状态.如果一个ACK包从客户端返回后,服务器重新计算COOKIE来判断它是不是上个SYN -ACK的返回包.如果是的话,服务器就可以直接进入TCP连接状态并打开连接.这样服务器就可以避免守候半开放连接了,在Linux中执行命令"echo "echo "1" > / proc/sys/net/ipv4/tcp_syncookies"> > /etc/rc_local",这样即可启动SYN Cookie,并将其添加到了Linux的启动文件,这样即使系统重启也不影响SYN Cookie的激活状态.
- 过滤可疑的IP直址
当客户机对服务器进行攻击时.在服务器上可以进行抓包操作,这样可以对数据包中的IP进行检测,然后再对这些可疑的潮行过滤,从而将其无法正常连接服务器.利用Linux自带的"tcpdump"命令可以实现抓包操作.执行命令"tcpdump -c 1000 -l eth 0 -n dst port 80 > test.txt",就可以在当前目录下创建一个'test.txt"文件,在其中包含大量的网络数据包,通过对该文件的的分析,就很容易得到可疑的客户端IP,之后利用系统自带的"iptables"命令即可对可疑IP进行屏蔽.便如执行命令"iptables -A INPUT -s 219.29.78.79 -d 0/0 -j REJECT",即可禁止"219.29.78.79"的外部主要访问本机所有端口.其中"-j REJECT"参数表示禁止访问.
Blogged with the Flock BrowserTags: syn, dos, syn-cookie, linux
-
No Comments »
-
Dec16
caucho-request的范围
Posted in Linux, 530 views
-
在为Apache+Resin环境添加php支持的时候,php编译安装一切顺利,但是apache不能解析php页面。
发现有这样一些现象:
- 在任意一个404页面中,服务器信息仅显示Resin,而没有Apache
- 注释掉httpd.conf中的Resin条目,php可以被解析
说明apache将任意请求都发送给了Resin,而这个resin3.0不能解析php
检查httpd.conf,将SetHandler caucho-request注释掉,重启apache,php解析正常。
当前的httpd.conf中resin部分:
LoadModule caucho_module /opt/apache/modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoConfigCacheDirectory /tmp
AddHandler caucho-request jsp在Resin非常模糊的联机文档中提到了caucho-request
"caucho-request Dispatch a request to Resin"而在给出的例子中
<Location /foo/*>
SetHandler caucho-request
</Location>将caucho-request的范围限定在/foo/
Blogged with the Flock BrowserTags: resin, caucho-request, addhandler, sethandler, php, jsp
-
No Comments » addhandler caucho-request php resin sethandler
-
Dec02
-
PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers
(header "STAT" or "S") will display to describe the state of a process.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.For BSD formats and when the stat keyword is used, additional characters may
be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process groupBlogged with the Flock Browser -
No Comments » linux ps stat
-
Nov14
用APXS编译Apache模块
Posted in Linux, 991 views
-
apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用
LoadModule指令在运行时加载到Apache服务器中。1. 进入apache源代码的modules目录
2. 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块:
apache path/bin/apxs -c -i -a mod_proxy.c proxy_util.c
选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块3. 如果还需要其他proxy模块如mod_proxy_http、mod_proxy_ftp,则单独
apxs -c -i proxy_http.c
apxs -c -i proxy_ftp.cBlogged with the Flock Browser -
No Comments » apache apxs module
-
Nov13
RMAN TAG参数的禁区
Posted in Database, 747 views
-
RMAN具有非常丰富的命令,为这些命令服务的保留字有几十上百个,如allocate、rsync、show、backup等等。
在书写RMAN脚本时,需要特别小心不要用到保留字,否则会导致RMAN-01007错误
以TAG参数为例:
当tag为backup时,报错RMAN> run{
2> backup tablespace user
3> tag backupRMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "backup": expecting one of: "double-quoted-string, equal, identifier, single-quoted-string"
RMAN-01007: at line 3 column 5 file: standard input当tag为backup1时,正常运行RMAN> run {
2> backup tablespace users
3> tag backup1;
4> }Starting backup at 13-NOV-08
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=/opt/u01/oracle/oradata/mydb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 13-NOV-08
channel ORA_DISK_1: finished piece 1 at 13-NOV-08
piece handle=/oracle/flash_recovery_area/MYDB/backupset/o1_mf_nnndf_BACKUP1_4kq7rcpv_.bkp tag=BACKUP1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-NOV-08Starting Control File and SPFILE Autobackup at 13-NOV-08
piece handle=/oracle/flash_recovery_area/MYDB/autobackup/o1_mf_s_670678156_4kq7rfb5_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 13-NOV-08RMAN>
Blogged with the Flock Browser -
No Comments » 01009 oracle rman tag
-
Oct27
resin2升级为resin3后遇到的jsp显示问题
Posted in Linux, 821 views
-
将系统由resin 2.1.17升级为resin 3.0.25后,发现大部分JSP不能正常显示,错误都类似:
Caused by: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${user.ID}": Unable to find a value for "ID" in object of class "java.lang.String" using operator "." (null)
这是resin3与jstl的问题,需要将resin自带的jstl1.1禁用。
方法如下 :
将resin的conf文件中:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet"/>
修改为:
<servlet servlet-name="directory" servlet-class="com.caucho.servlets.DirectoryServlet">
<init enable="false"/>
</servlet>在resin的webapp配置中,添加一个<jsp>标签
<web-app id="/test" document-directory="webapps/test">
<jsp fast-jstl="false"/>
</web-app>最后,将JSP文件中
<%@ taglib prefix=’c’ uri=’http://java.sun.com/jstl/core’ %>
修改为
<%@ taglib prefix=’c’ uri=’http://java.sun.com/jsp/jstl/core’ %>现在JSP可以正常显示了
-
No Comments » jsp jstl resin

Comments