Site, Server Genel » vBulletin Destek

dB birleştirme

Geri git   WHM cPanel Destek Platformu » Site, Sunucu Sorunlarınız ve Çözümleri » Site, Server Genel » vBulletin Destek
Kayıt ol Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et
 

Cevapla
 
LinkBack Seçenekler Stil
  #1 (permalink)  
Alt 09.02.08, 06:35 PM
tespara - ait Kullanıcı Resmi (Avatar)
Gamzede
 
Üyelik tarihi: Jun 2007
Nerden: dersaadet
Mesajlar: 67
Tecrübe Puanı: 42
tespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond reputetespara has a reputation beyond repute
tespara - MSN üzeri Mesaj gönder tespara isimli Üyeye Skype üzeri Mesaj gönder
dB birleştirme

Veritabanı (dB) birleştirme


Bu konuda vbulletine ait iki ayrı dB(veritabanı) birleştirme anlatılacaktır.Bu işlem için taşınacak olan db kaynak , diğeri hedef db dir.ve işlemlerin kolaylığı açısından kaynak db daha az kapasiteli olan db olursa hem hata yapma olasılığı azalır hemde karmaşadan uzak durmuş oluruz (hemde zamandan tasarruf etmiş oluruz)

icraata geçmeden önce konuyu baştan sona okuyun.

Kaynak db forumx ve hedef db forum olduğunu varsayın (karmaşayı önelemek için aşağıdaki resime bakabilirsiniz.). iki db arasında en kolay user tablosu taşınır. çünkü bu tablonun bağımlı olduğu hiç bir tablo yoktur.




Uyarılar :

  1. localhost kullanıcı adı root şifresi 123 olduğunu varsayıyorum (siz kendi şifrenizi gireceksiniz)
  2. Bu işlemi kendi bilgisayarım üzerinde yaptım. (Sunucuda tavsiye etmem)
  3. İşlem görecek veritabanlarının hangi vbulletin sürümlerine ait olduğu önemli değildir.
  4. Konuda geçen SQL sorguları konsol üzerinden çalıştırılmıştır(PMA danda çalıştırılabilir)
  5. Her iki db nin de aynı sunucuda yüklü olduğunu var sayıyorum.( db yükleme konusu için buraya bakınız )
  6. İlk örnek olarak user tablsounun taşınması anlatılacaktır
1- ilk adım olarak hedef db içindeki en büyük userid numarasını bulmalıyız. bunun için aşağıdaki sorguyu çalıştırın.
PHP- Kodu:
SELECT MAXuserid FROM user
userid numarasını belirleyici unsur olarak alma sebebimiz user tablosunda PRİMARY KEY olmasıdır

Bulunan bu sonuç kaynak db deki artma miktarını gösterir
(Bendeki değer 21833)



2- ikinci adım olarak kaynak db içindeki tüm userid numaralarını artma miktarı kadar artırmak, bunun için aşağıdaki sorguyu çalıştırın

PHP- Kodu:
UPDATE user SET userid=userid+21833 WHERE userid 
bunun sonucu olarak userid çakışmasını engellemiş olduk(Artık her iki db de aynı userid numarasına sahip olan kullanıcılar olamaz)

3- üçüncü adım olarak ilgil tabloyu (user) yedeklemek.BU yedekleme işlemine bazı mySQL komutlar dahil edilmeyecektir bunun için mutlaka aşağıdkai komutu kullanın
Kod:
mysqldump -u root -p123 --skip-opt -Q -e -x -f -c -K -t forumx user > c:\user.sql
ilgili tabloyu C: sürücüsüne içine user.sql olarak yedeklemiş olduk

4- Dördüncü adım olarak user.sql yedeğini hedef db içine aktaracağız. (Aynı sunucu içinde yedekleme ve geri yükleme işilemi yapılacağı için karkater seti tanımlaması yapmadım.)

Aşağıdaki komutu kullanarak yedeği yükleyin (detaylı bilgi için buraya bakınız)
Kod:
mysql -u root -p123 -f  forum < c:\user.sql
5- userid çakışmasını artma miktarı ile önledik peki username çakışmasını nasıl önlayeceğiz?. Bunun için aşağıdaki sorguyu çalıştırarak çift kayıtları (duplicate entry ) ekrana yazdıracağız


