数据库的备份与恢复(oracle 11g)

时间:2022-02-21 10:13:41

 

一、       内容与步骤

(注意这里许多步骤需要同学们查资料,理解并消化后才能完成)

1、数据库创建

(1)   安装Oralce11g;

(2)   创建至少两个以上用户;

(3)   每个用户下建立三个以上表,并插入30条以上记录;

(4)   每个用户下创建至少一个存储过程,一个触发器。

2、逻辑备份与恢复

(1)用exp或expdp 导出某个用户;

(2)删除该用户;

(3)重新创建删除的用户(同名),并赋予相同的权限;

(4)用imp或impdp导入该用户的数据,并查询数据表,存储过程,触发器等是否与之前相同;

(5)用imp或impdp将导出的数据导入另一个用户中,并查询数据表,存储过程,触发器等是否在该用户下存在。

3、冷备份与恢复

(1)关闭数据库(SHUTDOWN IMMEDIATE);

(2)将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;

(3)重新启动数据库(STARTUP);

(4)进行数据库更新操作,如删除若干记录,新增若干记录;

(5)关闭数据库(SHUTDOWN IMMEDIATE);

(6)将之前保存的所有数据文件、控制文件、联机重做日志文件拷贝到原来位置,覆盖原来的文件;

(7)重新启动数据库(STARTUP);

(8)查询数据,看看更新后的数据是否存在。

4、基于日志的备份与恢复(注意这里只是一个简单的示例,实际的可能会很复杂)

(1)将数据库设置为归档日志模式;

(2)关闭数据库(SHUTDOWN IMMEDIATE);

(3)冷备份数据库,将所有数据文件、控制文件、联机重做日志文件拷贝到另一目录保存;

(4)重新启动数据库(STARTUP);

(5)进行数据库更新操作,如删除若干记录,新增若干记录;

(6)删除USERS.DBF数据文件;

(7)SQL>ALTER DATABASEDATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’ OFFLINE;(将上述数据文件离线,注意路径取实际安装的数据库的路径)

(8)将之前保存的USERS.DBF数据文件拷贝到原来位置,覆盖原来的文件;

(9)执行数据库恢复命令

SQL>RECOVER DATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’;

(10)重新设置数据文件在线

SQL>ALTER DATABASEDATAFILE ‘d:\oracle\oracledata\orcl\users01.dbf’ ONLINE;;

(11)查询数据,看看更新后的数据是否存在。


下边为大致过程(21M滴(*^__^*) 嘻嘻……图):

1、数据库创建

开始菜单->oracle->配置和移植工具->dbca

数据库的备份与恢复(oracle 11g)

选创建数据库

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

输入数据库名和sid,默认两者相同

数据库的备份与恢复(oracle 11g)

取消选择配置EnterpriseManager

数据库的备份与恢复(oracle 11g)

创建密码,也可选下边创建同一密码

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

根据需要选择是否添加示例方案

数据库的备份与恢复(oracle 11g)

内存,练习用的,默认就行了

数据库的备份与恢复(oracle 11g)

这里可以看到数据库中的控制文件(默认两个),日志文件(3个)数据文件位置(6个),先记下来,以后用得着,

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

点完成开始创建数据库,数据库脚本大概是方便以后再创建同样数据库的吧。

数据库的备份与恢复(oracle 11g)

创建ing….

数据库的备份与恢复(oracle 11g)

可以看到会启动新的服务。

数据库的备份与恢复(oracle 11g)

创建完成,可以选择解锁账户,当然以后也可以解锁,这里我们暂时不操作,直接退出。

数据库的备份与恢复(oracle 11g)

点左边有个加号的绿色图标创建连接,连接名可以随便起,sid就是刚才上边创建数据库时我们输入的那个,密码也是,其他默认就行,完了,可以点测试下能不能连接,这里没问题,再连接,。

数据库的备份与恢复(oracle 11g)

如图,创建新用户。

数据库的备份与恢复(oracle 11g)

输入密码和选择表空间。

并在角色选项卡勾选connect,resource,授予角色connect,resource.

数据库的备份与恢复(oracle 11g)

