关于数据库oracle和sqlserver的备份

最近服务器接连出现两次故障,邮件服务器被攻击和网站服务器电源损坏。

对数据库,要定期实行备份,才能做到有备无患。公司有两种数据库,oracle和sqlserver,总结一下备份的方法。

一 Oracle

逻辑备份(使用最方便,但是没法做增量备份)

1.直接用PL/SQL 的EXPORT/IMPORT

2.运行命令(比直接在PL/SQL里的备份速度快一点)

  (1)全部备份

      exp  system/manager@SID  inctype=complement  file=D:\backup.dmp

      imp  system/manager@SID  full=y  file=D:\backup.dmp ignore=y

     服务器端和客户端oracle版本不一致,会导致导出遇错终止,但只是在最后出错,表都已导出了,导出的文件仍可用。

     导入时会有很多导入失败的,可能是system下的对象,全部恢复时失败了,加上fromuser时成功导入了。感觉全部备份没必要,一般只备份某个用户下的就行了。

   ( 2 )增量备份(备份上一次备份后,改变的数据)

    exp  system/manager@SID  inctype=incremental  file=D:\backup.dmp

    imp  system/manager@SID  full=y  file=D:\backup. dmp ignore=y

    增量备份导出,只能在full=y 的情况下导出,不能只针对导出某个用户下的表,否则会出错。

    另外,inctype这个参数在10g,11g的oracle中会提示已作废。但其实还是能用。但是exp的增量导出意义不大,

因为,只要一个表增加了一条记录,增量导出会导出整个表,而不是导出增加了的记录,已测试验证。

  (3)导出某用户下的表

    最后我还是选择了按用户导出表。

      exp  myuser/mypassword@SID  owner=(myuser)  file=D:\backup.dmp

      imp  myuser/mypassword@SID   full=y  file=D:\backup.dmp ignore=y

  最后的结果是,没办法实现增量导出。目前全部备份完要四小时。

RMAN实现增量导出: 感觉脚本有点复杂,有待研究。

  二 SQLSever

   1.手动备份及还原

右键要备份的数据库,选择 任务——备份

    

   删除原路径,添加要放置备份文件的路径,点击确定,等待,备份成功

导入:右击数据库(要点击最上层的数据库总目录,不然会出错),——还原数据库

选择源设备,添加备份文件路径

      输入目标数据库名称,勾选还原,点击确定,OK

2.添加维护计划,实现自动备份到本地

若要从服务器备份到本地,要在本地建立一个共享文件夹,并设置相应权限,让服务器可以访问并写入共享文件夹。

不知道sqlserver是用什么账户访问共享文件夹的。我的服务器和本地电脑在同一个域内,我把服务器登录的账号设置了访问共享文件夹的完全控制的权限,但还是备份失败。添加network service权限也没用。添加everyone的读写权限之后,备份成功。

添加维护计划过程如下:

下一步

每项任务单独计划,就是为两件任务: 备份,清除 独立设定执行计划

下一步

选择要备份的数据库,文件夹输入共享文件路径,最好选择压缩备份,设置计划

成功之后,在作业里新增了两个作业,右击作业,选择作业开始步骤,可立即执行查看效果

猜你喜欢

转载自blog.csdn.net/wuyingyy/article/details/88818599