数据库备份管理 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

(一)数据装载

1)应用背景:

   通过数据装载可以将大量的按一定规则书写的数据录入到数据库中,比如银行各地的子行,定期向总部提交一份按一定规则书写的数据文档,总部可以将这些数据汇总,然后用数据装载将文档中的全部数据录入到数据库中。

2)装载前的准备

   A)数据库中建立一个表用于接受装载数据:此例中是建立一个testzhuangzai空表,表中

      含有id integer , name varchar2(15) , age integer三个字段。在实际应用中,此表一般都

      存在。

   B)一个记录所有需要录入数据的文档:此文档可以用文本文档TXT编写,进行

      数据装载时,要将其后缀改成“.data”。文档中的数据格式按装载规则“XX.ctl”文档中编写的规则进行编写,并跟数据库中接受数据装载表的字段相对应,文档如图1所示:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

图1

   C)编写装载规则文档:装载时将其后缀改成“.ctl,里面的语句为:

load data

 infile "D:\orawork\data_zyw.data"            //数据文档的目录;

 into table David.testzhuangzai append         // David.testzhuangzai是:数据库名.表名;

 fields terminated by ","                     //规定数据文档中字段数据间的间隔符;

 (

   id,

   name,

   age                                   //描述格式;

 )

文档如图2所示:

图2

  3)装载操作:
命令格式:
sqlldr  userid=用户名@数据库名/密码  control=规则文档路径  log=日志文档所需保存的路径
 注:日志文档自动生成,我们只需给出其路径,文件名,后缀(.Log)即可;
本例中的命令是:
sqlldr  userid=David@David/zyw123  control= D:\orawork\control_zyw.ctl  log= D:\orawork\testrz_zyw.log
运行结果如图3所示:
图3
sql*plus中的结果如图4所示:
图4

 

 

 

 

 

 

(二)导出数据库中的数据
如图5:
图5
第一步:
点“开始”—>“运行”,打入命令“cmd”,进入DOS环境;
第二步: 
1)打入命令:exp
2)登陆数据库:
登陆格式:
1 用户名/密码@数据库名   (若只有一个库,可以不写库名)
              2 用户名
                  密码            (根据提示填写)
3)根据提示进行填写:(以导出一个表为例)
    数据缓冲区大小:可以不改写,直接按回车(介意使用);
    导出文件:填写你需求导出的表名,后缀为.dmp
    导出选项:这里可以选择导出数据的类型,可以是用户(U),或者表(T),如果
              不填写,直接按回车,则默认为导出为用户,此例中我们用的“t”;
    导出表数据:YES/NO,默认值为YES,介意使用默认值,直接按回车;
    压缩区:YES/NO,默认值为YES,介意使用默认值,直接按回车;

    导出表:在命令“要导出的表<T>或分区<TP><RETURN以退出>>”的后面打
            上要导出的表的表名,在这里不用带格式后缀;
    操作至此,我们就成功的导出一个表,如果还要继续导出别的表,可以在提示命
   令行“要导出的表<T>或分区<TP><RETURN以退出>>”的后面继续填写所需导出的
   表名,如果不再导出,则直接按回车键退出。
   1中所示的是,导出David数据库中David用户下的testzhuangzai表。

 

(三)向数据库中导入数据

具体操作如图6所示:
图6
   1)在DOS环境下打入命令“imp”;
   2)登陆数据库,方法同导出操作中一样;
   3)导入数据库,填写你需求导入的文件名,后缀为.dmp
   4)在命令“导入整个导出文件<yes/no>no>”的后面打入命令符“yes;
   5) 其它选项选其默认值即可,直接按回车;
   图中所示的是,将导出文件(备份文件)导入David数据库中David用户下。