第一次发文章,有不足之处请原谅。
为了实现目标将11.111.11.11 库ybzxtest1用户下的所有对象移植到APP库ybzx用户下。
其中app所在地址为虚拟机地址,稍后讲解详细步骤。
<!--[if !supportLists]-->1,
<!--[endif]-->需完成此目的的前提条件:本机安装好oracle服务器,找到\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora 打开并配置源数据库和目标数据库连接,配置如下
源数据库配置
11.111.11.11 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 11.111.11.11 )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SZQX)
)
)
目标数据库配置(虚拟机下的配置,如不在虚拟机下,可参考如上配置)
APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
10.121.98.23)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =
16.153.98.25)(PORT = 1521))
(LOAD_BALANCE=YES)
(
CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=YBZ)
(
FAILOVER_MODE=
(TYPE=session)
(METHOD=basic)
(RETRIES=180)
(DELAY=5)
)
)
)
2 配置好oracle环境变量,右击我的电脑-属性-高级-环境变量,找到PATH,编辑,加入%oracle_home%\oracle\product\10.2.0\db_1\bin
.单击完成,一般安装好服务器之后,会默认添加环境变量。这里不需要管他。
由于源数据库表中有LOB类型字段 例如BLOB ,CLOB等类型,在imp导入目标数据库的时候,提示表空间不存在,原因是LOB类型的数据全部存储在表空间中,表中只存放指针,即使在建表时没指定表空间,数据也全部存入该数据库默认表空间中。 解决办法如下:
1,在目标数据库中建立与源数据库相同的表空间,修改默认表空间为此表空间。(未测试)
<!--[if !supportLists]-->2,
<!--[endif]-->修改源数据库的表空间,在源数据库上建立与目标数据库相同的表空间,将源数据库的用户名,表,索引全部移植到新建表空间下,这里我们采用第二种方式,步骤如下:
1,建与目标表空间相同的表空间,sql如下:CREATE TABLESPACE YLS
DATAFILE 'D:\oracle10g\YLS.dbf'
SIZE 100M
EXTENT MANAGEMENT LOCAL;
2,修改用户名所属表空间 :alter
user user_name
default tablespace tbs_name;
User_name 用户名。Tbs_name 要移植的目标表空间名
<!--[if !supportLists]-->3, <!--[endif]-->将表移植到新表空间sql:alter table JBPM4_ID_MEMBERSHIP move tablespace YLS ; 其中可以采用批量语句完成,sql如下:select 'alter table ' || table_name || ' move tablespace
YLS ;' from all_tables t where t.owner='YBZXTEST1' ;
当表中遇到lob类型字段时候,上述sql就不管用了,必须使用如下sql移植:
alter table tab_name move tablespace tbs_name lob(BLOB1,BLOB2,BLOB3) store as(tablespace tbs_name);
其中 tab_name为表名,blob1,blob2,blob3为lob类型字段,tbs _name为要移植的目标表空间名
4. 移植索引到新的表空间下,sql如下:alter index index_name rebuild tablespace tbs_name ;
Tbs_name为为要移植的目标表空间名,index_name为索引名,批量修改sql为:
select 'alter index ' || index_name || ' rebuild tablespace
YLS ;' from user_indexes t where table_owner='YBZXTEST1';
将用户YBZXTEST1下所有索引移植到
新表空间下。
<!--[if !supportLists]-->4, <!--[endif]-->执行导出命令,点击开始-运行-cmd 输入exp ybzxtest1/oracle@
11.111.11.11 file=f:\\ybzxtest1_yls.dmp
owner=ybzxtest1 log=f:\\ybzxtest1_yls.log
其中 11.111.11.11 为tnsnames.ora文件配置的源数据库名字
导出dmp文件之后,imp ybzx/oracle@APP file=c:\\ybzxtest1_yls.dmp
full=y log=c:\\ybzx_app.log
其中APP为tnsnames.ora文件配置目标数据库名字
执行命令即可。
注意:
在以前索引时候,如果索引状态为不可用可能导致迁移失败,必须先改正所以状态在导出,导入,使用以下过程可以批量修改索引状态:
declare
-- 指向所有 UNUSABLE
状态的 index 的游标
cursor c is
select index_name, owner
from dba_indexes
where status='UNUSABLE' and owner='YBZXTEST1';
owner dba_indexes.owner%type;
index_name dba_indexes.index_name%type;
begin
open c;
loop
fetch c into index_name, owner;
exit when c%notfound;
execute immediate 'alter index ' || owner || '.' || index_name || '
rebuild';
end
loop;
close c;
end;
分享到:
相关推荐
这个"Oracle导入导出命令bat执行命.rar"文件显然包含了一系列用于自动化这些过程的批处理(BAT)脚本。 首先,让我们来理解一下Oracle的导入导出命令。`expdp`和`impdp`是Oracle Data Pump的命令行工具,用于导出和...
Oracle数据库的导入导出工具是数据库管理中至关重要的部分,主要涉及两个命令:EXP和IMP。这些工具在Oracle 9i之前是主要的逻辑备份和恢复手段,尽管随着技术的发展,Oracle引入了更先进的数据泵(Data Pump)技术,...
为了方便数据的迁移、备份或恢复,Oracle提供了多种导入导出工具,这些工具使得数据操作变得更为高效和便捷。本文将详细介绍Oracle的导入导出工具及其使用方法。 1. **Data Pump (expdp/impdp)** Oracle Data Pump...
Oracle导入导出工具是数据库管理员和开发人员在处理Oracle数据库时不可或缺的实用程序,它可以显著提高工作效率并简化数据管理任务。Oracle数据库系统以其强大的功能和稳定性而闻名,但随着数据量的增长,对数据进行...
ORACLE导入导出详解\ ORACLE导入导出详解 ORACLE导入导出详解
### Oracle导入导出概述 #### 1. Oracle导入导出工具 Oracle提供了多种工具来实现数据的导入导出功能,主要包括`EXPDP`(Export Data Pump)和`IMPDP`(Import Data Pump)。这些工具相较于早期版本中的`EXP`和`IMP...
Oracle 导入导出 DMP 数据库 Oracle 导入导出 DMP 数据库是指使用 Oracle 数据库管理系统提供的导入导出工具,实现数据库的导入和导出。这里我们将详细介绍两种方法:使用客户端 Enterprise Manager Console 和使用...
本资源“oracle导入导出文档及视频.zip”包含了Windows环境下通过命令行操作Oracle数据库进行导出(exp)和导入(imp)的详细教程和实例演示。以下是关于这个主题的深入讲解。 一、Oracle导入导出概述 Oracle...
### Oracle导入导出知识点 #### 一、Oracle 导入导出工具简介 在Oracle数据库管理中,数据的备份与恢复是一项重要的工作。Oracle提供了多种工具来实现这一目标,其中最为常用的便是`exp`(Export)和`imp`(Import...
本工具是一款基于Java编写的桌面应用程序,专为Oracle数据库的导入导出提供便利。 1. **Oracle数据库导入导出的重要性** - 数据迁移:当需要将数据从一个Oracle实例迁移到另一个实例时,导入导出工具是关键。 - ...
oracle数据库导入导出命令imp exp impdp expdp的使用详解,很有用!
Oracle 导入导出 DMP 文件详解 Oracle 是一种广泛使用的关系型数据库管理系统,导入导出 DMP 文件是 Oracle 数据库管理员和开发者经常遇到的一个重要任务。下面将详细介绍 Oracle 导入导出 DMP 文件的步骤和相关...
Oracle 数据库的导入导出是数据库管理中的重要环节,它涉及到数据的安全性、恢复性和效率。Oracle 提供了多种工具来实现数据的备份与恢复,其中最常用的是 EXPDP(Export Data Pump)和 IMPDP(Import Data Pump)...
Oracle 导入导出(imp,exp 本机或异机恢复) Oracle 的数据库导入导出(imp/exp)是数据库管理员经常使用的两个命令,它们分别用于数据库的导出和导入。本文档总结了 Oracle 数据库的完全导入导出、imp 和 exp 命令...
### Oracle导入导出部分数据:基础知识与应用场景 #### 基础知识 Oracle提供了两种主要的数据导入导出工具:`expdp` 和 `impdp`(用于数据泵导入导出),以及 `exp` 和 `imp`(较旧的命令行工具)。其中,`expdp` ...
Oracle 导入导出命令集.chm Oracle 导入导出命令集.chm
oracle导入导出建表空间语句:建用户;建表空间;用户授权dba;导入导出;
### Oracle导入导出命令详解 Oracle数据库作为一款广泛使用的数据库管理系统,在数据迁移、备份与恢复等方面具有非常重要的作用。在日常运维工作中,我们经常会用到Oracle的导入(Import)和导出(Export)命令来...