考虑:

1. 为什么不用rman/duplicate?

答:磁盘空间不足。源数据库800G,可供新使用的空间只有300G,所以不能用rman/duplicate。

2. 为什么可以用expdp/impdp?

答:因为源数据库的数据文件虽然有800G,但通过查dba_segments,其实际的segments只有不到300G,考虑到每个segment都有一定的空闲空间,实际的数据量一定更小。满足磁盘空间的限制。

3. 有什么缺点?

答:由于存在时间差,故不能最新的数据。[@more@]

行动:

1. 导出源数据库数据。(只导出两个application用户,不导出系统用户)

参数文件:

[oracle@azhao-linux rebuild_wmmpmpp1]$ cat expdp_wmmpmp1_WPC_MP.par

userid="/ as sysdba"

SCHEMAS=WPC_MP,TOM

DIRECTORY=ITD_DIR

DUMPFILE=expdp_wmmpmp1_WPC_MP_TOM_20091030_1900.dmp

LOGFILE=expdp_wmmpmp1_WPC_MP__TOM_20091030_1900.log

运行expdp:

export NLS_LANG=american_america.AL32UTF8

echo $NLS_LANG

nohup expdp parfile=expdp_wmmpmp1_WPC_MP.par &

##非常重要:在导出导入之前一定要设置正确的字符集,否则一旦出现错误,只有重建数据库。

##导出的dump文件只有35G,用了两个半小时。说明300G的segment中有大量的空数据块。

2. 准备目标数据库的pfile和password file

3. 准备创建表空间的脚本,表空间的名字要和源数据库一致。另外,由于300G的空闲空间分布在几个卷上,为了保证不把卷撑爆,要计划好哪几个数据文件在哪个卷上。

4. 准备创建空数据库的脚本。

脚本1:(创建空数据库的骨架,用时不超过20分钟)

[oracle@azhao-linux rebuild_wmmpmpp1]$ cat create_db.sql

connect / as sysdba

spool cre8_wmmpmpp1.log

REM set termout off

set echo on

REM

REM Start the instance for wmlmap1 database

REM

startup nomount pfile='/opt/oracle_mppim/product/1020/dbs/initwmmpmpp1.ora'

REM

REM Create the database

REM SYSTEM tablespace configuration guidelines:

REM

REM General-Purpose RDBMS 5Mb

REM Additional dictionary for applications 10-50Mb

REM

REM Redo Log File configuration guidelines:

REM

REM Use 3+ redo log files to relieve ``cannot allocate new log...'' waits

REM Use ~100Kb per redo log file per connection to reduce checkpoints

REM Put redo log members on different disks if possible.

create database "wmmpmpp1"

LOGFILE

GROUP 1 (

'/ora/wmmppmpp1/redo1/wmmpmpp1/redo1a.log',

'/ora/wmmppmpp1/redo2/wmmpmpp1/redo1b.log'

) SIZE 500M,

GROUP 2 (

'/ora/wmmppmpp1/redo1/wmmpmpp1/redo2a.log',

'/ora/wmmppmpp1/redo2/wmmpmpp1/redo2b.log'

) SIZE 500M,

GROUP 3 (

'/ora/wmmppmpp1/redo1/wmmpmpp1/redo3a.log',

'/ora/wmmppmpp1/redo2/wmmpmpp1/redo3b.log'

) SIZE 500M,

GROUP 4 (

'/ora/wmmppmpp1/redo1/wmmpmpp1/redo4a.log',

'/ora/wmmppmpp1/redo2/wmmpmpp1/redo4b.log'

) SIZE 500M

archivelog

maxinstances 1

maxlogmembers 2

maxlogfiles 255

maxdatafiles 1024

maxloghistory 453

character set "AL32UTF8"

datafile '/ora/wmmppmpp1/ts1/wmmpmpp1/data/system_dat_01.dbf' SIZE 1000M

extent management local

sysaux datafile '/ora/wmmppmpp1/ts3/wmmpmpp1/data/sysaux_dat_01.dbf' SIZE 4000M

default temporary tablespace new_temp tempfile '/ora/wmmppmpp1/ts3/wmmpmpp1/temp/temp_dat_01.dbf' SIZE 2048M

extent management local uniform. size 1M

undo tablespace undo01 datafile '/ora/wmmppmpp1/ts3/wmmpmpp1/undo/undo01.dbf' SIZE 2000M;

alter database open;

set echo off

spool off

##注意,使用“create database”语句需要在pfile中设置undo_management=auto

脚本2:(创建数据字典等血肉,用时大约一个半小时)

[oracle@azhao-linux rebuild_wmmpmpp1]$ cat create_db_2.sql

connect / as sysdba

spool wmmpmpp1_create_db_2.log

REM set termout off

set echo off

@$ORACLE_HOME/rdbms/admin/catalog

set echo off

@$ORACLE_HOME/rdbms/admin/catproc

@$ORACLE_HOME/rdbms/admin/catblock

-- alter user system temporary tablespace TEMP;

-- alter user sys temporary tablespace TEMP;

connect system/manager

set echo off

@$ORACLE_HOME/rdbms/admin/catdbsyn

set echo off

@$ORACLE_HOME/sqlplus/admin/pupbld

connect /as sysdba

