备份文件目录结构

 

备份文件总目录databak:

databak/Installation environment--环境备份目录

databak/project/package--项目部署包备份目录

databak/project/logs--项目日志备份目录

databak/file--文件备份目录

databak/datafile--数据备份目录

 

 

传统备份

本机备份,备份文件存储在非项目运行磁盘空间下,windows服务器禁止在系统盘下存储备份文件,linux服务器禁止在/etc、/usr、/var、/lib、/tmp等特殊系统目录下存储备份文件。

 

  1. 环境备份

序号

说明

内容

备注

1

备份内容

java环境安装包

.net环境安装包

C环境安装包

Python环境安装包

tomcat等容器安装包及初始配置文件

数据库安装包

.....运行基础环境相关安装服务

 

2

备份方式

全量备份/变更备份

手动备份文件

3

文件期限

永久保留

 

 

  1. 项目备份

序号

说明

内容

备注

1

备份内容

项目部署包

部署说明文件

 

2

备份方式

每周备份/更新版本备份

Win服务器采用计划任务运行脚本

Linux服务器采用 crontab定时执行shell脚本

 

3

文件期限

保留最新3次备份文件

 

 

  1. 文件备份

序号

说明

内容

备注

1

备份内容

项目附件文件

项目模板文件

 

2

备份方式

每日增量备份/全量备份

全量备份:

Win服务器采用计划任务运行脚本

Linux服务器采用 crontab定时执行shell脚本

增量备份:

增量备份工具

3

文件期限

永久保留

 

 

  1. 数据备份

序号

说明

内容

备注

1

备份内容

数据库备份文件

或者

数据库原始文件

 

2

备份方式

小数据量每日全量备份

大数据量每日增量备份

全量备份:

数据库自带备份工具与备份。

Win服务器采用计划任务运行脚本

Linux服务器采用 crontab定时执行shell脚本

增量备份(不适用数据库原始文件备份):

数据库增量备份工具

3

文件期限

小数据量永久保留最新3次备份文件

大数据量永久保留备份文件

 

 

 

 

 

 

容灾备份

 

  1. 容灾备份说明

容灾备份是为了应对服务器磁盘故障导致数据丢失,保证数据备份的安全性。使得在服务器发生故障后可以快速恢复项目使项目正常运行。结合传统备份方式,使得备份结构更加清晰,还原项目更加快速。能够合理避免磁盘损坏造成项目灾难性的故障的发生。使项目更加健全和完善。

a容灾备份文件存储必须选择非本服务器存储空间

b备份必须在晚上,避免影响项目的正常使用以及过多占用网络资源

c定期检查备份内容是否正常和完整

d定期检查备份存储空间是否正常

e合理规划备份存储空间避免影响正常备份

  1. 容灾备份方式

序号

方式

说明

备注

1

外挂移动盘

在服务器外接一个移动硬盘或者其他移动存储设备。

 

2

内网备份服务器

专门建设一台备份存储服务器,使用ftp、sftp的方式上传备份数据。

 

3

公网备份服务器

由网进公司提供一个公共网络下的备份存储服务器,使用ftp、sftp的方式上传备份数据。

 

 

  1. 备份方法

序号

备份方式

备份内容

方法

备注

1

外挂移动盘

环境备份

手动备份,环境变更后手动备份

 

2

项目备份

项目更新前,手动吧项目部署文件备份至外挂磁盘中,使项目部署的备份文件保持最新3次。

 

3

文件备份

每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据拷贝至外挂磁盘中。

 

4

数据备份

 

 

5

内网备份服务器

环境备份

手动备份,环境变更后手动备份

 

6

项目备份

项目更新前,手动吧项目部署文件上传至内网FTP中,使项目部署的备份文件保持最新3次。

 

7

文件备份

每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据上传至FTP备份服务器中。

 

8

数据备份

同上

 

9

公网备份服务器

环境备份

手动备份,环境变更后手动备份

 

10

项目备份

项目更新前,手动吧项目部署文件上传至内网FTP中,使项目部署的备份文件保持最新3次。

 

11

文件备份

每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据上传至FTP备份服务器中。

 

12

数据备份

同上

 

 

 

数据库备份基础步骤

 

  1. Mysql备份

Windows服务器

1.1备份bat命令:

echo 备份
"[mysqldump.exe]" -u[username] -p[password] --opt --default-character-set=utf8 -e --triggers -R --hex-blob --flush-logs -x [database] > [file]
echo 导出已经完成
#pause

参数说明:

[mysqldump.exe]--mysqldump文件绝对路径

[username]--数据库用户名

[password]--数据库密码

[database]--数据库名称

[file]--导出文件绝对路径+文件名称

 

1.2创建计划任务每日或者固定时间点内执行bat。

 

Linux服务器

1.3备份Shell命令:

#!/bin/bash
base_dir=/home/test/sql_script
DATE=$(date +%Y%m%d)
time=$(date "+%Y-%m-%d %H:%M:%S")
cd $base_dir
mysqldump -u[username] -p[password] --databases [database] > [file]
if [ $? -eq 0 ]
then
  echo "成功备份mysql数据库,当前日期为:"$time >> /home/test/mysql_dump.log
else
  echo "备份mysql数据库失败:当前日期为:"$time>> /home/test/mysql_dump.log
Fi

参数说明:

[username]--数据库用户名

[password]--数据库密码

[database]--数据库名称

[file]--导出文件绝对路径+文件名称

 

1.4创建作业

crontab -e 创建

1 1 * * * /script/FTP.sh  --输入执行脚本

:wq --保存作业

1 1 * * * 每天第一个小时执行一次

定时含义* * * * * 五个参数依次代表的含义分、时、日、月、星期

 

  1. Oracle备份

Windows服务器

2.1备份bat命令:

@echo off
set BACKUP_DIR=[filepath]
set ORACLE_USERNAME=[username]
set ORACLE_PASSWORD=[password]
set ORACLE_DB=[kj]
set BACK_OPTION=
set BACK_NAME=[filename]
set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%
rem 开始备份
exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB%  %BACK_OPTION% file="%BACK_FULL_NAME%.dmp log="%BACK_FULL_NAME%.log"

参数说明:

[filepath]--备份文件目录

[username]--oracle用户名

[password]--oracle密码

[kj]--表空间名称

[filename]--备份文件名称不带

 

2.2创建计划任务每日或者固定时间点内执行bat。

 

Linux服务器

2.3Shell备份命令:

#!/bin/bash
su - [oracleuser] 
export ORACLE_SID=[sid]
expdp [username]/[password] dumpfile=[filepath][filename].dmp logfile=[filepath][filename].log schemas=[kj];

参数说明:

[oracleuser]--linux系统oracle用户

[sid]--实例名称

[filepath]--备份文件目录

[username]--oracle用户名

[password]--oracle密码

[kj]--表空间名称

[filename]--备份文件名称不带

 

2.4创建作业

crontab -e 创建

1 1 * * * /script/FTP.sh  --输入执行脚本

:wq --保存作业

1 1 * * * 每天第一个小时执行一次

定时含义* * * * * 五个参数依次代表的含义分、时、日、月、星期

 

  1. SqlServer备份

windows服务器

3.1bat命令备份

@echo off
set path=%path%;[osql.exe]
echo 数据库备份开始
osql.exe -S [IP] -U [username] -P [password] -i sqlserverbackup.sql -o [logsfile]
echo 数据库备份完成
Pause

参数说明:

[osql.exe]--osql.exe文件位置C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn

[IP]--数据库IP

[username]--数据库用户名

[password]--数据库密码

[logsfile]--日志文件路径加名称(日志格式.out)

 

3.2创建sqlserverbackup.sql文件

sqlserverbackup.sql文件必须和bat在同一目录下,SQL代码如下:

DECLARE @name varchar(50)
DECLARE @datetime char(14)
DECLARE @path varchar(255)
DECLARE @bakfile varchar(255)
set @name='[filename]'
set @datetime=CONVERT(char(8),getdate(),112) + REPLACE(CONVERT(char(8),getdate(),108),':','')
set @path='[filepath]'
set @bakfile=@path+''+@name+'.BAK'
backup database @name to disk=@bakfile with name=@name
Go

参数说明:

[filename]--备份文件名称不需要后缀

[filepath]--备份文件路径

 

3.3创建计划任务每日或者固定时间点内执行bat。

上传内网/公网FTP服务器

  1. Windows服务器

 

1.1创建bat脚本(脚本如下):

@Echo Off
Echo open [IP] [port] >ftp.up
Echo [username]>>ftp.up
Echo [password]>>ftp.up
Echo Cd .\[ftpfile] >>ftp.up
Echo binary>>ftp.up
Echo put "[filepath]">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
del [filepath]

bat脚本参数说明:

[IP]--FTP服务器IP地址

[prot]--FTP服务器端口,默认端口可以忽略该参数

[username]--FTP服务器用户名

[password]--FTP服务器密码

[filepath]--上传文件的路径加文件名称

[ftpfile]--ftp文件目录

 

1.2创建计划任务每日或者固定时间点内执行bat。

 

2.Linux服务器

2.1创建shell脚本(脚本如下):

#!/bin/bash
ftp -i -n <<FTPIT
open [IP] [port]
user [username] [password]
binary
hash
cd /[ftpfile]
lcd [filepath]
prompt
mput [filename]
close
bye
FTPIT
rm -f [filepath]+[filename]

Shell脚本参数说明

[IP]--FTP服务器IP地址

[prot]--FTP服务器端口,默认端口可以忽略该参数

[username]--FTP服务器用户名

[password]--FTP服务器密码

[filepath]--上传文件的路径

[ftpfile]--ftp文件目录

[filename]--需要上传的文件名称,*代表本目录下所有文件

 

2.2创建作业

crontab -e 创建

1 1 * * * /script/FTP.sh  --输入执行脚本

:wq --保存作业

1 1 * * * 每天第一个小时执行一次

定时含义* * * * * 五个参数依次代表的含义分、时、日、月、星期