Rumah > pangkalan data > tutorial mysql > Bagaimana untuk memulihkan data MySQL melalui fail log

Bagaimana untuk memulihkan data MySQL melalui fail log

王林
Lepaskan: 2023-05-26 15:49:06
ke hadapan
3478 orang telah melayarinya

    1 Cari fail binlog terkini

    Masukkan baris arahan mysql dan laksanakan arahan berikut

    mysql> show master status;
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | binlog.000001 |       967 |
    | binlog.000002 |       965 |
    +------------------+-----------+
    Salin selepas log masuk

    Secara amnya nombor terkini ialah lebih besar, yang terbaru di atas Yang satu ialah binlog.000002

    2 Cari kedudukan mula dan akhir data yang ingin kami pulihkan dalam fail log

    Terdapat dua cara untuk menentukan. kedudukan mula dan kedudukan tamat, satu ialah menggunakan masa Sebagai permulaan dan tamat, satu ialah menggunakan kedudukan log sebagai kedudukan mula dan tamat

    2.1.1 Lihat kandungan log melalui perintah mysqlbinlog mysql-bin.000002, dan kemudian cari titik masa pemadaman :

    # at 131708213
    #210610 11:27:01 server id 1  end_log_pos 131708311 CRC32 0x0fc755e2     Table_map: `loongwind_base`.`xxxx` mapped to number 139
    # at 131708311
    #210610 11:27:01 server id 1  end_log_pos 131708411 CRC32 0xa91616b9     Write_rows: table id 139 flags: STMT_END_F
    
    BINLOG '
    BffBYBMBAAAAYgAAAJe12QcAAIsAAAAAAAEADmR4bWhfYmFzZV9oenN5ABpkeF9zeV9hc3NldHNf
    ZXh0ZW5kc19jb3B5MQAICAgIDwgSCBIEAAgAAPgBAQACA/z/AOJVxw8=
    BffBYB4BAAAAZAAAAPu12QcAAIsAAAAAAAMAAgAI/wDRAwAAm1M8AUIAAADRUjwBCgAAAFYL5gAM
    AOWFrOWuieacuuWFs7EBAADbwZkAmama6E+xAQAA28GZAJmpmuhPuRYWqQ==
    '/*!*/;
    Salin selepas log masuk

    Kemudian tentukan titik masa sandaran terakhir Jika anda tidak dapat mencari titik masa sandaran terakhir melalui log, anda boleh mengisi titik masa dalam ingatan anda yang lebih kecil daripada sandaran terakhir

    2.2 . Gunakan julat kedudukan

    untuk melihat kedudukan acara log

    mysql -uroot -p'password' -e "show binlog events in 'binlog.000002'"|grep -i 'DROP TABLE'
    Salin selepas log masuk

    . Keputusan perlaksanaan adalah seperti berikut:

    binlog.000002 820474948 Pertanyaan 1 820475111 gunakan `loongwind_base ` / *do EXIST`S TABLE /*uF jana. * xid=11790691 */

    Iaitu, kedudukan yang dipadam ialah 820474948

    atau gantikan kata kunci melalui arahan di atas Cari titik kedudukan sandaran terakhir

    3. Pulihkan

    3.1 Pulihkan melalui masa

    mysqlbinlog --no-defaults --database=loongwind_base --start-datetime="2021-06-07 09:00:00" --stop-datetime="2021-06-10 16:37:58" binlog.000005 | mysql -uroot -p'password' -s -N -f -D loongwind_base
    Salin selepas log masuk

    di mana dxmh_base_hzsy ialah nama pangkalan data

    3.2 Pulihkan melalui kedudukan

    mysqlbinlog  --start-position=1178  --stop-position=2751 -d dxmh-sy binlog.000002|mysql -uroot -p'password' -s -N -f -D loongwind_base
    loongwind_base 为数据库名称
    Salin selepas log masuk

    Jika anda benar-benar tidak boleh mencari masa mula atau kedudukan mula, anda tidak perlu menulis --start-datetime atau --start-position Ini akan menggunakan permulaan fail log ini untuk memulihkan hingga akhir Untuk mengelakkan konflik dengan For konflik data, anda perlu menambah -f, iaitu, memaksa untuk melangkau ralat dan meneruskan pelaksanaan.

    Atas ialah kandungan terperinci Bagaimana untuk memulihkan data MySQL melalui fail log. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan