2008年4月13日 星期日

KIMERALD

菲律賓也有好節目!
不久前,看到公視播出菲律賓的一部戲劇,真愛奇緣!
劇中的男女主角,也就是 K.I.M.E.R.A.L.D ,情侶檔演員?
老實說,劇情就是那種羅密歐和茱麗葉,愛得死去活來的故事。
但男女主角和大部分的演員都不到二十歲,演技己經算很好了。
男的帥,女的美!而且就是那種青春無邪的俊美!
我想,大部份的人,一看到這種組合,很難不去注意吧。

http://kimeraldsite.blogspot.com/

有不少影音檔可以看!

2008年4月10日 星期四

SuSE10.3的LAMP安裝

LAMP是什麼?
就是Linux + Apache + MySQL + PHP ,
可以讓你建置這個世界上,最常見而且免費易用的網頁伺服器。

在Fedora可以用 YUM 安裝RPM套件。
在ubuntu(或是debian)可以用APT安裝DEB套件。而且據說APT也移植能支援RPM套件了。
但SuSE呢?它不也是RPM套件系統的嗎?也能用YUM或是APT嗎?

答案其實並不明確,因為在自由軟體的世界,充滿無限可能性。
也許那天LINUX有更強大的套件整合程式,可以RPM、DEB、PORT...通吃!也說不定。

不過目前我明確知道的一點,就是SuSE10全力打造的YaST2系統管理程式,
可以讓你的SuSE10像用YUM、APT那樣把相容的套件給安裝進來。
但誰好用誰不好用,可就見人見智了。

我的SuSE 10.3要成為LAMP平台!要怎麼搞定呢?
以下是簡易的指令安裝方法,提供愛玩自由軟體的朋友作參考。

suse:/ # yast --help
OPTIONS:
-h, --help this message
-l, --list list all available modules
-g, --geometry default window size (qt only)
--noborder no window manager border for main window
--fullscreen use full screen

exceptional case for installing packages:
/sbin/yast OPTION <package> [<package> [...]]

OPTION:
-i, --install install rpm package
--update update rpm package
--remove remove rpm package

<package> can be a single short package name (e.g. gvim)
which will be installed with dependency checking, or the full
path to an rpm package (e.g /tmp/gvim.rpm) which will be
installed without dependency checking



目前很多SuSE相關的介紹書,都提到用SuSE的YaST2做系統管理。
而且是在GUI模式下使用!
其實YaST2有文字模式的,而且SuSE把它做得和GUI模式幾乎一模一樣。


安裝apache2:
yast -i apache2

安裝mysql:
yast -i mysql

安裝php:
yast -i php5

安裝相互支援的必要套件:
yast -i apache2-mod_php5
yast -i php-mysql


以上指令完成後,就是基本的LAMP平台了。
檢查一下安裝了那些套件吧!
suse:/ # rpm -qa | grep -i apache
apache2-prefork-2.2.4-70
apache2-mod_php5-5.2.4-11
apache2-utils-2.2.4-70
apache2-2.2.4-70


suse:// # rpm -qa | grep -i php
php5-ctype-5.2.4-11
php5-sqlite-5.2.4-11
php5-pdo-5.2.4-11
php5-gd-5.2.4-11
php5-hash-5.2.4-11
php5-tokenizer-5.2.4-11
apache2-mod_php5-5.2.4-11
php5-iconv-5.2.4-11
php5-xmlwriter-5.2.4-11
php5-5.2.4-11
php5-json-5.2.4-11
php5-mysql-5.2.4-11
php5-dom-5.2.4-11
php5-xmlreader-5.2.4-11


suse:/ # rpm -qa | grep -i mysql
libmysqlclient15-5.0.45-22
mysql-5.0.45-22
mysql-client-5.0.45-22
php5-mysql-5.2.4-11

不少哦!啓動看看,先寫篇PHP網頁跑跑看!
suse:/ # vi /srv/www/htdocs/index.php

內容:
+==============+
<?PHP
phpinfo():
?>
+==============+


啓動指令:
suse:/ # /etc/init.d/apache2 start

至於MySQL,是在YaST2安裝完成,就立即啓動了!不管他。
現在用瀏覽器看網址列是localhost的網頁,就能看到LAMP的資訊頁面了。

2008年4月8日 星期二

再探SuSE10.3

