Oracle的导入和导出相关方法
2016-05-25 15:13:24 访问(1759) 赞(0) 踩(0)
-- 在公司内网服务器导出数据 --
-- 1、cmd下面进入数据库(sysdba)
sqlplus sys/EasyLBS4eking@IOT_10_21_129_15 as sysdba
-- 扩展(普通用户登录方式) --
sqlplus eKvehicle/eKvehicle@IOT_10_21_129_15
-- 在远程服务器创建一个 D:\dbdata\dumpfile --
-- 管理员账号下面创建目录 --
create directory ekDir as 'D:\dbdata\dumpfile';
-- 查看用户具有的目录权限 --
select
d.directory_name dir_name,
d.directory_path dir_path,
p.privilege,
p.grantee,
p.grantor
from
dba_tab_privs p,
dba_directories d
where
p.table_name = d.directory_name and
p.grantee = 'EKVEHICLE'
order by
d.directory_name,
p.privilege
-- 我们要导出的空间的用户为:eKvehicle--
-- 给用户目录权限ekDir --
grant read,write on directory ekDir to eKvehicle;
-- 删除用 revoke from --
-- 对(车辆管理的)库进行导出,用expdp --
-- expdp [账号]/[密码]@[数据库] schemas=[用户] dumpfile=[输出文件名.dmp结尾] DIRECTORY=[输出目录]
-- 在cmd下面(非账号登录下面) --
expdp eKvehicle/eKvehicle@IOT_10_21_129_15 schemas=eKvehicle dumpfile=eKvehicleDB.dmp DIRECTORY=ekDir
-- 在另外一台电脑实现数据的还原 --
-- 创建用户和表空间 --
-- 创建临时表空间 --
create temporary tablespace ekv_temp
tempfile 'ekv_temp.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
-- 创建表空间 --
create tablespace ekv_data
logging
datafile 'ekv_data01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
-- 创建用户 --
-- create user [账号] identified by [密码] --
create user ekv identified by ekv4pwd
default tablespace ekv_data
temporary tablespace ekv_temp;
-- 给用户连接和资源的权限 --
grant connect,resource to ekv;
-- 给用户创建视图的权限 --
grant create view to ekv;
-- 创建目录和授权目录 --
create directory reEkDir as 'D:\dbfile';
grant read,write on directory reEkDir to ekv;
-- 用impdp导入 --
-- impdp [账号]/[密码]@[库] DIRECTORY=[目录] DUMPFILE=[文件] TABLESPACES=[源表空间] REMAP_SCHEMA=[源用户]:[目标用户] remap_tablespace=[源表空间]:[目录表空间]
impdp ekv/ekv4pwd@orcl DIRECTORY=reEkDir DUMPFILE=r.dmp TABLESPACES=EKVEHICLE_DATA REMAP_SCHEMA=eKvehicle:ekv remap_tablespace=EKVEHICLE_DATA:ekv_data
-- 几个SQL --
-- 1、我怎么知道当前用户 --
show user
-- 当前用户的表空间 --
select * from tabs; (中的TABLESPACE_NAME字段)
-- 查看当前用户的表空间和临时表空间 --
select * from user_users;
-- 管理员模式下 --
-- 1、移除目录读写权限 --
-- 2、查看文件放在哪里及大小 --
-- 3、删除表空间和用户 --
-- 查看用户目录权限 --
select
d.directory_name dir_name,
d.directory_path dir_path,
p.privilege,
p.grantee,
p.grantor
from
dba_tab_privs p,
dba_directories d
where
p.table_name = d.directory_name and
p.grantee = 'EKV'
order by
d.directory_name,
p.privilege
-- 删除目录权限 --
revoke read,write on directory reEkDir from ekv;
-- 查看用户文件的存放位置 --
SELECT t.* ,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files t
ORDER BY t.tablespace_name;
-- 删除表空间和用户 --
-- 让表空间offline --
alter tablespace EKV_DATA offline;
-- 删除表空间 --
drop tablespace EKV_DATA including contents and datafiles;
-- 删除临时表空间 --
drop tablespace EKV_TEMP including contents and datafiles;
-- 删除用户 --
drop user EKV cascade;
主要几点操作:
1、创建目录(如果没有目录)
2、给用户目录权限
3、expdp导出文件到指定目录
4、impdp还原导入测试到另外一台服务器
5、其他(用户、表空间的创建和删除)
标签:
Oracle的导入和导出相关方法 


上一条:
下一条:
相关评论
发表评论