oracle 备份

转载:http://blog.csdn.net/rxr1st/article/details/2036944

-----------------------------------------------------------------------------------------------------------

最近因为再项目中每天都要涉及到oracle数据库的备份问题,而且服务器运行再远端,感觉每天手动进行备份是一件很费时的事情,所以查了查oracle的数据库备份的一些相关内容,感觉网上很多地方讨论的不是很清楚,下面就我的理解来谈谈oracle的自动备份问题。

服务器运行的环境是windows-server 2003,采用数据库为9i(其他版本可能一些参数会有所变化)。

首先我建立一个批处理文件,内容如下:

exp user/password rows=y indexes=n compress=n buffer=65536 file='d:/databackup/dmp/%date:~0,10%.dmp' full=y log='d:/databackup/log/%date:~0,10%.log'

现在来简单说说里面参数的一些具体意义:

exp 为oracle的导出数据库的操作命令;

user 为用户名;password 为密码;

rows=y表明导出数据行(默认为y);

indexes=n表明不导出索引(默认为y);

full=y表明是要完整备份数据库(默认为n);

compress=n表明不把所有的数据压缩再一个数据块上面(说明:默认EXP导出时,compress = Y, 也就是把所有的数据压缩在一个数据块上,导入时,如果不存在连续一个大数据块, 则会导入失败。导出80M以上的表时,设置compress= N, 则不会引起这种错误。);

buffer=65536 表明将数据缓冲设置为 65536大小,我这边o9i的默认缓冲大小为4096,当备份的数据库较大时建议将buffer值设置大一些。如我备份的数据库有接近140M,我以前没有设置buffer选项,采取默认的4096,备份一次我特地的计算了时间,大概是2分钟到3分钟。后来我把buffer设置为65536后大概只要不到半分钟的时间。

file='d:/databackup/dmp/%date:~0,10%.dmp' 表明备份后的数据备份文件存放在d:/databackup/dmp/下面,文件名为当前备份的服务器上的日期,如今天为2008-01-11则备份的文件名称为2008-01-11.dmp。

log='d:/databackup/log/%date:~0,10%.log'表明我们备份操作时的日志文件存放在d:/databackup/log/下面,文件名称为日期加后缀的形式。如今天为2008-01-11则备份的日志文件名称为2008-01-11.log。

批处理文件建立以后就把它放入windows中附件的任务选项中,设置管理员的用户名和密码,并设置自动运行的时间,则任务会定时自动运行。

配置完成。

下面我再来谈谈我对于oracle数据库导出方式的一些理解:

(1)简单导出模式

Oracle支持三种方式类型的输出:

 (1)、表方式(T方式),将指定表的数据导出。

    (2)、用户方式(U方式),将指定用户的所有对象及数据导出。

    (3)、全库方式(Full方式),将数据库中的所有对象导出。

 我们上面的例子是采用的全库方式(full方式)。

现在我们采用用户方式(U方式),我们将批处理文件改为

exp user/password owner=user rows=y indexes=n compress=n buffer=65536 file='d:/databackup/dmp/%date:~0,10%.dmp'  log='d:/databackup/log/%date:~0,10%.log'

注意将full=y删除,并加上owner=user,表明只是导出用户user的数据库,再我的实际运行中发现备份的数据会大大减小。

最后我们采用表方式(T方式)来进行操作,将批处理文件改为

exp user/password tables=user.table1,user.table2 rows=y indexes=n compress=n buffer=65536 file='d:/databackup/dmp/%date:~0,10%.dmp'  log='d:/databackup/log/%date:~0,10%.log'

注意与U方式的区别,我将owner=user删除,加入tables=user.table1,user.table2,多个表空间中间用逗号隔开,则备份出来的备份文件中就只存在user.table1和user.table2两个表。

(2)增量导出模式

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

  增量导出包括三种类型:

 (1)、“完全”增量导出(Complete)即备份三个数据库,比如:exp user/password inctype=complete file='d:/databackup/dmp/%date:~0,10%.dmp'  。

 (2)、“增量型”增量导出备份上一次备份后改变的数据,比如:exp user/password inctype=incremental file='d:/databackup/dmp/%date:~0,10%.dmp'  。

 (3)、“累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:exp user/password inctype=cumulative file='d:/databackup/dmp/%date:~0,10%.dmp'  。

因为增量备份我还没有具体的使用和弄清楚,待以后弄明白了再来谈谈我的感想!

-----------------------------------------------------------------------------------------------------------

rm /backup/  
# 清空 /backup目录

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 
E:\backupfile\nkdp_log_%year%%month%%day%.log
:删除前面导出的扩展名为“.dmp”和“.log”的数据文件和日志文件。

erase  E:\backupfile\nkdp_%year%%month%%day%.dmp 

E:\backupfile\nkdp_log_%year%%month%%day%.log

:删除前面导出的扩展

名为“

.dmp

”和“

.log

”的数据文件和日志文件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值