当前位置: 首页 > 编程日记 > 正文

数据库备份定期删除程序的开发。

第一.最近客户的服务器数据库备份每天都在进行,随着数据量的不断的增加,备份也在不断的进行变大。

第二.于是一些问题就出现了客户的服务器的磁盘的空间有限,定期数据库备份文件太大而导致无法进行保存问题。

第三.从而导致了服务器宕机以及服务器中一些应用程序以及网站无法使用等等。

第四.所以需要进行解决这个问题就需要开发一个应用程序进行定期的删除数据库的备份以及其他的文件。

第五.在进行删除数据库的备份的时候需要注意是的删除设置的几天前的数据库备份,其他最新的数据库的备份的文件不要删除。

第六:可以应用Windows服务进行开发定时删除数据库备份的应用的程序,也可以进行应用控制台开发定时删除数据库的备份的程序当然如果应用控制台应用程序进行开发,那么最好进行结合Windows 系统自带的计划任务程序比较方便。当然你是可以进行选择的,因人而异。

第五.那么如果做到删除指定的数据库备份文件例如DB2,DBName.0.DB2.DBPART000.20161010153053.001等等以及SQLServer DbName.bak等等

以及MySql数据库的备份文件等等,以及其他的文件格式都是支持的。

第七.那么解决这个问题我需要做的是:

   1.首先需要找到数据库备份文件的路径将其读取出来,当然这里所知的路径是指物理路径。

   2.需要做的是将数据库的文件的名称以及数据库备份的时间进行读取出来,为了方便取出最新的以及几天前的数据库备份。

   3.当然你还需要进行应用File文件类中的一些具体的删除的方法。来进行删除。

第八:下面我将自己写的定期删除数据库备份控制台应用程序贴出来供大家参考。

         定期的进行删除数据库备份文件代码如下

