Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



数据泵导入导出,创建表空间更改表空间大小

创建临时表空间  #RAC环境
CREATE TEMPORARY TABLESPACE 临时表空间名 TEMPFILE size 2048m autoextend on;

不是rac库的话需要指定一下dbf数据文件的路径
CREATE TEMPORARY TABLESPACE 临时表空间名 TEMPFILE 'DBF数据文件路径' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 

创建表空间      #该步骤适用于rac环境的库。
create tablespace 表空间名 datafile size 10240m autoextend on; 

不是rac库的话需要指定一下dbf数据文件的路径

CREATE TABLESPACE 表空间名 LOGGING DATAFILE 'DBF数据文件路径' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;

创建用户并且制定表空间
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名 TEMPORARY TABLESPACE 临时表空间;

更改表空间大小,如果是rac库的话不需要指定路径,因为采用的是OMF指定管理!
alter TABLESPACE 表空间名 ADD DATAFILE  SIZE 10240M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED; 

不是rac库的话同样需要指定一下数据文件名及路径
ALTER TABLESPACE 表空间名 ADD DATAFILE '新建DBF数据文件路径' SIZE 10240M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED; 
 

删除表空间及数据文件
DROP TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES;

查看当前表空间
select tablespace_name, file_name from dba_data_files;

查看表空间使用率
 SELECT UPPER(F.TABLESPACE_NAME) "表空间名",   
D.TOT_GROOTTE_MB "表空间大小(M)",   
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",   
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",   
F.TOTAL_BYTES "空闲空间(M)",   
F.MAX_BYTES "最大块(M)"  
FROM (SELECT TABLESPACE_NAME,   
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,   
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES   
FROM SYS.DBA_FREE_SPACE   
GROUP BY TABLESPACE_NAME) F,   
(SELECT DD.TABLESPACE_NAME,   
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB   
FROM SYS.DBA_DATA_FILES DD   
GROUP BY DD.TABLESPACE_NAME) D   
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME   
ORDER BY 4 DESC;

数据泵的schema方式导入导出数据
建立导出路径
su - oracle
mkdir posm 
create directory DUMP_FILE as '/home/oracle/posm';    #DUMP_FILE可以自己命名
grant read,write on directory DUMP_FILE to posm;         #DUMP_FILE可以自己命名

建立导入路径
su - oracle
mkdir posm 
create directory DUMP_FILE as '/home/oracle/posm';    #DUMP_FILE可以自己命名
grant read,write on directory DUMP_FILE to posm;         #DUMP_FILE可以自己命名
grant dba to posmadm;              #赋予posmadm用户DBA权限,不然导入的时候会报错没有权限!

同时建议导入的库的表空间最好和导出的库的表空间一样,不然可能会遇到报错提示表空间不存在!查询表空间可以使用上面的语句进行查询。

使用schema方式导入数据
impdp posmadm/posmadm@orcl directory=posm dumpfile=posmadm20150421.dmp remap_schema=posmadm:posmadm

浏览999  评论0  niko于 2015-6-26 8:31
发言