ORACLE常见问题1000问(之一)

来源:互联网 发布:chaton是什么软件 编辑:程序博客网 时间:2024/05/02 12:57

ORACLE常见问题1000(之一)

转贴 作者:  CCBZZP - ]8 L1 m: @) P9 }
大家在应用ORACLE的时候可能会与到很多看起来不难的问题,特别对新手来说,今天我简单把他总结一下,发布给大家,希望对大家有帮助!5 ]" z2 z0 ?( n6 q2 W
ORACLE高手来说是不用看的.
- M/ D* W% x% f' H$ N* ]" m  I" W
4 S+ R; y0 b( o, ~0 q  @  C1. Oracle
安砚完成后的初始口令
?
; K' T9 ^; k& n1 o
" X* D: B: c9 r8 Y
  
 internal/oracle
# u/ p% X4 W4 r
9 j3 I2 e8 t$ _7 }0 K0 /: @6 h
  sys/change_on_install
2 Y( W2 m+ u  a5 p# ]' T8 c" /
" g+ g( n5 s/ M; X* L" Y! f" ~
  system/manager
& j  /+ G0 w! a% L$ X4 H+ Z& P
+ B: ]2 W* E! /3 w
  
scott/tiger
- V$ e: |; C+ N* r
: P% J7 k# n5 z8 ?
  sysman/oem_temp
