在项目的开发中,备份是一个很重要的操作和良好的开发习惯,下面我们就针对BI相关项目的备份说一下备份策略

前端:Cognos

后端:SSIS+View+Procedure

服务器A装了Cognos内容库,Cognos 相关组件

服务器B部署了DW和ETL

下面我们就来说一说备份步骤

1:备份Cognos相关内容

Cognos内容库+cognos模型文件(FM/TR)

Cognos用户认证

2:备份DW相关内容

ODS库+DW库+SSIS工程文件

----------------------------------------------可能用到的相关技术1---------------------------------------------------------------------------------------

备份SQLSERVER数据库的存储过程脚本

USE [Cognos_Logn]
GO /****** Object: StoredProcedure [dbo].[BackupDatabase] Script Date: 08/13/2015 15:47:21 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE PROCEDURE [dbo].[BackupDatabase]
as
DECLARE @FullPath varchar()
DECLARE @FolderPath varchar()
set @FolderPath='E:\cognos_backup\'
set @FullPath = @FolderPath+ 'Cognos_Logn_'+replace(CONVERT(char(),GETDATE(),),'-','')+ '.bak'
backup database [Cognos_Logn] to disk=@FullPath WITH INIT
return GO

把需要备份的模型文件copy到指定目录的DOS命令,文件名按20150813的格式

@echo off
echo 备份开始...
echo 开始时间 %date% %time% >E:\cognos_backup\Model_%date:~,%%date:~,%%date:~,%.log
xcopy/e/h/r/y "D:\EWELL_BI\ewell_projects" "E:\cognos_backup\Model_%date:~0,4%%date:~5,2%%date:~8,2%\" >>E:\cognos_backup\Model_%date:~0,4%%date:~5,2%%date:~8,2%.log
echo 备份结束...
echo 结束时间 %date% %time% >>E:\cognos_backup\Model_%date:~,%%date:~,%%date:~,%.log

----------------------------------------------可能用到的相关技术1---------------------------------------------------------------------------------------

有了上面的代码再加上SQLServer的代理服务以及window的任务计划。我们1和2的备份都可以实现在A和B上面分别把Cognos相关备份的数据库文件每天备份到A服务器的E:\cognos_backup,以及把DW相关的ETL程序和数据

仓库备份到B服务器的E:\dw_backup下面

截止目前我们已经完成了在serverA和serverB上面的本地不同目录备份,增加了开发过程的安全性,那么这样的话还是不安全的,如果A和B有一台挂掉,或者硬盘不可恢复

的话,还是会给项目带来很大的麻烦,接下来我们就要实现在ServerA和ServerB上面实现对对应用服务器和数据服务器的相互备份

效果:即ServerA上面有cognos_backup+dw_backup ,ServerB上面也有cognos_backup+dw_backup

so,go!

经过上面的操作,我们已经实现了ServerA上面有cognos_backup,ServerB上面有dw_backup的效果

接下来我们要做的就是

1:每天定时把ServerB上面的dw_backup复制到ServerA上面

2:每天定时把ServerA上面的cognos_backup复制到ServerB上面

那么接下来我们就需要window 定时远程复制的脚本

----------------------------------------------可能用到的相关技术2---------------------------------------------------------------------------------------

echo 注册远程会话开始时间 %date% %time% >E:\bi_backup\dw_backup.log
net use \\serverB\dw_backup /user:"admin" "" >>E:\bi_backup\dw_backup.log
echo 注册远程会话结束时间 %date% %time% >>E:\bi_backup\dw_backup.log
echo 复制开始时间 %date% %time% >>E:\bi_backup\dw_backup.log
xcopy /e /y \\serverB\dw_backup\* E:\bi_backup\dw_backup >>E:\bi_backup\dw_backup.log
echo 复制结束时间 %date% %time% >>E:\bi_backup\dw_backup.log
net use * /del /y >>E:\bi_backup\dw_backup.log
echo 注销远程会话 %date% %time% >>E:\bi_backup\dw_backup.log

代码解释1:

net use \\serverB\dw_backup /user:"admin" "123"
上面的命令是注册远程会话信息到服务器所分享的目录,需要注意的是

代码解释2:

echo 注册远程会话开始时间 %date% %time% >E:\bi_backup\dw_backup.log

上面的命令是把执行时间相关信息输出到指定日志文件中,需要注意的是>是代表覆盖原来文件的内容.>>是在原来文件中追加内容

由于上面的命令是文件中的第一个写入操作所以这里是覆盖,后面的写入为追加>>

代码解释3:

xcopy /e  /y \\serverB\dw_backup\* E:\bi_backup\dw_backup >>E:\bi_backup\dw_backup.log

上面的命令是复制serverB上目录dw_backup下面的所有内容到本地的E:\bi_backup\dw_backup目录下

/e是复制所有目录和子目录,包括空目录的内容

/y是默认覆盖,如果存在相同的文件或者文件夹

具体可参考

代码解释4:

net use * /del /y

上面的命令是注销远程会话信息,需要注意的是这一步骤是不可缺少的,如果我们执行了上面的命令,不注销远程会话信息,那么就会对远程服务造成安全隐患

/y 是每次都默认注销,如果不设置此参数,DOS窗口会提示我们手工选择是否确认注销会话信息

----------------------------------------------可能用到的相关技术2---------------------------------------------------------------------------------------

经过上面的操作,加上window系统的任务计划,我们就可以实现serverA 和 serverB互相备份,以达到ServerA上面有cognos_backup+dw_backup ,ServerB上面也有cognos_backup+dw_backup 的效果

我们看serverA 上面cognos的相关备份

dw的相关备份

BI项目简单备份策略的更多相关文章

  1. 《BI项目笔记》增量ETL数据抽取的策略及方法

    增量抽取 增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据.在ETL使用过程中.增量抽取较全量抽取应用更广.如何捕获变化的数据是增量抽取的关键.对捕获方法一般有两点要求:准确性,能够将 ...

  2. 一个成功的BI项目实施需要注意哪些?

    BI是所有IT系统中最适合于管理层和决策层使用的信息系统. ERP等各类信息系统中的数据,只有通过BI才能将隐藏在数据中的信息挖掘出来.转化为事实. BI的实施也需要依据企业情况进行“定制”.如何实施 ...

  3. BI项目记笔记索引

    这个笔记系列主要记录了在BI项目中,如何搭建环境进行源代码管理以及文档管理. 用到的产品包括: TFS Express Sharepoint Visual Studio SQL Server   配置 ...

  4. 记录一则RMAN备份策略修正案例

    背景:在给某客户处理问题时,发现客户数据库的备份空间即将用尽,进一步查看发现是用户数据库的当前RMAN备份策略存在潜在问题,需要修改备份策略. 环境:SunOS 5.10 + Oracle 11.2. ...

  5. [BI项目记]-搭建代码管理环境之签入代码

    此篇主要介绍如何基于TFS环境创建进行BI项目最简单的代码签入和签出工作. 首先介绍BI项目中的SSAS项目.SSAS项目主要包含Cube多维数据集和数据挖掘模型,是在微软BI产品体系中重要的一个组件 ...

  6. 《BI项目笔记》——微软BI项目笔记连载

    本系列文章主要是结合实际项目,加上自己的总结,整理出来的一系列项目笔记,涉及微软SQL Server2008中商务智能开发中的SSAS.SSIS模块:  准备工作: <BI项目笔记>基于雪 ...

  7. Oracle备份及备份策略

    第二章. 了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片.主板电路.内 ...

  8. Oracle RMAN备份策略

    建立增量备份:如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal .immediate . transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库 ...

  9. SVN服务器几种备份策略---重点svnsync备份---OK

    配置管理的一个重要使命是保证数据的安全性,防止服务器应硬盘损坏.误操作造成数据无法恢复的灾难性后果.因此制定一个完整的备份策略非常重要. 一般来说,备份策略应规定如下几部分内容:备份频度.备份方式.备 ...

随机推荐

  1. LCA:Tarjan算法实现

    本博文转自http://www.cnblogs.com/JVxie/p/4854719.html,转载请注明出处 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有 ...

  2. Python模块-xml

    XML的例子 import xml.etree.ElementTree as ET tree = ET.parse("test.xml") root = tree.getroot( ...

  3. 利用linux判断elf文件是64位还是32位

    readelf 命令,参数为-h 例如 文件名为python >>>readelf -h python 得到的是ELF Header中的项Magic 第五个数 02时为64位,01时 ...

  4. java学习助手

    感谢大家使用Java学习助手! 打一开始,这应用就是全开源,希望大家自觉遵循开源协议,还Android开发一片净土(国内的情况你懂的) 接下来都不会更频繁更新文章,大家更应该把注意力放在基础的模块那里 ...

  5. 【BZOJ 2436】 2436: [Noi2011]Noi嘉年华 (区间DP)

    2436: [Noi2011]Noi嘉年华 Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不 ...

  6. 主席树+dfs SPOJ BZOJ2588 Count on a tree

    这道题我由于智障错误导致一直错. 在树上建主席树,加上lca思想,很简单. #include<bits/stdc++.h> using namespace std; ; struct no ...

  7. JZYZOJ1261 字典序最小的lis

    http://172.20.6.3/Problem_Show.asp?id=1261   求字典序方法: f[i]表示i位数字的最长上升子序列长度,len为最长上升子序列长度,ans[t]为第t位答案 ...

  8. [CF626F]Group Projects

    [CF626F]Group Projects 题目大意: 有一个长度为\(n(n\le200)\)的数列\(\{A_i\}\),将其划分成若干个子集,每个子集贡献为子集\(\max-\min\).求子 ...

  9. lucas定理 FOJ 2020 组合

     Problem 2020 组合 Accept: 886    Submit: 2084Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem ...

  10. 内功心法 -- java.util.LinkedList<E> (4)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...