OW Debug - Notice
Message: Trying to access array offset on value of type null
File: /home/romarekl/public_html/sosyallift.com/ow_plugins/forum/controllers/topic.php
Line: 136
#1881 - Operation not allowed when innodb_forced_recovery > 0. [Çöz...
Loading...
 
tr
Bilişim ve Teknoloji
Bilişim ve Teknoloji Ocak 12 '18

#1881 - Operation not allowed when innodb_forced_recovery > 0.

Lütfen my.cnf dosyasını değiştirin

innodb_force_recovery = 1

Değiştirildi

innodb_force_recovery = 0

Innodb_fast_shutdown parametresi kapatıldığında tablonun depolama motorunun InnoDB olarak davranışını etkiler.

Bu parametrenin değeri 0, 1, 2

0 parti adına MySql kapatıldı, InnoDB tüm süreci tamamlamak ve biraz zaman alacak ekleme arabelleği işlemini birleştirme yapması gerekiyor. 1, yukarıdaki tam temizlemeyi tamamlamak, insert arabellek işlemini birleştirmek zorunda değilsiniz, ancak arabellek havuzundaki bazı kirli veriler yine de diske boşaltılacaktır. 2 temsilci, tam silme işlemini tamamlamıyor, ekleme arabelleği işlemini birleştirmiyor ve arabellek havuzundaki kirli verileri diske geri koyuyor ancak tüm günlük dosyalarını günlüğe kaydediyor. Bu kaybedecek bir şey olmaz, ancak MySQL veritabanı sonraki başlatma, kurtarma
parametrelerinin uygulanması Innodb_force_recovery, tüm InnoDB depolama motorunun iyileşmesini etkiler. Varsayılan 0

test:

Çevre: innodb_fast_shutdown = 2

innodb_flush_log_at_trx_commit = 2

sync_binlog = 0

innodb_force_recovery, tüm InnoDB depolama altyapısının kurtarılmasını etkiler. Varsayılan değer 0'dır, yani geri yüklenmesi gerektiğinde yürütülecektir

Çalışmaya devam et Etkili kurtarma işlemi yapılmadığında, mysql başlamayabilir ve hata günlüğünü kaydedebilir.
innodb_force_recovery, 1-6'ya ayarlanabilir, büyük rakamlar önceki rakamların etkisini içerir.
Parametre değeri 0'dan büyük olduğunda, tabloyu seçebilir, oluşturabilir, bırakabilir, ancak bu işlemleri ekleyebilir, güncelleyebilir veya silebilirsiniz

İzin verilmiyor.
1 (SRV_FORCE_IGNORE_CORRUPT): Kontrol edilen bozuk sayfayı yok sayın.
2 (SRV_FORCE_NO_BACKGROUND): Ana iş parçacıklarının çalıştırılmasını engelleyin, örneğin, ana iş parçacığı tam bir temizleme işlemi gerçekleştirmesi gerekir, kilitlenmeye neden olur.
3 (SRV_FORCE_NO_TRX_UNDO): İşlem geri alma işlemi gerçekleştirmeyin.
4 (SRV_FORCE_NO_IBUF_MERGE): Ekleme arabelleğinin birleştirme işlemi gerçekleştirilmez.
5 (SRV_FORCE_NO_UNDO_LOG_SCAN): Yinelenen günlükleri görüntülemeden InnoDB Depolama Alması, taahhüt edilmemiş işlemleri komplet olarak kabul eder.
6 (SRV_FORCE_NO_LOG_REDO): Roll-forward işlemi gerçekleştirmez.

Bir test
hasar xbb5.ibd tablo
verileri sayfa silindiği
= kullanılamaz 1-3 masa innodb_force_recovery
Can not: Gazete HATA 2002 (HY000) soket yoluyla yerel MySQL sunucusuna bağlanmak '/tmp/mysqld.sock' hata
innodb_force_recovery = 4-6 select * is available, select count izin verilmez
HATA 2013 (HY000): Sorgu hatası sırasında MySQL sunucusuna bağlantı kesildi


Bir işlem oluşturmak için iki kimliğini test edin, kök @ testi göndermeyin 04:32:32> başlayın
Sorgu Tamam, etkilenen 0 satır (0.01 saniye)

root @ test 04:33:14> test setini güncelle b = b + 100;
Sorgu Tamam, 9999 satır etkilenir (0.18 saniye)
Satırlar eşleşti: 9999 Değiştirildi: 9999 Uyarılar: 0

