1、经过最近几天的研究和了解,oracle备份dmp文件的方式有两种
1.1、在oracle10g以后可以使用数据泵的方式进行备份,使用此方式备份的数据只能
使用impdp的方式导入。备份的简单语句如下:
--按照表导出
expdp orcldev/oracledirectory=mydirdumpfile=orcldev_table.dmp
tables=TAB_TEST,TAB_A
使用directory=dackup_path
命令的话,需要在备份之前设置dumpfile的路径,执行如下命令:
-- 创建dumpfile的路径
如果不创建的话要使用oracle本身的dumpfile的目录;Oracle默认的dunpfile的路径在这里
--
D:\app\caomm\admin\orcl\dpdump
(oracle的安装目录下找到admin\orcl{实例名称}\dpdump)
create directory
mydir as 'e:\backup';
如果自己不创建dumpfile的路径的话不能备份语句中就不能使用directory=mydir
参数,
命令如下:
expdp test_dmp/123456
file=orcldev_table.dmp
tables=action,notice
注意,现在不是dumpfile了,而是file,生成后的dmp文件会默认存在oracle的dpdump目录下。但是会有如下的警告:
导出成功后如图:
--导出该用户下的所有表:
expdp username/password directory=mydir
dumpfile=orcldev_table.dmp
schemas=username(这是备份所有的表)
还原(导入):
impdp username1/password dumpfile=sxxnh_EXPDAT.DMP
REMAP_SCHEMA=username:username1
还原(导入)指定的表:
impdp username1/password dumpfile=sxxnh_EXPDAT.DMP
tables=username.action,username.notice REMAP_SCHEMA=username:username1
注意:此处的dumpfile
默认找的oracle默认的dpdump文件夹;如果要自定义,则需要设置directory,步骤如上。其中username是源用户名,username1是目标用户名。要全部导入则不需要使用tables属性
1.2、第二种备份方式是exp的方式,命令如下:
exp username/password file=D:/test_dmp.dmp
tables=table1,table2
如果想全部导出的话:
exp username/password
file=D:/test_dmp.dmp或者
exp username/password
file=D:/test_dmp.dmp full=y
这样回到所有的信息,比如存储过程、视图、用户表等;
--备份当前用户下的所有表:
exp username/passwordfile=d:\daochu.dmp
owner=username
还原(导入):
imp username1/password
file=D:/backup/dapchu.dmp fromuser=username
touser=username1 tables=tab_1,table_2
如果想要全部导入则不需要使用tables参数。