Hướng dẫn does mysql have a recycle bin? - mysql có thùng rác không?

Không có tính năng như vậy tồn tại. //bugs.mysql.com nhận "Yêu cầu tính năng".

Một tính năng như vậy nhất thiết sẽ liên quan đến MySQL; Nó không thể được thực hiện hoàn toàn trong hệ thống hệ điều hành. Điều này là do thông tin MySQL đang chạy trong RAM mà FS không biết. Và bởi vì thông tin về bảng/dB/Proc/Trigger/etc không hoàn toàn nằm trong một tệp. Thay vào đó, thông tin bổ sung tồn tại trong các tập tin khác, tổng quát hơn.

Với Myisam, mục tiêu của bạn là một phần có thể trong FS. Một bảng Myisam bao gồm 3 tệp: .frm, ________ 9.Myi`. Tuy nhiên, MySQL sẽ cần phải xóa một cái gì đó để quên rằng nó biết về bảng trước khi FS có thể di chuyển 3 tệp ở một nơi khác. Myisam sẽ biến mất; Vì vậy, thậm chí đừng nghĩ về việc sử dụng 'động cơ' đó.

Trong Innodb, một bảng bao gồm tệp

"__" +  + 
0 [nếu sử dụng File_per_table] cộng với tệp .frm, cộng với một số thông tin trong tệp
"__" +  + 
2 chung. Nếu bảng là
"__" +  + 
3, bố cục phức tạp hơn.

Trong phiên bản 8.0, hầu hết các đoạn trước sẽ trở nên không chính xác - một thay đổi lớn đang xảy ra.

"Giao dịch" là một cách để hoàn tác ghi vào một bảng ...

BEGIN;
INSERT/UPDATE/DELETE/etc...
if [ change-mind ]
    then ROLLBACK;
    else COMMIT;

Thực tế, nhật ký hoàn tác hoạt động như một thùng tái chế - nhưng chỉ ở cấp độ kỷ lục và chỉ cho đến khi bạn thực hiện

"__" +  + 
4.

MySQL 8.0 sẽ thêm khả năng có các câu lệnh DDL [ví dụ:

"__" +  + 
5] vào một giao dịch. Nhưng, một lần nữa, chỉ đến khi
"__" +  + 
4.

Hãy nghĩ về

"__" +  + 
4 khi xả thùng rác.

Vì vậy, ... bạn sẽ cần ứng dụng để làm điều đó

Devrant trên iOS & Android cho phép bạn làm tất cả những điều như ++ hoặc - rants, đăng những lời ca ngợi của riêng bạn và nhận xét về những lời nói của người khác. Bạn cũng có thể thiết lập hồ sơ của bạn. Lấy nó ngay!

Swag miễn phí!

Nhận một quả bóng căng thẳng miễn phí nếu một bài báo bạn đăng nhận được 750 ++ 's

Tìm hiểu thêm

*Một số hạn chế áp dụng, nhấp vào "Tìm hiểu thêm"

Xác nhận email của bạn

Để bỏ phiếu, bình luận hoặc đăng bài, bạn cần xác nhận địa chỉ email của mình. Bạn nên nhận được một email chào mừng với một liên kết xác nhận khi bạn đăng ký. Nếu bạn không thể tìm thấy email, nhấp vào nút bên dưới.

Gửi lại email

Cơn thịnh nộ

Rant của bạn phải nằm trong khoảng từ 6 đến 5.000 ký tự

Chỉnh sửa lời nói

Rant của bạn phải nằm trong khoảng từ 6 đến 5.000 ký tự

Chỉnh sửa lời nói

Tham gia Devrant

Bỏ phiếu và nhận xét về những lời tán dương của người khác. Đăng của riêng bạn. Xây dựng Avatar tùy chỉnh của bạn.

!!

Bỏ phiếu và nhận xét về những lời tán dương của người khác. Đăng của riêng bạn. Xây dựng Avatar tùy chỉnh của bạn.

!!

Phải la một địa chỉ email hợp lệ

Phải trên 6 ký tự

Giữ tôi luôn đăng nhập

Bằng cách nhấp vào "Đăng ký", bạn đồng ý với Điều khoản của Chính sách Dịch vụ & Quyền riêng tư. FYI Chúng tôi không bao giờ hiển thị email của bạn cho các thành viên khác.

Đã trên Devrant?

Đăng nhập

Bỏ phiếu và nhận xét về những lời tán dương của người khác. Đăng của riêng bạn. Xây dựng Avatar tùy chỉnh của bạn.

!!

Bỏ phiếu và nhận xét về những lời tán dương của người khác. Đăng của riêng bạn. Xây dựng Avatar tùy chỉnh của bạn.

!!

Phải la một địa chỉ email hợp lệ

Forgot?

Phải trên 6 ký tự

Bỏ phiếu và nhận xét về những lời tán dương của người khác. Đăng của riêng bạn. Xây dựng Avatar tùy chỉnh của bạn.

!!

Tên của bảng trước khi bảng được chuyển đến thùng rác.

Thời gian khi bàn được chuyển đến thùng rác.

Thời gian khi bảng dự kiến ​​sẽ bị xóa khỏi thùng rác.

  • Purge_Table
  • Phương pháp này được sử dụng để xóa thủ công một bảng khỏi thùng rác. Để sử dụng phương thức này, hãy chạy lệnh sau:

Ghi chú

Tham số bảng chỉ định tên của bảng sau khi bảng được chuyển đến thùng rác.

Tham sốSự mô tả
loose_recycle_bin LƯỢC ĐỒ
loose_recycle_bin_retention Tên của cơ sở dữ liệu lưu trữ bảng sau khi bảng được chuyển đến thùng rác.
loose_recycle_scheduler BÀN
loose_recycle_scheduler_interval Tên của bảng sau khi bàn được chuyển đến thùng rác.
loose_recycle_scheduler_purge_table_print Tên của cơ sở dữ liệu lưu trữ bảng trước khi bảng được chuyển đến thùng rác.

Tên của bảng trước khi bảng được chuyển đến thùng rác. To prevent disk space from being exhausted, we recommend that you set the loose_recycle_bin_retention parameter to an optimal value and the loose_recycle_scheduler parameter to ON.

Thời gian khi bàn được chuyển đến thùng rác.

  • Tái chế và xóa
    • Tái chế

      Khi bạn thực hiện một câu lệnh

      "__" +  + 
      8 để cắt một bảng, APSARADB RDS di chuyển bảng bị cắt ngắn sang thùng rác. Sau đó, APSARADB RDS tạo ra một bảng trống ở vị trí ban đầu của bảng bị cắt cụt bằng cách sử dụng cùng lược đồ với bảng bị cắt cụt.

      Lưu ý Cơ chế tái chế chỉ được hỗ trợ khi phiên bản RDS của bạn chạy MySQL 8.0 [với phiên bản động cơ nhỏ từ 20200331 trở lên]. The recycling mechanism is supported only when your RDS instance runs MySQL 8.0 [with a minor engine version of 20200331 or later].

      Khi bạn thực hiện câu lệnh

      "__" +  + 
      9 để thả bảng hoặc cơ sở dữ liệu, Apsaradb RD chỉ di chuyển các bảng bị rơi vào thùng rác. APSARADB RDS quản lý tất cả các đối tượng khác dựa trên các chính sách sau:

      • Nếu không có mối quan hệ nào được thiết lập giữa một đối tượng và các bảng bị rơi, APSARADB RDS xác định có giữ lại đối tượng dựa trên câu lệnh thực thi hay không. APSARADB RDS không di chuyển các đối tượng đến thùng rác.
      • Nếu một đối tượng dựa trên các bảng bị rơi và có thể gây ra sửa đổi cho dữ liệu trong các bảng này, APSARADB RDS sẽ xóa đối tượng. Những đối tượng này bao gồm kích hoạt và khóa nước ngoài. APSARADB RDS không xóa số liệu thống kê cột. Những thống kê này được lưu trữ vào thùng rác với các bảng bị rơi.
    • Xóa

      Thùng tái chế bắt đầu một luồng nền để xóa các bảng không đồng bộ khỏi thùng rác. Các bảng này được lưu trữ trong thùng tái chế dài hơn khoảng thời gian được chỉ định bởi tham số Recycle_Bin_RetEnation. Nếu kích thước của một bảng trong thùng tái chế là lớn, APSARADB RDS bắt đầu một luồng nền khác để xóa không đồng bộ bảng.recycle_bin_retention parameter. If the size of a table in the recycle bin is large, ApsaraDB RDS starts another background thread to asynchronously delete the table.

  • Kiểm soát quyền

    Khi bạn bắt đầu phiên bản RDS của mình, cơ sở dữ liệu có tên __Recycle_Bin__ sẽ được tạo để lưu trữ dữ liệu được chuyển đến thùng rác. Cơ sở dữ liệu __recycle_bin__ là cơ sở dữ liệu hệ thống, không thể sửa đổi hoặc xóa.__recycle_bin__ is created to store the data that is moved to the recycle bin. The __recycle_bin__ database is a system database, which cannot be modified or deleted.

    Bạn không thể thực hiện các câu lệnh

    "__" +  + 
    5 để xóa các bảng khỏi thùng rác. Tuy nhiên, bạn có thể sử dụng phương thức
    call dbms_recycle.show_tables[];
    1 để xóa các bảng khỏi thùng rác.

    Lưu ý tài khoản mà bạn sử dụng phải có quyền để thực thi các câu lệnh thả trên cả phiên bản RDS của bạn và thùng rác. The account that you use must have the permissions to execute DROP statements on both your RDS instance and the recycle bin.

  • Bảng đặt tên trong thùng rác

    Các bảng trong cơ sở dữ liệu __recycle_bin__ bắt nguồn từ các cơ sở dữ liệu khác nhau và có thể có cùng tên. Để đảm bảo rằng mỗi bảng có một tên duy nhất trong thùng rác, APSARADB RDS thực hiện các quy ước đặt tên sau:__recycle_bin__ database originate from different databases and may have the same name. To ensure that each table has a unique name in the recycle bin, ApsaraDB RDS implements the following naming conventions:

    "__" +  + 

    Bảng sau đây mô tả các tham số trong các quy ước đặt tên.

    Tham sốSự mô tả
    Công cụ lưu trữ Tên của công cụ lưu trữ được sử dụng bởi bảng.
    SE id riêng Giá trị duy nhất được tạo bởi công cụ lưu trữ để xác định bảng. Ví dụ, giá trị duy nhất được sử dụng để xác định bảng InnoDB là ID của bảng.
  • Tái chế độc lập

    Các cấu hình của thùng tái chế cho một thể hiện RDS chỉ áp dụng cho thể hiện RDS đó. Các cấu hình của thùng rác cho cá thể RDS chính không áp dụng cho các trường hợp RDS RDS thứ cấp, chỉ đọc hoặc khắc phục thảm họa mà nhật ký nhị phân được sao chép. Ví dụ: bạn có thể chỉ định thời gian lưu giữ 7 ngày trên thể hiện RDS chính của mình và thời gian lưu giữ 14 ngày trên các trường hợp RDS thứ cấp.

    Lưu ý cách sử dụng lưu trữ của một thể hiện RDS thay đổi dựa trên thời gian lưu giữ mà bạn chỉ định trên trường hợp. The storage usage of an RDS instance varies based on the retention period that you specify on the instance.

Các biện pháp phòng ngừa

  • Nếu cơ sở dữ liệu __recycle_bin__ và bảng nằm trong các hệ thống tệp khác nhau, APSARADB RDS có thể di chuyển tệp dữ liệu liên quan từ không gian bảng lưu trữ bảng sau khi bạn thực thi câu lệnh
    "__" +  + 
    5 để bỏ bảng. Quá trình này là tốn thời gian.
  • Một không gian bảng chung có thể lưu trữ nhiều hơn một bảng. Nếu bạn thực hiện câu lệnh DROP BẢNG để thả bảng từ một không gian bảng chung, APSARADB RDS không di chuyển tệp dữ liệu liên quan từ không gian bảng chung.

Quản lý thùng rác

Alisql cung cấp các phương thức quản lý sau trong gói DBMS_RECYCLE:

  • show_tables

    Phương pháp này được sử dụng để hiển thị tất cả các bảng được lưu trữ tạm thời trong thùng rác. Để sử dụng phương thức này, hãy chạy lệnh sau:

    call dbms_recycle.show_tables[];

    Example:

    mysql> call dbms_recycle.show_tables[];
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    | SCHEMA          | TABLE         | ORIGIN_SCHEMA | ORIGIN_TABLE | RECYCLED_TIME       | PURGE_TIME          |
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    | __recycle_bin__ | __innodb_1063 | product_db    | t1           | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1064 | product_db    | t2           | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1065 | product_db    | parent       | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    | __recycle_bin__ | __innodb_1066 | product_db    | child        | 2019-08-08 11:01:46 | 2019-08-15 11:01:46 |
    +-----------------+---------------+---------------+--------------+---------------------+---------------------+
    4 rows in set [0.00 sec]
    Tham sốSự mô tả
    Công cụ lưu trữ Tên của công cụ lưu trữ được sử dụng bởi bảng.
    SE id riêng Giá trị duy nhất được tạo bởi công cụ lưu trữ để xác định bảng. Ví dụ, giá trị duy nhất được sử dụng để xác định bảng InnoDB là ID của bảng.
    ORIGIN_SCHEMA Tái chế độc lập
    ORIGIN_TABLE Các cấu hình của thùng tái chế cho một thể hiện RDS chỉ áp dụng cho thể hiện RDS đó. Các cấu hình của thùng rác cho cá thể RDS chính không áp dụng cho các trường hợp RDS RDS thứ cấp, chỉ đọc hoặc khắc phục thảm họa mà nhật ký nhị phân được sao chép. Ví dụ: bạn có thể chỉ định thời gian lưu giữ 7 ngày trên thể hiện RDS chính của mình và thời gian lưu giữ 14 ngày trên các trường hợp RDS thứ cấp.
    RECYCLED_TIME Lưu ý cách sử dụng lưu trữ của một thể hiện RDS thay đổi dựa trên thời gian lưu giữ mà bạn chỉ định trên trường hợp.
    PURGE_TIME Các biện pháp phòng ngừa
  • Purge_Table

    Phương pháp này được sử dụng để xóa thủ công một bảng khỏi thùng rác.Để sử dụng phương thức này, hãy chạy lệnh sau:

    call dbms_recycle.purge_table[''];

    Ghi chú

    • Tham số bảng chỉ định tên của bảng sau khi bảng được chuyển đến thùng rác.TABLE parameter specifies the name of the table after the table is moved to the recycle bin.
    • Tài khoản mà bạn sử dụng phải có quyền để thực thi các câu lệnh thả trên cả phiên bản RDS của bạn và thùng rác.

    Example:

    call dbms_recycle.purge_table['__innodb_1063'];
  • Khôi phục_table

    Phương pháp này được sử dụng để khôi phục một bảng từ thùng tái chế.Để sử dụng phương thức này, hãy chạy lệnh sau:

    call dbms_recycle.restore_table['','',''];

    Bảng sau đây mô tả các tham số cho phương pháp này.

  • Tham sốSự mô tả
    RECYCLE_TABLE Tên của bảng trong thùng rác.

    Lưu ý Nếu bạn chỉ định cấu hình tham số này, APSARADB RDS khôi phục dữ liệu về bảng gốc. If you configure only this parameter, ApsaraDB RDS restores data to the original table.

    DEST_DB Tên của cơ sở dữ liệu đích mà bạn muốn khôi phục bảng.
    DEST_TABLE Tên của bảng đích mà bạn muốn khôi phục bảng.

    Lưu ý thông tin đăng nhập siêu người dùng được yêu cầu để chạy lệnh restore_table.Do đó, bạn không thể chạy lệnh này. Super-user credentials are required to run the restore_table command. Therefore, you cannot run this command.

    Example:

    mysql> call dbms_recycle.restore_table['__innodb_1063','testDB','testTable'];

Bài Viết Liên Quan

Chủ Đề