翻譯|使用教程|編輯:莫成敏|2020-01-02 15:30:03.120|閱讀 339 次
概述:在本文中,我們旨在提供一個(gè)工作示例,該工作示例備份由列表指定的數(shù)據(jù)庫(kù),并對(duì)所有數(shù)據(jù)庫(kù)進(jìn)行批量備份。該任務(wù)將通過(guò)dbForge Studio for MySQL來(lái)執(zhí)行,該工具允許在命令提示符和PowerShell中執(zhí)行常規(guī)任務(wù)。在本文中,我們將介紹這兩種變體。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
dbForge Studio for MySQL是一個(gè)在Windows平臺(tái)被廣泛使用的MySQL客戶(hù)端,它能夠使MySQL開(kāi)發(fā)人員和管理人員在一個(gè)方便的環(huán)境中與他人一起完成創(chuàng)建和執(zhí)行查詢(xún),開(kāi)發(fā)和調(diào)試MySQL程序,自動(dòng)化管理MySQL數(shù)據(jù)庫(kù)對(duì)象等工作。
如果只需要管理幾個(gè)數(shù)據(jù)庫(kù),則可以借助一些簡(jiǎn)單的腳本或配置一個(gè)將自動(dòng)執(zhí)行備份的SQL Server代理,輕松、無(wú)縫地完成常規(guī)備份操作。但是有時(shí)候情況更加復(fù)雜。例如,當(dāng)有數(shù)百個(gè)數(shù)據(jù)庫(kù)時(shí),手動(dòng)備份每個(gè)數(shù)據(jù)庫(kù)可能會(huì)非常耗時(shí)。
因此,對(duì)于開(kāi)發(fā)人員和DBA而言,找到一種解決方案以允許備份所有數(shù)據(jù)庫(kù)或僅備份必需的數(shù)據(jù)庫(kù)而不影響服務(wù)器性能,這一點(diǎn)非常重要。
在本文中,我們旨在提供一個(gè)工作示例,該工作示例備份由列表指定的數(shù)據(jù)庫(kù),并對(duì)所有數(shù)據(jù)庫(kù)進(jìn)行批量備份。該任務(wù)將通過(guò)dbForge Studio for MySQL來(lái)執(zhí)行,該工具允許在命令提示符和PowerShell中執(zhí)行常規(guī)任務(wù)。在本文中,我們將介紹這兩種變體。
備份選定連接的所有數(shù)據(jù)庫(kù)
為了完成任務(wù),我們需要?jiǎng)?chuàng)建一個(gè)腳本。
1、打開(kāi)純文本編輯器,例如記事本。
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服務(wù)器路徑。
D:\ backup \ all_databases_backup \ PowerShell \ all_DB_backup –計(jì)算機(jī)上用于存儲(chǔ)輸出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路徑。
3、將自己的值分配給用戶(hù)ID、密碼、主機(jī)和端口參數(shù)。
4、保存文件擴(kuò)展名為.PS1的文件(例如all_DB_backup.ps1)。
請(qǐng)注意,我們不打算在本文中解釋命令行語(yǔ)法的所有方面。
腳本執(zhí)行
成功完成備份后,將創(chuàng)建一個(gè)包含SQL文件的文件夾all_DB_backup 。
從列表備份數(shù)據(jù)庫(kù)
為了完成任務(wù),我們將需要以下文件集:
1、一個(gè)名為DB_list.txt的TXT文件,其中包含要備份的數(shù)據(jù)庫(kù)列表。
2、帶有腳本的PS文件。
首先,讓我們指定要備份的數(shù)據(jù)庫(kù)。
1、打開(kāi)一個(gè)新的記事本文檔,并列出數(shù)據(jù)庫(kù)。
2、將新的TXT文件另存為DB_list.txt 。
請(qǐng)注意,數(shù)據(jù)庫(kù)列表應(yīng)以列形式編寫(xiě),沒(méi)有任何分隔符,每個(gè)數(shù)據(jù)庫(kù)都換行。
然后,我們需要在PS1文件中創(chuàng)建一個(gè)腳本。
1、打開(kāi)純文本編輯器,例如記事本。
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 –計(jì)算機(jī)上用于存儲(chǔ)輸出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路徑。
3、將自己的值分配給用戶(hù)ID、密碼、主機(jī)和端口參數(shù)。
4、保存文件擴(kuò)展名為.PS1的文件(例如,DB_list_backup.ps1)。
腳本執(zhí)行
成功完成備份后,將創(chuàng)建一個(gè)包含SQL文件的文件夾DB_list_backup 。
通過(guò)掩碼備份數(shù)據(jù)庫(kù)
為了完成任務(wù),我們需要?jiǎng)?chuàng)建一個(gè)腳本。
1、打開(kāi)純文本編輯器,例如記事本。
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 \ –服務(wù)器路徑。
D:\ backup \ all_databases_backup \ PowerShell \ DB_by_mask_backup –計(jì)算機(jī)上用于存儲(chǔ)輸出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路徑。
3、將自己的值分配給用戶(hù)ID、密碼、主機(jī)和端口參數(shù)。
4、保存文件擴(kuò)展名為.PS1的文件(例如,DB_by_mask_backup.ps1)。
腳本執(zhí)行
您需要使用額外的參數(shù)來(lái)執(zhí)行腳本。例如,DB_by_mask_backup.ps1 test_DB_name。成功完成備份后,將創(chuàng)建一個(gè)包含SQL文件的文件夾DB_by_mask_backup 。
BAT文件
您還可以創(chuàng)建可執(zhí)行的BAT文件,以通過(guò)命令行界面運(yùn)行首要任務(wù)。
要?jiǎng)?chuàng)建BAT文件:
1、打開(kāi)純文本編輯器,例如記事本。
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 \ –服務(wù)器路徑。
D:\ backup \ all_databases_backup –計(jì)算機(jī)上用于存儲(chǔ)輸出文件的位置。
C:\ Program Files \ Devart \ dbForge Studio for MySQL \ dbforgemysql.com – dbForge Studio for MySQL路徑。
3、將自己的值分配給用戶(hù)ID、密碼、主機(jī)和端口參數(shù)。
4、保存擴(kuò)展名為.bat的文件。
腳本執(zhí)行
BAT文件使用以下輸入?yún)?shù)執(zhí)行:
1或?yàn)榭铡獙浞葸B接中的所有數(shù)據(jù)庫(kù)
2- 將備份DB_list.txt 文件中指定的所有數(shù)據(jù)庫(kù)
3“ mask”-將備份名稱(chēng)與掩碼名稱(chēng)匹配的所有數(shù)據(jù)庫(kù)。
執(zhí)行的例子
所有數(shù)據(jù)庫(kù):
all_DB_backup_with_param.bat
all_DB_backup_with_param.bat 1
列表中的數(shù)據(jù)庫(kù):
all_DB_backup_with_param.bat 2
帶有掩碼的數(shù)據(jù)庫(kù):
成功完成備份后,將創(chuàng)建一個(gè)包含SQL文件的相應(yīng)文件夾:
all_DB_backup ——用于所有數(shù)據(jù)庫(kù)
DB_list_backup ——用于列表中的數(shù)據(jù)庫(kù)
DB_by_mask_backup ——用于由掩碼選擇的數(shù)據(jù)庫(kù)。
結(jié)論
MySQL Server備份是一項(xiàng)重要任務(wù),旨在保護(hù)SQL Server數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)免受由于硬件故障、網(wǎng)絡(luò)入侵、人為錯(cuò)誤等造成的重大損失。
在本文中,我們提供了一種解決方案,可以備份列表指定的數(shù)據(jù)庫(kù)并批量備份所有數(shù)據(jù)庫(kù)。為了完成此任務(wù),我們創(chuàng)建了一個(gè)bat文件,只需單擊一下即可處理該任務(wù)。還提供了三個(gè)工作腳本,用于備份所有數(shù)據(jù)庫(kù),從列表備份數(shù)據(jù)庫(kù)和通過(guò)掩碼備份數(shù)據(jù)庫(kù)。
本文內(nèi)容到這里就完結(jié)啦,希望文章對(duì)您有所幫助~您可以繼續(xù)關(guān)注我們了解更多產(chǎn)品文章資訊,或者下載產(chǎn)品,親自體驗(yàn)產(chǎn)品功能~
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: