数据库备份方案及容灾备份(Mysql,SqlServer,Oracle) | 您所在的位置:网站首页 › 数据机房备份方案模板 › 数据库备份方案及容灾备份(Mysql,SqlServer,Oracle) |
备份文件目录结构
备份文件总目录databak: databak/Installation environment--环境备份目录 databak/project/package--项目部署包备份目录 databak/project/logs--项目日志备份目录 databak/file--文件备份目录 databak/datafile--数据备份目录
传统备份 本机备份,备份文件存储在非项目运行磁盘空间下,windows服务器禁止在系统盘下存储备份文件,linux服务器禁止在/etc、/usr、/var、/lib、/tmp等特殊系统目录下存储备份文件。 环境备份 序号 说明 内容 备注 1 备份内容 java环境安装包 .net环境安装包 C环境安装包 Python环境安装包 tomcat等容器安装包及初始配置文件 数据库安装包 .....运行基础环境相关安装服务
2 备份方式 全量备份/变更备份 手动备份文件 3 文件期限 永久保留
项目备份 序号 说明 内容 备注 1 备份内容 项目部署包 部署说明文件
2 备份方式 每周备份/更新版本备份 Win服务器采用计划任务运行脚本 Linux服务器采用 crontab定时执行shell脚本
3 文件期限 保留最新3次备份文件
文件备份 序号 说明 内容 备注 1 备份内容 项目附件文件 项目模板文件
2 备份方式 每日增量备份/全量备份 全量备份: Win服务器采用计划任务运行脚本 Linux服务器采用 crontab定时执行shell脚本 增量备份: 增量备份工具 3 文件期限 永久保留
数据备份 序号 说明 内容 备注 1 备份内容 数据库备份文件 或者 数据库原始文件
2 备份方式 小数据量每日全量备份 大数据量每日增量备份 全量备份: 数据库自带备份工具与备份。 Win服务器采用计划任务运行脚本 Linux服务器采用 crontab定时执行shell脚本 增量备份(不适用数据库原始文件备份): 数据库增量备份工具 3 文件期限 小数据量永久保留最新3次备份文件 大数据量永久保留备份文件
容灾备份 容灾备份说明 容灾备份是为了应对服务器磁盘故障导致数据丢失,保证数据备份的安全性。使得在服务器发生故障后可以快速恢复项目使项目正常运行。结合传统备份方式,使得备份结构更加清晰,还原项目更加快速。能够合理避免磁盘损坏造成项目灾难性的故障的发生。使项目更加健全和完善。 a容灾备份文件存储必须选择非本服务器存储空间 b备份必须在晚上,避免影响项目的正常使用以及过多占用网络资源 c定期检查备份内容是否正常和完整 d定期检查备份存储空间是否正常 e合理规划备份存储空间避免影响正常备份 容灾备份方式序号 方式 说明 备注 1 外挂移动盘 在服务器外接一个移动硬盘或者其他移动存储设备。
2 内网备份服务器 专门建设一台备份存储服务器,使用ftp、sftp的方式上传备份数据。
3 公网备份服务器 由网进公司提供一个公共网络下的备份存储服务器,使用ftp、sftp的方式上传备份数据。
备份方法 序号 备份方式 备份内容 方法 备注 1 外挂移动盘 环境备份 手动备份,环境变更后手动备份
2 项目备份 项目更新前,手动吧项目部署文件备份至外挂磁盘中,使项目部署的备份文件保持最新3次。
3 文件备份 每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据拷贝至外挂磁盘中。
4 数据备份
5 内网备份服务器 环境备份 手动备份,环境变更后手动备份
6 项目备份 项目更新前,手动吧项目部署文件上传至内网FTP中,使项目部署的备份文件保持最新3次。
7 文件备份 每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据上传至FTP备份服务器中。
8 数据备份 同上
9 公网备份服务器 环境备份 手动备份,环境变更后手动备份
10 项目备份 项目更新前,手动吧项目部署文件上传至内网FTP中,使项目部署的备份文件保持最新3次。
11 文件备份 每天晚上小数据量文件采用全量备份,大的数据量采用增量备份的方式把数据上传至FTP备份服务器中。
12 数据备份 同上
数据库备份基础步骤 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 * * * 每天第一个小时执行一次 定时含义* * * * * 五个参数依次代表的含义分、时、日、月、星期 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 * * * 每天第一个小时执行一次 定时含义* * * * * 五个参数依次代表的含义分、时、日、月、星期 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服务器 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 |
CopyRight 2018-2019 实验室设备网 版权所有 |