class Program
{static void Main(string[] args){string strDirfile = Properties.Settings.Default.DB_FILE_PATH;Console.WriteLine("strDirfile{0}", strDirfile);int keepFileCnt = int.Parse(Properties.Settings.Default.KEEP_FILE_CNT);try{if (string.IsNullOrEmpty(strDirfile) || !Directory.Exists(strDirfile)){Console.WriteLine("配置的文件的路径不正确请检查{0}" + strDirfile);}if (keepFileCnt <= 0){Console.WriteLine("没有配置删除的天数");}if (strDirfile != null){if (Directory.Exists(strDirfile)){string[] strDirs = Directory.GetDirectories(strDirfile);string[] strFiles = Directory.GetFiles(strDirfile);DBNameAndTime file = new DBNameAndTime();if (strFiles != null){foreach (string strFile in strFiles){if (strFile != null){FileInfo fi = new FileInfo(strFile);string[] strArr = fi.Name.Split('.');file.DataName = fi.Name; file.FileTime = strArr[5]; file.Url = strFile;DateTime dt1 = DateTime.Now; if (strArr.Length > 0){IFormatProvider provider = new CultureInfo("zh-CN");string tarStr = "yyyyMMddHHmmss";DateTime dt2 = DateTime.ParseExact(file.FileTime.ToString(), tarStr, provider);TimeSpan ts = dt1 - dt2;Console.WriteLine("时间天数:{0}", ts);if (ts.TotalDays >= keepFileCnt){if (strFile != null){File.Delete(strFile);using (StreamWriter sw = new StreamWriter(strDirfile + "数据库备份的删除日志.txt", true)){sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "数据库备份删除开始:" + "删除的路径:" + strDirfile + "删除数据库备份的名称" + strFile);}Console.WriteLine("{0}数据库备份文件删除成功!", DateTime.Now);}else{Console.WriteLine("删除文件失败!");}}else{Console.WriteLine("其他的备份文件都是最新的没有3天前的备份!");}}}}}//保存删除的根目录的文件夹foreach (string strdir in strDirs){Directory.Delete(strdir, true);}}else{Console.WriteLine("此目录中只有根目录了!");}}else{Console.WriteLine("此目录不存在!");}}catch (Exception ex){//将数据库备份的异常写入到记事本中using (StreamWriter sw = new StreamWriter(strDirfile + "数据库备份的删除日志.txt", true)){sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "备份文件都是最新的没有3天前的备份" + ex.Message);}}}}
//进行声明备份数据库的类
public class DBNameAndTime
{private string fileName;/// <summary>/// 文件名称/// </summary>public string FileName { get { return fileName; } set { fileName = value; } }private string fileTime;/// <summary>/// 文件的最后修改时间/// </summary>public string FileTime { get { return fileTime; } set { fileTime = value; } }private string dataName;/// <summary>/// 数据库名称/// </summary>public string DataName { get { return dataName; } set { dataName = value; } }private string url;/// <summary>/// 文件路径/// </summary>public string Url { get { return url; } set { url = value; } }public string DownUrl { get { return fileName; } }
}

   以上内容均属于原创,转载请标明。谢谢!           

  

 

转载于:https://www.cnblogs.com/LowKeyCXY/p/6099400.html

相关文章:

Repeater控件的分页问题

作者&#xff1a;zhoubinmail.sdu.edu.cn以前做ASP的时间不算短&#xff0c;可是做ASP.NET我是个新手。前几天做项目&#xff0c;遇到一个问题&#xff0c;要求比较复杂的数据格式显示&#xff0c;用DataGrid非常难实现&#xff0c;后来改用了Repeater控件来实现。不过这样就带…

华为昇腾AI全栈知识深入解读,师资培训沙龙深圳场圆满落幕!

头图 | 视觉中国极度缺乏AI人才&#xff0c;已成为中国人工智能产业发展道路上的瓶颈。在国家政策的支持下&#xff0c;众高校初建AI专业者甚多&#xff0c;但高校教师应掌握哪些知识储备来传道授业&#xff0c;大家都是“摸着石头过河”。将高校AI人才培养教学大纲与厂商成熟落…

[转载] 信息系统项目管理师考试论文写作要点

来源&#xff1a;信管网 网址&#xff1a;http://www.cnitpm.com/pm/4323.html &#xff08;1&#xff09;在论文写作之前&#xff0c;先不要急着动笔&#xff0c;认真把题看清楚&#xff0c;选择自己熟悉的论文&#xff08;考试时&#xff0c;一般是二选一&#xff09;&#x…

POM.xml 标签详解

pom作为项目对象模型。通过xml表示maven项目&#xff0c;使用pom.xml来实现。主要描述了项目&#xff1a;包括配置文件&#xff1b;开发者需要遵循的规则&#xff0c;缺陷管理系统&#xff0c;组织和licenses&#xff0c;项目的url&#xff0c;项目的依赖性&#xff0c;以及其他…

DataRow的序列化问题

来源&#xff1a;CSDN 作者&#xff1a;kroll 在.net里&#xff0c;DataRow类型的对象是不支持序列化的&#xff0c;那么如果在一个需要序列化的对象中含有DataRow类型的字段该怎么办呢&#xff1f;呵呵&#xff0c;幸好Datatable是支持序列化的。因此&#xff0c;我们可以自定…

mass Framework event模块 v4

event.js // // 事件模块&#xff08;包括伪事件对象&#xff0c;事件绑定与事件代理&#xff09; // $.define("event",document.dispatchEvent ? "node" : "node,event_fix",function(){// $.log("已加载target模块")var rhoverH…

美国 AI 博士:什么都不会怎么学 Python?

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

puppet 初识

【puppet初识】学习目录 领导说saltstack太慢 机器量一旦上来&#xff0c;saltstack就力不从心&#xff0c;所以要将saltstack转向puppet。【安装背景】系统centos 6.5软件地址:http://downloads.puppetlabs.com/puppet/master: 192.168.100.10agent: 192.168.100.13因为puppe…

ColorMatrix 彩色矩阵

选择自 hbzxf 的 Blog 首先对装配脑袋给出上两片文章的友好回复&#xff0c;还有网友Fisherman一起探讨ColorMatrix话题表示感谢&#xff01;ColorMatrix (彩色矩阵) 类位于System.Drawing.Imaging命名空间 先看看下面的代码 ColorMatrix cm newColorMatrix(newfloat[][]{ n…

​一个参数一张Excel表,玩转Pandas的read_excel()表格读取

作者 | 黄伟呢来源 | 数据分析与统计学之美我觉得很有必要讲述这个文章&#xff0c;进行数据处理的第一步就是Python数据读取。但是你可能没想到&#xff0c;在进行数据读取的同时&#xff0c;我们其实可以配合相关参数做很多事儿&#xff0c;这对于后续的数据处理都是极其有帮…

Android 设计模式:(三)装饰者模式 —— 装饰对象

*利用组合&#xff08;composition&#xff09;和委托&#xff08;delegation&#xff09;可以在运行时实现继承行为的效果&#xff0c;动态地给对象加上新的行为。*利用继承扩展子类的行为&#xff0c;是在编译时静态决定的&#xff1b;利用组合的做法&#xff0c;可以在运行时…

润乾报表永久授权说明

永久授权是什么&#xff1f; 永久授权是运行润乾报表的带有机器特征码的没有时间限制的正式授权文件 2 机器特征码是什么&#xff1f; 机器特征码是为了制作永久授权&#xff0c;由润乾公司提供程序从用户的服务器上获取硬件和操作系统信息&#xff0c;生成的一个数字串&#x…

维度爆炸?Python实现数据压缩如此简单

作者 | 萝卜来源 | 早起Python&#xff08;ID: zaoqi-python&#xff09;用Python基于主成分分析常见的三个应用场景中&#xff0c;其中有一个是「数据描述」&#xff0c;以描述产品情况为例&#xff0c;比如著名的波士顿矩阵&#xff0c;子公司业务发展状况&#xff0c;区域投…

深入剖析C#的多态

作者: 天雨一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时&#xff0c;可以通过指向基类的指针&#xff0c;来调用实现派生类中的方法。可以把一组对象放到一个数组中&#xff0c;然后调用它们的方法&#xff0c;在这种场合下&#xff0c;多态性作用…

/usr/local/lib/libz.a: could not read symbols: Bad value(64 位 Linux)

/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against a local symbol can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libz.a: could not read symbols: Bad value 一般是64 位 电脑才会出现。 解决方法如下&am…

关于BIO | NIO | AIO的讨论

关于BIO | NIO | AIO的讨论一直存在&#xff0c;有时候也很容易让人混淆&#xff0c;就我的理解&#xff0c;给出一个解释&#xff1a; BIO | NIO | AIO&#xff0c;本身的描述都是在Java语言的基础上的。而描述IO&#xff0c;我们需要从两个层面&#xff1a; 编程语言实现原理…

NYOJ-49 开心的小明

开心的小明 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述小明今天很开心&#xff0c;家里购置的新房就要领钥匙了&#xff0c;新房里有一间他自己专用的很宽敞的房间。更让他高兴的是&#xff0c;妈妈昨天对他说&#xff1a;“你的房间…

两个硬盘和文件相关的小技巧 (C#)

取系统的硬盘分区的盘符&#xff0c;用API函数&#xff1a;GetDriveType [DllImport("kernel32.dll", EntryPoint"GetDriveType")] public static extern int GetDriveType (string nDrive); 调用&#xff1a;string [] dirs Environment.GetLogicalDri…

从数百个Excel中查找数据,一分钟用Python搞定

作者 | 陈熹来源 | 早起Python今天分享一个真实的办公自动化需求&#xff0c;大家一定要仔细阅读需求说明&#xff0c;在理解需求之后即可体会Python的强大。需求说明首先我们来看下今天的需求&#xff0c;有一份档案记录总表的Excel工作簿&#xff0c; 每天会根据当天日期建立…

namenode如何存储复本?

2019独角兽企业重金招聘Python工程师标准>>> namenode如何选择在哪个datanode存储复本&#xff1f;这里需要对可靠性&#xff0c;写入带宽和读取带宽进行权衡。例如&#xff0c;把所有复本都存储在一个节点损失的写入带宽最小&#xff0c;因为复制管线都是在同一节点…

EBS-使用 fnd_user_pkg API 创建用户,添加职责,修改用户

比如有一个外围支持系统&#xff0c;用户需要在外围系统登录之后点个link就可以登录到Oracle ERP系统中&#xff0c;那么我们需要先把外围系统的用户创建在Oracle ERP中&#xff0c;并且分配职责给他。 DECLARE a BOOLEAN; BEGIN---------------------------------------------…

万字长文总结机器学习的模型评估与调参 | 附代码下载

作者 | Sebastian Raschka翻译&整理 | Sam来源 | SAMshare目录一、认识管道流1.1 数据导入1.2 使用管道创建工作流二、K折交叉验证2.1 K折交叉验证原理2.2 K折交叉验证实现三、曲线调参3.1 模型准确度3.2 绘制学习曲线得到样本数与准确率的关系3.3 绘制验证曲线得到超参和准…

[百万级]通用存储过程.分页存储过程

/* 名称:spAll_ReturnRows 输入: 输出: 调用: EXEC spAll_ReturnRows SELECT * FROM 表名, 页号, 返回记录数, 主键, 排序字段 spAll_ReturnRows SELECT * FROM all_Categories,2,10,[ID],[ID] 说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录 …

Unsupported major.minor version (jdk版本错误)解决方案

2019独角兽企业重金招聘Python工程师标准>>> 如果你遇到了 Unsupported major.minor version &#xff0c;请认真看一下&#xff0c;说不定会有帮助。 我花两个小时总结的经验&#xff0c;你可能10分钟就得到了。 ^**^ 一、错误现象&#xff1a; 当改变了jdk版本时…

The key of C# 学习笔记I-II

作者 &#xff1a;Kemins booootLog http://blog.csdn.net/keminlau/ Sunday, October 3, 2004 微软提出的CLS(Common Language Specification, 通用语言标准)对能被用来编写dotNET程序的语言的最小功能集做出了规定。 就拿C#来说&#xff0c;它是目前程序设计语言“以效率换安…

分布式平台下的HS(High-Security) --Apache Shiro API(介绍)

在尝试保护你的应用时&#xff0c;你是否有过挫败感?是否觉得现有的Java安全解决方案难以使用&#xff0c;只会让你更糊涂?本文介绍的Apache Shiro&#xff0c;是一个不同寻常的Java安全框架&#xff0c;为保护应用提供了简单而强大的方法。本文还解释了Apache Shiro的项目目…

豪赌 ARM 梦碎:63 岁孙正义的「花甲历险记」

来源 | HyperAI超神经这几天&#xff0c;传出 NVIDIA 将以 400 亿 英镑的价格收购 ARM 的消息&#xff0c;不少媒体在争相报道收购进度的同时&#xff0c;也将整起交易的幕后推手 —— 孙正义&#xff0c;放到了聚光灯下。软银 CEO&#xff0c;传奇投资人&#xff0c;冒险家&am…

Java 集合 — HashMap

HashMap 无序&#xff08;每次resize的时候都会变&#xff09;非线程安全key和value都看可以为null使用数组和链表实现查找元素的时候速度快几个重要属性&#xff1a; loadFactor&#xff1a;用来计算thresholdthreshold&#xff1a;决定map是否需要扩容&#xff0c;threshold …

赠书 | 人工智能识万物:卷积神经网络的前世今生

来源 |《Python人工智能开发从入门到精通》作者 | 杨柳、郭坦、鲁银芝责编 | 晋兆雨深度学习在技术与应用上的突破引发了第三次人工智能浪潮&#xff0c;获得了空前成功。在前述章节的基础上&#xff0c;本章将主要介绍训练卷积神经网络和深度神经网络的重要方法与技巧&#xf…

通过WMI获得硬盘和CPU的物理序列号(VB.net)

作者&#xff1a;iwebsms获得硬盘序列号Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")Dim Uint32 As UInt32For Each cmicWmiObj As ManagementObject In cmicWmi.GetUint32 cmicWmiObj("signature")…