oracle 备份与恢复实验总结

更新时间:2023-11-23 19:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

用户管理的恢复

用户管理的完全恢复(一)

一.分类

可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写

二.非归档的有关性质

1.在非归档模式下,在丢失数据文件后唯一的选择是执行完整的数据库还原,而不能进行恢复;

2.还原完整的数据库是还原所用的数据文件和控制文件;

3.还原前提是要备份,因为是非归档模式所以只能进行冷备份,主要备份所有的数据文件和控制文件。对于联机重做日志文件,在正常关闭数据库的情况下,可以不备份它,但是在不正常关闭数据库的情况下要进行备份,建议备份下来,这样就可以不用重建了。

三.非归档模式下的恢复

1.如果放数据文件的磁盘没有损坏,只是某种原因导致某些数据文件的丢失,那么只要把备份的数据库(所有数据文件和控制文件),复制到原来的地方即可。

2.如果是磁盘损坏,则不能放到原来的位置了,必须放到新的磁盘下。这样就要修改参数文件和控制文件的信息, 才能正常打开数据库。

3.现在模拟第二种情况(即磁盘损坏),首先对数据库进行冷备份,新建个目录/u01/ubackup,在/u01/oradata/wilson下的所有文件(数据文件,控制文件和联机重做日志文件)复制到ubackup目录下。命令如下,

[oracle@oracle11g ubackup]$ cp /u01/oradata/wilson/* /u01/ubackup

现在假设挂载在/u01/oradata/wilson目录上的磁盘损坏了,

[oracle@oracle11g wilson]$ rm -f *.dbf (删除数据文件,模拟磁盘损坏)

现在因为这个磁盘损坏了,所以原来冷备份的数据库不能再还原到这个磁盘上了,必须加一个新的磁盘。在虚拟机上可以添加个新的磁盘(8G),然后在/u01/oradata/下新建个目录md用于挂载新的磁盘。

[oracle@oracle11g oradata]$ mkdir md

(1) 给新的磁盘进行分区,

[root@oracle11g ~]# fdisk /dev/sdb

因为磁盘较小,所以直接划分为一个分区。可以在目录/dev下看到多了一个sdb1。

(2)对sdb1做系统文件,命令如下,

[root@oracle11g dev]# mkfs.ext3 sdb1

(3)把这个磁盘挂载到/u01/oradata/md目录山,命令如下,

[root@oracle11g oradata]# mount /dev/sdb1 /u01/oradata/md

(4)在/u01/oradata目录下可以看到,

1 [oracle@oracle11g oradata]$ ll 2 total 17

3 drwxr-xr-x 3 root root 1024 Aug 29 23:10 md 4 drwxr-x--- 3 oracle oinstall 4096 Aug 25 17:09 wilson

md属于root,用户oralce不能使用,故修改一下权限,命令如下,

[root@oracle11g oradata]# chown -R oracle:oinstall md

(5)切换到oracle用户(su - oracle),把冷备份的数据库复制到/u01/oradata/md目录下,

[oracle@oracle11g md]$ cp /u01/ubackup/* /u01/oradata/md/

(6)修改spfile,先将spfile转换为pfile,因为pfile为文本类型,可以直接修改。

1 SQL> create spfile from pfile; 2 File created.

把pfile 中原来和/u01/oradata/wilson/目录有关的,改为/u01/oradata/md。修改好了,再转换为spfile,命令如下,

1 SQL> create spfile from pfile; 2 File created.

(7)在控制文件中有关数据文件,联机重做日志文件和临时文件还在原来的位置,所有修改控制文件。 因为spfile修改好了,所以数据库可以进入mount状态了。

—— 这个时候可以通过查看v$datafile动态性能视图来看到数据文件的位置和名称。 ?

1 2 3 4 5 SQL> select file#,name from v$datafile;

FILE# NAME

---------- ----------------------------------- 1 /u01/oradata/wilson/system01.dbf

6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 /u01/oradata/wilson/sysaux01.dbf 3 /u01/oradata/wilson/undotbs01.dbf 4 /u01/oradata/wilson/users01.dbf 5 /u01/oradata/wilson/example01.dbf 6 /u01/oradata/wilson/paul01.dbf 7 /u01/oradata/wilson/sun01.dbf

8 /u01/oradata/wilson/smallundo1.dbf 9 /u01/oradata/wilson/assm_1.dbf 10 /u01/oradata/wilson/mssm_1dbf 11 /u01/oradata/wilson/paul02.dbf FILE# NAME

- --------- ----------------------------------- 12 /u01/oradata/wilson/appl_01.dbf 12 rows selected.

修改控制文件中数据文件的名称,命令如下,

把每个数据文件都修改一下,或者做个批量修改。

——通过查看v$logfile动态性能视图来看联机重做日志文件的位置和名称。 ?

1 SQL> alter database rename file '/u01/oradata/wilson/system01.dbf' to '/u01/orada

1 2 3 4 5 6 SQL> select group#,member from v$logfile; GROUP# MEMBER

---------- ----------------------------------- 3 /u01/oradata/wilson/redo03.log 1 /u01/oradata/wilson/redo01.log 2 /u01/oradata/wilson/redo02.log

修改控制文件中联机重做日志文件的名称,命令如下,

1 SQL>alter database rename file '/u01/oradata/wilson/redo01.log' to '/u01/orad

把每个联机重做日志文件都修改一下。

——通过查看v$tempfile动态性能视图来看临时文件的位置和名称。 ?

1 SQL> select file#,name from v$tempfile; 2 FILE# NAME

3 ---------- ----------------------------------- 4 1 /u01/oradata/wilson/temp01.dbf 5 2 /u01/oradata/wilson/mytemp01.dbf

修改控制文件中临时文件的名称,命令如下,

1 SQL>alter database rename file ‘/u01/oradata/wilson/temp01.dbf' to

把每个临时文件都修改一下。

(8)可以打开数据库了,命令如下,

1 SQL> alter database open;

四.非归档online redo丢失下的恢复

在前面说明了备份了联机重做日志文件的情况,下面来说明如果没有备份联机重做日志的情况。(非归档模式中)

1.恢复步骤: (1)关闭数据库;

u01/ora

‘/

本文来源:https://www.bwwdw.com/article/xrct.html

Top