a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 216|回复: 3

[其他] Oracle认证:Oracle数据库开发的经验积累(三)

[复制链接]
发表于 2012-8-4 13:41:06 | 显示全部楼层 |阅读模式
1、分析表' G6 f6 D; D1 x( x4 x
  analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;0 n+ c0 A+ p  s% |1 \$ b3 Z! a. `2 o
  % x& ^% ]+ S$ V' z+ C6 h8 R
  2、表空间管理和用户管理" S% O2 v8 J3 _* ?1 [' K
  
6 O, ]1 F9 d  E: L9 w+ P! a  --查看表空间和数据文件! X( [9 d2 f* S3 M0 p$ A
  
4 w. A3 g$ X+ M: n+ Z  select file_name,tablespace_name,autoextensible from dba_data_files;  |* e2 p8 E9 F0 ^$ Z. o* i
  
9 I) i8 \9 @& ?* P0 Q  --数据表空间- B3 u2 p8 z  ]- P. \; S
  / A, V" j6 I: z
  CREATE TABLESPACE USER_DATA
- h3 W4 K! y6 q0 e  LOGGING! W2 b& n% {0 D: L2 K5 ^7 n* w
  DATAFILE 'D:\ORACLE\ORADATA\ORCL\test.DBF' SIZE 50m REUSE ,& r) J& z; G* \% U. z1 R( y' N
  'c:\USERS01112.DBF' SIZE 50m REUSE# A6 I# S. k0 y) E7 \' M- a0 x
  AUTOEXTEND
9 [0 n2 g3 Z3 U# G( Y' n  ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL
- `" Z6 _& G$ q* s. i, u  5 H4 \% X/ p1 D: e% h
  --修改表空间数据文件的路径
3 U0 t' I* {" [- J  
  m* \$ Z0 u9 L3 U9 i. J  ALTER TABLESPACE app_data
( T5 F# g( K7 V, n  RENAME
8 ~; C! c" E( }  X* G4 \/ m9 ^7 M  DATAFILE '/DISK4/app_data_01.dbf'
; F5 N* }' b+ o# l+ c: Q4 e  TO  '/DISK5/app_data_01.dbf';
$ |5 ~9 v1 f. H, x" O4 u9 d  i  ' |8 I* ]- W. U: Z' \: ^
  ALTER DATABASE
5 Y: c7 M2 [1 K8 i" ?( l. t. _  RENAME FILE '/DISK1/system_01.dbf'
8 r$ \- H* ~' N  TO '/DISK2/system_01.dbf';
, _8 N# v* c. R  ?% \. i! F6 e; e- G  6 O/ \- l9 E& O1 {8 K' k5 k9 e
  --临时表空间% y9 e! {0 L% T. i: O0 l0 M) L5 k
  
; s4 W4 K+ e+ Q1 |  f2 h! s- R  CREATE TEMPORARY
+ y! `; g5 l7 }6 V+ C  H  TABLESPACE USER_DATA_TEMP TEMPFILE 'D:\TEMP0111.DBF'
& e8 A( n/ b" F  SIZE 50M REUSE AUTOEXTEND
2 A8 s4 _& n' u3 `1 y" a$ V  ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM1 n, {3 N. z# S
  SIZE 1024K; Q8 Q) E1 F) W$ ], l
  & b0 g6 y( \0 }: I) }1 k
  --增加数据文件
. b3 K" E9 }% O  ' E5 |$ Z2 M  @# m  ]6 ]" M
  ALTER TABLESPACE USER_DATA2 V  \: z* _- S. A5 o+ ~8 G% y
  ADD DATAFILE 'c:\USERS01113.DBF' SIZE 50M;
7 @; Q! X- S# @- a  ( z1 t6 c/ J* o7 s: l/ b
  ALTER TABLESPACE USER_DATA
