`
ruilinruirui
  • 浏览: 1050360 次
文章分类
社区版块
存档分类
最新评论

数据库自动备份的实现

 
阅读更多

sqlserver的作业调度来建立自动备份的方法:


1、进入企业管理器中->管理->sqlserver代理->作业;
2、新建作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限;
3、点击步骤标签,进入步骤面板。新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改。命令中写入以下语句:
BACKUPDATABASE[数据库名]TODISK=N'F:/data/数据库备份' WITHNOINIT,NOUNLOAD,NAME=N'数据库备份',NOSKIP,STATS=10,NOFORMAT
注意:需要修改的地方,数据库名,DISK=(这里需要填写路径和你的数据库备份的名称)后面的Name=可以随便填写。
4、点击调度标签,进入调度面板,新建调度,名称随便填写,选择反复出现,点更改可以选择你想要执行任务的随意调度。如每天,每2天,每星期,每月等。根据需要自己设置;
5、确定后,不要忘记一件事情,在你刚才建立的工作上点右键,启动工作,如果你的工作没有问题,将会提示执行成功,并有相对应的备份文件在你的磁盘上出现;
6、还有一个重要的问题就是你的sqlserveragent服务器已经启动。

如果我们需要根据每天的日期来生成一个新的备份,以便我们区别备份文件。这时,我们需要修改一下刚才的sql语句。参考实例:

declare@filenamenvarchar(100)

set@filename='F:/AddIn/备份/data'+convert(char(10),getdate(),112)

print@filename

BACKUPDATABASE[addin]TODISK=@filenameWITHNOINIT,NOUNLOAD,NAME=N'addin备份',NOSKIP,STATS=10,NOFORMAT

或者按如下写法:

DECLARE @BACKFILENAME VARCHAR(200)
DECLARE @DATE CHAR(10)
DECLARE @FILENAME VARCHAR(200)
DECLARE @NAME VARCHAR(200)
SET @DATE=CONVERT(CHAR(10),GETDATE(),120)
SET @FILENAME='F:/SQLServerBackup/DefectStoreDKH_'
SET @BACKFILENAME=@FILENAME+@DATE
SET @NAME='DefectStoreDKH 备份'
BACKUP DATABASE [DefectStoreDKH]
TO DISK = @BACKFILENAME WITH INIT , NOUNLOAD , NAME = @NAME, NOSKIP , STATS = 10, NOFORMAT

Windows下Oracle9i数据库文件的自动备份 <script language="javascript" type="text/javascript">document.title="有关Oracle9i数据库文件的自动备份 - "+document.title</script>

第一步:

在D盘根目录下新建文件夹Backup,这个目录可以任意,复制exp.exe文件到这个目录下,在该目录下新建文件expbkup.bat

exp test/test@test file=d:/backup/%date:~0,10%.dmp log=d:/backup/%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000 grants=y record=y indexes=y triggers=y rows=y

sid是test,用户名/密码是test/test,调用exp命令在d:/backup目录下生成相应的数据文件和日志文件。

第二步:

在控制面板的任务计划下新建一任务计划向导,选择执行任务的文件expbkup.bat,任务名随意expbkup,选择每天执行这个任务,起始时间18:00,起始日期默认为从当天开始,输入用户名和密码,点完成可添加每天下午6:00备份一次Oracle数据库的计划任务。

调用linux日期函数,实现每天自动生成一个oracle备份 <script language="javascript" type="text/javascript">document.title="调用linux日期函数,实现每天自动生成一个oracle备份 - "+document.title</script>
-bash-2.05b$ more /opt/oracle/product/movedata/movedata1.sh

ORACLE_HOME=/opt/oracle/product/9.0.2
export ORACLE_HOME
. /opt/oracle/product/.bash_profile
export DATE=$(date +%Y%m%d) #调用linux日期函数,实现文件按日期命名每天一个备份
/opt/oracle/product/9.0.2/bin/exp goldring/123456@szdb file=/data/OracleDB_Backup/goldring.dmp log=/data/OracleDB_Back
up/loggoldring.dmp consistent=yes

/opt/oracle/product/9.0.2/bin/exp jltgame/123456@szdb file=/data/OracleDB_Backup/jltgame$DATE.dmp log=/data/OracleDB_Ba
ckup/logjltgame.dmp consistent=yes

/opt/oracle/product/9.0.2/bin/exp userid=oraclebackup/"abcd456&*("@szdb owner=moonprincess file=/data/OracleDB_Backup/moon
princess.dmp log=/data/OracleDB_Backup/logmoonprincess.dmp consistent=yes

#ftp -n 10.0.0.3 < /opt/oracle/product/movedata/ftpcommand


把以上脚本放到crontab中即可

注:oracle实现自动备份关键是要在备份脚本中加入oracle的环境变量和在备份文件名中加入$DATE变量
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics