oracle数据迁移及全库迁移方案

准备工作
sqlplus 管理员登录

select username,sid,serial# from v$session where username=''

–若没有数据直接进行下一步

 alter system kill session

–删除用户

 drop user 用户名 cascade

–删除表空间

DROP TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES;

当我们在删除用户的时候,特殊符号无法删除的时候,可以用

drop user "A"

创建表空间
–查看dmp存放位置

select * from dba_directories;

–创建数据表空间

CREATE TABLESPACE 表空间名  
DATAFILE 'D:\APP\ADMIN\ORADATA\ORCL\space.dbf' size 5000M  
         EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

–创建临时表空间

create temporary temp
tempfile 'C:\app\Administrator\oradata\orcl\temp.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;

创建用户

create user 用户名 identified by 密码
default tablespace  表空间
temporary tablespace 临时表空间; 

创建用户并指定表空间

 CREATE USER 用户名 IDENTIFIED BY "密码" 
DEFAULT TABLESPACE 数据表空间名
TEMPORARY TABLESPACE temp

授权

GRANT CONNECT TO 用户名; 
GRANT RESOURCE TO 用户名;
GRANT SESSION  TO 用户名;

导出数据库

system/123@localhost/orcl DIRECTORY=DATA_PUMP_DIR schemas=用户 dumpfile=A20200414.dmp  

过滤表对象TABLE_A,TABLE_B将所有的表导出

nohup expdp wjz/123456 directory=DATA_PUMP_DIR schemas=wjz  EXCLUDE=TABLE:\"IN\(\'TABLE_A\',\'TABLE_B\'\)\" dumpfile=A_20200414.dmp logfile=expdp_20200414.log   &

–导出单表数据

nohup expdp  wjz/123456@localhost/wjz  directory=DATA_PUMP_DIR  tables=TABLE_A dumpfile=TABLE_A _20191217.dmp  logfile=TABLE_A _20191217.log  &

导出TABLE_A表一半数据,筛选条件是时间

nohup expdp wjz/123456 directory=impdp_dir tables=TABLE_A dumpfile=TABLE_A_20171231235959.dmp logfile=TABLE_A_20171231235959.log query=\"where  time\<=to_date \(\'2017-12-31 23:59:59\',\'yyyy-mm-dd hh24:mi:ss\'\)\" &

导出分区

expdp wjz/123456  DIRECTORY=dump DUMPFILE=partition_201903010000.dmp TABLES=TABLE_A:P201903010000 logfile=exp_P201903010000.log parallel=4 
impdp wjz/123456 DIRECTORY=dump DUMPFILE=partition_201903010000.dmp TABLES=TABLE_A:P201903010000 logfile=imp_P201903010000.log table_exists_action=append parallel=4 ACCESS_METHOD=DIRECT_PATH CLUSTER=N

导入数据库
从A用户导出的dmp导入到B用户中去

impdp system/123456@orcl DIRECTORY=DATA_PUMP_DIR  DUMPFILE=A_20200414.dmp REMAP_SCHEMA=A:B

从A表空间导入B表空间

impdp system/123456@orcl DIRECTORY=DATA_PUMP_DIR  DUMPFILE=A_20200414.dmp REMAP_SCHEMA=A:B  remap_table= A1:B1, A2:B1

创建oracle dbllink

create public database link DBlink
connect to hotspot_system identified by password
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = orcl)))';
select * from A@DBlink;

将远程服务器上的文件复制到本机

scp root@192.168.1.1:/u01/app/oracle/admin/tdr/dpdump/20191021pm.dmp /u01/app/oracle/admin/wjz/dpdump

将本机文件复制到远程服务器上

scp /home/administrator/news.txt root@192.168.1.1:/etc/squid

表空间扩展

导入dmp文件,要创建表空间,但是dmp文件大小为100G,而oracle设置的表空间最大只能为32G
解决办法:
为表空间增加一个数据文件即可

1.创建两个表空间:NNC_DATA01.DBF 和 NNC_INDEX01.DBF :
create tablespace NNC_DATA01
logging  
datafile 'H:\IDE\oracle\oradata\orcl\NNC_DATA01.dbf' 
size 50m  
autoextend on  
next 50m maxsize 32767m  
extent management local; 
 
 
create tablespace NNC_INDEX01
logging  
datafile 'H:\IDE\oracle\oradata\orcl\NNC_INDEX01.dbf' 
size 50m  
autoextend on  
next 50m maxsize 32767m  
extent management local;   
 
alter tablespace NNC_DATA01  
add datafile 'H:\IDE\oracle\oradata\orcl\NNC_DATA02.dbf' size 50m 
autoextend on next 50m maxsize 32767m;
 
 
2.创建用户nc633jx/a:
Create user nc633jx identified by a default tablespace NNC_DATA01 temporary  tablespace temp;
 
3.授权用户:
Grant connect,dba to nc633jx; 
 
4.还原数据库nc633jx:
impdp nc633jx/a@orcl schemas=nc633jx directory=DATA_PUMP_DIR dumpfile=1009jt1.DMP logfile=1009jt1.log 
 
 
-------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
 
5.删除表空间:
drop tablespace  NNC_DATA01  including contents and datafiles;
drop tablespace  NNC_INDEX01 including contents and datafiles;
 
 
6.删除数据库用户:
drop user  nc633jx cascade;
 
 
7.删除磁盘上生成的表空间文件:
H:\IDE\oracle\oradata\orcl\NNC_DATA01.dbf
H:\IDE\oracle\oradata\orcl\NNC_INDEX01.dbf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值