grant select on v_$database to public;

spool off

5. 创建空数据库

依次运行两个脚本:

export $ORACLE_SID=wmmpmpp1

echo $ORACLE_SID

[oracle@azhao-linux rebuild_wmmpmpp1]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Nov 2 02:01:00 2009

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Connected to an idle instance.

SQL> @create_db.sql

SQL> @create_db_2.sql

检查dba_registry,里面只有两个组件,如果都是VALID,数据库就创建成功了。

6. 创建表空间

7. 比照源数据库创建用户和角色(对于,不创建也可以,导入时会自动创建,但是imp必须创建)

8. 比照源数据库授权

9. impdp数据

impdp参数文件:

[oracle@azhao-linux rebuild_wmmpmpp1]$ cat impdp_wmmpmpp1_WPC_MP.par

userid="/ as sysdba"

DIRECTORY=ITD_DIR

DUMPFILE=expdp_wmmpmp1_WPC_MP_TOM_20091030_1900.dmp

LOGFILE=impdp_wmmpmp1_WPC_MP__TOM_20091031.log

FULL=y

PARALLEL=5

运行impdp:

export NLS_LANG=american_america.AL32UTF8

echo $NLS_LANG

nohup impdp parfile=impdp_wmmpmpp1_WPC_MP.par &

impdp导入了大约30G的表,只用了一个小时。然后就一直停在了导入索引上,在两个半小时之后,终于结束了。总共导入了88G的数据,花费了三个半小时。

10. 重启数据库并检验

通过检验dba_objects,导入的数据比源数据库少了4个分区表和12 个分区索引,这是不应该的。经查,原来缺少的对象都是源数据库回收站中的对象。看来expdp导出的时候避开了回收站。

oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库相关推荐

  1. python自动导出数据脚本_使用python生成一个导出数据库的bat脚本文件的示例代码...

    这篇文章分享使用python生成一个导出数据库的bat脚本文件的示例代码 实例如下:# 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库 ...

  2. oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...

    sql把两个表合并成一个新表的语句应该怎么写SQL SERVER: select * into 表3 from ( select 字段列表1 from 表1 union all select 字段列表 ...

  3. expdp oracle 并行_oracle 11g逻辑备份介绍-expdp/impdp

    Data Pump(数据泵) 是从oracle10g 引入的全新的,用于快速迁移数据的方式.Data Pump与exp/imp最大的区别是,Data Pump是一个位于服务器端的工具,通过Data P ...

  4. Oracle expdp/impdp导出导入命令及数据库备份

    经常报错: ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file o ...

  5. Oracle expdp impdp导出导入命令及数据库备份

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

  6. oracle命令导入expdp,Oracle expdp/impdp导出导入命令及数据库备份

    @H_404_1@使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORA ...

  7. mysql导出为lua配置表文件_利用lua生成一个导出数据库的bat脚本文件

    function getExportDbSql(db, index)-- 获取导出一个数据库实例的sql语句 local sql = string.format('mysqldump -u%s -p% ...

  8. python自动导出数据脚本_利用python生成一个导出数据库的bat脚本文件的方法

    # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...

  9. 利用python生成一个导出数据库的bat脚本文件

    # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...

  10. impdp导入mysql_Oracle expdp/impdp导出导入命令及数据库备份(转)

    使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...

最新文章

  1. 「名词」数据管理、数据治理、数据中心、数据中台、数据湖、数据资产等
  2. java 微信证书文件_JAVA微信企业付款如何使用证书、证书调用实例
  3. 公益性岗位计算机考试内容,公益性岗位公共基础知识:计算机概述-计算机硬件系统(1)...
  4. 电路中滤波电容和退耦电容_电子电路中电容的作用,滤波消抖,充放电,耦合,退耦...
  5. 微软解释 Edge 浏览器比 Chrome 更加安全的原因
  6. 一个IP绑定多个域名(虚拟主机)设置方法
  7. Django Python MySQL Linux 开发环境搭建
  8. c# asp.net mvc 开发的正方教务助手(一)
  9. php多个表中查找数据_Excel实战技巧74: 在工作表中创建搜索框来查找数据
  10. (干货!最全)Tomcat入门
  11. C++ 可变索引模板 和 template template
  12. Linux下使用润乾设计器
  13. Java 编码规范11(安全规约)
  14. Unity - Projector - 实时[假]阴影
  15. 电脑自动关机后文件丢失,如何恢复
  16. UE4-(蓝图)第四十七课过场动画之主序列新建镜头、镜头剪辑、部分功能简介
  17. SQL 面试用题(重点)
  18. js 日期格式转换为中文日期
  19. 中式客厅装修的特点 亦古亦今的惊艳每一家
  20. 第二关,KPM算法和next函数值

热门文章

  1. console.log(iVal)是什么?显示在哪里?
  2. Android MediaPlayer 属性
  3. CSDN 如何删除自己不用的分类(亲测有效!)
  4. 十八.描述符(__get__,__set__,__delete__)
  5. ios中UIView和CALayer关系
  6. Node.js学习入门
  7. [Postgres] Group and Aggregate Data in Postgres
  8. X讯开始赤裸裸的流氓了
  9. 【转】Java中重载和重写的区别
  10. 【心情】换个皮肤试试看