/ N- P* [% J' ^
! L# D& Z+ h0 x* x$ s2. ORACLE9IAS WEB CACHE
的初始默认用户和密码?

- A5 u) x4 @5 S% S( R9 I$ h, ~
# B( C) X" l6 K8 ^' a
   administrator/administrator
. Y$ w, [/ a0 m8 ^6 X

1 R1 e0 X. n/ T7 Z' f
" o9 g: @" I. w2 Q7 C5 S" ^5 f/ ^) K3. oracle 8.0.5
怎么创建数据库?6 u" y9 K5 a6 h  u$ d

* U# b2 s5 N7 u; A- /   
orainst。如果有motif界面,可以用orainst /m( _+ ~, e! e; d! x: e

1 ]2 a5 F+ b: `1 d4. oracle 8.1.7
怎么创建数据库?) X6 c% A2 T" Q1 V# S; E) d# ?3 L( X

$ w" G; Y. B' y: R   dbassist
1 l* x& W4 t- g% v+ n
% {9 N. O: [& X' E' s2 d
5. oracle 9i
怎么创建数据库?
& A- @% f7 [9 R1 q
" L) Y& F+ ~2 v+ U' C- s0 ?3 Z& a9 W   dbca
8 p' M+ F1 m% G/ M  C! B( b
2 T! ^0 b1 r: G; `2 k# L6. oracle
中的裸设备指的是什么
?
7 ?! G- S- l; u4 q& ]2 /
5 ?2 a9 L; H, s1 B+ N  
裸设备就是绕过文件系统直接访问的储存空间

  N# Z$ a  z; Y* R
4 g6 X/ p4 z8 I# T2 f7. oracle
如何区分 64-bit/32bit 版本???
0 j8 U: _8 N6 t, z
/ X  ]! E/ s! Y' L0 J! M
$ sqlplus '/ AS SYSDBA'
% s6 Y0 k0 s8 JSQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003
: h- m' |- l0 t& G/ E7 Z1 G
(c) Copyright 2001 Oracle Corporation. All rights reserved.
; h9 b4 V2 w$ Q9 c) L; F) Q
Connected to:
) Z6 h/ /4 A9 z! p! S0 p, QOracle9i Enterprise Edition Release 9.0.1.0.0 - Production
8 B5 d+ K4 Y" R, Y0 S$ ^
With the Partitioning option
, v6 F; E8 j- h$ `/ s
JServer Release 9.0.1.0.0 - Production
- B2 n6 s' t8 C
SQL> select * from v$version;
! C" i7 C! h/ J; l# q0 K! n+ xBANNER
+ A  N+ V) j( a8 ]+ d: n' z9 w4 L' |----------------------------------------------------------------
( Q; p+ @) V7 FOracle9i Enterprise Edition Release 9.0.1.0.0 - Production
' I4 {- w; f% M
PL/SQL Release 9.0.1.0.0 - Production
: m/ j/ q% h) Y' L* M
CORE 9.0.1.0.0 Production
. b  q; y6 I. e( G0 K. T3 e6 D9 z
TNS for Solaris: Version 9.0.1.0.0 - Production
5 g% ]: a; p3 J% s9 T8 W, q+ w( RNLSRTL Version 9.0.1.0.0 - Production
1 z$ Y4 _4 t' A5 `9 k1 n4 T
SQL>
7 f" P; a) B$ [$ X* g0 D* _
- B5 F' r& m1 j/ p( J) x$ L  l8. SVRMGR
什么意思?: ?) ?6 S% }' D, W. J( F# V1 o
/ v0 t% H1 W+ J+ Z: z4 f8 X0 i$ C
svrmgrl
Server Manager. % z' q2 I. I$ k
9i
下没有,已经改为用SQLPLUS! t! M. U, }/ j" u9 E& c( H9 ]
sqlplus /nolog
- c- /5 a2 A/ T* G
变为归档日志型的
& T5 b: h  W9 U5 I( p+ z( O" w- O! H1 G
& r0 t) B( E4 G$ y& G* [2 T

5 x5 o8 y9 ~! K: V9 e: @+ `+ |9.
请问如何分辨某个用户是从哪台机器登陆ORACLE?2 /+ d3 a! h+ j
3 F3 t4 a0 g) x9 k. y
SELECT machine , terminal FROM V$SESSION;
8 m: g# `3 s$ d: t$ M$ B
* a/ |+ /5 L5 V2 ~# /7 V10.
用什么语句查询字段呢?/ o1 a! g" ^" |5 V3 u; }1 d4 A
; C1 i! Y* y% O- w. j$ C5 a
desc table_name
可以查询表的结构
& V2 S9 O5 D+ xselect field_name,... from ...
可以查询字段的值
9 E+ Y1 B) z/ Q/ l2 O
5 F! z9 U; d0 |$ U# L# p
select * from all_tables where table_name like '%'
( N# E' }, w. E' S, Rselect * from all_tab_columns where table_name='??'
, Y0 T4 ?- X) P2 n
: `2 D" L9 b, Z" y6 S7 S& H
11.
怎样得到触发器、过程、函数的创建脚本?
2 A6 S* k  E: V! H; P+ ?: J0 P
, ^' g) P* F7 C. u+ Z1 h
desc user_source
2 V0 b& _9 z. k2 j
user_triggers
4 I& D1 Z# y1 H* ^# `7 W" A- w' K& N
1 @  /7 `6 |) A% O9 s: h

% b4 A% j3 M& j% j12.
怎样计算一个表占用的空间的大小?* F" J6 D* i% p/ j) U3 o9 _
7 }9 y" j8 S2 F4 N" Q8 M, X) [
select owner,table_name,
0 I( u- X1 I# D  U, I  /) PNUM_ROWS,
, /- a/ N% g2 F& _  G
BLOCKS*AAA/1024/1024 "Size M",
, g" ]9 V- S2 J. a. eEMPTY_BLOCKS,
. C0 b) ~) o  n
LAST_ANALYZED
% }" ^, F" d5 b, U! X3 S1 D9 T/ Ffrom dba_tables
" I/ e6 J9 v7 A% ?where table_name='XXX';
2 A2 w2 c5 O) }/ P% f! C  R
* u$ R( }3 K$ |3 A) i5 e
Here: AAA is the value of db_block_size ;
' s* A5 u& H) D" I
XXX is the table name you want to check
. o) n, y' e; /
) @! G  m9 F* ?% i* M8 }
; N/ l8 g. R' X- N" |

' X' V+ P2 E+ M% M/ T13.
如何查看最大会话数?" i+ e3 f' Y9 V! `5 L
$ K+ k' B6 _3 _) |1 W4 G: m$ w! q
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';
: S0 m( g8 D  L0 |# r9 m. j9 R

, a) v( Y; B0 B' l* B) jSQL>
+ Q7 x7 U6 g! L; u; S  ESQL> show parameter processes
1 T" w8 Y- }& s5 G: `& Z6 N

& J9 e" L2 I5 x4 w0 {  eNAME TYPE VALUE
" L: e8 _# `+ J8 m; j1 r------------------------------------ ------- ------------------------------
# K; |- d- E6 p; A8 W4 c2 H
aq_tm_processes integer 1
9 r9 k2 G, B8 M6 u3 Gdb_writer_processes integer 1
* i3 [% U. V( }0 sjob_queue_processes integer 4
2 J& E/ {: ]6 X2 m
log_archive_max_processes integer 1
) j% ]- F0 d$ n& N* C. |; z9 bprocesses integer 200
0 B/ U2 h. G- N* p' V" C$ M

; s8 d' c3 E' i
这里为200个用户。
. N2 N5 I" Z) k) J" a
5 G: P' W: m) I0 G4 S
select * from v$license;
6 w2 ~5 j+ A' b# e
其中sessions_highwater纪录曾经到达的最大会话数
; B. p6 Z- Y% y# g
% U, [, ]5 E5 h$ E7 j1 |$ c
) L0 t( ~4 m  }- A
; N8 H* v7 W0 e  @' I9 T
14.
如何查看系统被锁的事务时间?
% u9 B% [" `+ k) s, ]
+ Z- ]+ l, b6 r) bselect * from v$locked_object ;
" j( q; O) {& B& a
$ ?) O7 d/ o5 L/ J
15.
如何以archivelog的方式运行oracle8 x/ Y6 W' n  D
, V8 X, r9 ^1 k; ^8 G- N
init.ora
9 m: w2 E) B& Y4 O- O
log_archive_start = true
& f! }$ N* ?& l7 k& L/ r% T

