环境:
solaris10 + oracle10G
测试内容:
新建一张表xyz,并插入两条数据。然后用rman做一个全备。备份完成后将数据库删除,重新安装。安装完成后进行完全恢复,并能查看到xyz中的数据。
测试过程:
1、sqlplus / as sysdba;
2、建立一张新表xyz:
SQL> create table xyz(a number);
Table created.
3、在表xyz中插入一点数据:
SQL> insert into xyz values(66);
1 row created.
SQL> select * from xyz;
A
----------
66
SQL> insert into xyz values(99);
1 row created.
SQL> select * from xyz;
A
----------
66
99
4、提交:
SQL> commit;
RMAN连接:
5、进行数据库的全备:
RMAN> run {
2> backup database format='/export/home/oracle/backup/db_full_%U';
3> }
//oracle10g下磁盘似乎不需要分配channel,完成后也会自动release;
6、进入sqlplus删除数据,做备份测试
SQL> select * from xyz;
A
----------
66
99
删除数据:
SQL> delete from xyz;
2 rows deleted.
提交:
SQL> commit;
查看:
SQL> select * from xyz;
no rows selected
7、删除数据库,重新安装oracle.(在删除数据库时需要记录下以前的DBID)。安装时设置同样的实例名。
8、安装完成后,rman 启动连接到nomount状态。此时list backup不会有任何备份的记录。
9、首先恢复控制文件:
RMAN> restore controlfile from '/export/home/oracle/backup/db_1nif02mf_1_1';
此处备份文件为开始备份存放的路径及生成的备份文件名。
控制文件恢复后,list backup已经可以看到备份内容列表。
10、alter database mount;
会提示口令文件无效,此时需要进入$ORACLE_HOME/dbs/路径下,使用orapwd重建口令文件:
示例:
orapwd file=orapwora10g password=zenith
若口令文件已经存在,需要删除后再建。
11、再次以mount方式正常打开后,set dbid=*** (以前数据库的DBID)
12、restore database ;
13、 recover database;
14、SQL> alter database open resetlogs;
完成后sql登录查看,xyz中数据已经恢复。
阅读(2473) | 评论(0) | 转发(0) |