oracle数据库迁移步骤思路

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

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

步骤思路

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

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

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

SQL> select username,default_tablespace from dba_users where username =‘IRP‘;       
       
USERNAME                       DEFAULT_TABLESPACE       
------------------------------ ------------------------------       
IRP                                     IRP

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

SQL> select DISTINCT owner ,tablespace_name from dba_extents where owner like ‘IRP‘;       
       
OWNER                          TABLESPACE_NAME       
------------------------------ ------------------------------       
IRP                                  IRP

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

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(如果是新的服务器,不需要这一步)

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

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

创建大文件表空间
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上已经存在该用户,怎么样删除该用户.

查看是否存在该用户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

构建杀掉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,直接在命令行执行。

IMP test/test BUFFER=64000 FILE=D:\test.DMP log=D:\imptest.log FROMUSER=IRP TOUSER=IRP
时间: 2024-12-26 19:32:21

oracle数据库迁移步骤思路的相关文章

Oracle数据库迁移-基础

Oracle数据库迁移-基础 作为一个开发人员,数据库知识肯定是需要我们掌握的.但是目前公司的数据库都是有专门的DBA维护的,一般都是给我们一个环境地址,然后我们书写CRUD SQL.而且公司产品要求是可以跨数据源的,这样平时基本上都不太关心特定数据库平台的操作.结果导致自己的DB知识严重不足.今天因为一些原因,需要在外网服务器上搭建演示环境,结果需要"悲剧"的自己操作数据库. 任务:在外网服务器上搭建演示环境,包括服务器.代码.数据库.     解决方案: (1)找一个新的产品安装程

Oracle数据库迁移的几种方式

面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四.用rman做迁移: 我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上.迁移到远程的机房.迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案: 一.exp/imp逻辑备份与恢复:  它是最常用最简单的方法,一般是基于应用的owner级做导出导入.  操作方法为: 在新库建立好o

Oracle数据库迁移问题(备份、还原、数据导入导出、PLSQL)IMP - 0009 错误

最近在做Oracle数据迁移,从一个服务器迁移到另外一台服务器上去,遇到各种问题,比如 导入DMP文件的时候,遇到 IMP - 0009 错误,折腾了半天,发现原来是我 连接到服务器导出DMP文件时,用的Oracle客户端版本与服务器上Oracle版本不一致,导致导出来的DMP文件实际上有损坏,所以怎么都不能导入到新服务器的Oracle数据库中去. 总结:最好严格保证Oracle版本及环境一致性,免得遇到各种问题.

Linux平台下使用rman进行oracle数据库迁移

    实验目的:将oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名 源端: ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 ORACLE_SID=test 数据文件位置:/oradata/test 目标端: ORACLE_BASE=/u02/app/oracle ORACLE_HOME=/u02/app/oracle/product/10

使用Microsoft SQL Server Migration Assistant for Oracle将Oracle数据库迁移到SQL Server 2008 R2

必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 必须要安装SSMAforOracleExtensionPack_7.10.0或者SSMA for Oracle.6.0.0.ExtPack! 这个Microsoft SQL Server Migration Assi

Oracle数据库修改密码思路

如果你想修改自己的邮箱密码,不用想太多,改了就好,只要改的密码自己要记得.可是数据库密码就不一样了,数据库必然会有与之相对应的应用或者其他使用人员.如果贸然修改必然会引起其他人员或者用户的问题. 因此,在修密码之前必须先确定这次修改能不会导致令人难以接受的问题,比如应用长时间无法连接服务,其他人员使用老的密码无法连接数据库. 考虑缓存机制服务的情况,为了尽量减少服务中断的时间,这是看起来最好的方案: 1.修改配置文件. 由于是缓存机制服务,改过配置文件并不对现在运行的服务产生影响,因此选一个时间

oracle数据库迁移的步骤

目的:将192.168.9.102上GGWSXT/[email protected]:1521/ORACLE部署到104上 1.查看原用户表空间 select tablespace_name,count(0) from dba_segments where owner=upper('GGWSXT') group by tablespace_name; 2.查看原用户创建表空间的目录 select * from dba_data_files: 3.为原用户创建表空间 create tablespa

SharePoint 数据库迁移步骤

背景:项目上一SharePoint网站分为SharePoint前端与数据库,前端放在实体机上,数据库放在VM9虚拟机中. 环境:Windows Server 2008 r2+sp1, SharePoint Server 2013 Enterprise, SQL Server 2008 r2+sp1, VM9虚拟机 存在的问题:虚拟机中实际上只有70G大小的文件,但是虚拟机在磁盘上的空间有700多G,严重占用资源,在网上尝试用vmware-vdiskmanager.exe –k命令.VMwareT

Oracle数据库迁移方式一:impdp+dblink

实验环境: 源库:  192.168.2.200  SID=testdb 目标库:192.168.2.100  SID=testdb 实验目的: 使用impdp+dblink的方式 将192.168.2.200数据库上的jtrms用户的所有数据导入到目标数据库192.168.2.100 注意:使用impdp+dblink 的方式,这样就节省了数据导出(expdp),然后再导入的过程. 实施步骤: 一.源库操作: 1.首先检查源库要迁移的用户信息: SQL> select USERNAME,DEF