搜尋此網誌

2014/12/25

刪除Oracle大量資料,又不影響使用者操作

筆記:

常常遇到這種要求清某段區間的資料,但是又不能影響到使用者線上操作。(雖然這種狀況通常是使用者造成)。

由於一開始table規劃不當,且沒有買partition的授權,又不可能停機來進行table轉為partition的動作,所以只能慢慢的刪資料。

再加上DB Server本身的硬體很普通,隨便刪個資料都會影響使用者的操作,故需在使用者的工作階段不是Active時,再進行刪除。


最後執行方式如下:

  • 先檢查是否在可執行刪除的時段 (batch、backup及使用者大量使用的時間先避開)
  • 每次刪除的資料區間不可太大,最好10~15秒內可跑完一段
  • 每次刪除前先檢查使用都是否在使用中,如果是的話,就等待

2014/08/04

列出Windows ActiveDirectory中,超過一定天數沒改過密碼的帳號

使用Windows PowerShell

指令 (二行):
Import-Module ActiveDirectory
Get-ADUser -filter * -properties PasswordLastSet,Created,Enabled,EmailAddress | Where { ($_.Enabled -eq 1) -and  ((($_.passwordLastSet) -and ($_.passwordLastSet -lt (Get-Date).AddDays(-87))) -or ((!$_.passwordLastSet) -and ($_.Created -lt (Get-Date).AddDays(-87)))) } | Select Name,PasswordLastSet,Created,Enabled

上述指令會列出87天內,帳號是啟用狀態,但是還沒改密碼的全部帳號,如果要列出不同天數,將指令中的二個數字87改掉即可

如果要查單一帳號的狀況:
Get-ADUser ‘username’ -properties PasswordLastSet,Created,Enabled,EmailAddress | Format-List

把上述Username改成要查的帳號名稱即可

2014/06/05

使用Windows 事件檢視器的「附加工作到此事件」功能,並傳指定的參數到該事件指定的工作上

最近由於任務上的需要,需針對Windows的事件進行一些處理,研究了一下如何將事件的內容當參數,傳給附加的工作。

有不少中文網頁有說如何附加工作到事件,但是我看不到有詳細說明如何帶參數的中文網頁,故決定自行筆記一下。