在SQL选项卡中可以看到我们选的操作变成了SQL语句,点应用就开始执行这些语句了。

数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

先新建几张表,可以在命令窗口中写SQL语句,也可以在表文件夹上右键->新建…

数据库的备份与恢复(oracle 11g)

插入数十条SQL语句,这里我一条一条的插入,

数据库的备份与恢复(oracle 11g)

编写一个简单的存储过程。

数据库的备份与恢复(oracle 11g)

执行存储过程成功,返回当前时间。

数据库的备份与恢复(oracle 11g)

编写一个触发器,在往student表中插入数据之前检测年龄是否合法,入不合法则拒绝插入数据。

数据库的备份与恢复(oracle 11g)

触发器测试:

年龄合法,成功插入数据。

数据库的备份与恢复(oracle 11g)

可以在表中看到插入的数据。

数据库的备份与恢复(oracle 11g)

年龄不合法,插入数据失败。

数据库的备份与恢复(oracle 11g)

年龄不合法,插入数据失败。

数据库的备份与恢复(oracle 11g)

2、逻辑备份与恢复

用exp命令导出用户myuser01的所有对象

exp命令,其中systemASD1244是system密码,这里以system用户导出数据,owener表示要导出所有对象的用户,file参数表示导出的文件位置,当然以用户myuser01导出也可以,已system用户导出的数据貌似后边只能以system用户身份导入了

数据库的备份与恢复(oracle 11g)

删除用户及其数据,然后再创建同名用户,授予相同权限,可以看到新创建的用户表文件夹中不存在表。

数据库的备份与恢复(oracle 11g)

用imp导入该用户的数据。可以看到,数据表,存储过程,触发器等是否与之前相同;

数据库的备份与恢复(oracle 11g)

用imp或impdp将导出的数据导入另一个用户myuser02中。

imp命令google一下就知道了,百度两下也可以

数据库的备份与恢复(oracle 11g)

可以看到myuser01的数据表,存储过程,触发器等在该用户myuser02下存在。

数据库的备份与恢复(oracle 11g)

3、冷备份与恢复

     关闭数据库。

数据库的备份与恢复(oracle 11g)

将所有数据文件、控制文件(这里是控制文件1)、联机重做日志文件拷贝到另一目录保存,为了方便后续试验,暂时放在同一目录下不同文件夹里边。

数据库的备份与恢复(oracle 11g)

控制文件2位置。

数据库的备份与恢复(oracle 11g)

保存备份的文件夹。

数据库的备份与恢复(oracle 11g)

保存控制文件2在同一目录下,这里只是为了试验方便,实际应该存在不同磁盘或者其他硬盘中。

数据库的备份与恢复(oracle 11g)

重新启动数据库并把myuser01的所有表的大部分记录都删除,只留下一条记录。

数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

关闭数据库。

数据库的备份与恢复(oracle 11g)

将之前保存的所有数据文件、控制文件、联机重做日志文件拷贝到原来位置,覆盖原来的文件。

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

重新启动数据库后,查看更新后的数据,发现回复都删除之前的状态了。

数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

这里插点小说明,之前的控制文件2没更改,而把其他数据文件,控制文件,日志文件都更改,重新启动数据库时显示如下,这里要特别注意下,因为控制文件2位置与其他文件位置不同了,不要忘了备份。

数据库的备份与恢复(oracle 11g)

4、基于日志的备份与恢复

   将数据库设置为归档日志模式。

数据库的备份与恢复(oracle 11g)

关闭数据库并冷备份数据库,重启数据库。

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

把用户myuser01所有表的记录都删除得只剩下一条。

(其实再上边步骤之后应该再插入几条数据,更好的看到效果)

数据库的备份与恢复(oracle 11g)

删除USERS01.DBF数据文件,说正在使用中是不是是不是第六七步反了?

数据库的备份与恢复(oracle 11g)数据库的备份与恢复(oracle 11g)

数据库的备份与恢复(oracle 11g)

最后原来的数据不存在了,说明是恢复到最近的状态了(跟步骤三对比???)。

数据库的备份与恢复(oracle 11g)

(2014/5/15 11:29)