最近服务器接连出现两次故障,邮件服务器被攻击和网站服务器电源损坏。
对数据库,要定期实行备份,才能做到有备无患。公司有两种数据库,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的读写权限之后,备份成功。
添加维护计划过程如下:
下一步
每项任务单独计划,就是为两件任务: 备份,清除 独立设定执行计划
下一步
选择要备份的数据库,文件夹输入共享文件路径,最好选择压缩备份,设置计划
成功之后,在作业里新增了两个作业,右击作业,选择作业开始步骤,可立即执行查看效果