這次我是在LINUX環境下,以VirtualBox安裝起來的。
用的是網路安裝的方法!有興趣的朋友參考看看。

我不說安裝VirtualBox和相關的網路設定。
但我的Host OS和Guest OS是可以互通,同時存在同一網段內的!
目的是這樣好方便我日後用ssh連線去登入SuSE做設定。

首先要把SuSE10.3網路安裝版的映像檔,下載回來。
以下是官方公布出來可利用的載點,請針酌使用。
http://en.opensuse.org/Mirrors_Released_Version#Taiwan
我個人是認為用官網公布的載點,這樣日後加裝軟體套件或昇級比較不會出錯。

wget ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/iso/cd/openSUSE-10.3-GM-i386-mini.iso
之所以選了ftp的載點,想說用ftp較http下載快速。不過見人見智,不必爭論。



中間黄色的說明要記下來,因為網路安裝時,會要求輸入路徑,就是以下紅色文字了。
ftp://ftp.twaren.net/Linux/OpenSuSE/distribution/10.3/repo/oss/

OK!接著就是進入到安裝的程序了。
用虚擬機器的朋友,開啓一個新的Guset OS,把映像檔掛上去,準備啓動安裝。
要真的安裝在機器上的朋友,就把映像檔燒成光碟,準備開機去吧!

要看我的安裝畫面,請參考 這裡
我沒有打廣告的意圖,只是單純因為雅虎部落格好像沒有針對放圖檔資料設限!
說實在,抓圖修圖實在辛苦。
之前看別人一張張的說明擷圖,以為是很簡單的處理過程。
沒想到自己做起來,才知道是件苦差事!
因為有圖配合說明,想學的人才易懂,學得快。
所以,圖抓好修好之後,我會好好把說明也寫清楚的。
希望對想學LINUX的朋友,有點幫助!

在LINUX使用IE瀏覽器

在LINUX使用IE瀏覽器!


在ubuntu正體中文管網上,看到一堆人反應,說是用了ubuntu 7.10 反而ies4linux裝不起來!
興起了我挑戰的心態,二話不說,查到安裝方法和指令後,馬上來執行。

1.檢查sources.list
但ubuntu 7.10好像己經把ies4linux納入了。可以略過不管!

2.安裝前置作業所需環境套件,因為到底IE還是在windows環境下跑,所以一定要裝wine。
sudo apt-get install wine cabextract

cabextract是用來解IE安裝軟體用的,也是必備套件之一!

3.下載ies4linux!
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz

4.重點來了,開始安裝。
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux --no-gui

請注意到,我是以文字模式來執行ies4linux。和官網上的文件不同!
http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu




在下載CAB檔的過程中,老是被中斷。嗯!可能是M$搞的鬼。
但奇怪的是,多跑起次,就裝起來了!
你看本篇格文的第一張圖片,就是我跑IE6的擷圖。




用圖形界面執行安裝時。
我也遇到網友同樣的問題,安裝還是不正常!
有人說可能是python的問題,但官網有提到,其實作者也知道這個bug,己經著手解決中。
奇怪!ubuntu 8.4都快出來了,怎麼好像ubuntu 7.10給人不是很穩定的感覺。
我想,可能LINUX和M$這兩派,因為立場對立,所以彼此之間的相容軟體,總是存在一些bug!
也許是我自己想太多?管他的!能用才是重點。

在LINUX用wine跑CCNA模擬器


雖然我手頭上有幾部cisco router可以練習!
但為了學習方便,我還是用了模擬器。
上頭就是我用Packet Tracer 4.1跑出來的網路拓撲。
而且我是在LINUX以wine跑出來的哦!
雖然我又不小心用了破解版,但它已經是舊版的了,應該沒關係吧。

我主要是要模擬出三個區網,各有配置一個router,然後三個區網可以互通。
mislab_A:
區域網路A是10.1.128.0網段,用mislab_A 路由器。


mislab_B:
區域網路B是10.1.130.0網段,用mislab_B 路由器。


mislab_C:
區域網路C是10.1.129.0網段,用mislab_C 路由器。


注意看設定值,我路由器互串的IP組態,和要連接到一般PC網段的IP組態,是很不一樣的。
PC段用A級 10.X.X.X,router用C級 192.168.X.X,主要是想特別突顯出它們的差異,和路由設定的內容。

2008年4月7日 星期一

RAID概說

