Oracle 的 EXP(Export)和 IMP(Import)是两个非常重要的命令,它们用于数据库的备份和恢复。下面我们将详细介绍这两个命令及其参数的用法。
1. EXP(Export)
EXP命令可以看作是一个搬运工人,他的工作就是将你指定的物品(数据)从Oracle数据库搬出,并打包成一个 .dmp
文件。这个过程就像是你要搬家,需要将你的所有物品打包好,准备搬到新家。
以下是EXP命令的一般格式和常用参数:
exp userid=<用户名>/<密码>@<数据库连接> file=<导出文件的路径和名称> owner=<要导出的用户名称> tables=<要导出的表名称> full=<是否全库导出>
-
userid
:这是告诉搬运工人钥匙在哪(数据库连接信息),以及如何开门(用户名和密码)。 -
file
:这是告诉搬运工人将物品搬到哪个箱子里(即导出文件的路径和名称)。 -
owner
:这是指定要导出哪个公司的物品(即用户名称)。如果没有指定,那么搬运工人将打包你拥有权限的所有物品。 -
tables
:这是指定要搬运哪些特定的物品(即表名称)。如果没有指定,那么就搬运全部的物品。 -
full
:这是告诉搬运工人是否要打包整栋楼的物品(即是否全库导出)。如果设置为y
,则不论你是否拥有权限,只要能搬走的,他都会搬。
举例
假设我们有一个用户名为scott
,密码为tiger
,在数据库orcl
中,我们想导出该用户下的所有表,并保存到D:\backup\scott.dmp
。
exp scott/tiger@orcl file=D:\backup\scott.dmp owner=scott
在这个命令中:
- 必须的参数:
userid
(在这里是scott/tiger@orcl
),file
(在这里是D:\backup\scott.dmp
) - 可选的参数:
owner
,tables
,full
2. IMP(Import)
IMP命令就像是EXP的反向操作,是另一位搬运工人,他的工作是从 .dmp
文件中取出物品(数据)并将它们放入Oracle数据库。这个过程就像是你搬到新家后,需要将你的物品从箱子中取出并放置到合适的位置。
以下是IMP命令的一般格式和常用参数:
imp userid=<用户名>/<密码>@<数据库连接> file=<导入文件的路径和名称> fromuser=<原用户> touser=<新用户> tables=<要导入的表名称> full=<是否全库导入> ignore=<是否忽略错误>
-
userid
:这是告诉搬运工人钥匙在哪(数据库连接信息),以及如何开门(用户名和密码)。 -
file
:这是告诉搬运工人在哪个箱子里取物品(即导入文件的路径和名称)。 -
fromuser
:这是告诉搬运工人原来的物品是属于哪个公司的(即原用户)。 -
touser
:这是告诉搬运工人将物品放到新公司的哪个地方(即新用户)。 -
tables
:这是指定搬运工人取出箱子中的哪些特定物品(即表名称)。如果没有指定,那么就取出全部的物品。 -
full
:这是告诉搬运工人是否要把箱子里的所有物品都取出并放到新家(即是否全库导入)。如果设置为y
,则不论是否需要,只要箱子里有,他都会取出来。 -
ignore=y
:如果目标表已存在,将忽略错误,继续将数据导入到已存在的表中。
举例
假设我们想将上面导出的文件D:\backup\scott.dmp
导入到用户scott
,密码为tiger
在数据库orcl
中。
命令如下:
imp scott/tiger@orcl file=D:\backup\scott.dmp fromuser=scott touser=scott
在这个命令中:
- 必须的参数:
userid
(在这里是scott/tiger@orcl
),file
(在这里是D:\backup\scott.dmp
) - 可选的参数:
fromuser
,touser
,tables
,full
希望以上的解释能帮助你理解EXP和IMP命令的工作方式。