oracle数据库迁移步骤思路

简介:

背景做为一名DBA,oracle数据库迁移是经常要遇到的事情,正好最近我也在迁移一个业务系统,数据库就是oracle,顺便记录一下。

说明为了方便说明,旧的数据库称为A,新的为B。用户和密码是IRP/IRP ,  B是全新的环境。

 

步骤思路 

1.从 A 上导出数据文件。

1
2
3
sqlplus  / nolog
conn  /  as sysdba
EXP IRP / IRP  BUFFER = 64000  FILE = D:\test.DMP log = D:\test.log OWNER = IRP

 

2.在A机器上查看用户默认表空间,以便导入时创建一样的表空间

1
2
3
4
5
SQL> select username,default_tablespace  from  dba_users where username  = 'IRP' ;       
        
USERNAME                       DEFAULT_TABLESPACE       
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -       
IRP                                     IRP


3.查看用户使用的表空间

1
2
3
4
5
SQL> select DISTINCT owner ,tablespace_name  from  dba_extents where owner like  'IRP' ;       
        
OWNER                          TABLESPACE_NAME       
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -       
IRP                                  IRP


4.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。

1
2
3
4
5
6
7
SQL> select file_name,tablespace_name  from  dba_data_files where tablespace_name   in  'IRP' ;                   
FILE_NAME                                          TABLESPACE_NAME       
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - - - - - - -       
D:\APP\ADMINISTRATOR\ORADATA\ORCL\IRP.DBF      IRP
  
如果用户使用多个表空间,查询语句如下
select file_name,tablespace_name  from  dba_data_files where tablespace_name   in  ( 'IRP1' , 'IRP2' );


5.检查B机器的表空间,看是否存在IRP(如果是新的服务器,不需要这一步)

1
2
select name  from  v$tablespace where name  in  'IRP'      
查找不到,说明没有这个两个表空间,需要创建。

 

6.在B上创建表空间、用户并授权

1
2
3
4
5
6
7
8
9
10
11
12
13
创建大文件表空间
CREATE BIGFILE TABLESPACE  "IRP"  DATAFILE  'D:\app\oracle\oradata\orcl\irp.dbf'  SIZE  100M  AUTOEXTEND ON  NEXT  100M  MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
  
创建默认表空间
或者 CREATE TABLESPACE  "IRP"  DATAFILE  'D:\app\oracle\oradata\orcl\irp.dbf'  SIZE  100M  AUTOEXTEND ON  NEXT  100M  MAXSIZE  10000M  LOGGING EXTENT MANAGEMENT LOCAL;
  
创建用户      
CREATE USER  "IRP"  PROFILE  "DEFAULT"  IDENTIFIED BY  "IRP"  DEFAULT TABLESPACE  "IRP"  TEMPORARY TABLESPACE  "TEMP"  ACCOUNT UNLOCK;
  
授权      
GRANT  "CONNECT"  TO  "IRP" ;       
GRANT  "RESOURCE"  TO   "IRP" ;       
GRANT unlimited tablespace TO  "IRP" ;

 

注: BigFile表空间只能创建一个datafile数据文件,SmallFile表空间最多可以创建1024个数据文件

 

7.如果在服务器B上已经存在该用户,怎么样删除该用户.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
查看是否存在该用户SQL> select username  from  dba_users where username = 'IRP' ;      
删除用户及其拥有的所有对象
drop user IRP cascade;
  
查看这个用户下面是否有对象;
select object_type,count( * from  all_objects where owner = 'IRP'  group by object_type
  
        OBJECT_TYPE           COUNT( * )
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  - - - - - - - - - -
1     SEQUENCE     3      
2     PROCEDURE     5       
3     LOB     139       
4     PACKAGE     3       
5     PACKAGE BODY     2       
6     TRIGGER     1       
7     TABLE     384       
8     INDEX     426       
9     FUNCTION     6

此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop user

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
构建杀掉IRP用户session的语句并执行,
SELECT  'alter system kill session ' ' '||SID||' , '||SERIAL#||' ' ' immediate;'  FROM V$SESSION WHERE USERNAME = 'IRP' ;
 
上面的语句是构建出杀掉IRP用户session的语句,再复制这些语句,粘贴到sqlplus中执行,来杀掉IRP的session。
'ALTERSYSTEMKILLSESSION' ' '||SID||' , '||SERIAL#||' ' 'IMMEDIATE;'      
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
alter system kill session  '9,42043'  immediate;      
alter system kill session  '10,9137'  immediate;       
alter system kill session  '72,17487'  immediate;       
alter system kill session  '84,3280'  immediate;       
alter system kill session  '91,976'  immediate;       
alter system kill session  '100,13516'  immediate;       
alter system kill session  '111,5973'  immediate;       
alter system kill session  '115,4751'  immediate;       
alter system kill session  '120,10356'  immediate;       
alter system kill session  '211,4075'  immediate;       
alter system kill session  '216,48068'  immediate;


8.最后在B上导入数据

一定注意执行imp时要退出sqlplus,直接在命令行执行。

1
IMP test / test  BUFFER = 64000  FILE = D:\test.DMP log = D:\imptest.log FROMUSER = IRP TOUSER = IRP


本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1854468,如需转载请自行联系原作者
相关文章
|
14天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
14天前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
34 0
|
18天前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
9天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
24 10
|
7天前
|
SQL Java 数据库连接
数据库迁移不再难:Flyway 与 Liquibase 大比拼,哪个才是你的真命天子?
【9月更文挑战第3天】数据库迁移在软件开发中至关重要,尤其在使用 ORM 框架如 Hibernate 时。为确保部署时能顺利应用最新的数据库变更,开发者常使用自动化工具。Flyway 和 Liquibase 是当前流行的两种选择,均能有效管理数据库版本控制。Flyway 采用 SQL 脚本表示变更,简单易用;Liquibase 支持多种脚本格式,功能更强大,适合复杂项目。本文将对比这两种工具的特点,并通过示例展示各自的优缺点,帮助开发者根据项目需求做出合适的选择。
13 1
|
18天前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
64 1
|
10天前
|
API Java 开发框架
【从零到精通】如何用Play Framework快速构建RESTful API?看完这篇你就懂了!
【8月更文挑战第31天】《Play Framework快速入门:从零开始构建RESTful API》介绍了如何使用高性能Web开发框架Play Framework构建简单的RESTful API。从环境搭建到项目创建,再到实现用户列表的增删查功能,本文档详细指导每个步骤,并解释核心概念。适合初学者快速上手。首先确保已安装JDK和sbt,然后通过sbt创建Play项目,接着定义控制器、模型及路由,最后运行应用进行测试。通过本教程,你将掌握构建RESTful API的基础知识,为进一步学习Play Framework打下坚实基础。
21 0
|
12天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
18天前
|
Oracle 关系型数据库 数据库
Oracle数据库备份脚本分享-Python
Oracle数据库备份脚本分享-Python
15 0
|
1月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
78 2

推荐镜像

更多
下一篇
DDNS