, c: g2 v6 ]- Q+ F( w- f+ X  ADD DATAFILE 'c:\USERS01114.DBF' SIZE 50M
" D% P" G4 T2 G" o  V5 A/ s6 R# `  AUTOEXTEND ON( A* E5 A- L: |6 b. X) l
  ;
# e; }4 \  Z8 [7 ], R% n9 e  + Y% d1 t6 _: G/ d9 V
  --删除表空间% ?  c2 \4 n. k# ]8 m- N
    H" t( `% y8 T) n  F6 `; c& [$ F
  DROP TABLESPACE USER_DATA INCLUDING CONTENTS;
0 H! E; _% i8 p9 Q/ W. K  
, M# y5 R8 M4 p6 A* f, `  --修改表空间的存储参数
# n+ @; g# }) u( A3 w+ i2 Z) I  
! a1 ~4 b+ l7 W1 y0 e  ALTER TABLESPACE tablespacename' _, A; h/ l7 f! a. o, r
  MINIMUM EXTENT 2M;; p, L& o5 F) q- J8 f9 g, k" Y
  ( x3 ]" g1 A- e
  ALTER TABLESPACE tablespacename
+ t* y+ U, L/ f, H3 L  DEFAULT STORAGE (! E; N+ T2 d% Q
  INITIAL 2M
' D, Z7 H2 T- F5 V+ F  NEXT 2M4 R3 b3 u/ d0 n% _7 T4 d
  MAXEXTENTS 999 );
: g6 t6 l$ v! v& \8 C% `% Z  3 m; m4 X$ r' t/ [6 X; j" w% U* O
  --表空间联机/脱机/只读! D/ }+ d9 n. l3 g0 U* P9 D% _
  
2 {7 i( S# j2 [, q9 \5 ^+ Q  ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;
8 v7 ^" ]/ K8 |8 q' |1 S  f  
, N: o/ H0 _. B6 I3 e" _( J  --修改数据文件大小
4 d- T7 n8 C. J# I% M: M5 y  ALTER DATABASE5 g! @/ M7 g" j0 [" ~& U
  DATAFILE 'c:\USERS01113.DBF' RESIZE 40M;8 I- S: m" Z9 _' j0 o1 r. Q1 X
  
: R8 G5 P% m+ O6 {, c% t  O  --创建用户、赋予权限
" L8 K. X7 k9 G2 [  9 a# d# h9 B  P0 x" U4 Q9 Z8 b
  CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA0 Z9 B9 R. z& F$ l2 G. V
  DEFAULT
: q$ t! L8 B2 C7 ?6 G9 ^6 P2 D  TABLESPACE USER_DATA TEMPORARY; S" m# \( M/ X# h
  TABLESPACE USER_DATA ACCOUNT UNLOCK;0 G4 W; I9 |. H% `' K2 Q! Q. E
  
1 T  J( G! v5 [  k) P% T  GRANT CONNECT TO USER_DATA;. X. p) ^% d! B* [+ s; A7 e; N
  GRANT RESOURCE TO USER_DATA;
) n( k  U7 h# \# o  B  $ g3 [- z  ~+ B8 E9 {1 E( ?% d' V
 
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:07 | 显示全部楼层

Oracle认证:Oracle数据库开发的经验积累(三)

 3、表的管理. j$ u; N% n2 p, o* M  u& ~
  
. M; _! J, u/ L; L) v$ _  --创建表
3 T1 e. V8 D0 k4 m" ^  ^  ( u. x9 c4 x4 [- [- z
  CREAE TABLE TABLENAME# \' R, H+ ?5 ^$ {, s( X
  (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)
6 o' _6 L& S  Y$ t+ E4 f  (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);
9 Q" q/ {0 c- e7 E0 H8 f+ S  5 r7 z0 G) x0 A* I* D: }" H
  --建表的索引存储分配
8 H) V4 X1 K% \/ K2 w; }  
% W4 Y. u  [( I/ r0 X6 v  CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)' b' R1 ^) M- N) g$ C' \
  TABLESPACE indx,
9 z1 f' O& K! J; m5 J0 q6 X" L' w  last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,: `9 f- E/ d8 t# Y% r- D9 k
  dept_id NUMBER(7))
6 A: z4 O8 `$ Y/ t  TABLESPACE data;
0 v2 z, i+ I1 K  }$ P9 b9 F  
2 L9 p8 d/ Y: Y/ s  --修改表的存储分配: O9 h6 a- h+ {* A# X$ s" F" i. l
  + ~; P$ {2 j1 Y- }
  ALTER TABLE tablename; H0 E( |2 S/ Y
  PCTFREE 30
; y9 @7 Q% M' E2 n  PCTUSED 50, w' ]7 l3 L2 N4 c
  STORAGE(NEXT 500K+ T" e  Z# g' P2 @( A$ r: J7 m4 t
  MINEXTENTS 2- U. z: @3 ~2 ~4 v" F" R, w- X
  MAXEXTENTS 100);& U$ b: e/ V- I% M
  
8 U( d4 |# k0 u2 t6 O( F; U" P- x7 ~  ALTER TABLE tablename2 g$ A, `- D& u( k
  ALLOCATE EXTENT(SIZE 500K: |& `* r" W9 b# I9 c' y
  DATAFILE '/DISK3/DATA01.DBF');
! ]; }  K* M- o+ O- R2 q6 a$ v' N  , E( J/ k& g- l2 P6 E; L: N/ k
  --把表移到另一个表空间6 {' _. K. G1 z5 _
  " T5 c( b# i+ _6 ?2 ~
  ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;. i0 p  @3 d( J& E0 w
  # L6 U* L1 n+ x6 o& Q' W9 ~/ s
  --回收空闲的空间(回收到High-water mark)3 t6 m. M% d/ i9 l
  全部回收需要TRUNCATE TABLE tablename2 Y% t, b6 a$ `; W# k
  # l. r& u) }  I. [
  ALTER TABLE tablename
6 I$ X, z  @, E  DEALLOCATE UNUSED;" O& g8 p9 h9 T3 x+ Z8 x
  
+ h1 |1 F* T1 g) U  i  --删除表(连同所用constraint)' `+ j# A: k; @  ~
  * K9 P7 r+ h2 T2 n' i$ Y
  DROP TABLE tablename* o  L7 a( C9 R/ U! x) V- e2 h/ a
  CASCADE CONSTRAINTS;
% E+ B* e& n/ B* d' R  
9 ~9 S: Z  s" i! v% e  --给表增加列& S. }5 _8 m0 d- h, ?6 c( N2 o0 V
  
. ]- w, a* H9 p+ w  ALTER TABLE TABLENAME
  f9 O' z/ K& P( l; @  ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;
4 h, m. `8 A, z& e6 c5 i) F8 w8 V  
; _: y; \- t' y# k2 B  --删除表中的列
' f: L% B) s7 h3 V; B: G  
. k+ O/ e+ `, H* J" W4 X  ALTER TABLE tablename  c* `6 V" U& \$ W' r
  DROP COLUMN columnname;2 ?7 W; i- S+ b+ Q1 L- b) r* N  v
  * r+ i' k8 d7 f6 V+ t* S
  ALTER TABLE tablename
6 S) k# [' q: Q5 d2 ^, j+ S  DROP COLUMN columnname2 }$ n+ _) ?: ~- \
  CASCADE CONSTRAINTS CHECKPOINT 1000;9 r% J# V. k8 U# {" w* X  T1 w
  
