怎么指定时间的导出数据库某个表的DMP文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么指定时间的导出数据库某个表的DMP文件?相关的知识,希望对你有一定的参考价值。
我远程到一台2003服务器上,再用secure CRT连到一台unix系统上,这一台是oracle数据库服务器。目前我想导出几个其中的表,但是有的表非常大,几百个G。因此我想导出一天24小时的数据即可,旧的不要了。我导回来做性能测试用的。但我不知道exp这个命令怎么加时间参数的,网上查到命令如下:
将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
那么怎么指定一天24小时呢?
用pl sql developer有什么办法导出一个表的一部分数据呢,因为有的表有几千亿行,全部导出得有几个T或者几百G,我想只导出一部分。最好是最近一天的或者一个月的,如不能按时间则导出个10万行
可以写一个脚本。内容如下:
@echo offset NLS_LANG= AMERICAN_AMERICA.AL32UTF8
set hour=%time:~,2%
if "%time:~,1%"==" " set hour=0%time:~1,1%
set temp=%date:~0,4%-%date:~5,2%-%date:~8,2%-%hour%-%time:~3,2%-%time:~6,2%
exp 用户名/密码@数据库实例 file=D:\\db_backup\\daily_backup\\oradata_%temp%.dmp log=D:\\db_backup\\daily_backup\\oradata_%temp%.log tables=(表名)
pause
说明:其中中文部分按照自己实际情况填写,保存文件以.bat为后缀,如上述文件可起名为exp.bat,保存在D:\\db_backup\\daily_backup\\路径下。
然后是设定执行时间,以win7为例:
1、点击开始按钮,依次选择打开“所有程序—附件—系统工具”,找到“任务计划程序”即可打开Win7系统的任务计划设置面板。也可以点击Win7开始按钮,在多功能搜索框中输入“任务计划”,直接从搜索结果中打开。
2、在Win7系统的“任务计划程序”设置面板中,我们点击菜单“操作—创建基本任务”。
3、输入新建任务的名称和描述,点击“下一步”按钮。
4、在“触发器”选项中选择自己需要的执行频率,比如是每天、每周、每月还是单次等等,继续下一步。
5、继续设置触发时间详细选项。继续点击下一步。
6、现在进入启动程序详细设置,在“程序或脚本”一栏点击“浏览”,选择自己已经写好的批处理文件。
7、点击下一步之后,我们可以看见Win7任务计划会给出当前设置任务的详细情况,确认无误后点击“确认”按钮即可完成Win7定时关机的任务计划设定。
参考技术A 如果真不行的话,你可以先CREATE TABLE AS SELECT FROM WHERE DATE然后再导出新表 参考技术B 导出加where条件
exp scott/scott@orcl tables=(emp) query = 'HIREDATE >=TO_DATE(''19810101'',''YYYYMMDD'')' file = e:\emp.dmp本回答被提问者采纳
oracle怎么导入dmp文件
oracle怎么导入dmp文件
关于dmp文件我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习。
dmp文件导出
dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据、导出指定用户的所有表、导出指定表。
这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图
打开命令行:
1,将数据库ORACLE完全导出,用户名system密码manager 导出到c:\\daochu.dmp中
exp system/manager@ORACLE file=c:\\daochu.dmp full=y
2,将数据库中RFD用户与,JYZGCX用户的表导出
exp system/manager@ORACLE file=d:\\daochu.dmpowner=(RFD,JYZGCX)
3,将数据库中的表T_USER、T_ROLE导出
expJYZGCX/JYZGCX@ORACLEfile= d:\\data\\newsmgnt.dmp tables=(T_USER,T_ROLE)
上面的system为用户名,manager为密码,ORACLE为数据库实例名,其实不一定非的用system用户,只要是拥有管理员权限的用户都可以。
dmp文件导入
1,打开“开始”-->输入cmd—> sqlplus /nolog;
2,输入 conn / as sysdba管理员账户登录;
3,需要创建表空间,如果我们知道需要导入的数据库的表空间直接创建就可以,如果不不知道,也没有关系,我们可以用txt打开dmp文件,使用快捷键ctrl+F,查找tablespace,就可以找到这个dmp文件所对应数据库的表空间,然后创建我们找到的表空间就可以;
步,不创建的表空间,创建用户,并分配权限;
5,打开“开始”-->输入cmd(注意:这里是cmd窗口,不是sqlplus窗口!!!),输入以下语句:“imp kang/123456@localhost/ORACLEfile="C:\\daochu.dmp"full=y ignore=y”
上述语句说明如下:
kang是创建的登录数据库用户名;
123456是登录数据库的密码;
localhost:代表当前数据库的地址是本机,如果是远程导入,替换成对应的ip地址就行
ORACLE:是实例名称)
file:后面的是你当前dmp文件存放的路径
full=y,这个貌似是全部
ignore=y,忽略一些错误
备注:关于数据库实例、表空间、用户等基本概念和创建的语句可参考前面的文章“Oracle学习——扫盲篇”
小结
本篇文章主要讲述了,oracle数据导出和导入的具体步骤,其中导入dmp文件的时候即便不知道表空间、用户名和密码也可以进行导入。
参考技术A通过导入导出dmp文件,可以把一个或多个数据库表的表结构和表数据同时导入导出。下面是进行导入导出的步骤:
1、进入命令行,点击开始,输入cmd;
2、回车,出现命令行窗口;
3、导入的命令是“imp 用户名/密码@网络服务名 file=xxx.dmp full=y”,输入此命令即可导入;
4、导出的命令是“exp 用户名/密码@网络服务名 file=xxx.dmp tables=(表名)”,输入此命令即可导出。
参考技术B 1、先看你要目标数据库与备份的版本差异(此类问题解决的是导入版本出错问题)2、是怎么备份出来的(是exp备出的,还是数据泵备出的)
2、备份出来的数据的用户名
3、了解备份是有分区表的还是没有分区表的,有分区表的先建立分区表空间。
4、看数据量大不大,如果大的话要先建立大表的结构,这样导入速度快。
5、先按照先前的表空间建立数据库。
6、建立完成导入(开始->运行->输入cmd imp 用户名/密码 fromuser=备份出来的用户名 touser=用户名 file=路径\备份.dmp log=路径\日志名.log buffer=4096000 ignore=y commit=y feedback=10000) 参考技术C 本机安装了ORACLE 的话
点击开始-->运行-->cmd
在黑窗口 imp 用户名/密码@数据库名 file=dmp路径 full="y"
imp mes/mes@ORCL file="d:\110516mes.dmp" full="y" 这是我的。
导入的时候你要创建相应的用户赋予权限 参考技术D 开始->运行->输入cmd->imp PECARD_HN/PECARD_HN@127.0.0.1:1521/orcl file=E:\work\dmp\PECARD_HN.dmp full=y
以上是关于怎么指定时间的导出数据库某个表的DMP文件?的主要内容,如果未能解决你的问题,请参考以下文章
请问oracle怎么从dmp文件只恢复一张表的数据,恢复到另一个用户中