【www.bbyears.com--Oracle教程】
备份一个ORACLE数据库有三种标准方式: EXPORT(导出)、脱机备份和联机备份。导出方式是数据库的逻辑备份,其他两种备份方式都是物理文件备份。
逻辑备份
ORACLE的EXPORT实用程序exp用来读取数据库(其中包括数据字典)和把输出写入一个叫作导出转储文件(export dump file)的二进制文件中。可以导出整个数据库、指定用户或指定表。在导出期间,可以选择是否导出与表相关的数据字典信息,如权限、索引和与其相关的约束条件。exp所写的文件包括完全重建全部被选对象所需的命令。
备份方法
(1)随便找一台windows机器装上oracle(如果你的oracle是装在windows上,就不必再另外再安装了,这步省下).如果只装oracle的客户端,好象不会自动装上exp这个工具,所以得装上数据库服务器。
(2)创建一个批处理文件供windows的任务计划调度执行(在控制面板-任务计划).
(3)在批处理文件.bat中指定要导出的user及exp的一些参数:
exp admin/admin@ora12 file=F:/Every_week_backup/server12/s12_evryweek.dmp owner=LINMARKDEV816,LINMARKHK,LINMARKINSTALL,LINMARKUTA816,NBDEMO,SAKSDEV,SAKSOWNER1227,SAKSOWNER2.6NP,CSPUAT2 consistent=y log=F:/Every_week_backup/server12/s12_evryweek_exp.log
(4)上例中 owner=后面的就是你要导出的user,你可根据你的需要来输入。admin/amin@ora12是一个具dba权限的用户(你可用system/密码 来取代,以使它能导出多个user。ora12是我要导出的数据库服务器的实例名。这可能是另外一台机器上的服务器,你可先在客户端的$oraclehom/network/admin/tnsnames.ora中设置,使你的客户端能连上oracle,或直接通过oracle的网络配置工具Net Configuration Assistant来配连接) file=就是你的导出文件即dmp文件的存放路径.
(5)编辑好批处理文件后,你可在windows的任务计划中执行这个文件(可设置周期执行,例:如果你要每两天备份一次,时间是在零辰1点,这个你可打开任务计划去设置)。当然你得确保设置了任务计划的电脑在任务执行时不关机。这样,每次启动导出任务时,oracle会重新override那个dmp文件,所以你也得将前次的dmp文件拷出来,另外存放).
利用exp进行导出备份具有三种方式: Full方式、User方式和Table方式。
Export实用程序
逻辑备份的用法
首先打开【开始】菜单,选择【运行】命令,弹出如图1所示的“运行”对话框,在“打开”文本框中输入cmd,单击【确定】按钮。
图2 “运行”对话框
此时会弹出一个DOS窗口,在此窗口下,可以使用EXP/IMP命令进行数据库的逻辑备份和恢复,有三种操作方式:
* 交互式 是在直接输入命令后,根据系统的提示一步一步进行,好像在和系统对话一样。在此不再举例说明。
* 命令行模式 是在命令的后面接一些参数和参数值。举例说明:
图3 命令行模式导出
如果用户对IMP和EXP命令参数比较熟悉,命令行模式是比较方便的一种操作方式。在做逻辑备份时文件名最好使用绝对路径。如果只给出文件名,则备份文件将被保存在当前目录,这样会加大控制和管理的难度。
* 参数模式 是在命令的后面接一个参数文件的名称,这个参数文件中存放了执行过程需要调用的部分参数。参数模式其实就是将命令后面所带的参数写在一个参数文件中,然后再使用命令,使后面带一个调用该文件的参数,这个参数为PARFILE=。我们可以通过普通的文本文件编辑器和创建这个文件,为了明显起见,将该参数文件命名为. PARFILE的后缀。以下就是一个参数文件的内容:
USERID=SCOTT/TIGER@ARJDB
FULL=N
BUFFER=10000
FILE=DEPT.DMP
TABLES=DEPT
执行过程如下:
图4 以参数模式导出
上述提到的几种模式和方法同样适用于IMP命令。
4. 应用实例
下面结合实例具体说明导入和导出使用方法。为了避免由于操作失误造成数据丢失,首先以SCOTT用户登陆系统,创建两个用作逻辑备份的表,分别为emp_dump表和dept_dump表。
图5 创建逻辑备份表
确认表创建成功后,启动DOS命令行窗口,利用导出命令导出刚才创建好的逻辑备份表,如图所示。在做逻辑备份时文件名最好使用绝对路径,这样可以减少控制和管理的难度。
图6 导出逻辑备份表
为了验证之后的导入工作是否正确,我们用DML语句把公司中所有员工都升职为CEO,具体操作如下:
图7 更新表中的数据
可以用select语句验证所做的修改是否成功。如图所示。
图8 更新后的表数据
由显示结果可以看出,公司中的所有员工都已经升职为了CEO,数据更新成功。确认成功后删除掉创建的两个表。
图9 删除逻辑备份表
利用select语句确认两个表已经不存在后,在DOS窗口中输入导入命令,如图所示。
图10 恢复逻辑备份表
返回SCOTT用户,利用select语句验证所做的逻辑恢复是否已经成功。