Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Az sqlmaint segédprogram meghatározott karbantartási műveleteket hajt végre egy vagy több adatbázisban. Az sqlmaint használatával futtathat DBCC ellenőrzéseket, biztonsági másolatot készít egy adatbázisról és annak tranzakciónaplójáról, frissítheti a statisztikákat, és újraépítheti az indexeket. Minden adatbázis-karbantartási tevékenység létrehoz egy jelentést, amelyet elküldhet egy kijelölt szövegfájlba, HTML-fájlba vagy e-mail-fiókba. Az sqlmaint végrehajtja az SQL Server korábbi verzióiban létrehozott adatbázis-karbantartási terveket. Az SQL Server karbantartási terveinek parancssorból való futtatásához használja a dtexec segédprogramot.
Fontos
Ez a funkció az SQL Server egy későbbi verziójában lesz eltávolítva. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Ehelyett használja az SQL Server karbantartási terv funkcióját. A karbantartási tervekről további információt a Karbantartási tervek című témakörben talál.
Szemantika
sqlmaint
[ -? ] |
[
[ -S server_name [ \instance_name ] ]
[ -U login_ID [ -P password ] ]
{
[ -D database_name | -PlanName name | -PlanID guid ]
[ -Rpt text_file ]
[ -To operator_name ]
[ -HtmlRpt html_file [ -DelHtmlRpt <time_period> ] ]
[ -RmUnusedSpace threshold_percentfree_percent ]
[ -CkDB | -CkDBNoIdx ]
[ -CkAl | -CkAlNoIdx ]
[ -CkCat ]
[ -UpdOptiStats sample_percent ]
[ -RebldIdx free_space ]
[ -SupportComputedColumn ]
[ -WriteHistory ]
[
{ -BkUpDB [ backup_path ] | -BkUpLog [ backup_path ] }
{ -BkUpMedia
{ DISK [
[ -DelBkUps <time_period> ]
[ -CrBkSubDir ]
[ -UseDefDir ]
]
| TAPE
}
}
[ -BkUpOnlyIfClean ]
[ -VrfyBackup ]
]
}
]
<time_period> ::=
number [ minutes | hours | days | weeks | months ]
Érvek
A paramétereket és azok értékeit szóközzel kell elválasztaniuk. Adjon meg például egy szóközt a -S között.
-?
Az sqlmaint szintaxisdiagramjának visszaadása. Használja ezt a paramétert önállóan.
-S server_name[\instance_name]
Az SQL Server célpéldányát adja meg. Adja meg <server_name> az SQL Server adatbázismotor alapértelmezett példányához való csatlakozást a kiszolgálón. Adja meg <server_name>\<instance_name> , hogy csatlakozni szeretne a kiszolgálón található adatbázismotor nevesített példányához. Ha nem ad meg kiszolgálót, az sqlmaint a helyi számítógépen az adatbázismotor alapértelmezett példányához csatlakozik.
-U login_ID
Megadja a kiszolgálóhoz való csatlakozáskor használni kívánt fiókot. Ha nem adja meg ezt a paramétert, az sqlmaint megkísérli használni a Windows-hitelesítést. Ha login_ID speciális karaktereket tartalmaz, tegye idézőjelek közé ("); ellenkező esetben a dupla idézőjelek nem kötelezőek.
Fontos
Ha lehetséges, windowsos hitelesítést használjon.
-P jelszó
Megadja a login_ID jelszavát. Ez a paraméter csak akkor érvényes, ha a paramétert -U is megadja. Ha a jelszó speciális karaktereket tartalmaz, tegye idézőjelek közé; ellenkező esetben a kettős idézőjelek megadása nem kötelező.
Fontos
A jelszó nincs elfedve. Ha lehetséges, windowsos hitelesítést használjon.
-D database_name
Annak az adatbázisnak a nevét adja meg, amelyben a karbantartási műveletet végre szeretné hajtani. Ha database_name speciális karaktereket tartalmaz, tegye idézőjelek közé; ellenkező esetben a kettős idézőjelek megadása nem kötelező.
-PlanName név
Az Adatbázis-karbantartási terv varázslóval definiált adatbázis-karbantartási terv nevét adja meg. Az sqlmaint által a tervben használt egyetlen információ a tervben lévő adatbázisok listája. A többi sqlmaint paraméterben megadott karbantartási tevékenységek az adatbázisok ezen listájára lesznek alkalmazva.
-PlanID guid
Az Adatbázis-karbantartási terv varázslóval definiált adatbázis-karbantartási terv globálisan egyedi azonosítóját (GUID) adja meg. Az sqlmaint csak a tervben szereplő adatbázisok listáját használja. A többi sqlmaint paraméterben megadott karbantartási tevékenységek az adatbázisok ezen listájára lesznek alkalmazva. Ennek az értéknek meg kell egyeznie a msdb.dbo.sysdbmaintplans-beli plan_id értékkel.
-Rpt szövegfájl
Megadja a létrehozott jelentés teljes elérési útját és fájlnevét. A jelentés a képernyőn is létre lesz hozva. A jelentés úgy tartja karban a verzióadatokat, hogy hozzáad egy dátumot a fájlnévhez. A dátum a következő módon jön létre, a fájlnév végén, de a pont előtt, formátumban _<yyyyMMddhhmm>.
<yyyy> = év, <MM> = hónap, <dd> = nap, <hh> = óra, <mm> = perc.
Ha a segédprogramot 1996. december 1-jén 10:23-kor futtatja, és ez a text_file érték:
C:\Program Files\Microsoft SQL Server\MSSQL\Backup\AdventureWorks2022_maint.rpt
A létrehozott fájlnév a következő:
C:\Program Files\Microsoft SQL Server\MSSQL\Backup\AdventureWorks2022_maint_199612011023.rpt
A teljes univerzális elnevezési konvenció (UNC) fájlnév szükséges, amikor sqlmaint egy távoli kiszolgálóhoz fér hozzá text_file-hoz.
-A operator_name
Megadja azt az operátort, akinek a létrehozott jelentést az SQL Mailen keresztül küldi el a rendszer.
-HtmlRpt html_file
Megadja annak a fájlnak a teljes elérési útját és nevét, amelybe HTML-jelentést hoz létre.
Az sqlmaint úgy hozza létre a fájlnevet, hogy hozzáfűz egy formátum _<yyyyMMddhhmm> sztringet a fájlnévhez, ugyanúgy, mint a -Rpt paraméter esetében.
A teljes UNC-fájlnév szükséges html_file, amikor sqlmaint elér egy távoli kiszolgálót.
-DelHtmlRpt <time_period>
Törli a jelentés könyvtárában lévő HTML-jelentést, ha a jelentésfájl létrehozása utáni időintervallum meghaladja a time_period időtartamot.
-DelHtmlRpt Olyan fájlokat keres, amelyek neve megfelel a html_file paraméterből létrehozott mintának. Ha html_file van C:\Program Files\Microsoft SQL Server\MSSQL\Backup\AdventureWorks2022_maint.htm, akkor -DelHtmlRpt az sqlmaint törli azokat a fájlokat, amelyek neve megegyezik a mintával C:\Program Files\Microsoft SQL Server\MSSQL\Backup\AdventureWorks2022_maint*.htm , és amelyek régebbiek a megadott time_period.
-RmUnusedSpace threshold_percent free_percent
Megadja, hogy a rendszer eltávolítja a fel nem használt területet a megadott -Dadatbázisból. Ez a beállítás csak olyan adatbázisok esetében hasznos, amelyek automatikusan növekednek.
Threshold_percent megabájtban adja meg az adatbázis méretét, mielőtt az sqlmaint megkísérelné eltávolítani a nem használt adatterületet. Ha az adatbázis kisebb, mint a threshold_percent, nem történik művelet.
Free_percent megadja, hogy mennyi kihasználatlan terület maradjon az adatbázisban az adatbázis végső méretének százalékában megadva.
Ha például egy 200 MB-os adatbázis 100 MB adatot tartalmaz, akkor ha a free_percent értékét 10-re állítja, az adatbázis végső mérete 110 MB lesz. Az adatbázis nem lesz bővítve, ha kisebb, mint free_percent plusz az adatbázisban lévő adatok mennyisége. Ha például egy 108 MB-os adatbázis 100 MB-os adatokkal rendelkezik, a 10 free_percent megadása nem bontja ki az adatbázist 110 MB-ra; 108 MB marad.
-CkDB | -CkDBNoIdx
Megadja, hogy egy DBCC CHECKDB utasítás vagy egy DBCC CHECKDB beállítással rendelkező NOINDEX utasítás fut-e a megadott -Dadatbázisban.
Az sqlmaint figyelmeztetést ír text_file , ha az adatbázis fut.
-CkAl | -CkAlNoIdx
Megadja, hogy a(z) DBCC CHECKALLOC utasítás a NOINDEX beállítással a -D megadott adatbázisban fusson.
-CkCat
Megadja, hogy a DBCC CHECKCATALOG utasítás a megadott adatbázisban fusson -D.
-UpdOptiStats sample_percent
Megadja, hogy a következő utasítás fut-e az adatbázis minden tábláján:
UPDATE STATISTICS table WITH SAMPLE sample_percent PERCENT;
Ha a táblák számított oszlopokat tartalmaznak, akkor az -SupportedComputedColumn argumentumot is meg kell adni a -UpdOptiStats használata során.
További információ: UPDATE STATISTICS.
-RebldIdx free_space
Azt határozza meg, hogy a céladatbázis tábláinak indexeit a free_space százalékértékkel kell újraépíteni a kitöltési tényező inverzeként. Ha például free_space százalék 30, akkor a használt kitöltési tényező 70. Ha free_space 100 százalékos értéket ad meg, az indexek újraépülnek az eredeti kitöltési tényező értékével.
Ha az indexek számított oszlopokon találhatók, akkor a -SupportComputedColumn használata során meg kell adnia az -RebldIdx argumentumot.
-SupportSzámítottOszlop
Meg kell adni a karbantartási parancsok futtatásához DBCCsqlmainttel a számított oszlopokon.
-WriteHistory
Meghatározza, hogy bejegyzés készül minden karbantartási művelethez, amelyet a -PlanName meg van adva vagy -PlanID meg van adva, a bejegyzések a megadott terv azonosítóját használják sysdbmaintplan_history . Ha -D meg van adva, a beírt bejegyzések sysdbmaintplan_history nullákkal készülnek a tervazonosítóhoz.
-BkUpDB [ backup_path ] | -BkUpLog [ backup_path ]
Biztonsági mentési műveletet ad meg.
-BkUpDb biztonsági másolatot készít a teljes adatbázisról.
-BkUpLog csak a tranzakciónaplóról készít biztonsági másolatot.
backup_path a biztonsági mentés könyvtárát adja meg.
backup_path nincs szükség, ha -UseDefDir szintén meg van adva, és -UseDefDir felülbírálja backup_path , ha mindkettő meg van adva. A biztonsági mentés elhelyezhető egy könyvtárban vagy egy szalagos eszközcímben (például \\.\TAPE0). Az adatbázis biztonsági mentésének fájlneve automatikusan létrejön az alábbiak szerint:
dbname_db_yyyyMMddhhmm.BAK
Where:
-
<dbname>a biztonsági mentés alatt álló adatbázis neve. -
<yyyyMMddhhmm>a biztonsági mentési művelet<yyyy>időpontja = év,<MM>= hónap,<dd>= nap,<hh>= óra és<mm>= perc.
A tranzakciós biztonsági mentés fájlneve automatikusan, hasonló formátumban jön létre:
dbname_log_yyyymmddhhmm.BAK
Ha a -BkUpDB paramétert használja, akkor a -BkUpMedia paraméter használatával meg kell adnia az adathordozót is.
-BkUpMedia
A biztonsági mentés adathordozó típusát adja meg, vagy DISK vagy TAPE.
LEMEZ
Megadja, hogy a biztonsági mentési adathordozó lemez-e.
-DelBkUps <time_period>
Lemezes biztonsági mentések esetén azt adja meg, hogy a biztonsági mentési könyvtárban lévő biztonsági mentési fájlokat törölni kell, ha a biztonsági mentés létrehozását követő időintervallum meghaladja a time_period.
-CrBkSubDir
Lemezes biztonsági mentések esetén azt adja meg, hogy egy alkönyvtárat kell létrehozni a backup_path könyvtárban vagy az alapértelmezett biztonsági mentési könyvtárban, ha -UseDefDir az is meg van adva. Az alkönyvtár neve a megadott -Dadatbázisnévből jön létre.
-CrBkSubDir A backup_path paraméter módosítása nélkül egyszerűen helyezheti el a különböző adatbázisok biztonsági mentéseit külön alkönyvtárakba.
-UseDefDir
Lemezes biztonsági mentések esetén azt adja meg, hogy a biztonsági mentési fájl az alapértelmezett biztonsági mentési könyvtárban legyen létrehozva.
UseDefDir felülbírálja backup_path , ha mindkettő meg van adva. Az SQL Server alapértelmezett beállításával az alapértelmezett biztonsági mentési könyvtár a következő C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup: .
SZALAG
Megadja, hogy a biztonsági mentési adathordozó szalagos-e.
-BkUpOnlyIfClean
Megadja, hogy a biztonsági mentés csak akkor történjen meg, ha a megadott -Ck ellenőrzések nem találnak problémát az adatokkal kapcsolatban. A karbantartási műveletek ugyanabban a sorrendben futnak, mint a parancssorban. Adja meg a paramétereket -CkDB, -CkDBNoIdx, -CkAl, -CkAlNoIdx, -CkTxtAl, vagy -CkCat mielőtt az -BkUpDB vagy -BkUpLog paramétert, ha a -BkUpOnlyIfClean-t is meg szeretné adni. Ha nem adja meg ezeket a paramétereket, a biztonsági mentés akkor is megtörténik, ha az ellenőrzés problémákat jelez.
-VrfyBackup
Azt adja meg, hogy RESTORE VERIFYONLY a biztonsági mentés befejezése után fut.
szám [ perc| óra| nap| hét| hónap ]
Megadja az időintervallumot, amellyel megállapíthatja, hogy egy jelentés vagy biztonsági mentési fájl elég régi-e ahhoz, hogy törölhető legyen. a szám egy egész szám, amelyet egy időegység követ (szóköz nélkül). Érvényes példák:
12weeks3months15days
Ha csak számot ad meg, az alapértelmezett dátumrész a következő weeks.
Megjegyzések
Az sqlmaint segédprogram karbantartási műveleteket hajt végre egy vagy több adatbázisban. Ha megadja -D, a segédprogram csak a megadott adatbázison hajtja végre a többi kapcsolóban megadott műveleteket. Ha megadja -PlanName vagy -PlanID, az sqlmaint által a megadott karbantartási tervből lekérhető egyetlen információ a tervben lévő adatbázisok listája. A rendszer a többi sqlmaint paraméterben megadott összes műveletet alkalmazza a tervből beszerzett listában szereplő összes adatbázisra. Az sqlmaint segédprogram nem alkalmazza a tervben meghatározott karbantartási tevékenységeket.
Az sqlmaint segédprogram 0 értéket ad vissza, ha sikeresen fut, vagy 1-et, ha sikertelen. A hiba a következő esetekben jelentkezik:
A karbantartási műveletek bármelyike sikertelen.
A
-CkDB,-CkDBNoIdx,-CkAl,-CkAlNoIdx,-CkTxtAlvagy-CkCataz ellenőrzések az adatokkal kapcsolatos problémákat találnak.Általános hiba történt.
Engedélyek
Az olvasási és végrehajtási engedéllyel rendelkező Windows-felhasználók sqlmaint.exe végrehajthatják az sqlmaint segédprogramot. Alapértelmezés szerint a(z) sqlmaint.exe a <X>:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER1\MSSQL\Binn mappában van tárolva. Emellett a megadott SQL Server-bejelentkezéshez -login_ID rendelkeznie kell a megadott művelet végrehajtásához szükséges SQL Server-engedélyekkel. Ha Windows-hitelesítéssel csatlakozik az SQL Serverhez, a hitelesített Windows-felhasználóhoz hozzárendelt SQL Server-bejelentkezésnek rendelkeznie kell a megadott művelet végrehajtásához szükséges SQL Server-engedélyekkel.
Például az -BkUpDB utasítás végrehajtásához BACKUP engedélyre van szükség. Az argumentum használatához -UpdOptiStats pedig engedélyre van szükség az UPDATE STATISTICS utasítás végrehajtásához. További információ: Engedélyek (adatbázismotor).
Példák
Egy. DBCC-ellenőrzések végrehajtása adatbázison
Ez a példa egy adatbázison futtat DBCC ellenőrzéseket.
sqlmaint -S MyServer -D AdventureWorks2022 -CkDB -CkAl -CkCat -Rpt C:\MyReports\AdvWks_chk.rpt
B. Statisztikák frissítése
Ez a példa 15% mintával frissíti a statisztikát egy terv összes adatbázisában. A 110 MB-ot elérő adatbázisok zsugorodik, és csak 10% szabad területtel rendelkeznek.
sqlmaint -S MyServer -PlanName MyUserDBPlan -UpdOptiStats 15 -RmUnusedSpace 110 10
C. Az összes adatbázis biztonsági mentése
Ez a példa biztonsági másolatot készít a tervben lévő összes adatbázisról az egyéni alkönyvtárakra az alapértelmezett <X>:\Program Files\Microsoft SQL Server\MSSQLl13.MSSQLSERVER\MSSQL\Backup könyvtár használatával. A két hétnél régebbi biztonsági másolatokat is törli.
sqlmaint -S MyServer -PlanName MyUserDBPlan -BkUpDB -BkUpMedia DISK -UseDefDir -CrBkSubDir -DelBkUps 2weeks
D. Adatbázis biztonsági mentése
Ez a példa egyetlen adatbázisról készít biztonsági másolatot az alapértelmezett <X>:\Program Files\Microsoft SQL Server\MSSQLl13.MSSQLSERVER\MSSQL\Backup könyvtárra.
sqlmaint -S MyServer -BkUpDB -BkUpMedia DISK -UseDefDir