Oracle 9i 冷备份及恢复步骤(亲自试验,超详细!!)
感觉网上的人写的 遮遮掩掩的 很多细节都不写清楚 对于新手来说 看了等于没看,所有为此 经过本人学习测试
成功后做了详细步骤 试验记录
?
?
环境:win7
首先将数据库的日志归档模式?设为?开启
然后?我先来弄冷备份?
?
开启日志归档模式的操作步骤-------------------------------->
1,
%sqlplus?/nolog?????(启动sqlplus)
查询日志是否是归档模式?archive?log?list;
????切换服务器归档模式,如果已经是归档模式可跳过此步:
改归非归档模式为归档模式
?
这边有几个图看不到 我也懒得传 详细的 看我 的附件吧 就是一个word 里面有图
9i
conn?/?as?sysdba?????(以DBA身份连接数据库)
SQL>?archive?log?list
数据库日志模式?????????????非存档模式
自动存档?????????????禁用
存档终点????????????F:\oracle\ora92\RDBMS
最早的概要日志序列?????114
当前日志序列???????????116
SQL>?alter?system?set?log_archive_dest='F:\oracle\oradata\arch'
scope=spfile;
系统已更改。
SQL>?alter?system?set?log_archive_start=true?scope=spfile;
系统已更改。
SQL>?shutdown?immediate
数据库已经关闭。
已经卸载数据库。
ORACLE?例程已经关闭。
SQL>?startup?mount
ORACLE?例程已经启动。
Total?System?Global?Area?386997388?bytes
Fixed?Size???????????????????453772?bytes
Variable?Size?????????????167772160?bytes
Database?Buffers??????????218103808?bytes
Redo?Buffers?????????????????667648?bytes
数据库装载完毕。
SQL>?alter?database?archivelog;
数据库已更改。
SQL>?alter?database?open;
数据库已更改。
SQL>?archive?log?list
数据库日志模式????????????存档模式
自动存档?????????????启用
存档终点????????????F:\oracle\oradata\arch
最早的概要日志序列?????114
下一个存档日志序列???116
当前日志序列???????????116
SQL>?exit?????(退出)
---------------------------------好了搞定
?
?
然后弄冷备份
?
--冷备份?:关闭数据库(包括服务)后的备份?备份所有数据文件和控制文件?冷备份不仅适用于归档日志模式?也适用于非归档日志模式
(1)
--列出数据文件:
select?name?from?v$datafile;
--C:\ORACLE\ORADATA\ORCL\TEST.ORA
/usr/app/oracle/oradata/orcl/system01.dbf
/usr/app/oracle/oradata/orcl/undotbs01.dbf
/usr/app/oracle/oradata/zjvio/ZJVIO_img1.ora
...
--列出控制文件
select?name?from?v$controlfile;
?
/usr/app/oracle/oradata/orcl/control01.ctl
/usr/app/oracle/oradata/orcl/control02.ctl
/usr/app/oracle/oradata/orcl/control03.ctl
?
?
?
(2)关闭数据库?
conn?sys/oracle?as?sysdba
shutdown?immediate
?
(3)复制所有数据库文件
host?copy?c:\test\*.dbf?e:\bck\
host?copy?c:\test\*.ctl?e:\bck\
host?copy?c:\test\*.ora?e:\bck\??????--有些
?
?
也可也根据这些目录手动去copy
?
(4)启动例程
conn?sys/oracle?as?sysdba
startup?open
?
?
测试环境?我建了一个账号?xnzqb
表空间是?test_data
表空间对应的数据文件时?test.ora
这个可以通过?--取得表空间和数据文件的对应关系
select?file_name?from?dba_data_files?where?tablespace_name='TEST_DATA'查询出来
?
我先冷备份test.ora文件
?
然后我在xnzqb数据库里随便删掉一个表
然后我?shutdown?immediate
然后拷贝这个文件到orcl目录下?覆盖掉同名文件
然后开启数据库?startup?open;
发现那个表还是没有恢复
?
我复原以上操作
这次我冷备份所有orcl目录下的所有.dbf?.ora和?重做日志文件
然后我在xnzqb数据库里随便删掉一个表
然后我?shutdown?immediate
?
然后拷贝这些备份文件到orcl目录下?覆盖掉同名文件
然后开启数据库?startup?open;
发现删掉的那个表回来了
包括里面的数据都在
?
?
select?name?from?v$datafile;
如上图?
???M??
不过以上只是在同一个机子上试的
?
?
但是就是费解为什么?oracle为什么要那么多文件?我如果只是想备份?test用户下的所有数据库?光??备份test所在的表空间对应的数据文件就不行?哎?这样也太麻烦了
?