日期:2014-05-16  浏览次数:20435 次

ORACLE 数据库导入、导出(备份、恢复)
ORACLE 数据库导出命令:

导出整个数据库
exp username/pwd@sid file=d:\databak.dmp full=y

导出指定的某个表的数据

exp username/pwd@sid file=d:\databak.dmp tables(TableName1,TableName2,...TableNameN)

导出表结构,不导出表数据。只需在命令行里加一个参数rows=n即可。表示不导出表数据。

exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n

在cmd下执行exp输入scott/tiger后时提示:
EXP-00056: 遇到 ORACLE 错误 12560
ORA-12560: TNS: 协议适配器错误
EXP-00000: 导出终止失败

原因可能是:
1.注册表中HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1下ORACLE_SID的键值和数据库实例名是否相同
2.环境变量是否设置,set ORACLE_SID=YourDBSID


数据库导入命令
简单的导入
imp exp username/pwd@sid file=d:\databak.dmp  full=y

imp exp username/pwd@sid file=d:\databak.dmp tables=(TableName1,TableName2,...TableNameN)


imp exp username/pwd@sid file=d:\databak.dmp fromuser=fromusername

实现“imp一个.dmp文件中的部分表,并且,只导入数据不导入表结构(表结构已经存在)”的命令:

imp username/password@ORASVR fromuser=username1 touser=username file=e:\file.dmp IGNORE=Y     TABLES=(table1,table2, ……)


IMP-00031: 必须指定 FULL=Y 或提供 FROMUSER/TOUSER 或 TABLES 参数
原因是:
导入时需指定FULL=Y 或提供 FROMUSER/TOUSER 或 TABLES 参数三者其一