dbForge Studio for MySQL教程:備份所有MySQL Server數(shù)據(jù)庫或僅備份所需的數(shù)據(jù)庫
dbForge Studio for MySQL是一個在Windows平臺被廣泛使用的MySQL客戶端,它能夠使MySQL開發(fā)人員和管理人員在一個方便的環(huán)境中與他人一起完成創(chuàng)建和執(zhí)行查詢,開發(fā)和調(diào)試MySQL程序,自動化管理MySQL數(shù)據(jù)庫對象等工作。
如果只需要管理幾個數(shù)據(jù)庫,則可以借助一些簡單的腳本或配置一個將自動執(zhí)行備份的SQL Server代理,輕松、無縫地完成常規(guī)備份操作。但是有時候情況更加復雜。例如,當有數(shù)百個數(shù)據(jù)庫時,手動備份每個數(shù)據(jù)庫可能會非常耗時。
因此,對于開發(fā)人員和DBA而言,找到一種解決方案以允許備份所有數(shù)據(jù)庫或僅備份必需的數(shù)據(jù)庫而不影響服務器性能,這一點非常重要。
在本文中,我們旨在提供一個工作示例,該工作示例備份由列表指定的數(shù)據(jù)庫,并對所有數(shù)據(jù)庫進行批量備份。該任務將通過dbForge Studio for MySQL來執(zhí)行,該工具允許在命令提示符和PowerShell中執(zhí)行常規(guī)任務。在本文中,我們將介紹這兩種變體。
備份選定連接的所有數(shù)據(jù)庫
為了完成任務,我們需要創(chuàng)建一個腳本。
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、密碼、主機和端口參數(shù)。
4、保存文件擴展名為.PS1的文件(例如all_DB_backup.ps1)。
請注意,我們不打算在本文中解釋命令行語法的所有方面。
腳本執(zhí)行
成功完成備份后,將創(chuàng)建一個包含SQL文件的文件夾all_DB_backup 。
從列表備份數(shù)據(jù)庫
為了完成任務,我們將需要以下文件集:
1、一個名為DB_list.txt的TXT文件,其中包含要備份的數(shù)據(jù)庫列表。
2、帶有腳本的PS文件。
首先,讓我們指定要備份的數(shù)據(jù)庫。
1、打開一個新的記事本文檔,并列出數(shù)據(jù)庫。
2、將新的TXT文件另存為DB_list.txt 。
請注意,數(shù)據(jù)庫列表應以列形式編寫,沒有任何分隔符,每個數(shù)據(jù)庫都換行。
然后,我們需要在PS1文件中創(chuàng)建一個腳本。
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、密碼、主機和端口參數(shù)。
4、保存文件擴展名為.PS1的文件(例如,DB_list_backup.ps1)。
腳本執(zhí)行
成功完成備份后,將創(chuàng)建一個包含SQL文件的文件夾DB_list_backup 。
通過掩碼備份數(shù)據(jù)庫
為了完成任務,我們需要創(chuàng)建一個腳本。
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、密碼、主機和端口參數(shù)。
4、保存文件擴展名為.PS1的文件(例如,DB_by_mask_backup.ps1)。
腳本執(zhí)行
您需要使用額外的參數(shù)來執(zhí)行腳本。例如,DB_by_mask_backup.ps1 test_DB_name。成功完成備份后,將創(chuàng)建一個包含SQL文件的文件夾DB_by_mask_backup 。
BAT文件
您還可以創(chuàng)建可執(zhí)行的BAT文件,以通過命令行界面運行首要任務。
要創(chuàng)建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、密碼、主機和端口參數(shù)。
4、保存擴展名為.bat的文件。
腳本執(zhí)行
BAT文件使用以下輸入?yún)?shù)執(zhí)行:
1或為空—將備份連接中的所有數(shù)據(jù)庫
2- 將備份DB_list.txt 文件中指定的所有數(shù)據(jù)庫
3“ mask”-將備份名稱與掩碼名稱匹配的所有數(shù)據(jù)庫。
執(zhí)行的例子
所有數(shù)據(jù)庫:
all_DB_backup_with_param.bat
all_DB_backup_with_param.bat 1
列表中的數(shù)據(jù)庫:
all_DB_backup_with_param.bat 2
帶有掩碼的數(shù)據(jù)庫:
成功完成備份后,將創(chuàng)建一個包含SQL文件的相應文件夾:
all_DB_backup ——用于所有數(shù)據(jù)庫
DB_list_backup ——用于列表中的數(shù)據(jù)庫
DB_by_mask_backup ——用于由掩碼選擇的數(shù)據(jù)庫。
結(jié)論
MySQL Server備份是一項重要任務,旨在保護SQL Server數(shù)據(jù)庫中存儲的數(shù)據(jù)免受由于硬件故障、網(wǎng)絡(luò)入侵、人為錯誤等造成的重大損失。
在本文中,我們提供了一種解決方案,可以備份列表指定的數(shù)據(jù)庫并批量備份所有數(shù)據(jù)庫。為了完成此任務,我們創(chuàng)建了一個bat文件,只需單擊一下即可處理該任務。還提供了三個工作腳本,用于備份所有數(shù)據(jù)庫,從列表備份數(shù)據(jù)庫和通過掩碼備份數(shù)據(jù)庫。
本文內(nèi)容到這里就完結(jié)啦,希望文章對您有所幫助~您可以繼續(xù)關(guān)注我們了解更多產(chǎn)品文章資訊,或者下載產(chǎn)品,親自體驗產(chǎn)品功能~