windws2012 oracle数据迁移至redhat7.6开贴

目录

导出

导入

用户方式导入

表空间方式导入

注意

完完,下篇根据rman迁移复制


通过上次创建的数据库进行数据迁移,因为涉及跨平台,普通数据泵导出导入很费劲,但是比较保守。

本次第一种方法先试试普通数据泵操作。后续通过rman Duplicate Database进行备份。

导出

查看源端数据库路径

select * from dba_directories;

测试导出大小

expdp 账号/密码 schemas=用户 estimate_only=y estimate=statistics

全量导出

expdp grxm_agcloud/grxm_agcloud@orcl dumpfile =full20200612.dmp full=y logfile=full.log directory=DATA_PUMP_DIR job_name=my_job

导入

因为涉及跨平台,先根据用户或表空间导入。注意需要创建用户和表空间,可以查询源数据库创建的语句。

用户方式导入

SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;

查看用户对应表空间

select username,default_tablespace from dba_users;

 

上面查询出来的为创建表空间的语句,开始创建表空间(注意修改路径)

  CREATE TABLESPACE "GRXM_AGCLOUD" DATAFILE 
  '/home/oracle/app/oracle/oradata/orcl/GRXM_AGCLOUD.ORA' SIZE 5242880
  AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
   ALTER DATABASE DATAFILE 
  '/home/oracle/app/oracle/oradata/orcl/GRXM_AGCLOUD.ORA' RESIZE 12367953920;

创建用户并赋权(给了dba权限,后期收回)

CREATE USER GRXM_AGCLOUD IDENTIFIED BY GRXM_AGCLOUD DEFAULT TABLESPACE GRXM_AGCLOUD;
grant connect,resource to GRXM_AGCLOUD;
grant unlimited tablespace to GRXM_AGCLOUD;
grant create database link to GRXM_AGCLOUD;
grant select any sequence,create materialized view to GRXM_AGCLOUD; 
grant dba to GRXM_AGCLOUD; 

开始导入

impdp GRXM_AGCLOUD/GRXM_AGCLOUD schemas=GRXM_AGCLOUD directory=DATA_PUMP_DIR dumpfile=FULL20200612.DMP logfile=FULL20200612_GRXM_AGCLOUD.DMP.log table_exists_action=truncate remap_schema=GRXM_AGCLOUD:GRXM_AGCLOUD

表空间方式导入

部分数据其实没有对应用户,可以查看

select username,default_tablespace from dba_users;

创建表空间后直接导入即可。

impdp GRXM_AGCLOUD_BAK/GRXM_AGCLOUD_BAK directory=DATA_PUMP_DIR dumpfile=FULL20200612.DMP tablespaces=GRXM_AGCLOUD_MONITOR_GLF_HIS_I:GRXM_AGCLOUD_MONITOR_GLF_HIS_I

注意

如果是新库,数据量大有可能导致redo写满,卡住。通过查看redo目录是否写满,满了就添加redo日志

先查看redolog信息

select group#,members,bytes/1024/1024,status from v$log;

 新建,(我导入数据又100g,创建14g日志9个)

alter database add logfile group 4('/home/oracle/app/oracle/oradata/orcl/redo04.log') size 14366M;
alter database add logfile group 5('/home/oracle/app/oracle/oradata/orcl/redo05.log') size 14366M;
alter database add logfile group 6('/home/oracle/app/oracle/oradata/orcl/redo06.log') size 14366M;

等待没使用的redo日志删除重建,因为默认才50m

alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;

物理位置也需要删除

rm /home/oracle/app/oracle/oradata/orcl/redo01.log
rm /home/oracle/app/oracle/oradata/orcl/redo02.log
rm /home/oracle/app/oracle/oradata/orcl/redo03.log 

20200618更新

发现部分索引导入失败,因为创建索引要分页更新数据,每页都要进行排序,所以把临时表空间沾满了。

 alter tablespace TEMP add tempfile '/home/oracle/app/oracle/oradata/orcl/temp03.dbf' size 10240m autoextend on next 1024m maxsize 30G;

20200619更新

发现部分表有问题,更新部分表,并更新最大连接数

alter system set processes=370 scope=spfile;
alter system set sessions=370 scope=spfile;

impdp GRXM_AGCLOUD_MONITOR/GRXM_AGCLOUD_MONITOR  directory=DATA_PUMP_DIR dumpfile=FULL20200612.DMP logfile=FULL20200612_GRXM_AGCLOUD_MONITOR.DMP.log  TABLES=GRXM_AGCLOUD_MONITOR.GR_GLF_MONITOR_DAY,GRXM_AGCLOUD_MONITOR.GR_RDC_MONITOR_DAY,GRXM_AGCLOUD_MONITOR.GR_STATION_MONITOR_DAY table_exists_action=replace 

完完,下篇根据rman迁移复制

会参考:https://www.linuxidc.com/Linux/2017-02/140532.htm

你可能感兴趣的:(oracle,oracle,数据库)