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,如需转载请自行联系原作者
相关文章
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
15 2
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
144 26
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
从自建到云端,数据库迁移全攻略
本文详细介绍了将自建数据库迁移至阿里云RDS的全过程,涵盖WordPress网站安装、数据库迁移配置及验证等步骤。通过DTS数据传输服务,实现库表结构、全量和增量数据的无缝迁移,确保业务连续性和数据一致性。方案具备零成本维护、高可用性(最高99.99%)、性能优化及全面的数据安全保障等核心优势。此外,提供了详细的图文教程,帮助用户快速上手并完成迁移操作,确保业务稳定运行。点击文末“阅读原文”了解更多详情及参与活动赢取精美礼品。
101 13
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
122 11
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
463 2

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等