感觉网上的人写的 遮遮掩掩的 很多细节都不写清楚 对于新手来说 看了等于没看,所有为此 经过本人学习测试
成功后做了详细步骤 试验记录
环境:win7
首先将数据库的日志归档模式 设为 开启
然后 我先来弄冷备份
--先开启日志归档模式
--改变日志操作模式的方法
--查询日志 操作模式
select * from log_mode from v$database;
--关闭数据库
shutdown immediate
--开启mount状态
startup mount;
--
alter database archivelog;
alter database open
这个还不够 要检查 自动归档
archive log list;
--启用自动归档
alter system set log_archive_start=true scope=spfile;
然后重新启动数据库 因为log_archive_start为静态参数,所以修改了该初始化参数后,必须重启数据库
shutdown immediate
startup open
然后弄冷备份
--冷备份 :关闭数据库(包括服务)后的备份 备份所有数据文件和控制文件 冷备份不仅适用于归档日志模式 也适用于非归档日志模式
(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所在的表空间对应的数据文件就不行 哎 这样也太麻烦了