Skocz do zawartości

Moje skrypty w sello.

Polecane posty

W tym temacie będę umieszczać swoje skrypty, które pomagają mi w dłubaniu przy Sello.

Czego to człowiek nie robi, aby nie zbliżyć się do 10 GB limitu, ale nie koniecznie.

 

Repozytorium z kodami jest dostępne pod adresem: https://github.com/efiku/sello-sql

W miarę będą pojawiać się skrypty, tam są najaktualniejsze.

Kto będzie chciał skorzystać ten skorzysta..

 

Nie gwarantuję, że są one dobre, poprawne, dlatego pierwsze sugeruję zrobić kopię i na kopii pracować i analizować. Skrypty te pomagają mi w pracy i rozwiązują jakieś problemy.

 

 

Wkurza mnie to, że niby porządna firma, ale narzędzi do migracji do nowego podmiotu nie ma, nie ma też narzędzi do oczyszczania, a jedynie co widzę to udzielającego się Bartka z tej firmy.

 

@Bartek idź o podwyżkę na 9k 😜

 

 

 

No ale do rzeczy.

 

------- SYSTEM KOPII BAZ SQL SERVER ------------

Każdy ma jakiś swój, mój opiera się na:

https://ola.hallengren.com/

-----------------------------------------------

 

Co 2 dni robiona jest o 0:00 kopia Pełna.

Codziennie o 12 jest robiona jest kopia diff.

Co 15 minut robiona jest kopia logów transakcji.

 

 

W Management console wczytuje wszystkie pliki z tych kopii, a program sam mi dobiera najnowszą, dzięki temu jestem 15 minut stratny, gdy nastąpi awaria.

 

------------------------------------------------

 

 

1. Skrypt, który wylicza miejsce zajęte przez konkretne tabele w aktualnie odpalanej bazie.

https://github.com/efiku/sello-sql/blob/master/check_database_usage.sql

 

 

2. Skrypt który sprawdza bazę i odnawia indeksy, wymagane jest posiadanie narzędzi z linku wyżej.

https://github.com/efiku/sello-sql/blob/master/rerpair_database.sql

 

 

3. Czyszczenie maili, skrypt w zasadzie taki sam jak na forum. Nie kasujemy maili, tylko ich treść jest czyszczona.

https://github.com/efiku/sello-sql/blob/master/errase_content_mail.sql

 

 

4. Kasowanie maili. Tu trzeba na testowej, bo wg mnie skrypt dobrze działa. (bezpieczniej będzie używać z programu serwisowego czyszczenie maili wraz z treściami)

Wrzucam do temp wszystkie maile, wrzucam uidl wszystkich miali z wyjątkiem tych co nie maja uidl, bo po czymś musi to sprawdzać. Te co nie maja UIDL to wysłane wiadomości za pomocą sello.. POP3:/ Następnie kasuje wiadomości z bazy które są starsze niż podana data. Pasuje też skrypt napisać, aby w samej poczcie skasował maile starsze niż podana data, bo może pobrać znów.

 

Wg dokumentacji em_Archive to tabela w której przechowywane są UIDL skasowanych wiadomości więc wrzucam tam tylko te, które usunąłem.

https://github.com/efiku/sello-sql/blob/master/remove_emails.sql

 

 

5. Zmienimy wszystkie pobrane zdjęcia aukcji itd, w im__Image na 1x1 biały jpg.

//Optymalizacja zdjęć na aukcjach i wszędzie

https://github.com/efiku/sello-sql/blob/master/change_auction_images.sql

 

 

Edytowane przez efiku efiku
Update 21
Link to postu

Program do odchudzania w zasadzie mamy, napisany przez praktykanta, ale po testach na duużych bazach okazało się, że trzeba w nim parę rzeczy zmienić bo operacje trwają zbyt długo. Również usuwanie niektórych danych powoduje problemy więc to również jest do przerobienia. Niestety brakuje na to czasu a praktykant był tylko na pewien okres :).

Link to postu

Ja będę dążyć do takiego skryptu, który w łatwy sposób zmigruje mi tylko te dane które są istotne i go na pewno wrzucę.

W pierwszej kolejności do głowy przychodzi mi pomysł stworzenia nowej bazy sello, zobaczenia co tam siedzi a następnie przenieść dane

Tj.

Licencje, Towary, Aukcje, Pola słownikowe, Ustawienia, em_Archive, ins_ident

 

To są chyba istotne rzeczy, aby zmigrować bazę do nowego podmiotu.

 

Masz jakieś wskazówki?

Bardzo by to pomogło w opracowaniu szkicu.

Nie mówię, że teraz ale na pewno kiedyś.

Link to postu

Zastanawialiśmy się kiedyś czy lepiej zrobić czyszczenie bazy czy migrację do nowej i wtedy wyszło na to, że więcej możliwości daje usuwanie danych.

 

Najlepiej jakby finalnie z takich skryptów powstał programik okienkowy, który po zaznaczeniu serii checkboxów przenosiłby wybrane dane użytkownika. Sugestii na szybko nie mam, ale jak będziesz miał jakiś problem to pytaj, spróbuję coś doradzić.

Link to postu
  • 1 miesiąc temu...
  • 1 miesiąc temu...

Po lekkich bojach udało mi się stworzyć działający skrypt, który usuwa zdjęcia z bazy danych. Zacząłem od wykonania skryptu: 

update au_Allegro set aal_description = '' 
where EXISTS(SELECT au_Id FROM au__Auction 
WHERE au_Id = aal_Auctionid AND au_enddate < '20090101')

usunąłem nim wszystkie opisy aukcji, które były z datą wcześniejsza niż potrzebne w bazie. Po tym z poziomu sello szybkie usuwanie tych aukcji tak aby ich całkowicie nie było. Można usunąć od razu z pod sello ale zauważyłem, ze trwa to o wiele dłużej niż wykonanie z poziomu SQL SMS skryptu i późniejsze usunięcie aukcji z poziomu sello. Następnie należy usunąć zdjęcia nieużywane już nigdzie w bazie danych. Do tego właśnie stworzyłem skrypt, który wyszukuje powiązania między tabelami i pomija te zdjęcia, które mają jakiekolwiek powiązanie z inną tabelą. 

 

delete from im__Image where im_Id>140999 and im_Id<200000 and im_Id not in (select im_Id from im__Image, au__Auction  where im__Image.im_Id=au__Auction.au_ThumbnailId and im__Image.im_Id>140999 and im__Image.im_Id<200000) and im_Id not in (select im_Id from im__Image, au_Picture  where im__Image.im_Id=au_Picture.ap_PictureId and im__Image.im_Id>140999 and im__Image.im_Id<200000)

odpowiednio 140999 i 200000 to identyfikatory do podmiany jeśli chcemy usunąć wybrany zakres co moim zdaniem o wiele lepiej działa posługując się zakresami po 30 - 50 tyś rekordów aby w razie problemów nie musieć wykonywać skryptu od nowa. Nie zalecam stosować id mniejszych niż 1000 aby uniknąć problemów z wykorzystywaniem obrazków w samym sello. Czyli identyfikatory od 1000 w górę można spokojnie przeszukiwać i usuwać skryptem. 

 

Po wykonaniu skryptu należy oczywiście dokonać kompaktowania bazy danych co najlepiej zrobić z poziomu SQL SMS. Ja w ten sposób odzyskałem z bazy 100 GB ponad 20 GB powierzchni. A skrypt zastosowałem jedynie do obrazów o identyfikatorze od 1000 do 150000 a w bazie aktualnie najwyższy id to 630000. 

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...