Oracle的导入和导出相关方法

2016-05-25 15:13:24  访问(1756) 赞(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的导入和导出相关方法 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)