Oracle 表空间迁移

迁移表空间databump

使用databump导入导出,两个库用户必须一致,否则另一个库导入的时候会报错。所以两个库都是用helei用户。

给两个数据库的用户分别授予dba权限,这里只是实验更清晰而已。

SQL> create user helei identified by MANAGER;

User created.

SQL> grant connect,resource to helei;

Grant succeeded.

SQL> grant dba to helei;

Grantsucceeded.

我们先查看表空间,我们要把主机HE3中的heleitbs表空间空间迁移到HE4的数据库当中。

SQL>select TABLESPACE_NAME,STATUS from dba_tablespaces;

TABLESPACE_NAME               STATUS

---------------------------------------

SYSTEM                               ONLINE

SYSAUX                               ONLINE

UNDOTBS1                       ONLINE

TEMP                               ONLINE

USERS                               ONLINE

EXAMPLE                       ONLINE

6 rowsselected.

我们在HE3上的heleitbs表空间中创建一张表,所有的操作都用到helei用户

SQL>createtablespace heleitbs datafile ‘/u01/app/oracle/oradata/orcl/heleitbs1.dbf‘ size10m;

Tablespacecreated.

SQL> createtable TTT (a int,b varchar2(20));

Tablecreated.

SQL> alter table TTT add constraint TTT_PRIKEYprimary key (a);

insert into ttt values(1,‘helei1‘);

insert into ttt values(2,‘helei2‘);

SQL> commit;

Commit complete.

2.先在两个虚拟机上创建目录,并且授权

[[email protected]~]$ mkdir -p /home/oracle/dumpfile

[[email protected]~]$ chown -R oracle. dumpfile

[[email protected]~]$ chmod -R 755 dumpfile

在HE3数据库中给文件夹做授权

SQL>createdirectory dumpfile as ‘/home/oracle/dumpfile‘;

Directorycreated.

SQL> grant all on directory dumpfile to public;

Grantsucceeded.

在HE4数据库中给文件夹做授权

SQL>createdirectory dumpfile as ‘/home/oracle/dumpfile‘;

Directorycreated.

SQL> grant all on directory dumpfile to public;

Grantsucceeded.

3.在HE3库中,需要用sys登录,检查一下表空间里面的表是否可以迁移。

查询代码:

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK(‘需要迁移的表空间名字‘, TRUE);

SELECT * FROM TRANSPORT_SET_VIOLATIONS;

SQL> conn / as sysdba

Connected.

SQL>show user

USER is"SYS"

SQL>EXECUTEDBMS_TTS.TRANSPORT_SET_CHECK(‘heleitbs‘,true);

PL/SQLprocedure successfully completed.

SQL> select * from transport_set_violations;

no rowsselected

4.在HE3库中,把heleitbs表空间变为只读。

SQL> conn / as sysdba

Connected.

SQL> alter tablespace heleitbs read only;

Tablespacealtered.

SQL>select TABLESPACE_NAME,STATUS from dba_tablespaces;

TABLESPACE_NAME               STATUS

---------------------------------------

SYSTEM                               ONLINE

SYSAUX                               ONLINE

UNDOTBS1                       ONLINE

TEMP                               ONLINE

USERS                               ONLINE

EXAMPLE                       ONLINE

HELEITBS                       READ ONLY

7 rowsselected.

5. 使用databump导入导出把helei用户的heleitbs表空间导出到系统中的文件夹中。

[[email protected]]$ expdp helei/MANAGERdumpfile=helei.dmp directory=dumpfile transport_tablespaces=heleitbs

Export: Release11.2.0.1.0 - Production on Sun Dec 13 23:59:37 2015

Copyright (c) 1982,2009, Oracle and/or its affiliates.  Allrights reserved.

Connected to: OracleDatabase 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With thePartitioning, OLAP, Data Mining and Real Application Testing options

