一、系統管理使用者和安全性
在db中各種對象以 使用者(方案) 的方式組織管理
select distinct object_type from dba_objects;
模式對象,schema ----> user.objects(某個使用者下的某個對象)
在建立對象和訪問對象前,首先建立對象的擁有者——使用者
所有的對象在使用者下
使用者有相關的屬性,有些必須明確設定,有些可以使用預設值
常見屬性:使用者名稱、口令、預設資料表空間(可預設)、暫存資料表空間(可預設)、賬戶狀態(可預設)、空間配額(可預設)、概要檔案(可預設)等
dba_users表
建立使用者
1 確定使用者物件在資料表空間上的分布,從而確定資料表空間的配額
2 確定使用者的預設資料表空間和暫存資料表空間,保持使用者資料的獨立性
create user u1 identified by u1; --->預設 users資料表空間和temp資料表空間 create user u2 identified by u2 default tablespace user_u2 temporary tablespace temp_u2; --->指定user_u2資料表空間和temp_u2資料表空間
3 確定使用者的口令管理規則和資源閑置規則,設定Profile
dba_users表可以查到profile檔案
4 建立使用者,設定口令
5 給使用者賦予必要的角色和其他的直接許可權
一般要設定connect, resource給一個新使用者:
grant connect, resource to u1; grant creata session to u1; --->設定會話的許可權
刪除使用者
如果使用者方案中包含對象,drop user u1 CASCADE;
當前已經串連的使用者不能刪除
許可權
系統許可權 + 對象許可權
grant授予,revoke回收
sysdba和sysoper才能授予許可權
select * from session_privs; --->查詢目前使用者的許可權 select * from session_roles; --->查詢目前使用者的角色 select * from role_sys_privs; --->查詢目前使用者的角色許可權 select * from user_sys_privs; --->查詢目前使用者的系統許可權
二、重做記錄檔
redo log files 重做記錄檔或聯機日誌
archived log files 歸檔日誌
alert log files 警示日誌
trace files user_dump_dest 使用者 background_dump_dest 進程
重做記錄檔
查詢
>select * from v$logfile;
status列:invalid該檔案不可訪問(不存在或添加到該組的新logfile)|stale內容不完全|deleted不再使用
status列:unused未寫入|current當前組,活動的|active非當前組,活動的,可能已歸檔也可能沒有|clearing正在重建空日誌(執行了alter database clear logfile),完成後變為unused狀態
作用
在資料庫發生故障時,可以重新處理事務
記錄對資料所做的所有更改,提供恢複機制,可以劃分成組,至少兩個組,每組下至少有一個成員file
寫日誌時按組順序迴圈寫,g1(f1-f2-f3-……)-g2(f1-f2-f3-……)-g3(f1-f2-f3-……)-……
日誌切換:g1-g2-g3-…… 自動切換 手工切換 (alter system switch logfile)
規劃
分散原則:每個組多個成員,成員互為備份,分開到不同的磁碟。例子:
大小原則:組間切換時間滿足20分鐘左右的業務需求
增減刪
新群組
alter database add logfile [group <X0>] ('<logfile path&name>','',……) size <Y>, [group <X1>] ……
新增成員
alter database add logfile member '<logfile path&name>' to group <X0>,'<logfile path&name>' ……
刪除群組
alter database drop logfile group <X>, group……
active狀態和current狀態不可刪
刪除成員
alter database drop logfile member '<logfile path&name>','<logfile path&name>',……;
重新命名成員(可以做日誌移動等)
ho cp <old> <new> alter database rename file '<old>' tp '<new>';
歸檔模式下 current狀態不可重新命名;非歸檔模式下 都可以改
【alter database noarchivelog|archivelog;】
異常處理
啟動時日誌不一致問題
alter database clear logfile group <X>;
active狀態和current狀態不可用
alter database clear unarchived logfile group <X>;
記錄檔丟失
alter database clear logfile group <X>;
歸檔模式下不能clear時,
recover database using backup controlfile;alter database open resetlog;
非歸檔模式不能clear時,
alter system set "_allow_resetlogs_corruption"=true scope=spfile;
startup;
alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';