/ {  v' ^4 @+ h; Q7 B) v- J$ o3 T  --标记列不可用
' N: f( ~# T7 W  0 J/ P/ U: H# W+ E" G/ x  r! y
  ALTER TABLE tablename2 l6 ?% q( C# L% }- a
  SET UNUSED COLUMN columnname. ^* D- a6 z& a, t, g
  CASCADE CONSTRAINTS;/ G7 b" A; M, F+ u+ W
  
9 e/ R$ t0 t9 L; a  --删除标记为不可用的列9 y- O. y1 \3 o; q. c1 l
  
2 m; p! [! S1 l  ALTER TABLE tablename  W, c# Z, }. |: ]0 F7 D* @
  DROP UNUSED COLUMNS CHECKPOINT 1000;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:08 | 显示全部楼层

Oracle认证:Oracle数据库开发的经验积累(三)

 --继续删除列选项* m4 e) E; N7 n, \$ C& K9 X
  
3 S# N' j' u+ }: h1 q+ m$ F4 R9 x  ALTER TABLE tablename1 Y; D( U- Z' y+ H- N1 D9 b
  DROP COLUMNS CONTINUE CHECKPOINT 1000;
, z. G  \' ~$ }2 c0 L4 r  0 c3 S/ w/ h: s7 |0 U2 J2 {" b& b( H
  --把表放到BUFFER_POOL中去
, H2 G- V, j" T' \" x+ s  
6 U- ~, q5 e3 o. }  ALTER TABLE tablename1 l  v2 B, e) I# S! T
  STORAGE (BUFFER_POOL RECYCLE);9 d2 l5 s9 q5 Y% l  [6 P3 N
  
9 {* n; }3 |8 S- [9 B  --避免动态分配EXTENT
; o5 x+ R2 [* i2 p  " q* M" S% U% }& |9 v* _1 r
  ALTER TABLE tablename ALLOCATE EXTENT;- e" f, x% A, U, s6 T
  
* g% L% T5 f1 c  --把表放到CACHE中去
6 ^- X+ t3 I. n; X  , Z* H+ b9 s6 e* \+ {* ?
  ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;
# q) L& G8 p" f% R% \1 D  
" N  M* b" Z# u7 }  4、索引管理
( S9 W+ u0 Q* D* U  - m+ ]5 f- t6 V+ ^" U4 _7 L% l8 ]
  --创建索引( Z: ^# n  u3 ?9 R, ^( B. ?5 r
  # \: }; n/ Z! h3 q
  CREATE INDEX indexname ON TABLENAME(COLUMNNAME);
$ r, G) R5 M/ Z  
; h% W* H& z! G2 k: @5 b* K9 z  CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;2 L, l1 _) k6 L. [8 L- e
  
: ~: C- t. e9 n3 Y) z3 x) q  --重新建立索引9 @8 q3 O1 f1 Z/ n# S+ A
  
# O0 W7 B) k$ `& X3 s( ~7 i: N  ALTER INDEX indexname REBUILD TABLESPACE TABLESPACE;
# l5 V- g, K. X/ V% H4 ~  0 v" w. S% Q) o3 I6 U  o
  --索引分配参数' B3 P6 m* t7 C& L" u
  5 b7 Q2 V, r1 c
  ALTER INDEX indexname0 O' [* _& v; Q$ I! X% S
  STORAGE(NEXT 400K7 O7 e" ]8 o5 f6 _, l1 q
  MAXEXTENTS 100);. \0 T, a9 q  g4 Z7 f
  
7 M! a0 H6 K3 f5 C( j" W9 Y8 H  --释放索引空间
# W  s1 O( s% q3 [$ k+ x1 ~  
1 C- [) Q. N, x, C7 _; O" p2 a5 o  ALTER INDEX indexname! ]% p4 O  Y$ a# R9 U! ^
  ALLOCATE EXTENT (SIZE 200K* C: D1 T$ O4 s
  DATAFILE '/DISK6/indx01.dbf');1 n8 `. @* W. e/ e* Y7 y0 u
  ( y9 t( x! p3 y. g2 |; s
  ALTER INDEX indexname6 t) i8 q9 B" @6 r
  DEALLOCATE UNUSED;
. c  A3 T. K2 O. H' u9 M3 c  ; o1 K( e$ f- k$ x) ]( j9 W* O0 F
  --重新整理索引表空间碎片' [, V1 n* r6 U* ]# \
  + E0 A* f1 y1 T
  ALTER INDEX indexname COALESCE;
( c; o. q3 M( f; z$ u! a' O  
( c, b  N& T2 t  --删除索引* E' [' M7 ^9 G, I9 y3 L0 s
  & F$ E' @7 E8 v% c9 k
  DROP INDEX indexname
8 o8 o, X' p5 K0 {& q! Z  % V# [: J6 V0 n5 U0 |* r
  --把索引放到BUFFER_POOL中2 P5 C5 M7 v  N3 d; b( B
  2 u. i5 K( d' K5 g: y
  ALTER INDEX cust_name_idx
; _, J/ \' d* p: x+ L# Y+ j2 h  REBUILD
  M3 G/ |9 \( m0 R  STORAGE (BUFFER_POOL KEEP);7 ~- M! x1 e% n- r$ R7 y2 E
  
0 M0 x+ l% ]' w3 C8 F& \% {  5、约束管理
& o. g( }$ r4 R: n' k( E  
0 ~8 Z7 Y9 s- W* s. Y  --建立主键6 C! T& M9 m2 w2 x
  + |9 V! T; ^. Q2 ]) x6 b
  ALTER TABLE TABLENAME
, l) l8 B8 Y2 E/ s  ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)
& u% q" p4 D$ z* q+ N6 {# i5 v% L1 g  
2 R# M4 v- z. |6 E. C; Q) N& ` 
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 13:41:09 | 显示全部楼层

Oracle认证:Oracle数据库开发的经验积累(三)

 --使约束无效9 j( D; J( t3 Z0 Q. j
  % M7 Q$ {; H4 Y2 Z5 p$ M
  ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;
/ b9 E% E, {5 H8 v; z6 M! V  
2 g1 Y5 C$ D/ A6 W  ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;
7 e6 f5 K* _5 F) U; W  6 m8 F8 ]: x$ Z- c" ~
  --删除约束# X9 g! |8 i7 N2 S
  
' s. Z+ e0 ^0 {1 d  ALTER TABLE tablename DROP CONSTRAINT constraintname;
3 b  R5 C4 x; ], j7 K7 _  7 g  m; D% V7 q4 \7 I) J  j3 W$ U
  DROP TABLE tablename CASCADE CONSTRAINTS;(删除表后将所用的外键删除)
6 ]" w" e  E( _4 Q3 `  
% t6 |: M% F' }( r/ y1 r  --给列增加缺省值0 o2 V& L, ~2 b0 Q6 a9 v1 U0 s
  
: y- H7 [9 T8 P$ R$ r  ALTER TABLE TABLENAME  H/ b2 Q' x. y; R; [
  MODIFY columnname DEFAULT(value) NOT NULL;
5 A' y; O) \$ J& a3 r+ x3 R  
) v: H" z' H) Y. r, e3 E  --给表增加外键
5 F2 U/ s* ^, n3 W  ALTER TABLE tablename
7 ]  Z7 e- ?; k& Y7 o, _1 i  ADD CONSTRAINT constraintname
% p. N5 q3 e, ~. l5 J  FOREIGN KEY(column) REFERENCES table1name(column1);
% w9 C8 |# z% ?1 q, m+ B  
0 |5 R1 d7 ?, B% N. }+ q' ?4 |  6、安全策略
  F* K  x! v: |& l  t  % Z4 c& f; r! L, m9 b% j( u* n
  --加密传输: q0 z5 d2 K. ?9 ~5 k
  
4 m9 g" o8 z1 E1 W6 ^" J9 h/ Z  把客户端环境变量ora_encrypt_login设为true
& w! x# a/ ~. s- N  把服务器端参数dblink_encypt_login设为true. Z* Y7 h2 W; u
  / z7 u% Y+ j9 R4 u
  --数据库管理员安全策略
) F  Y% f7 t. t, W& R  $ J! Y5 V. `  A2 V/ l: X' N
  a、建库后立即修改SYS/SYSTEM的口令(9.2后必须修改其口令)
! c: [( j' U6 T1 |# t, b9 ^0 K8 @  b、只有数据库管理员才能以SYSDBA登录系统
* `; q) ?+ W( r; K  c、建立不同角色的管理员,分配不同的权限
. f7 K! G/ D% N! O  
' A* I/ y8 U# W* i5 s. w  比如:对象创建于维护6 _# ?6 C1 A8 Z. A9 x4 Q$ y6 z. u
  数据库的调整与维护$ o, H' o, g' ^
  创建用户分配角色
+ C& }; R' z8 q- c5 Q; s- d  启动关闭
# v2 F( ^8 O& l) _- G  恢复备份
* _, J* z" X2 @# A$ ?0 W  ) ~3 E. j% Z$ E
  --应用开发者的安全策略# k9 K$ p& f, G0 ~3 ^; [
  
7 f9 ?$ E2 r  X/ D  a、开发者的特权只能在测试开发的数据库中赋予权限
* U$ W' i. |$ D  b、自由开发者、受控开发者
1 w$ H* M) f/ I6 j) Z; U: `  自由开发者:create table\index\procedure\package
6 O$ o* {% l- N: Z% t  受控开发者:没有以上权限
% H& G! l: n$ z4 S  
9 n2 _! h6 K' c  \+ N; @, U( ^2 S  7、日志文件管理
) B5 E3 A$ ~0 R  h, L' T) `  7 G2 V8 ~' \1 v8 G3 |. _
  --切换日志文件2 t0 {% Q' N4 J. m' A+ n) I
  9 c* }5 `/ h+ S- Q3 f
  ALTER SYSTEM SWITCH LOGFILE;
; N; l7 D3 c0 m. ]7 d3 W. g  
  d6 o" r# J% [8 Z  --增加日志文件
& D4 s# y* }  c; n$ ?# ~0 ^5 N  ' p, |; M# ^/ c
  ALTER DATABASE ADD LOGFILE* s$ O; k" S# n/ K/ Z/ z
  ('/DISK3/log3a.rdo',
& X$ Z/ H1 J' O. F; U0 I. O  '/DISK4/log3b.rdo') size 1M;
; B0 F. ~4 l& h' P# T  7 \4 P6 c4 v: l2 R6 J
  --增加日志成员
; H; M  q8 e, d* o. Y7 L  
) E- U# f7 k1 _. A  ALTER DATABASE ADD LOGFILE MEMBER& \. v$ L" w. @5 m
  '/DISK4/log1b.rdo' TO GROUP 17 N% q. ^1 i- C6 t! x
  '/DISK4/log2b.rdo' TO GROUP 2;% ?# @  ~% T; n) G. a
  6 K: }) Q, N5 y' y$ D( ^/ B3 a
  --删除日志文件
4 O% I. F  }7 ?4 X2 [+ {# h  2 \! B" i9 a+ z3 m0 K& H6 k
  ALTER DATABASE DROP LOGFILE GROUP 3;( f3 b1 d- D) Y) a6 |, G: q- A
  
) x- Z4 o; K, I1 ~) s# U- |  --删除日志成员
2 w- R9 @; N3 b8 w  
' k2 e9 F; b; I8 V( h, _: M  ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';  w% Y/ c) e+ c. ^& F+ k' h
  
- k0 }; E# H. I% E  --清除日志文件内容- B; k6 c8 Y& A0 }5 c8 `" j! H
  9 u  \" ]5 f8 e2 U0 B& ]! C" L
  ALTER DATABASE CLEAR LOGFILE '/DISK3/log2a.rdo';
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 18:51 , Processed in 0.282087 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表