先簡單提一下,RAID 0是至少兩顆硬碟以上,但是運作成一顆硬碟!掛一顆等於掛全部!切記。
RAID 1是用成雙的硬碟,以鏡像方式(mirror)把資料存放好,等於是系統備份!
掛掉其中一顆,可以找出其中好的,重啓系統,繼續使用。
RAID 5則是用到三顆硬碟為一組,也是系統備份,但是使用的是線上即時備份還原的方法,
只要其中一顆硬碟壞了,都能繼續使用系統,壞掉的硬碟可以線上(ONLINE)抽換。

怕自己的知識有誤,找了幾份文件,引進來參考用!
+++++++++++++++++++++++++++++++++++++++++
在計算機術語中,RAID(Redundant Array of Independent Disks,獨立磁盘冗余陣列;在台灣稱為:磁盘陣列)
的基本思想就是把多個相對便宜的硬碟組合起來,成為一個磁盘陣列組,
使性能達到甚至超過一個價格昂貴、容量巨大的硬碟。
根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:
增強資料整合度,增強容錯功能,增加處裡量或容量。

另外,磁盘陣列組對於計算機來說,看起來就像一個單獨的硬碟或邏輯存儲單元。
分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-10, RAID-50。

簡單來說,RAID把多個硬碟組合成為一個邏輯磁區,
因此,作業系統只會把它當作一個硬碟。
RAID常被用在伺服器計算機上,並且常使用完全相同的硬碟作為組合。
由於硬碟價格的不斷下降與RAID功能更加有效地與主機板整合,它也成為了玩家的一個選擇,
特別是需要大容量儲存空間的工作,如:視訊與音訊製作。

最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點。
這些年來,出現了對於RAID觀念不同的應用。
...
...
...

以上引用 RAID - Wikipedia
有心挑戰原文的請看 http://en.wikipedia.org/wiki/RAID

基本RAID分類


http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-isa-zh_tw-4/s1-storage-adv.html

RAID 是 Redundant Array of Independent Disks(獨立磁碟(組成)之冗餘陣列)的縮寫。

正如這名稱的字面意義,RAID 是由多顆硬碟組合而成,運作時就好像是單顆硬碟一樣。

1980 年代中,加州大學柏克萊分校(University of California, Berkeley)的研究者,開始研發 RAID 技術。
當時高階電腦所用的高效能硬碟機,跟剛成型的個人電腦硬碟間,有著很大的價格、容量、與速度鴻溝。
RAID 的概念為組合多個便宜的硬碟,組成一個與高階硬碟旗鼓相當的產品。

更重要的是,RAID 有多種建置方式,依照最終設定的不同,有著不一樣的特性。
現在就讓我們來仔細看看不同設定(又稱 RAID「」等級(levels)」)的同。

柏克萊的研究者一開始制定了五種 RAID 等級,編號從「1」到「5」。
後來隨著時代演進,其他研究者也定義了更多的等級與編號。
但不是所有的 RAID 等級都很有用:有些只有學術價值,有些甚至根本沒上市過。

最後發展至今,常見的只有以下三種 RAID 等級:

  • 等級 0

  • 等級 1

  • 等級 5

SC2到底要出了沒

好久沒玩遊戲了,很期待它的到來。 星海爭霸2!


記得我當兵時,正在瘋這款遊戲,SC(星海爭霸)!
也因為要玩SC,我才開始碰電腦組裝和一些阿沙不魯的電腦技術。
然後...所以...才誕生了茫茫「網海」裡的一個小小「網工」,吳大是也!

SC啊!你是我的恩人!

初探SuSE 10.3

SuSE LINUX,經過網威NOVELL的扶植,好像有愈來愈壯大的趨勢!
我因為出於幫忙的心態,想對一位對LINUX的學習有興趣的網友,可以提供進一步的疑難排解。
於是也裝了一套SuSE來玩玩!
SuSE有別於YUM和APT套件管理系統,它有自成一格的Yast管理程式。
像是安裝apache,就用yast -i apache2 ,就能自行安裝apache2的SuSE版RPM檔。
YaST不單是安裝套件而己,它也是整合好的系統管理工具!
印表機、samba、NFS、防火牆等等...功能實在很完整,也很強大。
基本上SuSE的使用,就文字模式來看,大部份都和RedHat很像。
尤其在使用過yast的管理界面後,實在佩服它設計的管理界面,真的很好上手,使用。
不過,到底它還是算是一個GUI工具,雖然YaST也有文字模式版本。

