背景:有时某张表有外键,直接通过第三方数据库客户端(比如Oracle SQL Developer)导出,虽然可以导出成insert.sql或者excel方式数据。比如单独导出某表table1,但是table1有外键关联,在导入数据库时会出现如下错误:
因此利用exp和imp方式可以完美解决这些问题。
例子:导出WMSP数据库,ENTERPRISE用户,密码WMwhSql0所有数据到/backup/zqw/dump/expdb_enterprise_01.dmp文件中
exp ENTERPRISE/WMwhSql0@10.178.12.20/WMSP file=/backup/zqw/dump/expdb_enterprise_01.dmp
例子:导出WMSP数据库,ENTERPRISE用户,密码WMwhSql0的所有表结构到/backup/zqw/dump/expdb_enterprise_01.dmp文件中
exp ENTERPRISE/WMwhSql0@10.178.12.20/WMSP file=/backup/zqw/dump/expdb_enterprise_01.dmp rows=n
例子:导出WMSP数据库,system和sys用户的所有表数据到/backup/zqw/dump/expdb_enterprise_01.dmp文件中
exp ENTERPRISE/WMwhSql0@10.178.12.20/WMSP file=D:\example.dmp owner=(system,sys)
例子:导出WMSP数据库,ENTERPRISE用户,密码WMwhSql0所有表数据导入到/backup/zqw/dump/expdb_enterprise_01.dmp文件中
ENTERPRISE用户包含表(MOBILE_MESSAGE_USER_GROUP,MOBILE_PROCEDURE_MAP,MOBILE_PROFILE,MOBILE_PROFILE_SCREEN,MOBILE_SCREEN,MOBILE_TEXT_TRANSLATION,MOBILE_WIDGET,MOBILE_WIDGET_TYPE)
exp userid=ENTERPRISE/WMwhSql0@10.178.12.20/WMSP GRANTS=Y file=/backup/zqw/dump/expdb_enterprise_01.dmp COMPRESS=Y tables=MOBILE_MESSAGE_USER_GROUP,MOBILE_PROCEDURE_MAP,MOBILE_PROFILE,MOBILE_PROFILE_SCREEN,MOBILE_SCREEN,MOBILE_TEXT_TRANSLATION,MOBILE_WIDGET,MOBILE_WIDGET_TYPE
注意:需要对运算符、单引号、括号、双引号等进行转义即前面加上斜杠""
exp userid=wmsadmin/WMwmssql1@10.178.12.20/WMSP GRANTS=Y file=/backup/zqw/dump/expdb_SPROCEDUREMAP_01.dmp COMPRESS=Y tables=SPROCEDUREMAP query = \"where theprocname IN \(select ms.procedure_name from enterprise.mobile_screen ms where ms.screen_version \!= \'DEFAULT\'\)\"
例子:将/backup/zqw/dump/expdb_SPROCEDUREMAP_01.dmp文件中的库导入到WMPSRV下的wmsadmin用户中
imp wmsadmin/WMwmssql1@10.8.101.20/WMPSRV file=/backup/zqw/dump/expdb_SPROCEDUREMAP_01.dmp full=y ignore=y
exp方式导出参数如下:
imp方式导入参数:
参考文章:
https://blog.csdn.net/fghsfeyhdf/article/details/79807690
https://blog.csdn.net/weixin_34332905/article/details/92461907
https://www.cnblogs.com/uzipi/p/5760344.html