oracle数据库迁移步骤思路
admin
2023-06-05 20:41:36
0次

背景:做为一名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机器上查看用户默认表空间,以便导入时创建一样的表空间oracle数据库迁移步骤思路

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


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...