Oracle的导入和导出相关的脚本和知识

2016-05-25 14:56:31  访问(1654) 赞(0) 踩(0)

-- cmd下面进入数据库 --
sqlplus eKvehicle/eKvehicle@IOT_10_21_129_15

-- cmd下面进入数据库(sysdba)
sqlplus sys/EasyLBS4eking@IOT_10_21_129_15 as sysdba

-- 管理员账号下面创建目录 --
create directory eKvehicle_Dir as 'D:\dbdata\dump';

-- 查看目录 --
select * from dba_directories;

-- 查看用户有的目录权限 --


-- 给目录权限给用户 --
grant read,write on directory eKvehicle_Dir to eKvehicle;

-- 删除用 revoke from --


-- 导出数据(按用户) --
expdp eKvehicle/eKvehicle@IOT_10_21_129_15 schemas=eKvehicle dumpfile=eKvehicleDB.dmp DIRECTORY=eKvehicle_Dir

-- 导出数据(按表空间) --
expdp eKvehicle/eKvehicle@IOT_10_21_129_15 DUMPFILE=EKVEHICLE_DB2.dmp TABLESPACES=EKVEHICLE_DATA DIRECTORY=eKvehicle_Dir

-- 给ekvTest授权目录 --
grant read,write on directory eKvehicle_Dir to ekvTest;

-- 导入数据(有错误:表空间没变) --
impdp ekvTest/ekvTest@IOT_10_21_129_15 DIRECTORY=eKvehicle_Dir DUMPFILE=EKVEHICLEDB.dmp REMAP_SCHEMA=eKvehicle:ekvTest
 
-- 给ekvTwoTest授权目录 --
grant read,write on directory eKvehicle_Dir to ekvTwoTest;

-- 后面移除权限的操作 --
revoke read,write on directory eKvehicle_Dir from ekvTwoTest;

-- 导入数据(有错误:表空间没变) --
impdp ekvTwoTest/ekvTwoTest@IOT_10_21_129_15 DIRECTORY=eKvehicle_Dir DUMPFILE=EKVEHICLE_DB2.dmp REMAP_SCHEMA=eKvehicle:ekvTwoTest TABLESPACES=EKVEHICLE_DATA

-- 给ekvThreeTest授权目录 --
grant read,write on directory eKvehicle_Dir to ekvThreeTest;

grant imp_full_database to ekvThreeTest

impdp ekvThreeTest/ekvThreeTest@IOT_10_21_129_15 DIRECTORY=eKvehicle_Dir DUMPFILE=EKVEHICLE_DB2.dmp TABLESPACES=EKVEHICLE_DATA REMAP_SCHEMA=eKvehicle:ekvThreeTest

-- remap_tablespace

-- 给ekvFourTest授权目录 --
grant read,write on directory eKvehicle_Dir to ekvFourTest;

-- 成功的导入 --
impdp ekvFourTest/ekvFourTest@IOT_10_21_129_15 DIRECTORY=eKvehicle_Dir DUMPFILE=EKVEHICLE_DB2.dmp TABLESPACES=EKVEHICLE_DATA REMAP_SCHEMA=eKvehicle:ekvFourTest remap_tablespace=EKVEHICLE_DATA:ekvFourTest_data

-- 查看oracle的用户(管理员)(表空间和临时表空间) --
select * from dba_users;

-- 查看当前的表空间(管理员) --
SELECT t.* , 
round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files t
ORDER BY t.tablespace_name; 

-- 查看当前用户 --
show user 

1.查看所有用户:
select * from dba_users;   
select * from all_users;   
select * from user_users;

-- 查看当前用户的权限 --
select * from user_sys_privs;

select * from role_sys_privs;

-- 查看指定用户的权限(EKVFOURTEST是用户名,全大写) --
select * from dba_sys_privs where grantee='EKVFOURTEST';

-- 查看当前用户下的所有表 --
select * from user_tables;

-- 查看用户的缺省表空间和临时表空间 --
select * from user_users;



增加表空间大小的四种方法

Meathod1:给表空间增加数据文件

ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长

ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长

ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小

ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;


删除表空间:
可以先将其offline
alter tablespace xx offline;
将磁盘上的数据文件一同删除
drop tablespace xxx including contents and datafiles;

删除用户:
drop user xxx;
如果用户的schema中有objects ,需要加cascade参数,即
drop user xxx cascade;

-- 删除用户 --
-- 删除用户表空间 --
-- 删除用户临时表空间 --
EKVTHREETEST
EKVTHREETEST_DATA
EKVTHREETEST_TEMP

-- 设置表空间 offline --
alter tablespace EKVTHREETEST_DATA offline;
-- 不能实现 --
alter TEMPORARY tablespace EKVTHREETEST_TEMP offline;

-- 删除表空间 --
drop tablespace EKVTHREETEST_DATA including contents and datafiles;

-- 删除临时表空间 --
drop tablespace EKVTHREETEST_TEMP including contents and datafiles;

-- 删除用户 --
drop user EKVTHREETEST cascade;

-- 查看当前用户的目录权限 --
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 = 'EKVFOURTEST'
order by
    d.directory_name,
    p.privilege


标签:Oracle的导入和导出相关的脚本和知识 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)