Відновлення видалених квитків - Як

Відновлення видалених квитків

По-перше, застереження:

Spiceworks Support не рекомендує безпосередньо маніпулювати своєю базою даних. Якщо ви можете скористатися процесом імпортування квитків і вручну заповнити те, що не можна імпортувати, я пропоную вам прийняти такий підхід.

У моєму випадку один з наших техніків випадково видалив 300 квитків, зіставляючи дві цифри в частині діапазону. Це сталося після того, як половина робочого дня пройшла, і пройшов ще один день, перш ніж ми визначили наші варіанти.

Наші вибори були відновити назад до старих резервних копій та спробувати спіймати квитки що були введені (але також гублять будь-яку іншу Spiceworks діяльність протягом дня та половини) або спроба відновити 300 з ночі перед тим, як резервний. Ми вважали, що останні надають менше впливу на навколишнє середовище.

Існували два способи - імпортувати квитки, використовуючи утиліту і заповнюючи всю інформацію, яка не буде імпортувати (коментарі, вкладення тощо) або припустити, на які записи імпортувати таблиці, і подивитися, чи буде це працювати . Ми вибрали останній варіант і тут.

Ось ті кроки, які ми зробили:

Загалом 8 кроків

Крок 1. Виберіть спосіб оновлення таблиць

- Мені зручно користуватися MS Access, тому я з'єднав його з квитками, ticket_involvements і таблицями коментарів в кожній базі даних. Наскільки я можу сказати, це єдині три таблиці, які мають щось робити з квитками.
"Tickets" - Зрозуміло основна таблиця.
"ticket_involvements" - Чесно кажучи, я не знаю точно, якою метою вона служить. Я думав, що це може бути якийсь журнал, коли технологія оновлює квиток, але обсяг на моєму столі настільки низький, що він повинен бути іншим.
"коментарі" - це окремі коментарі, введені техніками. Вони також містять вказівки на вкладення.

- Зауважте, що для запуску оновлень можна скористатися прямим інструментом SQL, таким як SQLite2009 Pro Enterprise Manager.

Крок 2: Відновлення вкладень

- У папці Spiceworks з резервної копії знайдіть вкладені підтеки.

- Копіювати всі підтеки для білетів, які були видалені в тій самій вкладені папки Spiceworks для поточної виробничої бази даних.

Крок 3. Налаштуйте з'єднання ODBC

- Я завантажив і встановив драйвер ODBC для SQLite2009 Pro і встановив два з'єднання ODBC - один з резервною базою даних і однією з поточною базою даних.

Крок 4: Резервне копіювання виробничої таблиці

Просто використовуйте процес резервного копіювання в Spiceworks.

Крок 5: Зупиніть службу Spiceworks

Крок 6: Створіть і запустіть запити / сценарії для відновлення видалених елементів

Наприклад, це були твердження SQL, які ми використовували:

INSERT INTO tickets_current (ідентифікатор, підсумок, статус, опис, пріоритет, time_to_resolve, due_date, ticketable_type, ticketable_id, created_at, updated_at, closed_at, created_by, assign_to, viewed_at, повторно, require_purchase, категорія, time_spent, error_alert_count, c_second_level, c_third_level, c_duration, c_user, muted)
SELECT id, резюме, статус, опис, пріоритет, time_to_resolve, due_date, ticketable_type, ticketable_id, created_at, updated_at, closed_at, created_by, assign_to, viewed_at, reopened, email_message_id, , c_third_level, c_duration, c_user, приглушені FROM tickets_bkup WHERE (((id)> 1691 А (id) <1963));

INSERT INTO ticket_involvements_current (id, user_id, ticket_id, created_at, updated_at)
SELECT id, user_id, ticket_id, created_at, updated_at FROM ticket_involvements_bkup WHERE (((ticket_id)> 1691 А (ticket_id) <1963));

INSERT INTO comments_current (ідентифікатор, ticket_id, body, created_at, updated_at, created_by, is_public, attachment_location, attachment_content_type, attachment_name)
SELECT id, ticket_id, body, created_at, updated_at, created_by, is_public, attachment_location, attachment_content_type, attachment_name FROM comments_bkup WHERE (((ticket_id)> 1691 А (ticket_id) <1963));

Крок 7: Почніть службу назад і перевірте вибірку з квитків

Крок 8. Дізнайтеся, чи підтримуватиме Spiceworks підтримка вашої бази даних

- Протягом усього цього я контактував з кимось із підтримки SW. Хоча він і не погодився з цим підходом, він люб'язно запропонував запустити свої утиліти проти бази даних після моїх оновлень, щоб перевірити наявність записів-сиріт і відновити індекси.

- Для цього потрібно знайти час, коли ви можете приймати Spiceworks в автономному режимі, поштову папку даних і db, відправляти їх за допомогою засобів підтримки, вкажіть, запустити перевірку, а потім відновити з бази даних, яку вони повертають.

FYI, у нашому випадку, там був декілька сиріт записів. Типи записів не були вказані, і оскільки квитки і пов'язані з ними елементи здаються недоторканими, я припускаю, що вони були з інших таблиць.

Знову ж таки, якщо ви можете виконати те, що вам потрібно, за допомогою засобів, що підтримуються Spiceworks, я рекомендую його. Для нашого випадку ми, однак, повністю оговталися від видалень, і поки що система працює добре.