SuSE和RedHat的差異,我還說不清楚,但有一點可以肯定,就是SElinux的檔案管理使用!
SuSE並沒有把美國國防部研發的SElinux納入它的distribution裡。
我想是純歐洲血統的SuSE LINUX,並不把源自美國的安全管理機制看在眼裡!
SElinux其實就我使用的經驗來說,坦白講,真的只是增加了不少設定的複雜度而已。
用了SElinux能增加多少安全,我倒是體會不深,可能我架的站駭客(cracker)看不上眼吧。哈哈。

目前遇到的難點,是和XOOPS有關!
我用SuSE 10.3架的LAMP,想不到裝了xoops-2.17不能用!
原來是xoops-2.17不能在PHP5和MySQL5的環境下跑。
下面這篇正好寫出我遇到的問題,不過作者沒有寫到他找到解決方法。
就我看起來,應該是不好解決,因為PHP4和PHP5的差異,實在很大!
http://bbs.bnw.com.tw/conference/viewtopic.php?t=2881&sid=5668af7a3d03a9454cadb38ccc8be952

今後,我的LINUX使用心得,又多了SuSE一項了!

無奈的oracle DBA工作

最近的工作有點煩人!oracle 的DBA真的不好做。
不知道是不是上次精X的DBA技術顧問工程師沒把DB調校好?
這次的月底月初,也就是一般DB主機工作最兇,負擔最重的時間點。
它又開始出狀況了,目前幾乎是每天都要重新開機一次!
連我休假,也會遇到它掛掉,然後要我想辦法連線回公司看DB出什麼狀況,趕快處理。
只要DB機器一有狀況,我的精神狀況也跟著緊繃,搞得我好像有點快瘋了。
軟體系統維護的同事,寫了一些我不知道的程式(DotNet我根本不想學!),
跑不出結果,只看到錯誤訊息,就要我處理!
天哪!這不是擺明要我去跳海嗎。
我那知道你們叫oracle DB做什麼事?我頂多看到主機的資源,一點一滴的被oracle的程序吃掉。
但我一點也不知道是什麼作業內容讓它跑得這麼辛苦?那麼耗資源?

上個月申請去上oracle DBA課程,被主管擋了下來。
其實我心底早就知道會有這樣的結果,因為精誠一系列的DBA課程,動不動就叫價五六萬。
依我公司的文化,這樣的申請,應該是很難被認可核准的。
但我還是申請了,心想用這樣的方法,至少可以表達出我是很想努力去接DBA。
我可是有這份心,無奈公司不能提供資源讓我去受訓,那oracle DB出了狀況,也不能怪我沒把機器管好!
因為到目前為止,我己經花了不少心力去自修oracle DBA 的技能了。
能做的,我也只能照書操作,而那些做不好的除錯工作,我也不知道該怎麼辦了?

能引起我興趣的,還是在LINUX機器上的各種組態設定和網路除錯。
另外,我的CCNA也多少有點進展!希望年中(六月份左右)可以通過考試!

2008年4月2日 星期三

oracle錯誤訊息 ora-00054

ora-00054

這是我同事在進行某一oracle 10g database的資料更新時,
所遇到的錯誤訊息代碼!
根據查詢到的一些技術文件,說明這是當你在進行資料庫操作更新時,
剛好你要更新的table有其他人在使用,或進行其他的作業。
造成資料庫發生locked的情形!

還好有篇文件,提到如何解決的方法!
http://www.lslnet.com/linux/edosc/42/linux-42294950.htm


+===================================================+
補充:
http://vanhazar.blogspot.com/search/label/Oracle
+===================================================+

ORACLE Lane locks of the following models :
0:none
1:null air
2:Row-S Bank share (RS) : Sharing the table lock sub share
3:Row-X trip to monopolize (RX) : for the changes, sub exclusive
4:Share shared locks (S) : stop other DML operation, share
5:S/Row-X sharing firms to monopolize (SRX) : stop other operations, exclusive share/sub
6:exclusive exclusive (X) : the use of an independent visit, exclusive

The higher the level the greater the number of locks, the more influence the operation.

Level 1 : Select locks, and sometimes there will v$locked_object.