PHP- Kodu:
SELECT username userid 
FROM user 
WHERE username IN
(
    
SELECT username 
    FROM user 
    GROUP BY username 
    HAVING COUNT
(*) > 1
    

ORDER BY username 
ve userid numarası artma miktarından (21833) büyük olan kayıtları sileceğiz (veya tam tersi ) Bu sorgudan sonra aşağıdaki gbi bir çıktı ile karşılaşacaksınız. Buradan istediğiniz çift kayıttan birini silin .
Kod:
+-----------+--------+
| username  | userid |
+-----------+--------+
| abuzer    |  22209 |
| abuzer    |   6381 |
| alex      |   6210 |
| alex      |  21975 |
| ali       |   3757 |
| ali       |  22262 |
| asdasd    |  22494 |
| asdasd    |   5827 |
| asdfgh    |   7517 |
| asdfgh    |  22398 |
| Black     |  21863 |
| black     |   6105 |
| bulut     |  22412 |
| bulut     |   3472 |
| canavar   |   4990 |
| canavar   |  22265 |
| conqueror |  22111 |
| conqueror |   3601 |
| emre      |  21875 |
| emre      |   3731 |
| erdem     |  22394 |
| erdem     |   5103 |
| erkan     |   6452 |
| ERKAN     |  22520 |
| fatih     |   3853 |
| fatih     |  22204 |
| FEARLESS  |  22480 |
| FeArLesS  |  21594 |
| gencfb    |   6638 |
| gencfb    |  22202 |
| hakan     |   4000 |
| hakan     |  22029 |
| HSYN      |  22374 |
| hsyn      |   4907 |
| kamer     |  22250 |
| kamer     |  21500 |
| kanka     |   3969 |
| kanka     |  22094 |
| kaya      |  22271 |
| kaya      |   5413 |
| leon      |   5548 |
| leon      |  22173 |
| mert      |  22092 |
| MERT      |   3436 |
| Pisiko    |   5529 |
| pisiko    |  22252 |
| s2000     |   3999 |
| s2000     |  22019 |
| sercan    |  21985 |
| sercan    |   3417 |
| serdar    |     22 |
| serdar    |  22288 |
| supra     |   3584 |
| supra     |  21871 |
| tespara   |  21712 |
| tespara   |  22538 |
| veron     |  21504 |
| veron     |  22008 |
+-----------+--------+
mesela userid numarası 22538 olan tespara adlı üyeyi kayıttan çıkarmak için aşağıdaki gibi bir sorgu çalıştırabiliriz

PHP- Kodu:
DELETE FROM user WHERE userid 22538 
__________________
Çok kaygı çekme, mukadder olan olur, takdir olunan rızkın da sana gelir.[Hz Muhammed (S.A.V)]
Şiir vardır ki, hikmettir. Beyân vardır ki, büyüdür.[Hz Muhammed (S.A.V)]
Kim, bir zümreye benzemeye çalışırsa, o, onlardandır.[Hz Muhammed (S.A.V)]
Hikmetin başı, Allah korkusudur.[Hz Muhammed (S.A.V)]
Elif Lam Mim. İnsanlar "inandık" deyip kurutlacaklarınımı sanırlar [Ankebut ,1]
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #2 (permalink)  
Alt 10.02.08, 12:46 PM
LucifeR - ait Kullanıcı Resmi (Avatar)
Sempron
 
Üyelik tarihi: Dec 2007
Nerden: Bolu/Mudurnu
Mesajlar: 38
Tecrübe Puanı: 0
LucifeR is on a distinguished road
LucifeR - MSN üzeri Mesaj gönder
teşekürler tespera güzel anlatmışsın. işime yarar bi kaynak oldu
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
  #3 (permalink)  
Alt 03.04.08, 10:52 AM
Sempron
 
Üyelik tarihi: Mar 2008
Nerden: türkiye
Mesajlar: 22
Tecrübe Puanı: 0
inciforum is on a distinguished road
inciforum - MSN üzeri Mesaj gönder
süper döküman tesprara teşekkürler
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla



Seçenekler
Stil

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık