2011年5月17日

fglWrt - 查詢 Tiptop 線上使用人數和狀況

要如何查詢目前有誰在 TIPTOP 系統線上呢?
還有目前總共有多少人在用,
當上線人數已滿的話,要如何把沒有在使用的 User 踢掉呢?

我想這個是 Tiptop 系統維護人員有時會很頭大吧!

fglWrt 指令可以做到以上這幾個問題喔~~
以下是 fglWrt 的所有參數:

Usage  : fglWrt [options]
 -l [license]: Installs a license.
 -v|-V       : Shows version information.
 -u          : Checks active users.
 -k key      : Installation key for license validation.
 -d          : Deletes current license.
 -i          : Clears the list of registered user sessions.
 -a opt      : Check or view options, possible options are:
               ps           : Shows processes on this machine.
               env          : Shows current environment.
               cpu          : Shows number of CPU in the computer.
               hostname     : Shows name of this machine.
               info license : Shows license information.
               info stat    : Shows statitics of license server.
               info users   : Shows all registered active users.
               info up      : Shows if license server is up.

查詢目前的線上人數和使用者:
fglWrt -a info users

要踢掉沒有在使用的 User :
fglWrt -i  

注意:我是直接使用這個指令,把 session 全部清除,正在 key 單的人會跳開,
所以執行前需看有沒有人 lock table 才能執行。
只是清除 server 上 genero 的 session 數而已,
所以不會影響已登入的 User (不會斷線或關閉程式),
這時就通知比較好的 User 快搶 session 吧~~~

2011年5月11日

重新建立 TIPTOP 測試區的環境

相信小地方修改,或是日積月累的修改程式,或是變更 Database Schema 時,
正式區和測試區的 4GL 程式和 Database Schema 會有不一樣的情況,
這時要如何快速的把正式區完全的蓋到測試區呢?

首先,把正式區的程式整個目錄 copy 到測試區的目錄,
記得不能全部複製喔~~ 只能複被各模組、共用程式、副程式。

1. \cp -r /u1/topprod/tiptop/a* /u1/toptest/tiptop  (先前一定要加 \ 喔,不然會一直問要不要覆蓋)
2. \cp -r /u1/topprod/tiptop/lib /u1/toptest/tiptop
3. \cp -r /u1/topprod/tiptop/sub /u1/toptest/tiptop
4. \cp -r /u1/topprod/tiptop/qry /u1/toptest/tiptop
5. \cp -r /u1/topprod/tiptop/g* /u1/toptest/tiptop

再來就是把全部客製程式都 copy 過去。

6. \cp -r /u1/topprod/topcust/c* /u1/toptest/topcust

程式的部份,這樣就不需要再重新 rebuild 囉~~整個動作應該是不會超過 5 分鐘。

接下來就是資料庫的部份:

首先把所有的測試資料庫都刪除吧~~ (包含 ds)
在 sqlplus 下執行 drop user ds cascade

還原正式區的 ds 資料庫到測試區的 ds 資料庫。
1. 建立空的 ds 資料庫: createdb ds 1
2. 匯入正式區 ds 備份檔到測試區的 ds DB:
       imp system/manager@toptest fromuser=ds touser=ds ignore = y file=ds.dmp log=ds.log
3. 匯入公司的資料到測試區,步驟同 1~2 。
4. 要記得修改 /u1/genero.run/etc/fglprofile.test 喔~~
    通常 createdb 參數是 1 的話,fglprofile.xxxx 檔是不會修改的。
dbi.database.aaa.source= "toptest"
dbi.database.aaa.username= "aaa"
dbi.database.aaa.password= "aaa"
dbi.database.aaa.schema= "aaa"
dbi.database.aaa.ora.prefetch.rows = 1
5. 完成,記得重新登入 udm7 試試看吧~

如果不行的話,要修改 zx_file 的 zx08 欄位,看預設的營運中心是否和測試資料庫一致。

資料庫要看資料的大小而定,不過應該是1個小時內可以搞定吧~~~

TIPTOP 程式/ Oracle 資料庫備份-集中備份篇

還記得之前有一篇文章:TIPTOP 主機定期備份 Oracle 資料 & TIPTOP 程式, 備份篇 嗎?
相信應該足夠使用了吧,
但還是有不足的部份,需要將 TIPTOP 主機設定 cron job ,然後再 cr 主機再設定排程工作,
實在是不符合統一集中備份的方式。

其實只要安裝 Oracle Client ,就可以將 Oracle 資料 export 到遠端的電腦,
這樣就可以一個指令,就可以完整的將全部的資料都在遠端的電腦上執行囉~~

以下是備份 Oracle 資料的批次檔,先轉換 Database 的字集,會有警告訊息,但還是可以正常匯出資料。

set NLS_LANG=TRADITIONAL CHINESE.AL32UTF8
exp system/sys_dsc@topprod owner=%1 log=d:\backup\tiptop\exp\%1.log file=d:\backup\tiptop\exp\%1.dmp

再來就是用 ftp 軟體去抓取 Tiptop 主機的程式檔案到本機電腦。

最後就是執行 RAR 的批次指令囉,
就可以在專屬的備份主機,主動的抓取 TITPOP 程式和 Oracle 資料庫來備份啦~