( S3 l- n3 I+ l  U# T5 e- G0 j/ g8 wRESTART DATABASE
2 s# f* E$ q3 t2 v$ F' p: w
$ g, P2 g- H) r2 F& {8 f16.
怎么获取有哪些用户在使用数据库
' }1 t# n  ?/ _
" @( y7 R) Z# z' d: V- J8 y
select username from v$session;
! R7 Z4 m8 y; X
' w" z  z% Q( R) c2 N
, M: e. z0 ?+ }3 c: k4 ?$ ~% m
' ?( v; X; D" z( e: ^% J2 [17.
数据表中的字段最大数是多少?
* S7 k8 i1 ?0 b
% r) X+ C& K+ K! q1 a/ Q, R1 k
表或视图中的最大列数为 1000
1 {# U3 P  @0 K, [. u& q  K( l
& G+ |' }. u, a) g: ?
18.
怎样查得数据库的SID ?6 V  M+ f+ X( h9 K
1 W7 {6 `8 V" i3 [" p( g3 g
select name from v$database;
$ x6 U# z# ]; O5 e0 c
也可以直接查看 init.ora文件
, E6 u2 ~* t6 _  f" R3 a( a
7 z, T; ^& A2 |4 h19.
如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ?
' A! @. W: b8 Z; L. W
& ^2 ?( G! I5 K9 vselect sys_context('userenv','ip_address') from dual;
# k3 ^6 ^  R1 r( x* I, V0 N
6 I7 _: i2 H) ^
如果是登陆本机数据库,只能返回127.0.0.1,呵呵
. f+ I% A/ z* v0 |

* O5 o1 A, D) K. Q, A20. unix
下怎么调整数据库的时间?
5 X& G' U0 ^$ B* G4 P/ v/ u7 N
% ~  F# q9 L5 J) A) R5 Tsu -root
5 q0 w6 S3 t4 i$ ~; W5 }
date -u 08010000
9 S2 ^7 K/ ?2 c# w
0 Y( J4 K. E1 d6 N9 }9 B
21.
ORACLE TABLE中如何抓取MEMO???空的儋料???
% s* Y  U, W/ R
7 k$ U5 C* G3 b% {- Q0 v
select remark from oms_flowrec where trim(' ' from remark) is not null ;
% m4 g7 q5 _- U; q
* p; P: K: k$ `# d9 `! k
22.
如何用BBB表的儋料去更新AAA表的儋料(有晷?的字段)7 m" B$ C/ H& E4 ~
$ H3 Q8 G. X9 t2 P- T9 ^
UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NO IS NOT NULL;
5 a2 r" R! ~# r
- c3 j: I! L( h( c: N
23. P4?
呢安砚方法) y: c5 p3 E5 l/ ]5 t2 ]/ j
; X4 ]! b9 I) g' l6 C& K" b
   ?SYMCJIT.DLL
