关于数据表导出
情况如下:
有一数据库,ORACLE,专为一项目开发使用.包括新建用户及此用户下的表.
为项目演示,我要将数据库导入我电脑的oracle数据库中.每次我都是全数据库导入导出,太大也麻烦.请问:\
1.我如何只导出导入用户及表,导出导入时用什么身份操作.
2.我如果导入过,就是我的电脑上有这个用户和表.但服务器的用户表有改动,也可能用户也有改动.这时怎么导出导入最新的.
我应该说明白了吧.
请各位赐教.以前没用过oracle,还请讲解是详细些.
谢谢.
------解决方案--------------------1-用户手动创建,使用exp/imp工具进行数据导入导出
2-可以称得上是同步更新了,不会
------解决方案--------------------就第一点,可以这么操作:
单独导出需要的用户及数据,exp user/password@数据库服务名(项目数据库) file=c:\user.dmp log=c:\user.log ignore=y;
导入时使用imp user/password@数据库服务名(你自己的数据库) file=c:\user.dmp log=c:\user.log ignore=y;
至于你如果是如你第二点所说,那就使用sys用户全库导出再导入吧.因为你的用户和对象都要变化,改来改去麻烦.
------解决方案--------------------exp/imp是自帮助可执行文件,exp -help 可以获得帮助
------解决方案--------------------cmd 进入命令行输入以下命令
exp user/passwd@TEST file=d:\daochu.dmp tables=(table1,table2..);
imp user/passwd@TEST file=d:\daochu.dmp tables=(table1,...) ;
可以查看帮助信息,-help
------解决方案--------------------不支持增量导出和导入。
------解决方案--------------------1.使用自身的或DBA权限进行exp;
2.每周备份一个循环,使用windows的“任务计划”,定时执行如:星期一.sql
------解决方案--------------------我建议你还是全库导入导出.
------解决方案--------------------在你服务器上用你当前的用户导出,在你的电脑上创建和该用户一样权限的用户,用该用户导入,不建议用sys,system等系统用户导入导出,会导出一些没有用的表。当服务器上的更新后可以再次导出,将你的电脑上的用户类似创建一个用户再次导入,连接程序就可以用类似创建的用户,这样应该能解决你的电脑和服务器不一致的问题。
------解决方案--------------------1.
exp username/password@databasename file=D:\*.dmp tables=tablenames;
imp username/password@databasename file=D:\*.dmp tables=tablenames;
2.
select 'drop ' || object_type || ' username.' || object_name || ';' from all_objects where owner = 'username';
'DROP'||OBJECT_TYPE||'username.'||OBJECT_NAME||';'
------解决方案--------------------学习了