外鍵值可用null的問題
外鍵列如沒有明確說明not null
可插入null記錄(而null是在外部表的記錄中沒有的)
如無可插null記錄的想法
要對外鍵字段加not null約束
序列 sequence 跳號的問題
sequence 因回滾
系統崩潰(使用cache 內的值將認為已用)
多表引用都將使其跳號
所以不能用於為連續序號 utl_row
cast_to_row
unicn\ intersect\ minus 使用ordey by的注意事項
以上語句進行連表操作
而表同表的字段順序的類型相同但字段標題名可不同
使用ordey by時後面如果是字段名
要求所有的表的字段標題名相同
否則用字段的順序號
select id
name
year from user
union
select no
name
to_number(null) year from user
order by
name
year
安全性
Where 條件
無論在使用Select
還是使用破壞力極大的Update和Delete語句時
一定要檢查Where條件判斷的完整性
不要在運行時出現數據的重大丟失
如果不確定
最好先用Select語句帶上相同條件來果一下結果集
來檢驗條件是否正確
完整性
有依賴關系的表
例如主外鍵關系表
在刪除父表時必須級聯刪除其子表相應數據
或則按照某種業務規則轉移該數據
I中表中字段縮小及變類型
字段為空或表空
varchar和char長度不變可任意改
字段名和表名可字段可用 ALTER TABLE table SET UNUSED (column) 設定為不可用
注意無命令再設為可用
備份恢復設計原則 數據庫exp/imp備份恢復 Oracle數據庫的Exp
Imp提供了數據快速的備份和恢復手段
提供了數據庫級
用戶級和表級的數據備份恢復方式
這種方法一般作為數據庫輔助備份手段
數據庫級備份原則
在數據庫的數據量比較小
或數據庫初始建立的情況下采用
不適合
*
的在線生產環境數據庫備份
用戶級備份原則
在用戶對象表數據容量比較小
或則用戶對象初始建立的情況下使用
表級備份原則
主要在以下場合采用的備份方式
參數表備份
靜態表備份
分區表的分區備份
數據庫冷備份原則 數據庫冷備份必須符合以下原則
數據庫容量比較小
數據庫允許關閉的情況
Rman備份恢復原則 這種方式適用於
*
環境下的聯機熱備份情形
Catalog數據庫
單獨建立備份恢復用的數據庫實例
盡可能與生產環境的數據庫分開
確保catalog與生產數據庫的網絡連接良好
在
I系統使用良好的備份策略以可
支持完全使用控制文件保存catalog信息
備份策略如下
backup spfile format
/data/backup/%d_SPFILE_%T_%s_%p
bak
;
sql
alter system archive log current
;
backup archivelog all format
/data/backup/%d_ARC_%T_%s_%p
bak
delete all input;
backup current controlfile format
/data/backup/%d_CTL_%T_%s_%p
bak
;
在spfile
控制文件
數據庫全丟的情況下可通過下面的方式恢復
RMAN> connect target
connected to target database (not started)
RMAN> startup
RMAN> restore spfile from
/data/backup/COMMDB_SPFILE_
_
_
bak
;
SQL> startup
ORA
: error in identifying controlfile
check alert log for more info
RMAN> restore controlfile from
d:\DB
_CTL_
_
_
BAK
;
Mout database:
RMAN> recover database;
RMAN> alter database open resetlogs;
注意
對數據庫設定控制文件保存備份信息為
天
具體語句如下
alter system set control_file_record_keep_time=
SCOPE=BOTH;
Archive Log
設置Archive Log 的位置
確保存儲介質有足夠的空間來保留指定時間內archive log的總量
建設定期對RMAN進行全備份
刪除冗余歸檔日志文件
全備份策略
對於小容量數據庫
可以采用全備份策略
對於大容量數據庫
必須制定全備份策略方案
備份時對archive log進行轉儲
同時冷備份catalog 數據庫
增量備份策略
對於大容量數據庫
必須制定增量備份
累積備份和全備份的周期
備份時對archive log進行轉儲
同時冷備份catalog 數據庫
恢復原則
采用Rman腳本進行數據庫恢復
數據庫恢復有以下幾種
局部恢復
主要用於恢復表空間
數據文件
一般不影響數據庫其他操作
完全恢復
數據庫恢復到故障點
由catalog當前數據庫決定
不完全恢復
恢復到數據庫的某一時間點或備份點
恢復catalog數據庫
恢復數據庫control file
恢復到數據庫某一時間點
重設日志序列
備用數據庫原則 數據庫系統在以下情況下可以考慮采用備用數據庫data guard原則
數據庫容量適中
數據庫嚴格要求
*
不間斷
或間斷時間要求控制在最小范圍內
數據庫要求有異地備份冗余
一些小經驗 使用oemc的oms時
首選項要求是節點和數據庫分別加入系統用戶(如
administrator)和數據庫DBA用戶(system)
節點的系統用戶必須有批處理作業登錄的權限
agent 不能啟動
lisnter修改後都要手動刪除oracle\ora
\network\agent 中的*
q文件
oracle\admin\my
i\bdump 中是用戶的出錯日志
改變表的空間的方式alter table hr
ssss move TABLESPACE example(要重建索引); 或用imp導入時
設定導入用戶只有某一表空間的使用權
無RESOURCE角色和UNLIMITED TABLESPACE權限
aleter system set log_checkpoint_to_alter=true
後可報警文件發現checkpoint的起動和結束時間
系統調優知識 生成狀態報表(statspack的使用)
使用(存放位置@?\rdbms\admin\)的文件生成報表用戶
@?\rdbms\admin\Spcreate
sql建表
將timed_statistics設定true
使用生成的perfstat用戶登錄
執行以下語句手動收集信息
Exex statspack
snap
Exec statspack
snap(I_SNAP_LEVEL=>
I_MODEFY_PRAMETER=>TRUE)
級
最少
最大
使用下面的語句生成狀態報表
@?\rdbms\admin\Spreport
sql
其他相關文件
delete stats$snapshot ;清原來記錄數據
@?\rdbms\admin\Saputo
sql
select job from user_jobs 取用戶作業號
exec dbms_remove(作業號)
timed_statistics=true要求
@?\rdbms\admin\spdrop
sql ;
sql追蹤
設定全部用戶跟蹤
alter system set sql_trace=true;
用戶級別跟蹤
alter session set sql_trace=true;
用戶的跟蹤文件生成在 admin\{pid}\udump\{pid} _ora_{ SPID}
trc 中
spid從下面語句得到
SELECT b
name bkpr
s
username
p
spid
s
sid
s
serial# FROM v$bgprocess b
v$session s
v$process p WHERE p
addr = b
paddr(+) AND p
addr = s
paddr and s
username=user;
DBA對特定用戶跟蹤
exec dbms_system_set_Sql_trace_in_session(sid
serial#
true)
信息從下面得到
SELECT b
name bkpr
s
username
p
spid
s
sid
s
serial#
osuser
s
program
FROM v$bgprocess b
v$session s
v$process p
WHERE p
addr = b
paddr(+)
AND p
addr = s
paddr;
/*p
spid用於sql_trace時日志編號
dbms_system
set_sql_trace_in_session(sid
erial#
true)*/
用戶的跟蹤文件生成在 admin\{pid}\udump 中
系統的跟蹤文件生成在admin\{pid}\bdump\alert_{pid}
log
tkprof
exe將log文件生成格式化文本
在av Rd(ms)
以上說明表空間使用過用頻繁
考慮將表分開其他表空間上
系統變量fast_start_mttr_target的值要大到不產生log等待
當然也可通過加log組使其不等待
reao log大小應為每
分鐘切換一次
建議表空間的利用率不超
%
buffer hit 要達
%以上為好
內存調整
一般的內存分配原則
SGA
%(其中
% DATA BUFFER
% SHARE POOL
其他)
PGA
%
OS
%
例如
G的WINDOWS的平台
OS
M
SAG
G
PGA
M
內存
From:http://tw.wingwit.com/Article/program/Oracle/201311/17223.html