MySQL - 為備份鎖定例項語句



LOCK INSTANCE FOR BACKUP 語句

您可以使用 MySQL LOCK INSTANCE FOR BACKUP 語句建立例項級備份鎖。此鎖允許在線上備份期間操作資料。這可以防止影響事務一致性的操作。

要執行此語句,您需要 BACKUP_ADMIN 許可權(如果您具有 RELOAD 許可權,則會自動授予此許可權)。

當您擁有此鎖時,您:

  • 無法建立、重新命名或刪除記錄。
  • 無法修復、截斷和最佳化表。
  • 可以執行僅影響使用者建立的臨時表的 DDL 操作。
  • 可以建立、重新命名、刪除臨時表。
  • 可以建立二進位制日誌檔案。

語法

以下是 MySQL **LOCK INSTANCE FOR BACKUP** 語句的語法:

LOCK INSTANCE FOR BACKUP

示例

假設我們建立了一個表,其中包含銷售詳細資訊以及客戶的聯絡方式,如下所示:

CREATE TABLE SALES_DETAILS (
   ID INT,
   ProductName VARCHAR(255),
   CustomerName VARCHAR(255),
   DispatchDate date,
   DeliveryTime time,
   Price INT,
   Location VARCHAR(255),
   CustomerAge INT,
   CustomrtPhone BIGINT,
   DispatchAddress VARCHAR(255),
   Email VARCHAR(50)
);

現在,讓我們使用 INSERT 語句將 2 條記錄插入到上面建立的表中:

Insert into SALES_DETAILS values
(1, 'Key-Board', 'Raja', DATE('2019-09-01'), TIME('11:00:00'), 7000, 
'Hyderabad', 25, '9000012345', 'Hyderabad – Madhapur', 
'pujasharma@gmail.com'),
(2, 'Mobile', 'Vanaja', DATE('2019-03-01'), TIME('10:10:52'), 9000, 
'Chennai', 30, '9000012365', 'Chennai- TNagar', 
'vanajarani@gmail.com');

如果我們想要另一個只包含客戶聯絡資訊的表,請建立一個表:

CREATE TABLE CustContactDetails (
   ID INT,
   Name VARCHAR(255),
   Age INT,
   Phone BIGINT,
   Address VARCHAR(255),
   Email VARCHAR(50)
);

下面的查詢使用 INSERT INTO SELECT 語句將記錄插入 CustContactDetails 表。在這裡,我們嘗試將 SALES_DETAILS 表中的記錄插入到 CustContactDetails 表中:

INSERT INTO CustContactDetails (ID, Name, Age, Phone, Address, Email)
SELECT
 ID, CustomerName, CustomerAge, CustomrtPhone, DispatchAddress, Email
 FROM SALES_DETAILS
WHERE ID = 1 AND CustomerName = 'Raja';

INSERT INTO CustContactDetails (ID, Name, Age, Phone, Address, Email)
SELECT
ID, CustomerName, CustomerAge, CustomrtPhone, DispatchAddress, Email
FROM SALES_DETAILS
WHERE ID = 2 AND CustomerName = 'Vanaja';

您可以驗證 CustContactDetails 表的內容,如下所示:

SELECT * FROM CustContactDetails;

輸出

上面的查詢產生以下輸出:

ID 姓名 年齡 電話 地址 郵箱
1 Raja 25 9000012345 海德拉巴 - 馬達普爾 pujasharma@gmail.com
2 Vanaja 30 9000012365 欽奈 - T Nagar vanajarani@gmail.com

以下查詢集鎖定例項,重新整理上面建立的表,並解鎖例項。

LOCK INSTANCE FOR BACKUP;

FLUSH TABLES emp, custcontactdetails WITH READ LOCK;

UNLOCK TABLES;

UNLOCK INSTANCE;
廣告