# DatabaseBackup **Repository Path**: mmeegg/database-backup ## Basic Information - **Project Name**: DatabaseBackup - **Description**: 数据库定时备份 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-16 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库自动备份程序 这是一个用C#编写的数据库自动备份程序,支持MySQL和SQL Server数据库的定时备份。程序会按照配置文件中的设置定期执行备份任务,并自动清理过期的备份文件。 ## 功能特点 - 支持MySQL和SQL Server数据库备份 - 可配置备份时间、保存路径和保留天数 - 自动清理过期备份 - 支持Windows认证和自定义认证方式 - 提供默认配置文件模板 ## 配置说明 程序使用`appsettings.json`作为配置文件,主要配置项包括: - `BackupHour` 和 `BackupMinute`:每日执行备份的时间 - `BackupPath`:备份文件保存路径 - `RetainDays`:备份文件保留天数 - `MySqlDatabases`:MySQL数据库配置列表 - `SqlServerDatabases`:SQL Server数据库配置列表 每个数据库配置需要包含: - 数据库名称 - 服务器地址 - 认证信息(用户名/密码或Windows认证) - 是否启用备份 ## 使用方法 1. 编译并运行程序 2. 程序会自动创建默认配置文件(如果不存在) 3. 编辑配置文件以设置实际的数据库连接信息和备份策略 4. 重新启动程序以应用新配置 ## 程序控制 - 启动后程序会按照配置时间自动执行备份任务 - 按`q`键可以退出程序 - 程序运行时会在控制台输出执行日志 ## 注意事项 - 确保运行程序的账户对数据库有适当的备份权限 - 确保运行程序的账户对备份目录有写入权限 - 建议在非业务高峰期执行备份任务 - 生产环境中建议配置足够的备份存储空间 ## 代码结构 - `Models/AppConfig.cs`:应用程序配置类 - `Models/MySqlDatabaseConfig.cs`:MySQL数据库配置类 - `Models/SqlServerDatabaseConfig.cs`:SQL Server数据库配置类 - `Services/BackupScheduler.cs`:备份任务调度器 - `Services/MySqlBackupService.cs`:MySQL数据库备份实现 - `Services/SqlServerBackupService.cs`:SQL Server数据库备份实现 - `Program.cs`:程序主入口