数据库每个表数据部分导出,保证系统正常运行
2018-01-28 15:48
246 查看
一、前言
最近需要对现有的项目就行修改,修改成另一个项目用于投标使用,修改过程主要是页面数据名称和匹配投标要求的修改。碰到的问题是现在系统数据库(orcal)过于庞大(近30G,数据表近400个),因为投标要部署两套完整的系统,所用要做到数据库每个表数据部分导出,保证系统正常运行。
二、具体过程
思路:首先获得导出对应用户的所用空表和储存过程等。之后将所用空表删除,导出每个表的前1000条数据(一般足够),进行导入 。核心语句就是 imp 用户/密码@localhost:1521/orcl file=f:\1000data.dmp tables=(多个表名称)
1.导出对应用户的所用空表和储存过程等,这一步主要是要将数据库中的储存过程、定时的导出。
exp 用户/密码@localhost:1521/orcl owner=用户 file=f:\kongdata.dmp rows=n compress=n
2.所用空表删除,导出所用空表删除,导出每个表的前1000条数据。空表不删除不能进行所用表的导入。plsql直接删除就行
获得本用户所用表,将数据表后加上逗号,方便执行导出。
select t.TABLE_NAME||',' from user_tables t
复制所用表,打开word,对换行进行替换,之后执行exp导出每个表前1000条数据,
exp 用户/密码@localhost:1521/orcl file=f:\qian1000.dmp tables=(
SRW_CF,SRW_XK,SSFJ_CF,SSFJ_XK,SSJJ_QZSRW_CF,SRW_XK,SSFJ_CF,SSFJ_XK,SSJJ_QZ) QUERY=\"WHERE rownum<1000\",注意删除最后一个逗号。
注意事项:1.exp中表长度有限制,一次执行太多可能会报错。我执行时对400个表分三次进行执行。
2.orcal 11g的新特性空表不能直接导出,需要注意(SELECT 'ALTER TABLE '||TABLE_NAME||' ALLOCATE EXTENT;' SQLSTR FROM USER_TABLES WHERE SEGMENT_CREATED='NO' 执行这句话,执行获得的每一个语句就行)
3.将导出的数据导入到新数据库中
imp 用户/密码@localhost:1521/orcl file=F:\kongdata.dmp full=y ignore=y
经过测试,系统可以运行。数据库数据由原来的30G缩小到100M以下。部署速度明显就快了。
最近需要对现有的项目就行修改,修改成另一个项目用于投标使用,修改过程主要是页面数据名称和匹配投标要求的修改。碰到的问题是现在系统数据库(orcal)过于庞大(近30G,数据表近400个),因为投标要部署两套完整的系统,所用要做到数据库每个表数据部分导出,保证系统正常运行。
二、具体过程
思路:首先获得导出对应用户的所用空表和储存过程等。之后将所用空表删除,导出每个表的前1000条数据(一般足够),进行导入 。核心语句就是 imp 用户/密码@localhost:1521/orcl file=f:\1000data.dmp tables=(多个表名称)
1.导出对应用户的所用空表和储存过程等,这一步主要是要将数据库中的储存过程、定时的导出。
exp 用户/密码@localhost:1521/orcl owner=用户 file=f:\kongdata.dmp rows=n compress=n
2.所用空表删除,导出所用空表删除,导出每个表的前1000条数据。空表不删除不能进行所用表的导入。plsql直接删除就行
获得本用户所用表,将数据表后加上逗号,方便执行导出。
select t.TABLE_NAME||',' from user_tables t
复制所用表,打开word,对换行进行替换,之后执行exp导出每个表前1000条数据,
exp 用户/密码@localhost:1521/orcl file=f:\qian1000.dmp tables=(
SRW_CF,SRW_XK,SSFJ_CF,SSFJ_XK,SSJJ_QZSRW_CF,SRW_XK,SSFJ_CF,SSFJ_XK,SSJJ_QZ) QUERY=\"WHERE rownum<1000\",注意删除最后一个逗号。
注意事项:1.exp中表长度有限制,一次执行太多可能会报错。我执行时对400个表分三次进行执行。
2.orcal 11g的新特性空表不能直接导出,需要注意(SELECT 'ALTER TABLE '||TABLE_NAME||' ALLOCATE EXTENT;' SQLSTR FROM USER_TABLES WHERE SEGMENT_CREATED='NO' 执行这句话,执行获得的每一个语句就行)
3.将导出的数据导入到新数据库中
imp 用户/密码@localhost:1521/orcl file=F:\kongdata.dmp full=y ignore=y
经过测试,系统可以运行。数据库数据由原来的30G缩小到100M以下。部署速度明显就快了。
相关文章推荐
- 整合ssh对于数据的增删改查数据运行正常但在数据库中没保存
- (转载)数据库设计指南----第4 部分— 保证数据的完整性
- 如果系统能够保证不在0x000000007fffffff以上的地址分配内存,那么应用程序就能够正常运行。把一个高33位都为0的64位地址截断为32位地址,无论如何都不会产生问题。系统可以提供这一保证,
- java导出数据库txt文件,并以&分隔符每个字段数据
- mysql 导出数据库部分字段或部分数据
- 数据库出现问号,界面能正常显示,如果数据的数据需要备份或者导出的操作
- 如何导出数据库的一张表里面的部分数据?
- 系统使用过程中,部分数据无法正常显示出来
- jdbc,数据库案例:客户信息管理系统:jsp部分,数据库数据封装类,dao接口和实现
- Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第二部分:适应不同数据库系统的查询)
- MySql导入(导出【导出部分表结构及数据】)数据库
- 数据库设计指南——第四部分(保证数据的完整性)
- Cent OS系统导入导出数据库和数据表
- 导入导出我们系统数据的设计思路
- 关于小型管理系统的数据库连接及其运行
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复
- 常遇到日期型数据为空,却要插入数据库并正常显示出来,我是这么做的,你呢?
- 【Java虚拟机结构(第2部分)运行时数据区】摘要
- poi导入导出数据库表数据实例