但冷备份也有如下不足: ! u: T: X D* h1 P, x* p7 v
·单独使用时,只能提供到“某一时间点上”的恢复。
. V# J" E+ T' m" K·在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。 . r3 Y; y, U8 Z! i
·若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。 : i* [9 p1 v; n) V5 C" r
·不能按表或按用户恢复。 / F* G- f3 Q/ Q# q
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括: : M: S" {$ v) |3 S
·所有数据文件
: a% q' G L7 j, L·所有控制文件 - ?" F/ b1 Q* F1 h" n
·所有联机redo log文件
. i7 h: S4 Y! r- e3 W, l7 O·init.ora文件(可选) 2 X% `5 x" v/ A( k+ T/ Q: X) a
值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的 8 q: S) e/ n2 k0 ^5 _5 R
下面是做冷备份的完整例子:
8 u0 q% M9 _3 _(1) 关闭数据库 , l# w0 x# P8 Y
, Y- x8 i, Z g, B: T* j' K$sqldba lmode=y sqldba >connect internal; sqldba >shutdown normal;1 N- L0 t5 x, _& {, H/ {1 S
(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件 $ ]% N) ]5 ?" ?
2 k; z% S. {. U$ }4 d* ?3 Y- N: h
sqldba >! cp < file > < backup directory >) c' y3 h6 D; V! G5 D
(3) 重启oracle数据库
: I( a& _8 d; Y L
6 q+ q8 E, ~% |$sqldba lmode=y sqldba >connect internal; sqldba >startup; |