一般情况下,我所作的导入导出都是某个表或者是属于某个用户的对象。但是下面这种情况该怎么办呢?
在数据库A中我建立了8个用户,他们都有自己的默认表空间,而且都有很多的数据。现在A数据库出了问题。我要把这8个用户的数据导入到数据库B中。我希望在导入到数据库B以后能够查询到这8个用户的信息和他们的表空间以及对象。
那么我用exp,imp能做到吗?导出去的数据包不包含用户的信息?
如果我用exp导出整个数据库的话,那么数据字典是不是也都导出来了?如果是这样的话,那么我在导入到B数据库时,会因为数据字典已存在而报错。是不是?
我说的那种情况用exp,imp能不能实现啊。
一般情况下备份整个数据库(包括用户信息,数据字典、表空间)用什么备份啊?
------解决方案--------------------------------------------------------
基本语法和实例:
1、EXP:
有三种主要的方式(完全、用户、表)
1、完全:
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限
2、用户模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出
2、IMP:
具有三种模式(完全、用户、表)
1、完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2、用户模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入。