参考博客:https://blog.csdn.net/qq877507054/article/details/52818609?locationNum=8&fps=1
exp/imp使用详解
1.根据用户导出导入
导出:
只导出某个用户的数据:
exp test/test@ORCL owner=coop
file=/data/oradata/data_dbbak/data_coop/exp_data_2018.2.23.dmp
log=/data/oradata/data_dbbak/data_coop/dbbak_coop_2018.2.23.16.25.txt
buffer=1024000
buffer是指数据行的缓冲区大小,默认值根据系统而定,通常应设置为高值,exp的buffer最好>64000,
imp的buffer最好>100000,1024000是一个比较好的值,这也是别人的经验。
其中的test/test是数据库的登陆用户名和密码,导出用户coop的数据。
ORCL为本地配置的连接文件的name名称
将文件发送到待导入数据的服务器上(scp)
在其他oracle数据库导入上面导出的数据,导入前先建好表空间、用户、根据数据集大小创建合适的数据文件
imp coop/coop file= /data/data_dbbak/data_coop/exp_data_2018.2.23.dmp ignore=y
log=/data/oradata/data_dbbak/data_coop/imp_data_GZ86_2018.2.23.17.13.txt fromuser=cooper touser=cooper
导入时:coop/coop为数据库的用户名和密码,fromuser为导出时数据的归属用户,touser指定导入到某用户的表空间中
数据文件为导出的数据文件
同时导出多个用户的数据:
exp coop/coop@ORCL
owner="(coop,test1,test2)"
file=/data/oradata/backup/data_dbbak/exp_data_2.18.2.26dmp
log=/data/oradata/backup/data_dbbak/exp_data__2.18.2.26.txt
注意()要加上"",否则会报错
导入:
imp coop/coop
file= /data/oradata/backup/data_dbbak/exp_data_2.18.2.26dmp
ignore=y log=/data/oradata/backup/data_dbbak/imp_data_2.18.2.26.txt
fromuser="(coop,test1,test2)" touser="(coop,test1,test2)"
查看表空间使用率:
SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小",
(total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %" FROM (SELECT tablespace_name,
SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name)
b WHERE a.tablespace_name = b.tablespace_name;
表空间不足会导致导入失败,导入前根据备份集文件大小规划表空间,创建数据文件
创建表空间:
create tablespace dataspace
datefile '/data/oradata/data/tablespace_dataspace/orcl_tablespace.dbf'
size 20G
AUTOEXTEND ON next 50m EXTENT MANAGEMENT LOCAL;
为表空间增加数据文件:
ALTER TABLESPACE dataspace ADD DATAFILE
'/data/oradata/data/tablespace_dataspace/dataspace_6.dbf' SIZE 30G AUTOEXTEND ON NEXT 50M;
有DBA权限的用户查看数据文件位置:
SELECT FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE FROM DBA_DATA_FILES;
创建用户并指定表空间:
CREATE USER coop IDENTIFIED BY gzuncoop DEFAULT TABLESPACE dataspace ;
给用户授权:
grant connect,resource,dba to coop;
删除用户及用户数据:
drop user gzunicom cascade;
重复导入同一备份集(数据可能有差异,类似备份集)前需要删除所有数据,否则导入后会出现重复数据。