Oracle 9i 备份及恢复步骤

环境:win7

首先将数据库的日志归档模式 设为 开启

然后 我先来弄冷备份

开启日志归档模式的操作步骤-------------------------------->

1,

%sqlplus /nolog     (启动sqlplus)

查询日志是否是归档模式 archive log list;
    切换服务器归档模式,如果已经是归档模式可跳过此步:

改归非归档模式为归档模式

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所在的表空间对应的数据文件就不行 哎 这样也太麻烦了

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