innodb_force_recovery = 0 Neden 130166
16:32:20 InnoDB: Veritabanı normal olarak kapatılmadı!
InnoDB: Çökme kurtarma işlemine başlama.
InnoDB: .bd dosyalarından tablo alanı bilgilerini okuyor ...
InnoDB: Çift yazılı InnoDB'den olası yarım-yazılmış veri sayfalarını geri yüklüyoruz
...
InnoDB: 1 işlem haddelenmeli veya temizlenmeli
InnoDB: toplamda
InnoDB'yi geri alacak 9999 satır işlemleri : Trx id sayacı 0 12544
InnoDB: Son MySQL binlog dosyası konumu 0 920753, dosya adı /vobiledata/mysqllog/mysql-bin.000245
InnoDB: Arka planda başlatılmamış
komisyonsuz işlemlerin geri alınması 130626 16:32: 21 InnoDB: trx'u kimliği 0 ile döndürür 12032, geri almak için 9999 satır

InnoDB: Yüzdelerdeki ilerleme: 1130626 16:32:21 InnoDB: Başlamış; günlük dizisi numarası 0 4330016
130626 16:32:21 [Not] / vobiledata / mysqllog / mysql-bin'i kullanarak bir kazanın ardından kurtarma
130626 16:32:21 [Not] Kilitlenme kurtarma
işlemine başlanılıyor ... 130626 16:32:21 [Not ] Çökme düzeltmesi tamamlandı.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97130626 16:32: 21 [Not] Olay Zamanlayıcısı: Yüklü 0 Olaylar
130626 16:32:21 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Sürüm: '5.1.57-log' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
98 99 100
InnoDB: trx idinin geri alınması 0 12032 tamamlandı
130626 16:32:21 InnoDB: Rollback hazırlanmamış işlemlerin tamamlanması

Geri alma verileri ve daha kurtarma nispeten yavaşsa
ana iş parçacığı durdurmak için innodb_force_recovery = 2 koşmak, ana iş parçacığı çökmesine yol açacaktır, hem tam tasfiye işlemi gerçekleştirmek gerekiyor.
InnoDB'nin: Kilitlenme Kurtarma başlatılıyor.
InnoDB'nin: TABLESPACE Bilgi Files okunuyor ... .ibd
InnoDB: Olası Yarım yazılı çifte geri yükleme Veri Sayfaları
InnoDb: Tampon ...
InnoDB'nin. İşlem 1 (S) veya geri alınması gerektiğinden Hangi Temizlenmiş kadar
Operasyonlarda 9999 Toplam Satır geri alma Kullanılır: InnoDb
InnoDB: Trx yukarıda belirtilen id sayacı belirtilen 0 15616 IS
Dosya Son MySQL binlog konumu 0 920 753 Dosya adı /vobiledata/mysqllog/mysql-bin.000245: InnoDB'nin
InnoDB'nin: Uncommitted ait ROLLBACK arka planda başlayan işlemler
130626 17:05:53 InnoDB: id 0 15104, 9999 satırları geri almak için tr rota geri al

InnoDB: Yüzdelerdeki ilerleme: 1130626 17:05:53 InnoDB: Başlamış; günlük sıra numarası 0 13016158
InnoDB: !!! innodb_force_recovery 2 olarak ayarlandı !!!
130626 17:05:53 [Not] / vobiledata / mysqllog / mysql-bin'i kullanarak bir kazanın ardından
kurtarma
130626 17:05:53 [Not] Kilitlenme kurtarma işlemine başlanılıyor ... 130626 17:05:53 [Not] Kilitlenme kurtarma işlemi tamamlandı.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85130626 17:05:53 [Not] Etkinlik Zamanlayıcısı: Yüklenmiş 0 etkinlik
130626 17 : 05: 53 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Sürüm: '5.1.57-log' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
InnoDB: trx idinin geri çevrilmesi 0 15104 tamamlandı
130626 17:05:53 InnoDB: hazır olmayan işlemlerin geri alınması tamamlandı

innodb_force_recovery = 3 Geri alma işlemi gerçekleştirmeyin