Starting"HELEI"."SYS_EXPORT_TRANSPORTABLE_01":  helei/******** dumpfile=helei.dmpdirectory=dumpfile transport_tablespaces=heleitbs

Processing objecttype TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing objecttype TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Master table"HELEI"."SYS_EXPORT_TRANSPORTABLE_01" successfullyloaded/unloaded

******************************************************************************

Dump file set forHELEI.SYS_EXPORT_TRANSPORTABLE_01 is:

/home/oracle/dumpfile/helei.dmp

******************************************************************************

Datafiles requiredfor transportable tablespace HELEITBS:

/u01/app/oracle/oradata/orcl/heleitbs1.dbf

Job"HELEI"."SYS_EXPORT_TRANSPORTABLE_01" successfullycompleted at 23:59:56

6.用scp把HE3的dumpfile文件夹里面的helei.dmp拷贝到HE4的dumpfile文件夹中。

[[email protected]]$ scp -rp helei.dmpHE4:/home/oracle/dumpfile/

[email protected]‘spassword:

helei.dmp                                                                  100%   80KB  80.0KB/s

在HE4虚拟机里查看一下dumpfile文件夹有没有helei.dmp

[[email protected]~]$ cd dumpfile/

[[email protected]]$ ls

helei.dmp

7.分别查看weixiaobin库和ronger库的数据文件存在的位置。

HE3库

SQL>select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/orcl/system01.dbf

/u01/app/oracle/oradata/orcl/sysaux01.dbf

/u01/app/oracle/oradata/orcl/undotbs01.dbf

/u01/app/oracle/oradata/orcl/users01.dbf

/u01/app/oracle/oradata/orcl/example01.dbf

/u01/app/oracle/oradata/orcl/heleitbs1.dbf

6 rowsselected.

HE4库

SQL>select name from v$datafile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/orcl/system01.dbf

/u01/app/oracle/oradata/orcl/sysaux01.dbf

/u01/app/oracle/oradata/orcl/undotbs01.dbf

/u01/app/oracle/oradata/orcl/users01.dbf

/u01/app/oracle/oradata/orcl/example01.dbf

8.把HE3库的数据文件heleitbs1.dbf拷贝到HE4库里的数据文件当中。

[[email protected]~]$ cd /u01/app/oracle/oradata/orcl/

[[email protected]]$ scp heleitbs1.dbfHE4:/u01/app/oracle/oradata/orcl/

[email protected]‘spassword:

heleitbs1.dbf                                                              100%   10MB  10.0MB/s  00:00

然后查看一下HE4有没有heleitbs1.dbf文件

[[email protected]]$ cd /u01/app/oracle/oradata/orcl/

[[email protected]]$ ls

control01.ctl  example01.dbf redo01.log  redo03.log    system01.dbf  undotbs01.dbf

control02.ctl  heleitbs1.dbf redo02.log  sysaux01.dbf  temp01.dbf   users01.dbf

9.这时用使用databump导入导出把HE4的dumpfile文件家里面的helei.dmp导入到自己的数据库中

[[email protected]~]$ impdp helei/MANAGERdumpfile=helei.dmp directory=dumpfile transport_datafiles=‘/u01/app/oracle/oradata/orcl/heleitbs1.dbf‘

Import:Release 11.2.0.1.0 - Production on Mon Dec 14 00:36:33 2015

Copyright(c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connectedto: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bitProduction

With thePartitioning, OLAP, Data Mining and Real Application Testing options

Mastertable "HELEI"."SYS_IMPORT_TRANSPORTABLE_01" successfullyloaded/unloaded

Starting"HELEI"."SYS_IMPORT_TRANSPORTABLE_01":  helei/******** dumpfile=helei.dmpdirectory=dumpfiletransport_datafiles=/u01/app/oracle/oradata/orcl/heleitbs1.dbf

Processingobject type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processingobject type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job"HELEI"."SYS_IMPORT_TRANSPORTABLE_01" successfullycompleted at 00:36:49

10.把两个库中的heleitbs表空间都设置为读写模式。

两个库命令是一致的使用dba用户和weixiaobin用户都可以

SQL> alter tablespace heleitbs read write;

Tablespacealtered.

11.验证,看看HE4虚拟数据中是不是HELEITBS表空间。看看表空间里有没有TTT的表

SQL> select TABLE_NAME,TABLESPACE_NAME fromdba_tables where TABLESPACE_NAME=‘HELEITBS‘;

TABLE_NAME                       TABLESPACE_NAME

------------------------------------------------------------

TTT                               HELEITBS

时间: 2024-09-30 16:18:23

Oracle 表空间迁移的相关文章

oracle表空间迁移

1.创建一个新的表空间 newspaces (原来的表空间oldspaces) 2.从原来的表空间里面导出数据(test.dmp),然后在新的表空间里面导入之前导出的数据(test.dmp),选择从用户到用户的方式导入 3.执行下面这个SQL: select 'alter table ' ||table_name || ' move tablespace 目标表空间名称;' from user_all_tables 将结果集导出,然后在导出的文件里面把查询拼接的SQL全部复制到plsql里面执行

oracle表空间文件系统迁移到ASM

1.配置测试环境创建数据表空间create tablespace test logging datafile '/home/oracle/test.dbf' size 10m autoextend on next 10m maxsize 2048m extent management local;创建用户并指定表空间create user test identified by 123456 default tablespace test;给用户授予权限grant connect,resource

Oracle表空间文件迁移

set ORACLE_SID = ORCL; sqlplus /nolog connect sys/1234 as sysdba; alter tablespace tablespace_name offline; alter database rename file '......\tablespace_name.dbf' to '......\tablespace_name.dbf'; alter tablespace tablespace_name online; recover data

不同类型的数据跨表空间迁移的解决办法

http://blog.csdn.net/passion_wang/article/details/6541369 Oracle10g数据跨表空间迁移 因某些开发人员由于对oracle数据库理解的不够深入,往往在建表的时候指定了当前用户非默认的表空间,这样就导致了在exp及imp等操作时候问题很多,因此需要将这些表及相关的数据迁移回当前用户的默认表空间里.Oracle10g数据数据库提供了一个Move命令可以把这样的数据对象进行跨表空间的迁移,也可以对含有BLOB.CLOB这样的二进制大字段的表

ArcSDE for Oracle表空间管理——暂时(TEMP)表空间

Oracle暂时表空间主要用来做查询和存放一些缓冲区数据.暂时表空间消耗的主要原因是须要对查询的中间结果进行排序. 重新启动数据库能够释放暂时表空间,假设不能重新启动实例,而一直保持问题sql语句的运行,temp表空间会一直增长.直到耗尽硬盘空间. 下面操作会占用大量的temporary:    1.用户运行imp/exp 导入导出操作时,会使用大量的temporary段    2.用户在Create 或者 rebuild index时    3.运行create table ...... as

ORACLE 表空间扩展

最近公司在对即将上线的系统做数据迁移和压力测试,于是乎需要和 Oracle 经常的打交道.今天正好碰到了表空间的问题,记录下来以后备用.也是最近才学习到的,原来 Oracle 表空间也是有大小限制的,比如公司安装的 Oracle 单个 dbf 最大 31GB,所以当一个表空间文件达到最大值后就无法再增长了.需要再开辟一个表空间文件. 查看表空间的名字和物理路径 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),

Oracle表空间

Oracle表空间,布布扣,bubuko.com

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 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') || '

44.oracle表空间的使用

要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得"这不是我的事,我只是个小打工的",团建要放在首位.不可在下属面前"装B",别人也不傻. Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的. ORACLE数据库被划分成称作为表空间[1]  的逻辑区域--形成ORACLE数据库的逻辑结构.一个ORACLE数据库能够