Level 2 : Select for update locks, Lock For Update, Lock Row Share
When the select for update update for the use of dialogue to open up a series of sub-Vernier, all data transportation will concentrate on the return trip at the level (Row-X) exclusive locking, data about these other firms can object, can not update, select for update or delete operation.

Level 3 locks : Insert, Update, Delete, Exclusive Lock Row
Not commit the same insert a record will not, because after a three locks will have been waiting for a three locks, we must continue to be a work release.

Level 4 : Create Index locks, Lock Share
Locked_mode for 2,3,4 not affect DML (insert, delete, update, select) operation, but DDL (alter, drop, etc.) will operate suggested ora-00054 wrong.
00054, 00000, the "resource busy and acquire with NOWAIT specified"
4003rd *Cause : Resource interested is busy.
4003rd *Action : Retry if necessary.

Level 5 Exclusive locks : Lock Share Row
Specifically there are bound outside Key update / delete. . . It may be four to five locks.

Level 6 : Alter table level locks, Drop table, Drop Index, Truncate table, Exclusive Lock

DBA role to check the current database locks can be used as follows : SQL

Per owner for PGA
PGA object_name for a16
Select b.owner, b.object_name, l.session_id, l.locked_mode
From v$locked_object l, b dba_objects
Where b.object_id=l.object_id
/

Select t2.username, t2.sid, t2.serial#, t2.logon_time
From v$locked_object t1, t2 v$session
Where t1.session_id=t2.sid order by t2.logon_time
/

If there is a long series, is not likely to release the lock. We can not release below-normal SQL kill long locks :

Alter system kill session 'sid, serial#';

If there is a lock, a DML operation may wait for a long time no response.

When you are directly connected to the database, do not use OS 9 system orders $kill process_num $kill process_num or to terminate user connectivity, as a user process may have more than one lock, lock kill OS process and the issue can not be completely removed.

原文寫得有點亂!
不過,藍色文字的操作語法,可以用強制的手法,把被locked的情形解除!
但,這不是常規作法,正常來說,應用程式寫得好的話,
應該要能在正常把作業進行完畢後,解除鎖定才是。
若程式給的資料庫更新或新增作業做完後,還會留住session和鎖住資料。
那就是程式寫得有問題了!

原文的譯文:
ORACLE裏鎖有以下幾種模式:
0:none
1:null 空
2:Row-S 行共用(RS):共用表鎖,sub share
3:Row-X 行獨佔(RX):用於行的修改,sub exclusive
4:Share 共用鎖(S):阻止其他DML操作,share
5:S/Row-X 共用行獨佔(SRX):阻止其他事務操作,share/sub exclusive
6:exclusive 獨佔(X):獨立訪問使用,exclusive

數字越大鎖級別越高, 影響的操作越多。

1級鎖有:Select,有時會在v$locked_object出現。
2級鎖有:Select for update,Lock For Update,Lock Row Share
select for update當對話使用for update子串打開一個游標時,所有返回集中的資料行都將處於行級(Row-X)獨佔式鎖定,其他物件只能查詢這些資料行,不能進行update、delete或select for update操作。
3級鎖有:Insert, Update, Delete, Lock Row Exclusive
沒有commit之前插入同樣的一條記錄會沒有反應, 因為後一個3的鎖會一直等待上一個3的鎖, 我們必須釋放掉上一個才能繼續工作。
4級鎖有:Create Index, Lock Share
locked_mode為2,3,4不影響DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作會提示ora-00054錯誤。
00054, 00000, "resource busy and acquire with NOWAIT specified"
// *Cause: Resource interested is busy.
// *Action: Retry if necessary.
5級鎖有:Lock Share Row Exclusive
具體來講有主外鍵約束時update / delete ... ; 可能會產生4,5的鎖。
6級鎖有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive

以DBA角色, 查看當前資料庫裏鎖的情況可以用如下SQL語句:


col owner for a12
col object_name for a16
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time



如果有長期出現的一列,可能是沒有釋放的鎖。我們可以用下面SQL語句殺掉長期沒有釋放非正常的鎖:

alter system kill session 'sid,serial#';

如果出現了鎖的問題, 某個DML操作可能等待很久沒有反應。

當你採用的是直接連接資料庫的方式,也不要用OS系統命令 $kill process_num 或者 $kill -9 process_num來終止用戶連接,因為一個用戶進程可能產生一個以上的鎖, 殺OS進程並不能徹底清除鎖的問題。

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!