导出Oralce数据库:
在Dos窗口执行
$ exp user/pwd file=/oracle/test.dmp full=y // 导出命令 用户名/密码 导出的地址 全部导出
三种模式
(1)表方式,将指定表的数据导出/导入。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2 //导出某张表的部分数据 $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1 query=\“where col1=\‘…\’and col2 \<…\” //导入:导入一张或几张表 $ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1, table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
(2)用户方式,将指定用户的所有对象及数据导出/导入。
//导出: $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx, yy) //只导出数据对象,不导出数据 (rows=n ) $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n //导入: $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2 commit=y ignore=y
(3)全库方式,将数据库中的所有对象导出/导入导出:
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=ycommit=y ignore=y //导入: $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbuser touser=dbuser2
高级选项
1. 分割成多个文件
//以多个固定大小文件方式导出:这种做法通常用在表数据量较大,单个 dump文件可能会超出文件系统的限制的情况 $ exp user/pwd file=1.dmp,2.dmp,3.dmp,…filesize=1000m log=xxx.log full=y //以多个固定大小文件方式导入 $ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxx fromuser=dbuser touser=dbuser2 commit=y ignore=y
2. 增量导出/导入
// oracle 9i 以后 exp 不再支持 inctype
必须为 SYS 或 SYSTEM 才可执行增量导出导入
增量导出: 包括三个类型:
1)“完全”增量导出(Complete) // 备份整个数据库
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete
2)“增量型”增量导出 导出上一次备份后改变的数据。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental
3) “累计型”增量导出(Cumulative)只导出自上次“完全”导出之后数据库中变化 了的信息。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative
增量导入:
$ imp usr/pwd FULL=y inctype=system/restore/inct ype
其中:
SYSTEM: 导入系统对象
RESTORE: 导入所有用户对象