Уменьшение размера базы данных M.E.Doc
Уменьшение размера базы данных M.E.Doc
База банных программы (.\zvit.fdb) увеличивается. Со временем может вырасти до огромных размеров. Единственный способ уменьшения размера базы - через резервное копирование/восстановление. При этом все настройки доступа (пользователи роли) теряются.
Со слов техподдержки, невозможность сжать базу - специфика движка (Firebird).
У нас развёрнута сетевая версия, много ОКПО.
Архивирование документов средствами программы - 1 раз в год.
Теперь по сути.
В таких условиях уменьшить размер базы у нас - это катастрофа! Во-первых, весь процесс отнимает полных 10 часов минимум (бывало, что и сутки). Полных, потому что процесс нужно контролировать (сбой - запустил снова, бывает такое). Во-вторых, несколько часов на настройку программы, а также всех прав доступа и ролей. Последнее - вообще ужас, страшно приступать к процессу архивирования: зафиксировать ВРУЧНУЮ состояние модуля безопасности, параметры системы, затем по сделанным записям всё восстанавливать. После таких процедур админу неделю снятся флажки, опции программы, бухгалтерия поимённо...
Огромная просьба ОБЛЕГЧИТЬ страдания админа и придумать что-то, чтобы процесс уменьшения размера БД был лёгким и безопасным.
Ниже варианты, которые для нас лично будут достаточными:
1. Отдельный инструмент (выполнил - забыл за проблему).
2. Сохранить состояние системы (роли, пользователи, параметры настроек почты и т.д. и т.п.), сделать архивирование/восстановление как обычно (чёрт с ними с 10 часами), восстановить состояние системы (роли, пользователи, параметры настроек почты и т.д. и т.п.).
3. Любой другой вариант, которых облегчит страдания админа.
Почему очень важно поддерживать оптимальный размер базы, думаю, объяснять не нужно.
Спасибо.
Со слов техподдержки, невозможность сжать базу - специфика движка (Firebird).
У нас развёрнута сетевая версия, много ОКПО.
Архивирование документов средствами программы - 1 раз в год.
Теперь по сути.
В таких условиях уменьшить размер базы у нас - это катастрофа! Во-первых, весь процесс отнимает полных 10 часов минимум (бывало, что и сутки). Полных, потому что процесс нужно контролировать (сбой - запустил снова, бывает такое). Во-вторых, несколько часов на настройку программы, а также всех прав доступа и ролей. Последнее - вообще ужас, страшно приступать к процессу архивирования: зафиксировать ВРУЧНУЮ состояние модуля безопасности, параметры системы, затем по сделанным записям всё восстанавливать. После таких процедур админу неделю снятся флажки, опции программы, бухгалтерия поимённо...
Огромная просьба ОБЛЕГЧИТЬ страдания админа и придумать что-то, чтобы процесс уменьшения размера БД был лёгким и безопасным.
Ниже варианты, которые для нас лично будут достаточными:
1. Отдельный инструмент (выполнил - забыл за проблему).
2. Сохранить состояние системы (роли, пользователи, параметры настроек почты и т.д. и т.п.), сделать архивирование/восстановление как обычно (чёрт с ними с 10 часами), восстановить состояние системы (роли, пользователи, параметры настроек почты и т.д. и т.п.).
3. Любой другой вариант, которых облегчит страдания админа.
Почему очень важно поддерживать оптимальный размер базы, думаю, объяснять не нужно.
Спасибо.
Re: Уменьшение размера базы данных M.E.Doc
Можно попробовать ужать копию базы средствами ФБ:
Переходите в папку MedocSRV\Firebird_M\bin\
Запускаете командную строку CMD
Устанавливаете системные переменные (по очереди строки копируете в консоль, потом ввод)
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
Запишем информацию в Bak-файл
gbak -b -v -ig -g -user SYSDBA -pas masterkey D:\DB\zvit.fdb D:\DB\zvit.fbk
Восстановим в новую базу
gbak -c -v -user SYSDBA -pas masterkey D:\DB\zvit.fbk D:\DB\newzvit.fbd
После каждой команды смотрите в консоли на отсутствие ошибок.
Потом newzvit.fbd переименовываете zvit.fdb, ставите на сервер в папку на место (MedocSRV\db\) и запускаете службы медка
Переходите в папку MedocSRV\Firebird_M\bin\
Запускаете командную строку CMD
Устанавливаете системные переменные (по очереди строки копируете в консоль, потом ввод)
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
Запишем информацию в Bak-файл
gbak -b -v -ig -g -user SYSDBA -pas masterkey D:\DB\zvit.fdb D:\DB\zvit.fbk
Восстановим в новую базу
gbak -c -v -user SYSDBA -pas masterkey D:\DB\zvit.fbk D:\DB\newzvit.fbd
После каждой команды смотрите в консоли на отсутствие ошибок.
Потом newzvit.fbd переименовываете zvit.fdb, ставите на сервер в папку на место (MedocSRV\db\) и запускаете службы медка
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
А як таке повторити для ORACLEAngry писав: ↑15 березня 2019, 12:19Можно попробовать ужать копию базы средствами ФБ:
Переходите в папку MedocSRV\Firebird_M\bin\
Запускаете командную строку CMD
Устанавливаете системные переменные (по очереди строки копируете в консоль, потом ввод)
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
Запишем информацию в Bak-файл
gbak -b -v -ig -g -user SYSDBA -pas masterkey D:\DB\zvit.fdb D:\DB\zvit.fbk
Восстановим в новую базу
gbak -c -v -user SYSDBA -pas masterkey D:\DB\zvit.fbk D:\DB\newzvit.fbd
После каждой команды смотрите в консоли на отсутствие ошибок.
Потом newzvit.fbd переименовываете zvit.fdb, ставите на сервер в папку на место (MedocSRV\db\) и запускаете службы медка
Re: Уменьшение размера базы данных M.E.Doc
Shrink + Resize.
Человек-волшебник
Людина-чарівник
Wizard man
Людина-чарівник
Wizard man
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
Судячи з Посилання, щоб застосувати shrink & resize потрібно спочатку видалити данні ( видалення можливе у випадках коли дані не підписані та не відправлені ), а що робити зі звітами та податковими яким майже по 10 років і були перенесені з FireBird?
Чи існує механізм так званого "обрізання бази" шляхом видалення старих відправлених або перенесення в нову базу документів не старших наприклад за 2 роки, з часу, коли відбулася остання перевірка ДФС?
Востаннє редагувалось 18 березня 2019, 11:14 користувачем Gora Kornev, всього редагувалось 1 раз.
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
Доречі ось ПОСИЛАННЯ на утиліту в "конкурентів" для перевірки та виправлення помилок в FireBird з якою впорається навіть моя бабця декларант. Вона вміститься на одній вкладці ZvitServerMonitor.exe або ConnectionSetup.exe та сталаб в нагоді для величезної килькості бухгалтерів та "юних одмінів".
Re: Уменьшение размера базы данных M.E.Doc
Изучите модуль Адміністрування - Архівування документів. В результате его работы все старые архивные документы извлекаются из БД в отдельный файл.Gora Kornev писав: ↑17 березня 2019, 20:39Чи існує механізм так званого "обрізання бази" шляхом видалення старих відправлених або перенесення в нову базу документів не старших наприклад за 2 роки, з часу, коли відбулася остання перевірка ДФС?
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
FB так, а ORACLE?olga_p писав: ↑21 березня 2019, 10:47Изучите модуль Адміністрування - Архівування документів. В результате его работы все старые архивные документы извлекаются из БД в отдельный файл.Gora Kornev писав: ↑17 березня 2019, 20:39Чи існує механізм так званого "обрізання бази" шляхом видалення старих відправлених або перенесення в нову базу документів не старших наприклад за 2 роки, з часу, коли відбулася остання перевірка ДФС?
Re: Уменьшение размера базы данных M.E.Doc
Извините, не знала, что с Oracle не работает Рекомендую обратиться напрямую к Разработчику.Gora Kornev писав: ↑21 березня 2019, 11:04FB так, а ORACLE?olga_p писав: ↑21 березня 2019, 10:47Изучите модуль Адміністрування - Архівування документів. В результате его работы все старые архивные документы извлекаются из БД в отдельный файл.Gora Kornev писав: ↑17 березня 2019, 20:39Чи існує механізм так званого "обрізання бази" шляхом видалення старих відправлених або перенесення в нову базу документів не старших наприклад за 2 роки, з часу, коли відбулася остання перевірка ДФС?
Re: Уменьшение размера базы данных M.E.Doc
Разработчика проинформировал.
Будем ждать!
Будем ждать!
https://www.youtube.com/watch?v=1Q54t3-3ZaE
ХутинПуйло!
ХутинПуйло!
-
- Повідомлень: 101
- З нами з: 03 жовтня 2017, 10:25
Re: Уменьшение размера базы данных M.E.Doc
Согласно функционала программы подписанные и отправленные отчеты из базы данных не удаляются.
База данных хранит только ту информацию которую наработал пользователь за период работы, средств и механизмов для уменьшения БД - нет.
База данных хранит только ту информацию которую наработал пользователь за период работы, средств и механизмов для уменьшения БД - нет.
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
Яким чином організувати роботе у випадку:
Заплановано створення нової бази з 01.01.2020, попередня залишається як "архів", але в стару база можуть приходити повідомлення до первинних документив про погодження/затвердження протягом принаймні пів року, як сортувати повідомлення/квитанції?
-
- Повідомлень: 8802
- З нами з: 29 липня 2011, 14:59
- Звідки: Украина, Донецкая область, Бахмут
- Контактна інформація:
Re: Уменьшение размера базы данных M.E.Doc
В старую базу уведомления не придут, если в нем не принимать почту. Это настроить легко.Gora Kornev писав: ↑21 березня 2019, 13:32Яким чином організувати роботе у випадку:
Заплановано створення нової бази з 01.01.2020, попередня залишається як "архів", але в стару база можуть приходити повідомлення до первинних документив про погодження/затвердження протягом принаймні пів року, як сортувати повідомлення/квитанції?
Так же рекомендую Вам дождаться следующего обновления программы, после чего принимать решение.
Re: Уменьшение размера базы данных M.E.Doc
Не верное утверждение!
https://www.youtube.com/watch?v=1Q54t3-3ZaE
ХутинПуйло!
ХутинПуйло!
-
- Повідомлень: 101
- З нами з: 03 жовтня 2017, 10:25
Re: Уменьшение размера базы данных M.E.Doc
Согласно реализованного функционала программы под управлением на БД ORACLE нет возможности архивировать первичные документы. В функционале самого ORACLE достаточно функционала с помощью которого можно бекапировать данные.
В программе Медок нет функционала для уменьшения БД . При архивировании первичных документов БД не уменьшается . Это связано с особенностями работы Firebird (Firebird после создания архивной БД все равно резервирует пустые страницы). Что бы размер БД уменьшился (убрать пустые страницы )необходимо средствами Firebird выполнить backup - restore (пересобрать БД по новой) либо создать резервную копию и восстановится на чистую БД.
Re: Уменьшение размера базы данных M.E.Doc
верное утверждение!Шоловей Александр писав: ↑21 березня 2019, 17:03
Согласно реализованного функционала программы под управлением на БД ORACLE нет возможности архивировать первичные документы. В функционале самого ORACLE достаточно функционала с помощью которого можно бекапировать данные.
В программе Медок нет функционала для уменьшения БД . При архивировании первичных документов БД не уменьшается . Это связано с особенностями работы Firebird (Firebird после создания архивной БД все равно резервирует пустые страницы). Что бы размер БД уменьшился (убрать пустые страницы )необходимо средствами Firebird выполнить backup - restore (пересобрать БД по новой) либо создать резервную копию и восстановится на чистую БД.
(я про Firebird ...., про ORACLE ничего не знаю)
https://www.youtube.com/watch?v=1Q54t3-3ZaE
ХутинПуйло!
ХутинПуйло!
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
В мене немає досвіду 10 років адміністрування ORACLE, поділіться власними надбанняма ( best practice ), накшталт:В функционале самого ORACLE достаточно функционала с помощью которого можно бекапировать данные.
Можно попробовать ужать копию базы средствами ФБ:
Переходите в папку MedocSRV\Firebird_M\bin\
Запускаете командную строку CMD
Устанавливаете системные переменные (по очереди строки копируете в консоль, потом ввод)
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
Запишем информацию в Bak-файл
gbak -b -v -ig -g -user SYSDBA -pas masterkey D:\DB\zvit.fdb D:\DB\zvit.fbk
Восстановим в новую базу
gbak -c -v -user SYSDBA -pas masterkey D:\DB\zvit.fbk D:\DB\newzvit.fbd
После каждой команды смотрите в консоли на отсутствие ошибок.
Потом newzvit.fbd переименовываете zvit.fdb, ставите на сервер в папку на место (MedocSRV\db\) и запускаете службы медка
-
- Повідомлень: 101
- З нами з: 03 жовтня 2017, 10:25
Re: Уменьшение размера базы данных M.E.Doc
К примеру если делать под пользователем MEDOC можно пересоздать таблицу.
1) create table card_copy as select * from card
2) создать все объекты для таблицы card_copy (триггеры, индексы, констренты)
3) потом переименовать card и card_copy
RENAME TABLE card TO card_old
RENAME TABLE card_copy TO card
4) удалить таблицу card_old
1) create table card_copy as select * from card
2) создать все объекты для таблицы card_copy (триггеры, индексы, констренты)
3) потом переименовать card и card_copy
RENAME TABLE card TO card_old
RENAME TABLE card_copy TO card
4) удалить таблицу card_old
-
- Повідомлень: 104
- З нами з: 26 вересня 2018, 07:46
Re: Уменьшение размера базы данных M.E.Doc
Код: Виділити все
BEGIN
execute immediate 'DROP TABLE TBL_TMP_CARDJOURNALOPERBLOB CASCADE CONSTRAINTS';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -00942 THEN RAISE; END IF;
END;
/
declare
p_sql varchar2(1000);
p_sql2 varchar2(1000);
lobs_status number;
max_org_row number;
max_row number;
p_rows number;
s_rows number;
begin
select count(*) into max_org_row from org;
IF max_org_row <100000 then
IF DBMS_DB_VERSION.VERSION>10 then
p_sql :='select count(*) from user_lobs where table_name = ''CARDJOURNALOPERBLOB'' AND SECUREFILE=''YES''';
p_sql2:='select count(*) from CARDJOURNALOPERBLOB';
execute immediate p_sql into lobs_status;
execute immediate p_sql2 into max_row;
IF lobs_status >0 and max_row <=1000000 THEN
execute immediate 'ALTER SESSION FORCE PARALLEL DML PARALLEL 8';
execute immediate 'ALTER SESSION FORCE PARALLEL QUERY PARALLEL 8';
execute immediate 'CREATE TABLE TBL_TMP_CARDJOURNALOPERBLOB(CODE NUMBER,DATAFILE BLOB,TEXTFILE BLOB) LOB (DATAFILE) STORE AS BASICFILE,LOB (TEXTFILE) STORE AS BASICFILE';
execute immediate 'INSERT INTO TBL_TMP_CARDJOURNALOPERBLOB SELECT CR.* FROM CARDJOURNALOPERBLOB CR';
execute immediate 'select count(*) into :p_rows from CARDJOURNALOPERBLOB' INTO p_rows;
execute immediate 'select count(*) into :s_rows from TBL_TMP_CARDJOURNALOPERBLOB' INTO s_rows;
IF p_rows=s_rows THEN
execute immediate 'ALTER TABLE CARDJOURNALOPERBLOB RENAME TO CARDJOURNALOPERBLOB_OLD';
execute immediate 'ALTER TABLE TBL_TMP_CARDJOURNALOPERBLOB RENAME TO CARDJOURNALOPERBLOB';
execute immediate 'DROP TABLE CARDJOURNALOPERBLOB_OLD';
execute immediate 'CREATE INDEX IDX_CARDJOURNALOPERBLOB_CODE ON CARDJOURNALOPERBLOB(CODE)';
END IF;
END IF;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
end;
/
Але такі скрипти для таблиць з вкладеними файлами, від розробника, були б дуже доречні
Re: Уменьшение размера базы данных M.E.Doc
Потрібно доопрацювати видалення неприйнятих звітів не тільки в корзину, ай назавжди, бо після попереднього року, база збільшилася вдвоє тому що багато розблоковували ПН, але ще більше документів з вкладеннями було неприйнятими, тому всі вони місце бази, якийсь контроль потрібно додати щоб можна було з корзини видалити всі неприйняті документи!
Плюс ще моє попереднє побажання додати корзину до звіту ЄСВ!
Дякую!
Плюс ще моє попереднє побажання додати корзину до звіту ЄСВ!
Дякую!
Важливий кінцевий результат - а як його досягти справа кожного!