翻译|使用教程|编辑:莫成敏|2020-01-02 15:30:03.120|阅读 299 次
概述:在本文中,我们旨在提供一个工作示例,该工作示例备份由列表指定的数据库,并对所有数据库进行批量备份。该任务将通过dbForge Studio for MySQL来执行,该工具允许在命令提示符和PowerShell中执行常规任务。在本文中,我们将介绍这两种变体。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
dbForge Studio for MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作。
如果只需要管理几个数据库,则可以借助一些简单的脚本或配置一个将自动执行备份的SQL Server代理,轻松、无缝地完成常规备份操作。但是有时候情况更加复杂。例如,当有数百个数据库时,手动备份每个数据库可能会非常耗时。
因此,对于开发人员和DBA而言,找到一种解决方案以允许备份所有数据库或仅备份必需的数据库而不影响服务器性能,这一点非常重要。
在本文中,我们旨在提供一个工作示例,该工作示例备份由列表指定的数据库,并对所有数据库进行批量备份。该任务将通过dbForge Studio for MySQL来执行,该工具允许在命令提示符和PowerShell中执行常规任务。在本文中,我们将介绍这两种变体。
备份选定连接的所有数据库
为了完成任务,我们需要创建一个脚本。
1、打开纯文本编辑器,例如记事本。
2、输入以下代码:
Set-Location -Path "C:\Program Files\MySQL\MySQL Server 5.7\bin\" -PassThru .\mysql.exe --host=localhost --user=root --password=root --skip-column-names --execute="SELECT s.SCHEMA_NAME FROM information_schema.SCHEMATA s WHERE s.SCHEMA_NAME NOT IN (' mysql', 'information_schema', 'sys', 'performance_schema')" | Out-File "D:\backup\all_databases_backup\PowerShell\alldatabases.txt" foreach($DBname in Get-Content "D:\backup\all_databases_backup\PowerShell\alldatabases.txt") {Write-Host $DBname &"C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com" /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:$DBname /outputfile:"D:\backup\all_databases_backup\PowerShell\all_DB_backup\$DBname.sql"}
Where:
C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ – MySQL服务器路径。
D:\ backup \ all_databases_backup \ PowerShell \ all_DB_backup –计算机上用于存储输出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路径。
3、将自己的值分配给用户ID、密码、主机和端口参数。
4、保存文件扩展名为.PS1的文件(例如all_DB_backup.ps1)。
请注意,我们不打算在本文中解释命令行语法的所有方面。
脚本执行
成功完成备份后,将创建一个包含SQL文件的文件夹all_DB_backup 。
从列表备份数据库
为了完成任务,我们将需要以下文件集:
1、一个名为DB_list.txt的TXT文件,其中包含要备份的数据库列表。
2、带有脚本的PS文件。
首先,让我们指定要备份的数据库。
1、打开一个新的记事本文档,并列出数据库。
2、将新的TXT文件另存为DB_list.txt 。
请注意,数据库列表应以列形式编写,没有任何分隔符,每个数据库都换行。
然后,我们需要在PS1文件中创建一个脚本。
1、打开纯文本编辑器,例如记事本。
2、输入以下代码:
foreach($DBname in Get-Content "D:\backup\all_databases_backup\PowerShell\DB_list.txt") {Write-Host $DBname &"C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com" /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:$DBname /outputfile:"D:\backup\DB_databases_backup\PowerShell\DB_list_backup\$DBname.sql"}
Where:
D:\ backup \ DB_databases_backup \ PowerShell \ DB_list_backup –计算机上用于存储输出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路径。
3、将自己的值分配给用户ID、密码、主机和端口参数。
4、保存文件扩展名为.PS1的文件(例如,DB_list_backup.ps1)。
脚本执行
成功完成备份后,将创建一个包含SQL文件的文件夹DB_list_backup 。
通过掩码备份数据库
为了完成任务,我们需要创建一个脚本。
1、打开纯文本编辑器,例如记事本。
2、输入以下代码:
Set-Location -Path "C:\Program Files\MySQL\MySQL Server 5.7\bin\" -PassThru .\mysql.exe --host=localhost --user=root --password=root --skip-column-names --execute="SELECT s.SCHEMA_NAME FROM information_schema.SCHEMATA s WHERE s.SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'sys', 'performance_schema') and s.SCHEMA_NAME like '%$args%' " | Out-File "D:\backup\all_databases_backup\PowerShell\DB_by_mask.txt" foreach($DBname in Get-Content "D:\backup\all_databases_backup\PowerShell\DB_by_mask.txt") {Write-Host $DBname &"C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com" /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:$DBname /outputfile:"D:\backup\all_databases_backup\PowerShell\DB_by_mask_backup\$DBname.sql"}
Where:
C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ –服务器路径。
D:\ backup \ all_databases_backup \ PowerShell \ DB_by_mask_backup –计算机上用于存储输出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路径。
3、将自己的值分配给用户ID、密码、主机和端口参数。
4、保存文件扩展名为.PS1的文件(例如,DB_by_mask_backup.ps1)。
脚本执行
您需要使用额外的参数来执行脚本。例如,DB_by_mask_backup.ps1 test_DB_name。成功完成备份后,将创建一个包含SQL文件的文件夹DB_by_mask_backup 。
BAT文件
您还可以创建可执行的BAT文件,以通过命令行界面运行首要任务。
要创建BAT文件:
1、打开纯文本编辑器,例如记事本。
2、输入以下代码:
SetLocal EnableExtensions EnableDelayedExpansion Set Backup="C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com" goto DB_backup%1 rem backup of all databases :DB_backup :DB_backup1 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" --host=localhost --user=root --password=root --skip-column-names --execute="SELECT s.SCHEMA_NAME FROM information_schema.SCHEMATA s WHERE s.SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'sys', 'performance_schema')" > "D:\backup\all_databases_backup\alldatabases.txt" FOR /F "eol=; tokens=1,2* delims=, " %%e in (alldatabases.txt) do ( %backup% /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:%%e /outputfile:"D:\backup\all_databases_backup\all_DB_backup\%%e.sql" ) goto finish rem backup databases from the list :DB_backup2 FOR /F "eol=; tokens=1,2* delims=, " %%e in (DB_list.txt) do ( %backup% /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:%%e /outputfile:"D:\backup\all_databases_backup\DB_list_backup\%%e.sql" ) goto finish rem backup databases by mask :DB_backup3 set mask='%%% %%2%%%' "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" --host=localhost --user=root --password=root --skip-column-names --execute="SELECT s.SCHEMA_NAME FROM information_schema.SCHEMATA s WHERE s.SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'sys', 'performance_schema') AND s.SCHEMA_NAME LIKE %mask%" > "D:\backup\all_databases_backup\DB_by_mask.txt" FOR /F "eol=; tokens=1,2* delims=, " %%e in (DB_by_mask.txt) do ( %backup% /backup /connection:"User Id=root;Password=root;Host=localhost;Port=3306;Character Set=utf8" /database:%%e /outputfile:"D:\backup\all_databases_backup\DB_by_mask_backup\%%e.sql" ) goto finish :finish
Where:
C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ –服务器路径。
D:\ backup \ all_databases_backup –计算机上用于存储输出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路径。
3、将自己的值分配给用户ID、密码、主机和端口参数。
4、保存扩展名为.bat的文件。
脚本执行
BAT文件使用以下输入参数执行:
1或为空—将备份连接中的所有数据库
2- 将备份DB_list.txt 文件中指定的所有数据库
3“ mask”-将备份名称与掩码名称匹配的所有数据库。
执行的例子
所有数据库:
all_DB_backup_with_param.bat
all_DB_backup_with_param.bat 1
列表中的数据库:
all_DB_backup_with_param.bat 2
带有掩码的数据库:
成功完成备份后,将创建一个包含SQL文件的相应文件夹:
all_DB_backup ——用于所有数据库
DB_list_backup ——用于列表中的数据库
DB_by_mask_backup ——用于由掩码选择的数据库。
结论
MySQL Server备份是一项重要任务,旨在保护SQL Server数据库中存储的数据免受由于硬件故障、网络入侵、人为错误等造成的重大损失。
在本文中,我们提供了一种解决方案,可以备份列表指定的数据库并批量备份所有数据库。为了完成此任务,我们创建了一个bat文件,只需单击一下即可处理该任务。还提供了三个工作脚本,用于备份所有数据库,从列表备份数据库和通过掩码备份数据库。
本文内容到这里就完结啦,希望文章对您有所帮助~您可以继续关注我们了解更多产品文章资讯,或者下载产品,亲自体验产品功能~
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自: