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,如需转载请自行联系原作者
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
383 93
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
220 0
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
330 8
|
5月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
161 3
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
791 152
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。

热门文章

最新文章

推荐镜像

更多