1. sql 資料庫備份與還原命令時什麼怎麼用急!!!
1.備份資料庫
BAKUP DATABASE db_name
TO device
with
BLockSize=
Description='db_name資料庫備份'
Differential,
ExpireDate=
RetainDays=
Password=
Format|Noformat
MediaName=
MediaDescription=
MediaPassword=
Name=
Init|Noinit
Skip|NoSkip
Unload|NoUnload
NoRewind|Rewind
Restart
Stats=
2.備份數據事務日誌
BAKUP LOG db_name
TO device
with
BLockSize=
Description='db_name資料庫事務日誌備份'
ExpireDate=
RetainDays=
Password=
Format|Noformat
MediaName=
MediaDescription=
MediaPassword=
Name=
Init|Noinit
Skip|NoSkip
Unload|NoUnload
NoRewind|Rewind
NoRecovery|Standby=
Notruncate(清除事務日誌的非活動部分,但SQL Server記錄Bakuo Log命令)|NO_LOG(清除事務日誌的非活動部分,不記錄Bakup Log命令)|TruncatePOnly(備份事務日誌)
Restart
Stats=
3.恢復資料庫
Restore Database db_name
From device
With
Restricted_User
File=恢復具有多個備份子集的備份介質中的那個備份子集
Pssword=
MediaName=
MediaPassword=
Keep_Replication
Move file to file
Norecovery|Recovery|Standby=資料庫恢復操作的UNDO文件(恢復資料庫文件或文件組使用Norecovery選項)
Norewind|Rewind
Unload|NoUnload
Replace (若恢復的資料庫名稱與已存在的資料庫重名,則首先刪除原資料庫,然後重建)
Restart
Stats=
4.恢復事務日誌
Restore Log db_name
From device
With
Restricted_User
File=恢復具有多個備份子集的備份介質中的那個備份子集
Pssword=
MediaName=
MediaPassword=
Move file to file
Norecovery|Recovery|Standby=資料庫恢復操作的UNDO文件
Norewind|Rewind
Unload|NoUnload
Restart
Stats=
Stopat=(將資料庫恢復到該設定時間以前的狀態,只有在該時間以前的事物日誌才會被恢復)
Stopatmark='mark_name'[After datetime]
Stopbeforemark='mark_name'[After datetime]
DOB_ONLY:表示新恢復的資料庫的訪問許可權只授予資料庫所有者
Norecovery:表示恢復操作不回滾任何未提交的事務。若恢復某一資料庫備份後又恢復多個事務日誌,或在恢復過程中執行多個Restore命令,則要求除最後一條Restore命令外其他的必須使用該選項
Recovery:表示回滾所有未提交事務
5.部分恢復資料庫---進行部分資料庫恢復操作事要使用資料庫文件組,而且總是要恢復主要的文件和文件組,此外就是恢復所指定的文件和文件組
Restore Database db_name
<file or filegroup>
From device <備份設備名>
With
Partial
Restricted_User
File=恢復具有多個備份子集的備份介質中的那個備份子集
Pssword=
MediaName=
MediaPassword=
Keep_Replication
Move file to file
Norecovery|Recovery|Standby=資料庫恢復操作的UNDO文件(恢復資料庫文件或文件組使用Norecovery選項)
Norewind|Rewind
Unload|NoUnload
Restart
Stats=
2. 如何編寫sql備份表語句
備份表是資料庫管理中的重要步驟。以下是針對不同資料庫系統編寫備份表語句的方法:
SQL Server
使用SELECT INTO語句復製表數據到新表,然後使用BACKUP DATABASE命令備份整個資料庫至文件。
MySQL
使用SELECT INTO OUTFILE語句導出表數據至文件,接著使用mysqlmp命令備份資料庫至文件。
Oracle
同樣使用SELECT INTO語句復制數據至新表,接下來通過expdp命令備份整個資料庫至文件。
SQLite
使用SELECT INTO語句將表數據復制到新表,然後使用sqlite3命令備份資料庫至文件。
PostgreSQL
使用pg_mp命令備份表結構和數據至文件。這命令僅備份名為original_table的表,若需備份整個資料庫,可省略-t參數。
在執行備份時應關注數據一致性,最好在事務中操作,以防備份過程中的錯誤導致數據不一致。備份後,可通過LOAD DATA INFILE(MySQL)、SQL Server Management Studio(SQL Server和Oracle)導入備份文件至新表,或使用mysqlmp、BACKUP DATABASE(SQL Server)或expdp命令備份整個資料庫至文件。