itbrat ☺ 12 Napisano 17 Stycznia 2018 Udostępnij Napisano 17 Stycznia 2018 w Moje skrypty w sello. (edytowane) 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 4 Sierpnia 2021 przez efiku efiku Update 21 Cytuj Link to postu
tomex8 0 Napisano 17 Stycznia 2018 Udostępnij Napisano 17 Stycznia 2018 w Moje skrypty w sello. Czy masz taki skrypt, ale do zmniejszenia wielkości zdjęć Cytuj Link to postu
itbrat ☺ 12 Napisano 17 Stycznia 2018 Autor Udostępnij Napisano 17 Stycznia 2018 w Moje skrypty w sello. Nie, to już możesz napisać sobie w Pythonie skrypt. biblioteka pmssql + jakiś lib do obróbki, zdjęcie będziesz miał bezpośrednio z bazy jako binarne dane, potem pobierasz wszystko z im_Image, resize dla każdego elementu w liście i polecenie UPDAE. Cytuj Link to postu
tomex8 0 Napisano 17 Stycznia 2018 Udostępnij Napisano 17 Stycznia 2018 w Moje skrypty w sello. Problem w tym, że nie znam się na tym. Jeżeli zmodyfikuję ten skrypt w następujący sposób to osiagnę zamierzony efekt? UPDATE im__Image SET im_Height = 100, im_Width = 100 WHERE im_Id >= 1000 Cytuj Link to postu
itbrat ☺ 12 Napisano 18 Stycznia 2018 Autor Udostępnij Napisano 18 Stycznia 2018 w Moje skrypty w sello. Nie. Wyżej napisałem jedną z dróg, którymi można iść w kierunku otrzymania efektu. MSSQL to tylko pojemnik głównie na dane Cytuj Link to postu
Bartosz Rosa 1 784 Napisano 18 Stycznia 2018 Udostępnij Napisano 18 Stycznia 2018 w Moje skrypty w sello. 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 . Cytuj Link to postu
itbrat ☺ 12 Napisano 19 Stycznia 2018 Autor Udostępnij Napisano 19 Stycznia 2018 w Moje skrypty w sello. 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ś. Cytuj Link to postu
Bartosz Rosa 1 784 Napisano 19 Stycznia 2018 Udostępnij Napisano 19 Stycznia 2018 w Moje skrypty w sello. 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ć. Cytuj Link to postu
Bartek B 7 Napisano 6 Marca 2018 Udostępnij Napisano 6 Marca 2018 w Moje skrypty w sello. "Może"= Na 100% dobrym pomysłem było by określenie czasu w którym jednak uda się skończyć moduł do czyszczenia bazy. Jest to problem bardzo poważny dla wielu użytkowników. Z tego co widzę i czytam, moduł który usuwał by wszytko poniżej jakiejś daty już by był dobrym rozwiązaniem na początek. Cytuj Link to postu
Bartosz Rosa 1 784 Napisano 6 Marca 2018 Udostępnij Napisano 6 Marca 2018 w Moje skrypty w sello. W najbliższym czasie planujemy usunąć z bazy zdjęcia, co już powinno znacząco wpłynąć na zredukowanie wielkości bazy. Cytuj Link to postu
Jakub Szymański Szymański 1 Napisano 6 Kwietnia 2018 Udostępnij Napisano 6 Kwietnia 2018 w Moje skrypty w sello. 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. Cytuj Link to postu
Polecane posty
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.