oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库
考虑:
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克隆生成一个新数据库相关推荐
- python自动导出数据脚本_使用python生成一个导出数据库的bat脚本文件的示例代码...
这篇文章分享使用python生成一个导出数据库的bat脚本文件的示例代码 实例如下:# 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库 ...
- oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...
sql把两个表合并成一个新表的语句应该怎么写SQL SERVER: select * into 表3 from ( select 字段列表1 from 表1 union all select 字段列表 ...
- expdp oracle 并行_oracle 11g逻辑备份介绍-expdp/impdp
Data Pump(数据泵) 是从oracle10g 引入的全新的,用于快速迁移数据的方式.Data Pump与exp/imp最大的区别是,Data Pump是一个位于服务器端的工具,通过Data P ...
- Oracle expdp/impdp导出导入命令及数据库备份
经常报错: ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283: invalid file o ...
- Oracle expdp impdp导出导入命令及数据库备份
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- oracle命令导入expdp,Oracle expdp/impdp导出导入命令及数据库备份
@H_404_1@使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORA ...
- mysql导出为lua配置表文件_利用lua生成一个导出数据库的bat脚本文件
function getExportDbSql(db, index)-- 获取导出一个数据库实例的sql语句 local sql = string.format('mysqldump -u%s -p% ...
- python自动导出数据脚本_利用python生成一个导出数据库的bat脚本文件的方法
# 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...
- 利用python生成一个导出数据库的bat脚本文件
# 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s - ...
- impdp导入mysql_Oracle expdp/impdp导出导入命令及数据库备份(转)
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
最新文章
- 「名词」数据管理、数据治理、数据中心、数据中台、数据湖、数据资产等
- java 微信证书文件_JAVA微信企业付款如何使用证书、证书调用实例
- 公益性岗位计算机考试内容,公益性岗位公共基础知识:计算机概述-计算机硬件系统(1)...
- 电路中滤波电容和退耦电容_电子电路中电容的作用,滤波消抖,充放电,耦合,退耦...
- 微软解释 Edge 浏览器比 Chrome 更加安全的原因
- 一个IP绑定多个域名(虚拟主机)设置方法
- Django Python MySQL Linux 开发环境搭建
- c# asp.net mvc 开发的正方教务助手(一)
- php多个表中查找数据_Excel实战技巧74: 在工作表中创建搜索框来查找数据
- (干货!最全)Tomcat入门
- C++ 可变索引模板 和 template template
- Linux下使用润乾设计器
- Java 编码规范11(安全规约)
- Unity - Projector - 实时[假]阴影
- 电脑自动关机后文件丢失,如何恢复
- UE4-(蓝图)第四十七课过场动画之主序列新建镜头、镜头剪辑、部分功能简介
- SQL 面试用题(重点)
- js 日期格式转换为中文日期
- 中式客厅装修的特点 亦古亦今的惊艳每一家
- 第二关,KPM算法和next函数值
热门文章
- console.log(iVal)是什么?显示在哪里?
- Android MediaPlayer 属性
- CSDN 如何删除自己不用的分类(亲测有效!)
- 十八.描述符(__get__,__set__,__delete__)
- ios中UIView和CALayer关系
- Node.js学习入门
- [Postgres] Group and Aggregate Data in Postgres
- X讯开始赤裸裸的流氓了
- 【转】Java中重载和重写的区别
- 【心情】换个皮肤试试看