130626 16:33:53 InnoDB: Veritabanı normal olarak kapatılmadı!
InnoDB: Çökme kurtarma işlemine başlama.
InnoDB: .bd dosyalarından tablo alanı bilgilerini okuyor ...
InnoDB: Çift yazılı InnoDB'den olası yarım-yazılmış veri sayfalarını geri yüklüyoruz
...
InnoDB: 1 işlem haddelenmeli veya temizlenmeli
InnoDB: toplamda
InnoDB'yi geri alacak 9999 satır işlemleri : Trx id sayacı 0 13056
InnoDB: Son MySQL binlog dosyası konumu 0 920753, dosya adı /vobiledata/mysqllog/mysql-bin.000245
130626 16:33:53 InnoDB: Başladı; günlük sıralama numarası 0 6497918
InnoDB: !!! innodb_force_recovery 3 olarak ayarlandı !!!
130626 16:33:53 [Not] / vobiledata / mysqllog / mysql-bin'i kullanarak bir kazanın ardından kurtarma
130626 16:33:53 [Not] Çökme kurtarma
işlemine başlanıyor ... 130626 16:33:53 [Not] Crash recovery finished.
130626 16:33:53 [Not] Etkinlik Zamanlayıcısı: Yüklenmiş 0 etkinlik
130626 16:33:53 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Sürüm: '5.1.57-günlük' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)

innodb_force_recovery = 5 Yeniden kaydetme günlüğünü görüntüleme, innodb depolama motoru, işlem
güncellendiğinde şu anda gönderildiğini göndermeyecektir
+ ---- + ------ + ------ + --- --- +
| a | b | c | d |
+ ---- + ------ + ------ + ------ +
| 1 | 101 | 1 | 1 |
| 2 | 102 | 2 | 2 ||
3 | 103 | 3 | 3
|| 4 | 104 | 4 | 4
|| 5 | 105 | 5 | 5
|| 6 | 106 | 6 | 6
| 7 | 107 | 7 | 7 |
8 | 108 | 8 | 8
|| 9 | 109 | 9 | 9
|| 10 | 110 | 10 | 10 |
+ ---- + ------ + ------ + ------ +

innodb_force_recovery = 6 Bir rollforward işlemi gerçekleştirmeyin, ancak geri yüklediğinizde geri alma işlemi
+ ---- + ------ + ------ +
| a | b | c | d |
+ ---- + ------ + ------ + ------ +
| 1 | 101 | 1 | 1 |
| 2 | 102 | 2 | 2
|| 3 | 103 |. 3 |. 3 |
|. 4 | 104 |. 4 |. 4 |
|. 5 | 105 |. 5 |. 5 |
|. 6 | 106 |. 6 |. 6 |
|. 7 | 107 |. 7 |. 7 |
|. 8 | 108 |. 8 | 8
|| 9 | 109 | 9 | 9 ||
10 | 110 | 10 | 10 |
+ ---- + ------ + ------ + ------ +

130626 16:44:29 InnoDB: Veritabanı normal olarak kapatılmadı!
InnoDB: Çökme kurtarma işlemine başlama.
InnoDB: .bd dosyalarından tablo alanı bilgilerini okuyor ...
InnoDB: Olası yarım yazılmış veri sayfalarını doublewrite InnoDB: buffer'dan geri yüklüyor
...
InnoDB: Kurtarma yapıyor: sıra numarasını günlüğe kaydettirmek için taranmış 8680656
InnoDB: 1 işlem ) InnoDB: InnoDB'yi
geri almak için toplam 9999 satır işlemi
: Trx id sayacı 0 14080
InnoDB: Son MySQL binlog dosyası konumu 0 920753, dosya adı /vobiledata/mysqllog/mysql-bin.000245
InnoDB: Arkaplanda başlayarak
aktarmadığınız işlemlerin geri alınması 130626 16:44:29 InnoDB: tr 0, 0 13057, geri kalan 9999 satırlarla geri sarın

InnoDB: Yüzdelerdeki ilerleme: 1130626 16:44:29 InnoDB: Başlamış; kayıt dizisi numarası 0 8680656
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79130626 16:44:29 [Not] Etkinlik Zamanlayıcısı: Yüklenmiş 0 etkinlik
130626 16: 44:29 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Sürüm: '5.1.57-günlük' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
InnoDB :
Trx ID'sinin geri alınması 0 13057 tamamlandı 130626 16:44:29 InnoDB: hazır olmayan işlemlerin geri alınması tamamlandı
130626 16:45:08 mysqld_safe mysqld arka plan programını / vobiledata / mysqldata'dan veritabanları ile başlatma
130626 16:45:08 [Not] Plugin 'FEDERATED' devre dışı.
130626 16:45:08 InnoDB: başlatılıyor arabellek havuzu, size = 2.0G
130626 16:45:08 InnoDB: arabellek havuzunun başlatılması tamamlandı
InnoDB: Kullanıcı InnoDB'de SRV_FORCE_NO_LOG_REDO ayarlamış: Yeniden atlamayı
atlama
130626 16:45:08 InnoDB: Başlatılan; günlük sekansı numarası 0 0
InnoDB: !!! innodb_force_recovery 6'ya ayarlandı !!!
130626 16:45:08 [Not] / vobiledata / mysqllog / mysql-bin'i kullanarak bir çökme sonrasında
kurtarma
130626 16:45:08 [Not] Kilitlenmeyi giderme işlemine başlanılıyor ... 130626 16:45:08 [Not] Kilitlenme kurtarma işlemi tamamlandı.
130626 16:45:08 [Not] Olay Zamanlayıcısı: Yüklü 0 etkinlik
130626 16:45:08 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Versiyon: '5.1.57-log' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
130626 16:45:14 InnoDB: hata: tablo test nesnesinin space nesnesi /
InnoDB: space id 3 belleğinde yoktu. Açık denemeyi tekrar deniyorum.

