2009年9月14日 星期一

Windows命令提示字元指令大全

要執行下列指令,並須先到【開始】-->【執行】,再輸入下列指令,就可以執行(或起動、編輯)它所屬的功能。

它最主要執行的檔案是在C:\WINDOWS\SYSTEM32子目錄中的執行檔(.exe),不過,對電腦不熟的網友請不要任意到此子目錄下執行.exe檔案,避免發生意外。

-------------------------------------------------------
certmgr.msc:憑證管理(Certification Manager)
charmap:字元對應表(Character Map)
chkdsk:磁碟檢查 (Check Disk)
ciadv.msc:索引服務(Indexing Service)
cleanmgr:清理磁碟垃圾(Clean Manager)
cliconfg:SQL SERVER 用戶端網路公用程式(Client Configuration)
Clipbrd:剪貼本檢視器(Clip Board)
cmd.exe:命令提示字元 (Command)
compmgmt.msc:電腦管理(Computer Management)
conf:NetMeeting
dcomcnfg:元件服務
ddeshare:DDE共用(DDE Share)
devmgmt.msc:裝置管理員 (Device Management)
dfrg.msc:磁碟重組工具(Disk Fragment)
drwtsn32:系統醫生(Doctor Watson 32)
dvdplay:Windows Media Player (DVD Player)
dxdiag:DirectX診斷工具(Direct X Diagnosis)
eudcedit:造字程式
eventvwr.msc:事件檢視器(Event Viewer)
explorer :檔案總管
fsmgmt.msc:共用資料夾管理(File Share management)
gpedit.msc :群組原則(group edit)
iexpress:IExpress精靈
logoff:登出
lusrmgr.msc:本機使用者和群組(Local user manager)
magnify:放大鏡
mem:記憶體使用情況(Memory Using)
mmc:主控台(Main Monitor Console)
mobsync:電腦與網路上資料同步處理
mplayer2:媒體播放器(小的WMP)(Media Player 2)
Msconfig:系統設定公用程式(Microsoft Configuration)
mspaint:小畫家(Microsoft Paint)
mstsc:遠端桌面連線
narrator:Windows朗讀程式
net start messenger:啟用messenger
netstat -an:網路連線狀態檢查(Net State)
net stop messenger:停止messenger
notepad:記事本(Note pad)
nslookup:網路管理的工具精靈(Net Service Look Up)
ntbackup:備份或還原精靈
ntmsmgr.msc:卸除式存放裝置
ntmsoprq.msc:卸除式存放裝置操作員要求
odbcad32:ODBC資料來源管理員
oobe/msoobe /a:檢查Windows是否啟用
osk:螢幕小鍵盤
packager:物件封裝程式-封裝
perfmon.msc:電腦效能監視器(Performance Monitor)
progman:程序管理(Program Management)
regedit:登錄編輯程式(Register edit)
regedt32:登錄編輯程式(Register edit 32)
regsvr32 /u *.dll:停止*.dll文件執行支援(Register Service 32),例如:regsvr32 /u zip.dll:取消ZIP執行支援
rsop.msc:原則結果(Result of Principle)
secpol.msc:本機安全性設定值
services.msc:服務設定(System Services)
Sfc:系統檔案檢查程式(System file check)
sfc /scannow:掃瞄Windows保護的檔案是否為原來檔案
shrpubw:建立共用資料夾精靈(Share Public Wizard)
sigverif:檔案簽章驗證
sndrec32 :音效-錄音機(Sound Recorder 32)
Sndvol32:音量控制(Sound Volume 32)
syncapp:新增一個公事包
sysedit:系統組態編輯程式(System Edit)
syskey:設定Windows XP帳戶資料庫安全性,一旦加密就不能解開,保護系統的雙重密碼
taskmgr:Windows工作管理員(Task Manager)
tourstart:Windows XP簡介(安裝完成後出現漫遊XP的程式)(Tour Start)
tsshutdn:60秒倒數計時關機(time second shutdown)
utilman:公用程式管理員(Utility manager)
wiaacmgr:掃瞄器與數位相機精靈
winchat:Windows內含區域性網路聊天工具(Windows Chat)
winmsd:系統資訊(Windows Message Display)
winver:檢查Windows版本(Windows Version)
wmimgmt.msc:Windows管理結構服務(Windows Management Instrumentation -- WMI)
write:Word Pad
wscript:Windows指令主機設定(Windows Script Host)
wupdmgr:Windows更新程式(Windows Update Manager)

以上內容來自 <http://tw.myblog.yahoo.com/feeling-mylover/article?mid=1079&sc=1>

2009年9月8日 星期二

java.lang.OutOfMemoryError: PermGen space及其解決方法

1、PermGen space的全稱是Permanent Generation space,是指記憶體的永久保存區域OutOfMemoryError: PermGen space從表面上看就是記憶體益出,解決方法也一定是加大記憶體。說說為什麼會記憶體益出:這一部分用於存放Class和Meta的資訊,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web伺服器對JSP進行pre compile的時候。
改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2、在tomcat中redeploy時出現outofmemory的錯誤. 可以有以下幾個方面的原因:
1. 使用了proxool,因為proxool內部包含了一個老版本的cglib.
2. log4j,最好不用,只用common-logging
3. 老版本的cglib,快點更新到最新版。
4. 更新到最新的hibernate3.2
3、這裏以tomcat環境為例,其他WEB伺服器如jboss,weblogic等是同一個道理。

一、java.lang.OutOfMemoryError: PermGen space
PermGen space的全稱是Permanent Generation space,是指記憶體的永久保存區域,這塊記憶體主要是被JVM存放Class和Meta資訊的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很多CLASS的話,就很可能出現PermGen space錯誤,這種錯誤常見在web伺服器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那麼就會產生此錯誤資訊了。

解決方法: 手動設置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:

JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建議:將相同的第三方jar檔移置到tomcat/shared/lib目錄下,這樣可以達到減少jar 文檔重複佔用記憶體的目的。
二、java.lang.OutOfMemoryError: Java heap space
Heap size 設置
JVM堆的設置是指java程式運行過程中JVM可以調配使用的記憶體空間的設置.JVM在啟動的時候會自動設置Heap size的值,其初始空間(即-Xms)是實體記憶體的1/64,最大空間(-Xmx)是實體記憶體的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。

提示:在JVM中如果98%的時間是用於GC且可用的Heap size 不足2%的時候將拋出此異常資訊。

提示:Heap Size 最大不要超過可用實體記憶體的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。
解決方法:手動設置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、實例,以下給出1G記憶體環境下java jvm 的參數設置參考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

三、相關資料
以上資料摘自http://web.caidiy.com/plate/group/web/papermsg.jsp?UI=markcool&GI=47&PI=827

2009年7月24日 星期五

LINUX下mysql区分大小写的问题

1、linuxmysql安装完后是默认:区分表名的大小写,不区分列名的大小写;

2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;

lower_case_table_names参数详解:

lower_case_table_names = 0

其中 0:区分大小写,1:不区分大小写

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

   1、数据库名与表名是严格区分大小写的;

   2、表的别名是严格区分大小写的;

   3、列名与列的别名在所有的情况下均是忽略大小写的;

   4、变量名也是严格区分大小写的;

MySQL在Windows下都不区分大小写。

3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:

A、创建时设置:

CREATE TABLE T(

A VARCHAR(10) BINARY

);

B、使用alter修改:

ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

C、mysql table editor中直接勾选BINARY项。

以上內容來自 <http://database.jzxue.com/mysql/200904/30-2003.html>


PS.當啟用不區分大小寫選項時,所建立之Table Name 一律是小寫的.

2009年7月23日 星期四

MYSQL- import/export data .dmp file

#import

mysql --host=... --user=... --password=... --databases MySQL_database_name < dump_file_name

eg: in cmd c:\documents and settings mysql -uroot -ppassword -vvf DB01


#export
mysqldump --host=... --user=... --password=... --databases MySQL_database_name > dump_file_name
eg: in cmd c:\documents and settings mysqldump -uroot -ppassword -vvf DB01>db01.dmp

How to change the mysql database location


Identify the database files you wish to migrate into the new data directory
You can use the following command to list the current databases in mysql
mysqlshow -u root -p
Keep this list available as you will reference it in a later step
Shutdown the MySQL database, if it is running mysqladmin -u root -p shutdown

Locate the MySQL configuration file. This is usually located in the directory $OSS_HOME/var/mysql

Note: You should make a backup copy of each file you're editing before modifying the contents



The property you need to change is named datadir. The default value is $OSS_HOME/var/mysql, which places the database files in the same directory as the log files and other runtime generated files. This property is usually located in the [mysqld_safe] section in the configuration file

You need to change:


[mysqld_safe]
datadir = /opt/oss/var/mysql
to


[mysqld_safe]
datadir = /opt/oss/var/mysql/data



Save these changes
Create the directory you specified in the datadir property mkdir -p /optoss/var/mysql/data

Check to make sure the user assigned to execute mysql has read/write privileges on this directory
You may need to modify the directory settings using chown and chmod

Move the databases listed in the first step to the new data directory mv test /opt/oss/var/mysql/data

Note: You can use the copy (cp) command instead if you prefer. Remember to remove the copied files once the migration is complete
You will need to move/copy each database into the new data directory



After all the databases have been migrated to the new data directory, you should start MySQL openpkg rc mysql start

The database files will now be managed under the new data directory. If you encounter any problems during startup, you check the hostname.err file located in the data directory.
以上文章載自http://developer.spikesource.com/wiki/index.php/How_to_change_the_mysql_database_location

2009年7月9日 星期四

WebLogic設定session timeout時間

1. web.xml

設定Web AP serverweb.xml裏的標籤。此值以分鐘為單位,並取代weblogic.xml中的timeoutsecs屬性


24

此例子表示session將在24分鐘後timeout

設定為2,表示將使用在weblogic.xml中設定的
timeoutsecs
這個屬性值。

設定為1,表示session將永不timeout,而忽略在

weblogic.xml
中設定的timeoutsecs屬性值。

2.weblogic.xml

設定weblogic部署描述檔weblogic.xml元素的
timeoutsecs
屬性。此值以秒為單位


timeoutsecs
2600


預設值是2600

3.於jsp
中控制
session.setmaxinactiveinterval(7200);
單位秒s

4.於servlet
中控制

httpsession session = request.getsession();
session.setmaxinactiveinterval(7200);
單位秒s

2009年6月17日 星期三

JBoss 開啟Access.log 方法

請移動到 ${jboss.server.home.dir}/jboss-web.deployer 並編輯 server.xml
您可以用 "Access logger" 來進行尋找 ,將該段的註解()拿掉,並重新啟動JBOSS 即可。
LOG 會放在${jboss.server.home.dir}/log/localhost_access_log.{todays_date}.log 這兒

2009年5月14日 星期四

看目前網卡的工作速度

指令:ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Link detected: yes

若用mii-tool 只會看到網卡是100MB的

2009年3月3日 星期二

PHP Connect Oracle DB

請先參考Oracle 的相關設定,確定安裝PHP 的主機可以連接Oracle DB的(或許應該要先安裝Oracle Client)

首先,需將PHP.INI檔作些修改,找到
;extension = php_oci8.dll
;extension = php_oracle.dll

將前端的";"號去除,並將PHP重新啟動

利用phpinfo(); 指令確定是否有看到頁面中有oci8 及oracle 的字眼存在
可建一檔案,檔名為index.php

If PHP is working, you will see "Hello World" below:


echo "Hello world";
phpinfo(); // Print PHP version and config info
?>



PHP 連接 Oracle db

連接DB的方法有兩種
Using the OCI Extension Module -

if ($c=OCILogon("user_name", "password", "DB_Name")) {
echo "Successfully connected to Oracle.n";
OCILogoff($c);
} else {
$err = OCIError();
echo "Oracle Connect Error " . $err[text];
}
?>

Using the ORA Extension Module -

if ($c=ora_logon("user_name@DB_name","password")) {
echo "Successfully connected to Oracle.n";
ora_commitoff($c);
ora_logoff($c);
} else {
echo "Oracle Connect Error " . ora_error();
}
?>

以上的語法可以放在剛剛建立的index.php下


If PHP is working, you will see "Hello World" below:


echo "Hello world";
phpinfo(); // Print PHP version and config info
?>

Using the OCI Extension Module -

if ($c=OCILogon("user_name", "password", "DB_Name")) {
echo "Successfully connected to Oracle.n";
OCILogoff($c);
} else {
$err = OCIError();
echo "Oracle Connect Error " . $err[text];
}
?>

Using the ORA Extension Module -

if ($c=ora_logon("user_name@DB_name","password")) {
echo "Successfully connected to Oracle.n";
ora_commitoff($c);
ora_logoff($c);
} else {
echo "Oracle Connect Error " . ora_error();
}
?>



如果成功,應該要能看見Successfully connected to xxx 或

Oracle 10G Client Setup

請先安裝oracle 10G Client 軟體
軟體可由官方網頁下載
或是安裝 XEClient
可安裝於C:\XEClient 或其它地方,重點是您找的到為原則