?SYSMCJIT.OLD
* ^, _. M7 m! `8 _  h
$ F) U8 r- b, k0 [* w4 Y2 n
24.
何查?SERVER是不是OPS?
% X- q" m( /8 f" W: G
) G$ W) I: T- U. B6 u   SELECT *  FROM V$OPTION;
9 T4 L4 i' f( p& c! ?; Q% t
  l3 ~6 `* O3 [! b! a; C   
如果PARALLEL SERVER=TRUE?OPS

/ Z4 J+ {& u, l) S2 l
& Y* j  W+ F6 }5 n: C
25.
何查?????. L" p% ^/ ]  w* U( K. K
4 A1 W( O- T# S3 O# Q; u
    SELECT *  FROM DBA_SYS_PRIVS;
" h* d/ ^* g  e$ I; Z

: t+ T/ A$ g) ^: a
+ }1 n8 L: |6 [# G: |. R# c! v26.
如何?表移?表空殓?
9 U+ @2 Z0 N2 X- R/ E
5 B1 L8 F5 W0 O# E( o6 [$ V  ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
  g8 v: z1 ~' P; x8 x8 j( j
) Y0 o5 D# y7 _
. m& Y9 V/ ], m0 h

1 |! R% Q9 T5 |8 E27.
如何?索引移?表空殓?' x3 k% p2 G. p; F& `( c0 b8 a; a

9 D+ |  N3 K$ q7 ^- G6 o   ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;
/ /1 j  A6 _& ^6 x3 C& R5 g$ R
: l6 [9 P) N) A8 l2 A

, w9 m6 X( p7 y$ B9 A, e! }
( u9 J# O5 K9 T$ B9 ~- [28.
LINUX,UNIX下如何??DBA STUDIO?
1 f& a5 c5 I. x1 y6 D
- ?4 z2 v" k4 @    OEMAPP  DBASTUDIO
7 i! f; j  |+ ~! Q: _" P
2 /5 k% [9 d. N- S. W6 R0 |/ H29.
?骈的???象有?
* G( A: [, U+ R& p5 n1 l5 M: D" C
. S* M+ e0 l: Q, L' {! C: z0 R3 X
    V$LOCK,  V$LOCKED_OBJECT,  V$SESSION,  V$SQLAREA,  V$PROCESS ;
: g& @9 L: N5 @- r7 |9 f
2 O3 ~  ]( {. ]: G6 M8 M' P, N9 @   
?骈的表的方法:
0 u* V0 v! o% k; Q% {- T
* I  ?' P% V1 U$ c% [+ g8 Z! RSELECT S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')', S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;
2 U( r& q' y8 {' i8 x30.
如何解骈?
% z! l, /+ I6 J7 D0 f; K7 o9 S

+ _5 e6 h. h! O  g- v    ALTER SYSTEM KILL SESSION  ‘SID,SERIR#’;
6 u! M+ /0 L: d+ w  h) [# w/ N" o

- Z5 ]4 @2 r# i$ M& P; l, V31. SQLPLUS
下如何修改???
# ~6 W% P& H* c6 H
$ H  c' J: `4 S3 f" [! d8 /7 /
DEFINE _EDITOR="<
编辑器的完整路经>"  -- 必须加上双引号
: l, S3 e; @$ m: t
来定义新的编辑器,也可以把这个写在$ORACLE_HOME/sqlplus/admin/glogin.sql里面使它永久有效。
( {7 O% G# [; h  P$ W! N
5 Q4 M# H+ i) [' e1 D& `. W; S
32. ORACLE?
生胗???5 O3 k% e% S! i( Z& J& H( h
. `+ b/ W9 F' ~% i
    DBMS_RANDOM.RANDOM
% A3 F/ q# q7 X& K. G
& E! F, R! k+ D33. LINUX
下查?磁毙????命令?
8 S' s( N2 F& B6 T6 @5 q. o
; n" {, [: A/ N1 v( p; j/ K
    Sar  -d
* {' i$ P5 m: D
" ~# J9 q0 C3 D' B. f
33. LINUX
下查?CPU????命令?. O* O% h! b: I% R* q* _7 f

$ w5 z' u% E" B: E/ l    sar   -r
  L  e) v8 k  [* D' I0 x

' F4 Y: N% // K$ k0 j- j( h, T( e- h3 J34.
??前用???
3 j+ x+ R; `1 m& ^9 T* m( }1 _
; E' S6 H  {7 E2 F  Y# s" T8 x8 J
    SELECT *  FROM USER_OBJECTS;
7 t) X% i" /! p/ k
, J/ D, T* ^! F7 D3 i4 _    SELECT *  FROM DBA_SEGMENTS;
! {) _6 [& ^2 ?- d% ^
, t. Z8 O; l* s7 d, w
5 Y9 X4 m# x/ M7 r' t
35.
如何?取邋锗信息?2 X0 ?4 c: j+ I6 E- b; S
6 u5 ~$ e' W" g! Z6 B% D: J$ z$ g6 E
   SELECT *  FROM  USER_ERRORS;
! E5 [4 A% O8 i7 ~! ]
% u! k+ d2 |: p+ |; {, C! o; {% u36.
如何?????) C' u1 T% r- b4 K' N3 N

1 @& B8 C$ o9 o! j+ c& s2 W   SELECT * FROM DBA_DB_LINKS;
  R4 C2 |6 U% R
* w. @5 @3 e+ j+ q
37.
查看???字符???) x( P5 J- ?; t# u
. l( j# a1 w- i8 H: s( Y$ J9 p
    SELECT *  FROM NLS_DATABASE_PARAMETERS;
" }  ]0 C! c9 U' w$ }) i
! W! W5 f! `# ]1 Z2 F    SELECT *  FROM V$NLS_PARAMETERS;
9 k; F2 d5 |; x1 t
3 Q9 j/ @" u1 `7 r4 X* z" e
38.
?表空殓信息?8 r: e; r. @0 Z6 |' D, l+ w
: s3 V$ S1 l3 _4 d" h0 d
    SELECT *  FROM  DBA_DATA_FILES;
  o* z* v4 }; ~) N2 {8 K4 m9 U
6 E$ N# F) I; F# y6 L
39. ORACLE
INTERAL?要口令?
1 h) y! ~4 R" }
7 |* u+ G- R; K1 @* g   
修改
SQLNET.ORA
/ C5 G  i+ ^, M% s6 M3 ^
0 I- B' l" H& ?9 w
   SQLNET.AUTHENTICATION_SERVICES=(NTS)
& V5 m/ y9 O8 l

8 M- g$ l7 P4 v4 u9 S! F. b0 ^% b40.
?JAVA.EXE的解?揠法?0 w- W# r2 j. C1 X
! m9 x+ w5 o0 Z) T: a1 W
   
一般是?ORACLEORAHOMEXIHTTPSERVER改成手工??可以的
3 O: T2 w3 I0 J- T, V
8 Z% S" // c( w9 q, {" j9 i# U   X
89
0 _! V( /* y5 A. _! o; l41.
如何给表、列加注释?

+ d8 x  E. W; V8 O
/ b/ A( h) v& o8 a) p0 ?! rSQL>comment on table
is '表注释';
9 L+ I: w. X; v0 {$ X! U

2 R& D% y& g' s- W$ H$ e$ {
注释已创建。' Y4 f) b7 s* j2 J& N* g( D6 e
3 z' D! c: O' u/ |
SQL>comment on column
. is '列注释';+ h& P7 r% N; G. M1 c& |4 k8 D5 d

- A) A4 e9 Z: L" F* q6 @
注释已创建。+ s2 M  B% i: X( j1 ]( f$ o
: `8 c+ b% z6 n
SQL> select * from user_tab_comments where comments is not null;
0 {( e% u0 _* H" O2 ]# /8 t* U& _4 n1 ?
1 ~0 F9 /. ]3 i6 z
" q/ a: b1 b2 k! K" ]
8 K8 b! y( Z/ O9 @' O( U1 `" T
42.
如何查看各个表空间占用磁盘情况?* y& u5 T+ g( w, L/ G+ F7 m! {
8 [( w/ I, O/ g- i- J+ y1 Y
SQL> col tablespace format a20
" ~' c7 G* `7 O) Q% H, o4 o* w
      SQL> select
. Q( }6 j: /+ {! O% t0 l
      b.file_id                                                         
文件ID,* U2 F& Z  P% e' }- j7 q7 V: f
      b.tablespace_name                                                     
表空间名,
$ h) S0 S! @' m$ G4 J0 K2 `      b.bytes                                                           
字节数
,
& k+ n9 ?8 p9 h      (b.bytes-sum(nvl(a.bytes,0)))                        
已使用,
# K2 o3 ?4 u/ ]8 d( P$ h8 ~
      sum(nvl(a.bytes,0))                                                     
剩余空间,
3 u% f; f) s3 n* q$ m5 Z/ I* U      sum(nvl(a.bytes,0))/(b.bytes)*100                     
剩余百分比
' M0 e2 s6 J! J; u  H4 l
      from dba_free_space a,dba_data_files b
, S5 K; Z; @% v3 n8 v( F      where a.file_id=b.file_id
, b( D0 V( T5 f0 v! o3 T      group by b.tablespace_name,b.file_id,b.bytes
, {1 |0 @' [+ [' a7 _! N
      order by b.file_id
5 Z  Y- a( /0 M# x1 T0 b
! ?. s" T) `: g0 `! J6 l+ p
43.
如把ORACLE设置为MTS或专用模式?, {4 Z7 m& d3 |5 i; E% `7 s
# v( Q- b  i6 a$ _: t3 /$ e& U
#dispatchers="(PROTOCOL=TCP) (SERVICE=SIDXDB)"
3 W6 K, S9 u5 S( N5 w! V% M
加上就是MTS,注释就是专用模式,SID是指你的实例名。
( _" ~) v; S0 S1 h, G& f$ U; g5 J7 A
1 U- D; P, q4 p# t% v: b
44.
如何才能得知系统当前的SCN ?
6 q/ ?# K* x6 q4 c/ k9 D
% h. V2 R+ N2 /
select max(ktuxescnw * power(2, 32) + ktuxescnb) from x$ktuxe;
- /. k6 r, W  P, [2 v% C' X
4 N9 _  S$ |( U! N  S) h3 z7 p45.
请问如何在ORACLE中取毫秒?
- R# t. W: ]9 m, _
; {' s0 i1 M& L  e* x
9i
之前不支持,9i开始有timestamp.- O1 Q5 H* j* ?- K' }! B5 E

2 g" Z5 c" i8 Y1 T9i
可以用select systimestamp from dual;

 

原创粉丝点击