Oracle逻辑迁移某业务用户及数据
1.确定基本信息
确定基本信息:
```
源数据库所在系统类型:________
源数据库地址:__.__.__.__
源数据库版本:________
数据库高可用/灾备:{单机|RHCS|RAC|DataGuard|其他}
迁移导出业务用户:________
目的数据库所在系统类型:________
目的数据库地址:...
目的数据库版本:________
数据库高可用/灾备:{单机|RHCS|RAC|DataGuard|其他}
迁移导入业务用户:________
按上面模板填好必要信息,示例如下:
源数据库所在系统类型:RHEL 6.4
源数据库地址:192.168.XX.XX
源数据库版本:9.2.0.8.0
数据库高可用/灾备:单机
迁移导出业务用户:jingyu
目的数据库所在系统类型:RHEL 6.4
目的数据库地址:192.168.XX.XX
目的数据库版本:11.2.0.4.0
数据库高可用/灾备:RAC
迁移导入业务用户:jingyu
<h1 id="2">2.源数据库导出</h1>
## 2.1 业务用户相关信息 ##
--用户默认数据表空间,临时表空间
select * from dba_users where username='JINGYU';
--连接到业务用户
conn jingyu/jingyu
--用户角色权限
select * from user_role_privs;
--用户总的对象数量
select count(1) from user_objects;
--用户总的表数量
select count(1) from user_tables;
## 2.2 用户用到的表空间 ##
--连接到业务用户
conn jingyu/jingyu
--用户用到的表空间
select tablespace_name from user_tables union
select tablespace_name from user_tab_partitions union
select tablespace_name from user_indexes union
select tablespace_name from user_ind_partitions;
## 2.3 查询对应表空间数据文件情况 ##
--数据表空间对应数据文件信息
select FILE_ID, FILE_NAME, TABLESPACE_NAME, BYTES/1024/1024 "MB", MAXBYTES/1024/1024/1024 "GB", AUTOEXTENSIBLE, STATUS from dba_data_files where TABLESPACE_NAME in ('SYSTEM', 'USERS', 'DBS_D_JINGYU', 'DBS_I_JINGYU');
--数据表空间对应数据文件按表空间分组统计总大小
select TABLESPACE_NAME, sum(BYTES/1024/1024) "MB" from dba_data_files where TABLESPACE_NAME in ('SYSTEM', 'USERS', 'DBS_D_JINGYU', 'DBS_I_JINGYU') group by TABLESPACE_NAME;
--临时表空间对应临时文件信息
select FILE_ID, FILE_NAME, TABLESPACE_NAME, BYTES/1024/1024 "MB", MAXBYTES/1024/1024/1024 "GB", AUTOEXTENSIBLE, STATUS from dba_temp_files where TABLESPACE_NAME='TEMP_JINGYU';
--临时表空间对应临时文件统计总大小
select sum(BYTES/1024/1024) "MB" from dba_temp_files where TABLESPACE_NAME='TEMP_JINGYU';
## 2.4 选择合适的导出方案 ##
--导出方案exp示例(10g之前版本使用)
nohup exp jingyu/jingyu OWNER=jingyu BUFFER=10240000 STATISTICS=none RESUMABLE=y FILE=jingyu_exp.dmp LOG=jingyu_exp.log &
--导出方案expdp示例(10g及以后版本建议使用数据泵expdp)
nohup expdp system directory=jy schemas=jingyu dumpfile=jingyu_all%U.dmp logfile=jingyu_all.log parallel=2 &
有关expdp详细内容可参考:
- 《[Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)](http://www.cnblogs.com/jyzhao/p/4522868.html)》
<h1 id="3">3.目的数据库导入</h1>
## 3.1 目的数据库当前相关信息 ##
--确定目的数据库基本信息
select instance_name, status from v$instance;
select dbid, open_mode from v$database;
--确定ASM磁盘组剩余空间
select GROUP_NUMBER, NAME, TYPE, TOTAL_MB, FREE_MB, USABLE_FILE_MB from v$asm_diskgroup;
--如果是文件系统管理,直接df -g查看数据文件存放目录的空间
--确定已有表空间数据文件情况
select FILE_ID, FILE_NAME, TABLESPACE_NAME, BYTES/1024/1024 "MB", MAXBYTES/1024/1024/1024 "GB", AUTOEXTENSIBLE, STATUS from dba_data_files where TABLESPACE_NAME in ('SYSTEM', 'USERS', 'DBS_D_JINGYU', 'DBS_I_JINGYU');
## 3.2 导入前准备 ##
--1. 创建新表空间
create tablespace DBS_D_JINGYU datafile '+DATA01';
create temporary tablespace TEMP_JINGYU tempfile '+DATA01';
--此步骤还需要确定是否需要创建其他表空间,确定是否需要建多个数据文件
--2. 创建用户
create user jingyu identified by jingyu TEMPORARY TABLESPACE TEMP_JINGYU default tablespace DBS_D_JINGYU;
--3. 赋予用户权限
grant resource, connect, dba to jingyu;
## 3.3 导入方案 ##
--导入方案的选择由之前导出方案决定:exp/imp,expdp/impdp。
--导入方案imp示例
nohup imp jingyu/jingyu BUFFER=10240000 RESUMABLE=y FILE=jingyu_exp.dmp LOG=imp_jingyu_exp.log IGNORE=y FULL=y &
--导入方案impdp示例
nohup impdp system directory=jy schemas=jingyu table_exists_action=replace dumpfile=jingyu_all%U.dmp logfile=impdp_jingyu_all.log parallel=2 &
有关impdp详细内容可参考:
- 《[Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)](http://www.cnblogs.com/jyzhao/p/4530575.html)》
<h1 id="4">4.逻辑迁移注意事项</h1>
**4.1 如果需要保证业务数据前后一致性**
那么在导出开始前,需要停止源数据库业务,直到成功导入到目标数据库时,应用修改新的连接方式完毕,才可以再次启动业务;
**4.2 如果之前表空间管理不规范**
早期imp导入工具还没有显示指定重定向表空间的功能,建议整改后迁移;后来impdp才引入重定向表空间的功能,导入时直接使用REMAP_TABLESPACE参数。
**对于更复杂的逻辑迁移场景可参考:**
- 《[Oracle数据逻辑迁移综合实战篇](http://www.cnblogs.com/jyzhao/p/4583722.html)》
Oracle逻辑迁移某业务用户及数据的更多相关文章
- Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)
Oracle 导出.导入某用户所有数据(包括表.视图.存储过程...)前提:在CMD 命令下 导出命令:exp 用户名/密码@数据库 owner=用户名 file=文件存储路径(如:F:\abcd.d ...
- Oracle数据库逻辑迁移之数据泵的注意事项
环境:数据迁移,版本 11.2.0.4 -> 12.2.0.1 思考: 对于DBA而言,常用物理方式的迁移,物理迁移的优势不必多说,使用这种方式不必担心对象前后不一致的情况,而这往往也解决了不懂 ...
- 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?
前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...
- Oracle数据逻辑迁移综合实战篇
本文适合迁移大量表和数据的复杂需求. 如果你的需求只是简单的迁移少量表,可直接参考这两篇文章即可完成需求: Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上) Oracle简 ...
- Vertica 业务用户指定资源池加载数据
之前在"Vertica 安装,建库,新建测试用户并授予权限,建表,入库"这篇文章也简单介绍过入库部分的内容. 但之前测试用例若用于生产环境有明显的局限性: 1.是用dbadmin管 ...
- Oracle使用游标删除所有用户数据表中的所有记录脚本
应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用 测试结果:经查询已删除所有数据 存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自 ...
- Oracle业务用户密码过期问题的解决
实验环境:Oracle 11.2.0.4 如果DBA不知道业务用户密码,当业务密码过期,应用要求DBA帮忙重设为原来的密码. 1.查询业务用户密码 从user$查到hash加密过的值: select ...
- mysql数据库迁移到oracle数据库后 如何删除相同的数据
mysql数据库迁移到oracle数据库后 如何删除相同的数据 首先搞清楚有多少数据是重复的 select pid from product group by pid having count(pid ...
- oracle中的sys用户(修改密码)/////Oracle删除表空间的同时删除数据文件 ///// Oracle中如何保证用户只有一个session登录
oracle中的sys用户(修改密码) (2011-07-01 09:18:11) 转载▼ 标签: it 分类: oracle 概念: SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用 ...
随机推荐
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- 关于几个主流语音SDK的接入问题
这两周都在忙着游戏上线还有接入游戏语音,两周分别接了腾讯语音和百度语音!!! 关于腾讯语音的一些问题 由于发现腾讯语音的在录完音频后的数据是编过码的所以出现了一些问题: *不能解码(腾讯方不提供解码算 ...
- PHP源码分析-变量
1. 变量的三要素变量名称,变量类型,变量值 那么在PHP用户态下变量类型都有哪些,如下: // Zend/zend.h #define IS_NULL 0 #define IS_LONG 1 #de ...
- 【翻译】MongoDB指南/CRUD操作(一)
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...
- C# 发送邮件 附件名称为空
示例代码: // 1.创建邮件 MailMessage mailMsg = new MailMessage(); mailMsg.To.Add(new MailAddress("test@ ...
- CRL快速开发框架系列教程七(使用事务)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 高德地图api实现地址和经纬度的转换(python)
利用高德地图web服务api实现地理/逆地址编码 api使用具体方法请查看官方文档 文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- 中国CIO最关心的八大问题(上)
中国CIO最关心的八大问题(上) 近期,ITValue和ValueResearch联合展开<IT决策者投资与生存状态大调查>,调查范围从关注CIO本身,延展至关注CIO所供职企业--其赖以 ...
- Spark-shell和Spark-Submit的使用
Spark-shell有两种使用方式: 1:直接Spark-shell 会启动一个SparkSubmit进程来模拟Spark运行环境,是一个单机版的. 2:Spark-shell --master S ...