Linux 环境下Oracle安装与调试(七)之SQL Loader,备份和恢复

1、SQL Loader

sql loader其实就是 把数据文件的数据插入到oracle数据表中。

sql*loader 使用格式如下:

sqlldr userid control data

也就是说要必须要先创建好  control控制文件 , data数据文件 。

--------------------------------------------

实例1、

#新建一个班级表: ban_ji

CREATE TABLE ban_ji( id integer , ban_ji varchar(25));

INSERT INTO ban_ji VALUES(1,'1-(1)');

INSERT INTO ban_ji VALUES(2,'1-(2)');

wKiom1NgWnzAswEVAAAK-ymDoSI889.png

#新建一个数据文件

有规律分割的数据文件以 "#" 井号, 分割数据

[oracle@localhost u01]$ mkdir tmp

[oracle@localhost u01]$ cd tmp

新建一个数据文件 mydata.txt , 内容如下:

[oracle@localhost tmp]$ vim mydata.txt

3#1-(5)

4#2-(7)

5#3-(13)abc

--------------------------------------

#接下来新建一个控制文件 mycontrl.ctl , 针对数据文件如下:

[oracle@localhost tmp]$ vim mycontrl.ctl

load data      #- 读取数据

infile '/u01/tmp/mydata.txt'    #数据文件的绝对路径

append        #追加到表(不会覆盖原来表的内容)

into table ban_ji(

id char terminated by "#",            #id以“#”号分隔

ban_ji char terminated by "#" )    #ban_ji以“#”号分隔

---------------------------------------


#执行sqlldr

wKioL1NgYbCRyKMuAAAjN46MgW8217.png

提示有3条记录提交上去了, 添加到表里面了

#产看表信息,已经在表的末尾追加3条信息

wKiom1NgYkmAQdIKAAAQ_qwNmD0402.png


#sqlldr执行后的文件

另外当你执行 sqlldr 系统会自动产生2个文件, log 和 bad 文件

针对上面的例子 就会产生 mycontrl.log  mydata.bad 这两个文件

log文件存放操作日志信息

bad文件存放错误日志信息



2、备份与恢复

数据存储中, 有时会遇到数据丢失的情况,我们就需要定期做一个数据备份的工作。

在oracle中,使用EXP程序导出数据到文件进行备份, 而使用IMP就可以进行恢复。

EXP可以导出一个数据库, 也可以指定导出数据库的某个对象相关信息,

#例如:数据表,表的某一列,或者表的相关信息。

===========================================

CREATE TABLE xue_sheng( id integer, xing_ming varchar(25));

INSERT INTO xue_sheng VALUES(1,'ZhanSan');

INSERT INTO xue_sheng VALUES(2,'LiSi');

wKioL1NgZcyxXui0AAAMHjXzqcg944.png

#提交

COMMIT;

#备份表

备份学生表里的全部数据

wKiom1NgZ1zzZy4tAACQshgT0r4700.png

#解释

[oracle@localhost ~]$ exp scott/tiger<- 这里输入账号

Enter array fetch buffer size: 4096 > 4096 <-这里是缓冲区大小, 默认4096

Export file: expdat.dmp > mydata.dmp<-输入备份文件名字,默认名字expdat.dmp

(2)U(sers), or (3)T(ables): (2)U > T<- 因为我要备份表,所以选择T

Export table data (yes/no): yes > yes<- 是否导出表中的数据

Compress extents (yes/no): yes > yes<- 是否对数据进行压缩

Export done in US7ASCII character set and AL16UTF16 NCHAR character set

server uses AL32UTF8 character set (possible charset conversion)

About to export specified tables via Conventional Path ...

Table(T) or Partition(T:P) to be exported: (RETURN to quit) > xue_sheng <-输入备份的表名字

. . exporting table                      XUE_SHENG          2 rows exported <-导出提示信息

Table(T) or Partition(T:P) to be exported: (RETURN to quit) >        <- 退出就直接回车

Export terminated successfully without warnings.

[oracle@localhost ~]$

如果刚才没有指定备份文件的具体路径,备份文件mydata.dmp就会在当前目录下


#删除数据

wKiom1NgaWzROJWmAAASrEEcgsI448.png

#恢复数据

wKioL1NgaWaxxXXwAACIchWzKS4339.png

已经恢复成功;

wKiom1NgalmhJskDAAAMEPp59QM720.png



============================================

还有拷贝文件的备份方式


例如将 /u01/oradata/wilson 目录下的所有文件拷贝到其他地方


control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf

example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf


你可能感兴趣的:(linux,loader,备份和恢复)