写在前面
由于工作需要,最近一直在导出表数据或者表结构,某些字段类型兼容性不是很好,只能通过oracle自带的emp命令进行导出,借此机会总结了一下linux服务器上导出表结构和表数据的方法。
导入、导出表数据步骤
- su - oracle
添加”-“,是以login shell登陆的,所以会设置环境变量,如果不加,使用的还是切换前用户的环境变量。
- 导出表结构或者表数据
exp username/pwd@orcl file=/home/hao.dmp owner=user rows=n
username/pwd@orcl 数据库用户名/密码@数据库名
file=导出数据文件的保存路径
owner=user 代表导出指定用户的相关的数据,导出多个用户用owner=(用户1,用户2)
rows=n 代表不导出数据行(如果带出数据的话,需要将这个属性去掉)
exp命令其他属性:
statistics=none 不导入统计信息(在导出的表很大时,导出统计信息会花的时间较长)
TABLES=(表1,表2…) 列出的是需要导出的表名
full=y 全库导出
compress=y 设置待导出的表占用空间为实际尺寸(出去高端水印,此处没看明白…)
QUERY=" WHERE ROWNUM<11" 导出符合条件的数据,此处为导出每个表的前10条数据
- 导入数据
imp username/pwd@orcl file=/home/hao.dmp 导入数据(需要确保数据库中不存在dmp文件中的表,不然会报错)
imp username/pwd@orcl file=/home/hao.dmp ignore=y 导入数据时,若该表已存在,也可以进行忽略操作,这样即可避免报错
imp username/pwd@orcl file=/home/hao.dmp tables=(表1,表2) 将dmp文件中的表1、表2进行导入