11G中有一个新功能。当表没有数据时,不分配段以节省空间。
解决方法如下:
2。 Oracle10g及以后提供了expdp/impdp工具,也可以解决这个问题
1。如何使用导出expdp工具:
首先创建目录--expdir(导入和导出都可以,如果对应的E:/exp文件夹不存在,需要手动创建)
导出语法:
如果只想导出一些表,可以使用include
C:\Users\ganjh>expdp eas/kingdee@nskf_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \'CT%\'\"
2。如何使用导入impdp工具:
首先创建目录--data_bak
导入语法:
C:\Users\ganjh>impdp eas/kingdee@nskf_localhost 目录=db_bak dumpfile=EXPDP.
DMP FULL=y;
如果要导入的用户已存在:
1。导出用户 expdp user1/pass1 目录=dumpdir dumpfile=user1.dmp
2。导入用户impdp user2/pass2目录=dumpdir dumpfile=user1.dmp REMAP_SCHEMA =user1:user2 EXCLUDE=USER full=y;
如果您要导入的用户不存在:
1。导出用户 expdp user1/pass1 目录=dumpdir dumpfile=user1.dmp
2。导入用户impdp system/passsystem目录=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2 将自动创建。其权限和表空间与user1相同。但此时 user2 无法登录,必须更改 user2 的密码。
------------------------------------------------------------ --- ----------Linux环境------------------------------------ ------ ----------------------------------
在Oracle11g中,exp默认无法导出空表。使用传统的exp和imp来迁移异构平台数据库会很麻烦。但是,expdp 和 impdp 可用于迁移。
将 64 位 windows 2003 Oracle11gR2 数据库迁移到 64 位 Linux redhat 在 Enterprise 5 中,您可以使用 expdp 和 impdp 来迁移网格数据。
例如:Windows为服务器A,Linux为服务器B,数据库用户为test。将服务器A的数据迁移到服务器B。
在服务器A上操作:
1、
SQL> 创建目录 expdp_dir 为 'D:\mzl\backup ';
SQL> 授予对目录 expdp_dir 的读、写权限以进行测试;
2。在windows目录下创建目录D:\mzl\backup
3。在DOS命令窗口中导出:
expdp 测试/测试 DIRECTORY=expdp_dir DUMPFILE=test.dmp 日志文件=testexpdp.log
在服务器B中操作:
4。 SQL> 创建目录 impdp_dir 作为 '/home/Oracle/impdp_dir';
SQL> 授予对目录impdp_dir 的读、写权限以进行测试;
1。系统中需要有/home/oracle/impdp_dir目录,并且对impdp_dir目录必须有读写权限。
(chmod 777 impdp_dir)
5。使用ftp将服务器A导出的数据上传到服务器B的/home/oracle/impdp_dir目录。
在服务器A中配置服务器B的服务器名称,并在服务器A中导入数据。
6。在DOS命令窗口中导出:
imppdp 测试/test@B_database DIRECTORY=impdp_dir DUMPFILE=test.dmp 日志文件=testimpdp.log
(这里注意大小写,如果test.dmp在Linux中是大写,必须改为大写,Linux区分大小写)
11G中有一个新功能。当表没有数据时,不分配段以节省空间。
解决方法如下:
2。 Oracle10g及以后提供了expdp/impdp工具,也可以解决这个问题
1。如何使用导出expdp工具:
首先创建目录--expdir(导入和导出都可以,如果对应的E:/exp文件夹不存在,需要手动创建)
导出语法:
如果只想导出一些表,可以使用include
C:\Users\ganjh>expdp eas/kingdee@nskf_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \'CT%\'\"
2。如何使用导入impdp工具:
首先创建目录--data_bak
导入语法:
C:\Users\ganjh>impdp eas/kingdee@nskf_localhost 目录=db_bak dumpfile=EXPDP.
DMP FULL=y;
如果要导入的用户已存在:
1。导出用户 expdp user1/pass1 目录=dumpdir dumpfile=user1.dmp
2。导入用户impdp user2/pass2目录=dumpdir dumpfile=user1.dmp REMAP_SCHEMA =user1:user2 EXCLUDE=USER full=y;
如果您要导入的用户不存在:
1。导出用户 expdp user1/pass1 目录=dumpdir dumpfile=user1.dmp
2。导入用户impdp system/passsystem目录=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2 将自动创建。其权限和表空间与user1相同。但此时 user2 无法登录,必须更改 user2 的密码。
------------------------------------------------------------ --- ----------Linux环境------------------------------------ ------ ----------------------------------
在Oracle11g中,exp默认无法导出空表。使用传统的exp和imp来迁移异构平台数据库会很麻烦。但是,expdp 和 impdp 可用于迁移。
将 64 位 windows 2003 Oracle11gR2 数据库迁移到 64 位 Linux redhat 在 Enterprise 5 中,您可以使用 expdp 和 impdp 来迁移网格数据。
例如:Windows为服务器A,Linux为服务器B,数据库用户为test。将服务器A的数据迁移到服务器B。
在服务器A上操作:
1、
SQL> 创建目录 expdp_dir 为 'D:\mzl\backup ';
SQL> 授予对目录 expdp_dir 的读、写权限以进行测试;
2。在windows目录下创建目录D:\mzl\backup
3。在DOS命令窗口中导出:
expdp 测试/测试 DIRECTORY=expdp_dir DUMPFILE=test.dmp 日志文件=testexpdp.log
在服务器B中操作:
4。 SQL> 创建目录 impdp_dir 作为 '/home/Oracle/impdp_dir';
SQL> 授予对目录impdp_dir 的读、写权限以进行测试;
1。系统中需要有/home/oracle/impdp_dir目录,并且对impdp_dir目录必须有读写权限。
(chmod 777 impdp_dir)
5。使用ftp将服务器A导出的数据上传到服务器B的/home/oracle/impdp_dir目录。
在服务器A中配置服务器B的服务器名称,并在服务器A中导入数据。
6。在DOS命令窗口中导出:
imppdp 测试/test@B_database DIRECTORY=impdp_dir DUMPFILE=test.dmp 日志文件=testimpdp.log
(这里注意大小写,如果test.dmp在Linux中是大写,必须改为大写,Linux区分大小写)