oracle数据库数据导入导出
介绍
逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。
逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。
物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。
1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL
2用exp/imp命令导入导出更好,避免第三方工具版本差异引起的问题,同时效率更高,需要注意:所使用的用户及其权限等细节。否则无法导入或导出
3.在目标数据库导入时需要创建与导出时相同的用户名,并赋予不低于导出时用户的权限;同时还需创建与原数据库相同的表空间名,若本地数据库已存在相同的表空间,则只能进行表空间扩充。
备份(导出)
导出分为导出表、导出方案、导出数据库三种方式。
导出使用exp命令来完成的,该命令常用的选项有:
userid:用于指定执行导出操作的用户名,口令,连接字符串
tables:用于指定执行导出操作的表
owner:用于指定执行导出操作的方案
full=y:用于指定执行导出操作的数据库
inctype:用于指定执行导出操作的增量类型
rows:用于指定执行导出操作是否要导出表中的数据
file:用于指定导出文件名
导出表
exp test/oracle@orcl tables=(test.student,test.class) file=/tmp/student.dmp
expdp username/password dumpfile=database.dmp
导出表结构
exp userid=scott/oracle@orcl tables=(emp) file=database.dmp rows=n
使用直接导出方式
exp userid=scott/oracle@orcl tables=(emp) file=database.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。
这时需要数据库的字符集要与客户端字符集完全一致,否则会报错…
导出数据库
导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限
增量备份(好处是第一次备份后,第二次备份就快很多了)
exp system/oracle@orcl full=y inctype=complete file=database.dmp
数据导入
imp常用的选项有
userid:用于指定执行导入操作的用户名,口令,连接字符串
tables:用于指定执行导入操作的表
formuser:用于指定源用户
touser:用于指定目标用户
file 用于指定导入文件名
full=y:用于指定执行导入整个文件
inctype:用于指定执行导入操作的增量类型
rows:指定是否要导入表行(数据)
ignore:如果表存在,则只导入数据
导入自己的表
imp scott/oracle@orcl tables=(emp) file=database.dmp
导入表到其它用户
要求该用户具有dba的权限,或是imp_full_database
imp system/oracle@orcl tables=(emp) file=database.dmp touser=scott
//导入表的结构
只导入表的结构而不导入数据
imp scott/oracle@orcl tables=(emp) file=database.dmp rows=n
//导入数据
如果对象(如比表)已经存在可以只导入表的数据
imp scott/oracle@orcl tables=(emp) file=database.dmp ignore=y
导入数据库(相当于数据库迁移)
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp system/oracle@orcl full=y file=database.dmp