在平时的工作中,我们难免会遇到要备份数据,当然,用pl/sql可以实现通过导出数据来备份数据,但有时我们需要定制一些脚本来实现数据备份时,就不得不用到exp命令。
用exp来进行数据备份时可以有三种备份模式,分别是完全模式,用户模式和表模式。完全模式是用来备份整个数据库的,用户模式是用来备份数据库中某个用户下的数据,表模式是用来备份某个表的信息。下面我将详细解说用法。
先贴出exp命令常用的一些参数说明及其默认值,如下图所示:
1.完全模式下导出数据使用如下命令:
exp systemUser/passWord@SID buffer=buffer-size file=C:\full.dmp full=y
参数说明:systemUser就是系统管理员用户,一般为system,passWord是系统管理员的密码,SID为要导出的数据库
的服务名。buffer-size为设置的缓冲区的大小,file是导出文件的存储路径,注意存储格式,full=y表示完全导出,
具体参考exp命令参数说明。
2.用户模式下导出数据使用如下命令:
exp systemUser/passWord@SID buffer=buffer-size file=C:\myuser.dmp owner=myuser
参数说明:systemUser就是系统管理员用户,一般为system,passWord是系统管理员的密码,SID为要导出的数据库
的服务名。buffer-size为设置的缓冲区的大小,file是导出文件的存储路径,注意存储格式。owner用于指定哪些
用户的数据需要被导出,可以为多个用户,其设置为owner=(user1,user2,...)。
当然导出某个特定用户myuser下的数据也可以这样写命令:
exp myuser/password@SID buffer=buffer-size file=C\myuser.dmp
参数说明:myuser为指定的用户,password为该用户的密码,SID为指定的数据库
3.表模式下导出数据用如下命令:
exp myuser/password@SID buffer file:C:\table.dmp tables=(table1)
参数说明:myuser为该表所属的用户,password为用户密码,SID为该表所在的数据库,
tables用来指定要导出的表,可以是多个表,命令为tables=(table1,table2,...)
oracle备份表数据到另一个表。