2011年3月12日 星期六

SQL Server Restore 失敗

SQL Server 資料庫 Restore 時, 有時會回報以下的問題

Server: Msg 3201, Level 16, State 2, Line 1
Cannot open backup device '\\foo\bar.bak. Operating system error 5(Access is denied.).
error 5(error not found).
RESTORE HEADERONLY

之前總是以為是資料庫備份時檔案沒有寫入完成
但是明明這次就是正確寫入備份檔
仔細的閱讀問題以及 Google 了一下原因
才發現到是權限的問題
目前執行的 SQL Server 的身份是 NETWORK_SERVICE
但是備份檔的權限沒有開給 NETWORK_SERVICE
因此系統反應 Access is denied.

解決方式:
授權給 backupfile 或 NETWORK_SERVICE 所對應的資料庫 instance OS owner 吧

2011年3月8日 星期二

設定 Oracle User 的連線上限


利用 User Profile 的功能

-- 首先利用 system 帳號檢查是否系統的 resource_limit 的狀態
SQL> show parameter resource_limit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                       boolean     FALSE 

-- 將 resource_limit 啟動
SQL> alter system set resource_limit=true;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
resource_limit                       boolean     TRUE

-- 建立一個 profile 來限定 csims 的連線上限 (假設 20), session_limit20 隨便您定義

SQL> create profile session_limit20 limit sessions_per_user 20;
Profile created.

-- 把新建的 profile apply 到 csims 帳號
SQL> alter user csims profile session_limit20;

User altered.

-- 移去該 profile
SQL> drop profile session_limit20 cascade;

-- 回復 Account 對應的 profile
SQL> alter user csims profile default;


CREATE PROFILE profile
LIMIT { resource_parameters
         | password_parameters
         }
           [ resource_parameters
           | password_parameters
           ]... ;
           
可限定的有一大堆,   
<resource_parameters>
{ { SESSIONS_PER_USER
 | CPU_PER_SESSION
 | CPU_PER_CALL
 | CONNECT_TIME
 | IDLE_TIME
 | LOGICAL_READS_PER_SESSION
 | LOGICAL_READS_PER_CALL
 | COMPOSITE_LIMIT
 }
 { integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA
 { integer [ K | M ] | UNLIMITED | DEFAULT }
}
< password_parameters >
{ { FAILED_LOGIN_ATTEMPTS
 | PASSWORD_LIFE_TIME
 | PASSWORD_REUSE_TIME
 | PASSWORD_REUSE_MAX
 | PASSWORD_LOCK_TIME
 | PASSWORD_GRACE_TIME
 }
 { expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
     { function | NULL | DEFAULT }
}

可設定 User 的最多連線 (SESSIONS_PER_USER), 連線時間  (CONNECT_TIME)