|
|
楼主 |
发表于 2018-10-13 11:05:08
|
显示全部楼层
Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下。; a P) ~' E0 _1 a: g( g
! v4 _- E; e9 c4 T+ @安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_profile添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME。比如:
8 |, [- E0 |% o% y7 x3 W4 l
, z7 F' z+ Y: j$ G. u7 p6 rexport ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx+ ~+ m0 k/ q. N# N
( G1 |8 c' s0 M9 D1 I/ g7 \
启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。
( [% T/ o: F7 i3 R2 `
- a- U1 }+ A+ T, M1 i" \. [$ su – oracle
- j4 m: h3 x* Q3 f3 T. S1 t$ sqlplus / nolog
% E9 ^# | l4 B ]6 bsql> conn / as sysdba
0 L/ p1 A- A6 t3 P9 r# dsql> startup (一般不需要加参数,只要设置好环境变量)
9 Q M+ J4 k, h5 e) N; jsql> quit (退出sql模式) $ }! P; D& i, ]+ L# \$ ]
$ lsnrctl start (启动监听器)关闭oracle # ?8 I4 t, q$ x$ S3 M8 ?' K
$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序) + `; ~' f. S, O: E
$ sqlplus /nolog ) X! J) q. B! Y, W' e
sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:
/ c2 x$ k6 A9 O$ p4 c$ mNormal 需要等待所有的用户断开连接
! {& y; [0 D/ R0 iImmediate 等待用户完成当前的语句# V6 M) G `, Z3 l# f; f
Transactional 等待用户完成当前的事务
3 X1 I& e6 d! B5 T# |0 ?9 X; {; n- `Abort 不做任何等待,直接关闭数据库
: Q) }: {" x3 d1 C, qnormal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
% O1 B5 N# Y$ q' Q$ Nimmediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
6 Z' U# B5 z% N8 A$ m& Atransactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。4 L2 h+ y/ u: A
abort 执行强行断开连接并直接关闭数据库。3 Z& }" S# [. L% ?
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
5 ?' ?7 }7 u; \7 e) h& s& |经常遇到的问题:- {3 `4 g3 I. z" |- d/ k
! Z R0 e5 T: N7 K3 y' E" A
1)权限问题,解决方法,切换到oracle用户;
j4 _3 f4 M$ Y6 } I+ ~' D8 a9 X" H; e% s" K4 C
2)没有关闭监听器 ,解决方法:关闭监听器
2 o8 z1 W: k8 Y. x
7 Z' |- T# O f1 F: I3)有oracle实例没有关闭,解决办法:关闭oracle实例
5 l! @. W& }9 @3 L' F7 s
; {- y) T: H# [* T( W9 J4)环境变量设置不全,解决办法:修改环境变量
6 Z: t2 D4 `4 W8 R% V3 N, r, W6 o) J" w
4 l" j D3 G3 B/ x& {8 b8 K: m' pOracle数据库的启动和关闭方式小结
% e. }% x [: j ?
. ~' U$ a; G" u, `Oracle数据库的启动和关闭方式
9 I0 `7 l) o8 b1 q1 e& q$ i
2 q6 x* ~9 L( f4 B一、几种启动方式:6 `8 P4 E% G: ^1 ^# b8 }# s
! w3 Q: L" j+ ~
1、startup nomount$ p ~7 p" l- m
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库8 p# P& T, u6 D1 F
启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
; k6 R, Q m# `& T# S2、startup mount dbname
2 M3 l8 v: N5 ?; o- L/ Y# R安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件
7 M" U" X# F. f$ H如:系统表空间或日志文件。
7 {" \6 k$ |6 _" _/ C; }执行“nomount”,然后打开控制文件( ~& p0 G) }7 C6 f* q5 z$ R/ N
3、startup open dbname, r( G) C4 @, ^, O1 [1 L
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,5 d# C& d9 P2 }" |
这种方式下可访问数据库中的数据。' ~! Q" [3 c, B9 q$ I/ F
4、startup,等于以下三个命令' U' f" n$ @9 P
startup nomount
7 s1 ~: O N4 g4 d5 _7 nalter database mount
* Z! c8 F# o( a$ g' Q) Walter database open
" R0 ?) M3 O6 [$ C5、startup restrict
5 z" B3 L0 a r约束方式启动
' O5 m$ X( i3 q3 P9 S5 M这种方式能够启动数据库,但只允许具有一定特权的用户访问
6 l5 x% y6 s' P非特权用户访问时,会出现以下提示:* m, c) x) I4 ^8 [* U/ @' B* \
ERROR:7 l; ]( z: M4 c( `5 }
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
* L# R. c! a8 X) L4 ~% w( X' {6、startup force3 W3 y" b: Z, |7 o2 l( c8 o
强制启动方式( b+ f( Y7 { \- x1 T: c$ d
当不能关闭数据库时,可以用startup force来完成数据库的关闭! N6 V! }* q3 ~7 [) u% a- S" Z
先关闭数据库,再执行正常启动数据库命令( g' N Z% C. }, B0 D5 V4 q( ^- z
7、startup pfile=参数文件名
- |5 s. m, f& D% K* K" f; W带初始化参数文件的启动方式) ^/ Q' T3 _- \9 A& C5 n
先读取参数文件,再按参数文件中的设置启动数据库' U- n$ }" J) d, p: b
例:startup pfile=E:/Oracle/admin/oradb/pfile/init.ora. f- Y0 Z, Z2 {6 y
8、startup EXCLUSIVE
7 _$ \1 j8 i: b' a% |; Y8 G% q- [8 s! Z1 ` [% }
二、几种关闭方式:
( c/ p0 H* f/ w$ f% [
- |+ q H! ^3 |# x' K. d7 u1、shutdown normal
" I8 ]: P0 W0 Z正常方式关闭数据库。
. o9 C* e6 W+ n+ ?" g9 K" k2 Q. |1 ?2、shutdown immediate
+ T: T! P) s6 o& l立即方式关闭数据库。
" K3 v6 ~. W: h, j. ^在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,
; l2 J! X M! z q而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),
F E& m* q' Y* S! a当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
0 F5 Z6 ?2 ~; |" e+ ?/ S3、shutdown abort
) ~% X0 H( g. j% }' x; I0 s; c直接关闭数据库,正在访问数据库的会话会被突然终止,
1 d) H( V/ S" p: J% K$ _如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。 |
|