安裝後需手動建立這目錄 於C:\XEClient\NETWORK\ADMIN
其目錄下手動建立一檔案,檔名為tnsnames.ora
其內容如下

NK_IVDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.82)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ivdb)
)
)
內容說明如下
NK_IVDB:在這一部電腦上,如果AP 或 Web 要存取這192.168.0.82 的oracle DB,要透過 NK_IVDB 這名字,這名字可以自行訂義,好記為原則.
HOST:就是 Oracle DB的IP
PORT:就是 Oracle DB連接的端口
SERVICE_NAME:就是Oracle DB 內的名稱,如果一DB內有多個DB的話,就會是用這名稱來區分

Oracle audit

11月28日
oracle audit的使用
大多数情况下,在产品环境中使用audit的dba应该很少吧,如果启用了audit,那么必须小心谨慎的使用,尤其是audit system和audit any权限的控制.我一般情况下在测试和开发环境中都会使用audit.逼近调试跟踪还是很方便.但是需要注意的是audit的enable和disable必须restart database.所以作为产品环境,是否使用audit必须初期就要计划好。在每一次的审计结束后,必须执行noaudit关闭本次审计,要不然会对后期的数据库活动也执行相同的审计.

10G支持的audit_trail参数的值
DB: 审计结果存储与sys.aud$表中,可通过dba_audit_trail 访问这个表的数据
XML:审计结果以xml格式存储在audit_file_dest参数对应的目录里
OS:审计结果存储在audit_file_dest参数对应的目录里,文件格式类似于oracle trace文件格式
EXTENDED:和DB或者XML配合使用,用于扩展获取被审计对象执行的sql语句,不对OS审计起作用
NONE:关闭审计
启用audit
alter system set audit_file_dest='/u01/app/oracle/admin/SCMDEV/adump' scope=spfile;
alter system set audit_trail=DB,EXTENDED scope=spfile;
shutdown immediate
startup
使用audit
audit session; //审计登录数据库所有session的操作
audit select table on hr.users //审计hr.users表的所有查询
audit role whenever successful //审计所有执行成功的操作
audit role whenever not successful //审计所有执行失败的操作
........
查询审计结果
查询dba_audit_trail视图
SQL> desc dba_audit_trail
Name Null? Type
----------------------------------------- -------- ----------------------------
OS_USERNAME VARCHAR2(255)
USERNAME VARCHAR2(30)
USERHOST VARCHAR2(128)
TERMINAL VARCHAR2(255)
TIMESTAMP DATE
OWNER VARCHAR2(30)
OBJ_NAME VARCHAR2(128)
ACTION NOT NULL NUMBER
ACTION_NAME VARCHAR2(28)
NEW_OWNER VARCHAR2(30)
NEW_NAME VARCHAR2(128)
OBJ_PRIVILEGE VARCHAR2(16)
SYS_PRIVILEGE VARCHAR2(40)
ADMIN_OPTION VARCHAR2(4)
GRANTEE VARCHAR2(30)
AUDIT_OPTION VARCHAR2(40)
SES_ACTIONS VARCHAR2(19)
LOGOFF_TIME DATE
LOGOFF_LREAD NUMBER
LOGOFF_PREAD NUMBER
LOGOFF_LWRITE NUMBER
LOGOFF_DLOCK VARCHAR2(40)
COMMENT_TEXT VARCHAR2(4000)
SESSIONID NOT NULL NUMBER
ENTRYID NOT NULL NUMBER
STATEMENTID NOT NULL NUMBER
RETURNCODE NOT NULL NUMBER
PRIV_USED VARCHAR2(40)
CLIENT_ID VARCHAR2(64)
ECONTEXT_ID VARCHAR2(64)
SESSION_CPU NUMBER
EXTENDED_TIMESTAMP TIMESTAMP(6) WITH TIME ZONE
PROXY_SESSIONID NUMBER
GLOBAL_UID VARCHAR2(32)
INSTANCE_NUMBER NUMBER
OS_PROCESS VARCHAR2(16)
TRANSACTIONID RAW(8)
SCN NUMBER
SQL_BIND NVARCHAR2(2000)
SQL_TEXT NVARCHAR2(2000)
关闭审计,切记一定要关闭审计
noaudit all;
noaudit session;
noaudit select table on hr.users

Oracle9i SQL Reference Release 2 (9.2)
Oracle® Database Security Guide 10g Release 2 (10.2)
文章載自http://shadowfalao.spaces.live.com/blog/cns!80DF4F7FDCD57166!369.entry

2009年2月12日 星期四