-+------+------+------+
| 1 | 101 | 1 | 1 |
| 2 | 102 | 2 | 2 |
| 3 | 103 | 3 | 3 |
| 4 | 104 | 4 | 4 |
| 5 | 105 | 5 | 5 |
| 6 | 106 | 6 | 6 |
| 7 | 107 | 7 | 7 |
| 8 | 108 | 8 | 8 |
| 9 | 109 | 9 | 9 |
| 10 | 110 | 10 | 10 |
+----+------+------+------+

130626 16:44:29 InnoDB: Veritabanı normal olarak kapatılmadı!
InnoDB: Çökme kurtarma işlemine başlama.
InnoDB: .bd dosyalarından tablo alanı bilgilerini okuyor ...
InnoDB: Olası yarım yazılmış veri sayfalarını doublewrite InnoDB: buffer'dan geri yüklüyor
...
InnoDB: Kurtarma yapıyor: sıra numarasını günlüğe kaydettirmek için taranmış 8680656
InnoDB: 1 işlem ) InnoDB: InnoDB'yi
geri almak için toplam 9999 satır işlemi
: Trx id sayacı 0 14080
InnoDB: Son MySQL binlog dosyası konumu 0 920753, dosya adı /vobiledata/mysqllog/mysql-bin.000245
InnoDB: Arkaplanda başlayarak
aktarmadığınız işlemlerin geri alınması 130626 16:44:29 InnoDB: tr 0, 0 13057, geri kalan 9999 satırlarla geri sarın

InnoDB: Yüzdelerdeki ilerleme: 1130626 16:44:29 InnoDB: Başlamış; kayıt dizisi numarası 0 8680656
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79130626 16:44:29 [Not] Etkinlik Zamanlayıcısı: Yüklenmiş 0 etkinlik
130626 16: 44:29 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Sürüm: '5.1.57-günlük' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
InnoDB :
Trx ID'sinin geri alınması 0 13057 tamamlandı 130626 16:44:29 InnoDB: hazır olmayan işlemlerin geri alınması tamamlandı
130626 16:45:08 mysqld_safe mysqld arka plan programını / vobiledata / mysqldata'dan veritabanları ile başlatma
130626 16:45:08 [Not] Plugin 'FEDERATED' devre dışı.
130626 16:45:08 InnoDB: başlatılıyor arabellek havuzu, size = 2.0G
130626 16:45:08 InnoDB: arabellek havuzunun başlatılması tamamlandı
InnoDB: Kullanıcı InnoDB'de SRV_FORCE_NO_LOG_REDO ayarlamış: Yeniden atlamayı
atlama
130626 16:45:08 InnoDB: Başlatılan; günlük sekansı numarası 0 0
InnoDB: !!! innodb_force_recovery 6'ya ayarlandı !!!
130626 16:45:08 [Not] / vobiledata / mysqllog / mysql-bin'i kullanarak bir çökme sonrasında
kurtarma
130626 16:45:08 [Not] Kilitlenmeyi giderme işlemine başlanılıyor ... 130626 16:45:08 [Not] Kilitlenme kurtarma işlemi tamamlandı.
130626 16:45:08 [Not] Olay Zamanlayıcısı: Yüklü 0 etkinlik
130626 16:45:08 [Not] / usr / local / mysql / bin / mysqld: bağlantılar için hazır.
Versiyon: '5.1.57-log' soketi: '/tmp/mysqld.sock' port: 3306 MySQL Topluluk Sunucusu (GPL)
130626 16:45:14 InnoDB: hata: tablo test nesnesinin space nesnesi /
InnoDB: space id 3 belleğinde yoktu. Açık denemeyi tekrar deniyorum.

Paylaş: