|
|
楼主 |
发表于 2018-10-13 11:05:08
|
显示全部楼层
Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下。 v" D9 @7 X# k0 E2 {, q
2 D2 e/ q! z) L2 b- F- ?安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_profile添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME。比如:
# E8 p% a# Y: ]' d1 W* T, y; `" D! L
7 k* W9 {# ?8 \7 e* h; Texport ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx& e3 P% W3 X' u* Y2 t% l
$ d* Y# }1 s4 G- d
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
0 Y9 `$ e6 W4 Z( @' ?: z3 ]* D( C( i6 G5 {# W
$ su – oracle
$ w* B% l5 M! M0 _) o- K2 H$ sqlplus / nolog 8 `" @/ p2 Y, p# f/ i
sql> conn / as sysdba
, L$ ~) N; x$ }% ksql> startup (一般不需要加参数,只要设置好环境变量)
" C9 w' E$ M F8 ~( Ssql> quit (退出sql模式) ; T" z8 e7 y4 r( v$ k W
$ lsnrctl start (启动监听器)关闭oracle : n( V" N7 d | K2 h9 V6 [$ e q
$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序) : n% v9 M' C$ y
$ sqlplus /nolog
. @, A" m& ? f+ D5 D+ D0 N: Gsql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:
6 M/ u3 x" S2 eNormal 需要等待所有的用户断开连接
: d5 [1 J# ?7 |7 S8 mImmediate 等待用户完成当前的语句
* i9 E5 N% j" d) z, g3 M( F) zTransactional 等待用户完成当前的事务
& a: T* w" b& ?Abort 不做任何等待,直接关闭数据库" d6 V# k* c K) x* M `0 O, K& J
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接2 p6 A" `& ~ a3 B& i
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
: m8 \2 i d" P$ ` _5 btransactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。9 i/ ?. c t I- j4 C
abort 执行强行断开连接并直接关闭数据库。
4 C: X+ p! r: x) v前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
1 c$ I8 q4 A# ^( v2 L& q% _6 ^- U经常遇到的问题:
0 E* o0 g) j. S. W1 U- P/ T9 J' y% j2 g t
1)权限问题,解决方法,切换到oracle用户;! b n, Q' a5 P. n) v& Y4 m W
+ h* y# k6 z' a, a2 F$ ?7 U2)没有关闭监听器 ,解决方法:关闭监听器
6 t% f% p# z6 R
& R4 _& k$ P0 S p1 ?7 I3)有oracle实例没有关闭,解决办法:关闭oracle实例: e/ }5 m$ T: J
$ ^! V+ {: U( x1 ^1 u6 d [4 s4)环境变量设置不全,解决办法:修改环境变量* ^% M a9 V+ z5 t, m
. ]5 k6 z9 w, {
Oracle数据库的启动和关闭方式小结
0 I( ]" m$ [! |! D8 W" n$ B6 b, w( `* P
Oracle数据库的启动和关闭方式
" C' C$ q9 i0 z. R, ?8 r- B
4 X( }, K* s$ Z7 p4 ~( X/ x! u1 l一、几种启动方式:
$ |- t3 l/ Y& n/ O) @* x' a% e. _1 ~/ M0 U: [
1、startup nomount, e4 U: m- w; M6 ]
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
( T, c4 _* |( u- X0 v4 _* \) l, M启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。" P a% |8 H1 o# b0 S# b% ]; Z
2、startup mount dbname( q; g7 Y! G+ g* K7 x' n$ }. a$ u# q9 y
安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件5 K- o9 Q' e0 [' E
如:系统表空间或日志文件。6 N2 [) W2 n) t1 h( l6 v
执行“nomount”,然后打开控制文件
& [" B, k+ J; ~3、startup open dbname) m+ S8 x2 ]: Y! I _0 c- \
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,
: r+ E, L# Y4 v( |3 c7 t, y3 s这种方式下可访问数据库中的数据。
* V; B4 Z/ s/ K; H/ E- Z4、startup,等于以下三个命令: ?8 X7 e/ G' p. h: `7 n
startup nomount
! V! B$ Y( n9 b0 ^ oalter database mount
& h" O$ I+ x4 I4 ], `# b& K+ {alter database open7 _+ ^7 d7 z8 z4 S, z& O. E% ~3 Z) c
5、startup restrict- [( w. `- R/ [2 p5 P1 o
约束方式启动
- [8 n8 e4 b; P: }4 l, M这种方式能够启动数据库,但只允许具有一定特权的用户访问( N5 ]4 e/ m. k* k0 v* u
非特权用户访问时,会出现以下提示:
( M; `* x* ]0 r* |ERROR:
* A$ X% g! w0 C& cORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
0 ~6 v' e" B. ?% Q! @) g4 `, M0 {' e6、startup force
3 R$ s) Q9 G7 e5 ~: k/ y强制启动方式
8 _+ {. P1 b! F1 Z0 z当不能关闭数据库时,可以用startup force来完成数据库的关闭
2 S0 n' ?6 t: K先关闭数据库,再执行正常启动数据库命令6 b6 g. m0 U6 X h" k
7、startup pfile=参数文件名
5 R; M) e4 S- r. x" K带初始化参数文件的启动方式
$ w. Z" }! ~2 f1 u3 A先读取参数文件,再按参数文件中的设置启动数据库
% s/ s+ S+ P$ Z/ N例:startup pfile=E:/Oracle/admin/oradb/pfile/init.ora
& [( g" T! f, ^8 I! d8、startup EXCLUSIVE! z% v2 [3 D# M3 t8 l
0 H W; ^) ?& z二、几种关闭方式:
1 d! \% ~# {# q- C- |
! N" o e0 s1 V8 P9 w9 B5 h+ H1、shutdown normal' V1 ]; s( R' [7 i; T
正常方式关闭数据库。4 \7 _) ^$ w! `1 \/ {
2、shutdown immediate! U$ D9 ?$ t3 W8 o6 y4 _$ o3 ^
立即方式关闭数据库。7 \# F% u; X' r" r1 B5 u
在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
# X2 R* l; k# d而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),5 S) L: X" r/ J3 O5 f3 d, b$ u. H6 r, S5 M
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
4 k$ d6 W4 Q$ K0 I( ]( W8 g) e& [! h3、shutdown abort5 o8 y# K6 i- S0 v
直接关闭数据库,正在访问数据库的会话会被突然终止,+ Q3 b: ], B: G% T4 q; Z
如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。 |
|