檢查磁碟空間

df -Plk|grep -v "Used Avail" | sed 's/\%//g' |awk '{if (($5>90)&&($4 < 10000000)) print "APS16 Disk Space: "$6 }'

df  :檢查磁碟空間
     -P: 訊息將不斷行
     -l  :僅列出本地磁碟機
     -k :空間大小表示單位為KB
     -m:空間大小表示單位為MB
     -h:空間大小表示單位自動換算成GB、MB、KB、Bytes,但會加上單位符號

grep :字串找尋工具
-v:排除

sed  :字串修改器
欲修改之內容以單引號 " ' "包住
s:自串置換
   語法:s/oldword/newword/
g:置換至文件最後一行
           語法:s/oldword/newword/g
        本例欲尋找之字串為%,恐被系統認為是系統特殊符號,因此加上"\"讓系統忽略其特殊符號之功能

awk :字串修改器
欲修改之內容以單引號及大括號 " '{}' "包住
if :可用以比對文字內容
    欲比對之內容,以小括號"()"包住
$5:以"TAB"之空白為分割欄,由左至右依序編號,此例為df -Plk結果之第5欄
1                       2                         3               4                         5                     6
Filesystem     1024-blocks     Used        Available          Capacity       Mounted on
    &&:表兩個比對式符合為真
    ||:表兩個比對式只要其中一個符合就為真
print :當前述結果為真,就秀出訊息,訊息以 雙引號包住 " " "
    $6:也可以秀出剛剛欄位之訊息

2009年2月5日 星期四

Solaris 較良好的 shell :tcsh

sendmail 的執行Script 在 /etc/rc2.d/S88sendmai [start | stop]

測試發信情況
# /usr/lib/sendmail -bv antonio.hsu@xxx.com
回報的情況如下,是ok的
antonio.hsu@xxx.com... deliverable: mailer relay, host 10.10.2.10, user antonio.hsu@xxx.com
發出信件
# /usr/lib/sendmail  antonio.hsu@xxx.com
Hello  <<  內容
. << 結束

Adding a Swap File on Solaris

This is straight out of the man pages, but I had a hard time finding it the first time that I needed it. If you have a Solaris system that badly needs more swap but you don't have a free swap device available, you can create a file in the file system and add it as additional swap.

  1. Use mkfile to create a file suitable for a local swap area. For example, to create a 1GB swap file:

        /usr/sbin/mkfile 1024m /swap

    where /swap is the name of the file to be used as swap space. Units for the size can be kilobytes (k), blocks (b), or megabytes (m).

  2. Tell the system to start using the file as swap:

        /usr/sbin/swap -a /swap

    Use swap -l to verify that the swap file has been activated. 

    文章摘自http://www.eyrie.org/~eagle/notes/solaris/swap-file.html

2009年1月7日 星期三

Oracle Command

建帳號及提供權限
CREATE USER dlink IDENTIFIED BY "rd10g"
DEFAULT TABLESPACE "USERS" 設定使用的TABLE空間為"USERS"
QUOTA UNLIMITED ON "USERS";

提供Dlink連接DB的權限
GRANT CONNECT TO dlink;
GRANT RESOURCE TO dlink;

提供dlink 擁有 glink.xxx Table 具有Select 的權限
grant select on glink.error_message to dlink;

查詢目前的連線數
select count(*) from v$session
show parameter max



1. 新增帳號CREATE USER 使用者名稱  IDENTIFIED BY 密碼;

2. 權限設定: GRANT 權限 ON 資料庫物件 TO 使用者名稱;

                      GRANT 角色 TO 使用者名稱

3. 取消權限: REVOKE 權限 ON 資料庫物件 FROM 使用者名稱;

4. 新增角色: CREATE ROLE 角色名稱 [ NOT IDENTIFIED | IDENTIFIED { BY 密碼 | USING [ 鋼要 .] PACKAGE | EXTERNALLY | GLOBALLY } ] ;

5. 取消角色: DROP ROLE 角色名稱

6. 更改密碼: ALTER USER  使用者名稱 IDENTIFIED BY 密碼;

7. 強制變更密碼: ALTER USER 使用者名稱 PASSWORD EXPIRE;

8. 鎖住現有的使用者: ALTER USER 使用者名稱 ACCOUNT LOCK;

9. 解鎖現有的使用者: ALTER USER 使用者名稱 ACCOUNT UNLOCK;

10. 刪除現有的使用者: DROP USER 使用者名稱  cascade ;