dbrisinajumi / dbbackup
计划中的MySQL数据库备份
dev-master
2022-04-15 09:32 UTC
This package is auto-updated.
Last update: 2024-09-15 15:05:54 UTC
README
##安装
将仓库添加到composer.json中
"repositories": [ { "type": "git", "url": "https://github.com/DBRisinajumi/db-backup.git" } ],
添加到require部分
"require": { "dbrisinajumi/dbbackup": "dev-master" },
##数据库导出器
通过Yii2控制台命令和.env文件使用
在.env文件中设置数据库访问变量
DB_ENV_MYSQL_DATABASE=dbname DB_ENV_MYSQL_USER=dbname_php DB_ENV_MYSQL_PASSWORD=secret BACKUP_DUMP_FILE_NAME_FORMAT=weekday-number //Optional - set dumper engine to mydumper instead default mysqldump BACKUP_DUMP_ENGINE=mydumper
将控制器添加到config/console.php中
'controllerMap' => [ 'backup' => [ 'class' => 'DbBackup\controllers\yii2\BackupController', ],
示例cron命令
0 4 * * * /usr/bin/php [SITE PATH]/yii backup/dump -i=daily >> [SITE PATH]/vendor/dbrisinajumi/dbbackup/runtime/log/db-dump-daily.log 2>&1
通过自定义脚本使用
use DbBackup\Dumper; // include your own config files with access constants and autoload; require dirname(__FILE__, 2) . '/config.inc'; require CMS_VENDOR_PATH . 'autoload.php'; // Run the Dumper with necessary params $dumper = new Dumper( [ 'dbUser' => CMS_DBUSER, // Database user 'dbPassword' => CMS_DBPASS, // Database password 'dbName' => CMS_DBASE, // Database name 'dbHost' => CMS_DBSERVER, // Database host 'interval' => Dumper::INTERVAL_DAILY, // Interval name (used for dump file and backup folder naming) 'cronPath' => __FILE__, // Path for cron (used for generated cron command example) // Optional params 'dumpFileName' => Dumper::FILE_NAME_WEEKDAY_NUMBER, // Set the dump file names to rewritable (weekday numbers like 1.sql, 2.sql) to reduce disk space 'dumperApp' => parent::DUMPER_MYDUMPER, // Set mydumper as alternative (may not work correctly yet) ] ); echo $dumper->run();
上传备份到远程服务器
通过Yii2控制台命令和.env文件使用
在.env文件中设置备份服务器访问变量
BACKUP_DUMP_FILE_NAME_FORMAT = weekday-number BACKUP_SERVER_HOST=backups.example.com BACKUP_SERVER_USERNAME=backupuser BACKUP_SERVER_PASSWORD=secretpassword BACKUP_SERVER_PATH=my.website.com
将控制器添加到config/console.php中
'controllerMap' => [ 'backup' => [ 'class' => 'DbBackup\controllers\yii2\BackupController', ],
示例cron命令
0 4 * * * /usr/bin/php [SITE PATH]/yii backup/sync -i=daily >> [SITE PATH]/vendor/dbrisinajumi/dbbackup/runtime/log/backup-sync-daily.log 2>&1
通过自定义脚本使用
use DbBackup\Sync; // include your own config files with access constants and autoload; require dirname(__FILE__, 2) . '/config.inc'; require CMS_VENDOR_PATH . 'autoload.php'; $sync = new Sync([ 'host' => BACKUP_SERVER_HOST, 'user' => BACKUP_SERVER_USERNAME, 'password' => BACKUP_SERVER_PASSWORD, 'remotePath' => BACKUP_SERVER_PATH, 'cronPath' => __FILE__, ]); echo $sync->run();