Автоматизация банка

Для тестирования быстродействия был взят сервер: Xeon(TM) CPU 2.80 ГГц, - два процессора ОЗУ 4.00 ГБ 32 разрядная система. (Чтобы эта память была доступна на 32 разрядной операционной системе, в файле c:\boot.ini нужно дописать в конце последней строки '/3Gb' .....WINDOWS="Windows Server 2003, Enterprise" /fastdetect /3Gb) а для Windows Server 2008 из командной строки выполнить: BCDEdit /set IncreaseUserVA 3072. Дале обязательно проверить, чтобы файл подкачки был не менее 4096 MB для (4 GB) и перезапустить сервер.

Производительность проверялась и настраивалась на 32 разрядных операционных системах: Microsoft Windows Server 2003 или 2008. На Windows Server  2008 R2 Standard  4Гб (ОЗУ), 64 разрядная операционная система,  проблем с распределением памяти не возникало.

Далее, выполнените в указанной последовательносьи каждую процедуру, например в DBArtisan - описание по установке DBArtisan можно почитать здесь.

2.1 Пример распределения памяти ОЗУ 4.00 ГБ:

EXEC sp_configure 'max memory', 1200000 -- доступная память для SQL сервера

2.2 Далее

-- Следующую операцию можно делать только на серверах, где есть файл c:boot.ini или на 64 разрядных Windows Server на всех остальных операционках ее нужно пропустить, т.е, грубо говоря, на Vista Home premium операцию allocate max shared memory устанавливать в 1 не стоит, Sybase сервер после перезапуска не запустится....


EXEC sp_configure 'allocate max shared memory', 1 -- SQL сервер забирает всю память при старте
EXEC sp_configure 'procedure cache size', 65536 -- размер процедурного кэша
EXEC sp_cacheconfig 'akvilon cache','450.000M',mixed,strict -- выделяем кэш для базы Akvilon

EXEC sp_cacheconfig 'tempdb cache','770.000M',mixed,strict -- выделяем кэш для базы tempdb
EXEC sp_configure 'user log cache size',16384 -- увеличиваем лог

EXEC sp_configure 'default character set', 1, bin_iso_1 -- руссифицируем Sybase сервер


--Обязательно установите ключи для бэкап сервера в Редакторе рееста (программа RegEdit) для Windows x86
--HKEY_LOCAL_MACHINE/SOFTWARE/SYBASE/Server/имя_бэкап_сервера_BS/Parameters/Arg5 ставим вместо -Jcp850 --значение -Jiso_1 (Не потеряйте знак '-')
--для Windows 64-bit Operating System
--HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/SYBASE/Server/имя_бэкап_сервера_BS/Parameters/Arg5 ставим вместо -Jcp850 значение -Jiso_1 (Не потеряйте знак '-')

2.3 Сейчас перезапускаем Sybase SQL сервер через Службы (два раза т.к. с первого раза он не стартует)

Два раза это не ошибка, так задумано разработчиками Sybase SQL сервера.

2.4 После перезапуска распределяем память

EXEC sp_bindcache 'akvilon cache','akvilon' -- указываем кэш базе Akvulon
EXEC sp_poolconfig 'akvilon cache', '300M', '16K', '2K' -- добавляем 16K пул ввода/вывода
EXEC sp_bindcache 'tempdb cache','tempdb' -- указываем кэш базе tempdb
EXEC sp_poolconfig 'tempdb cache', '500M', '16K', '2K' -- добавляем 16K пул ввода/вывода

EXEC sp_configure 'number of open index', 12000 -- число отктытых индексов
EXEC sp_configure 'number of open objects', 50000 -- чистло ткрытых объектов
EXEC sp_configure 'number of user connections', 150 -- число одновременных пользователей
EXEC sp_configure 'number of locks',100000 --число одновременных блокировок
EXEC sp_configure 'license information', 0 -- отключаем сообщение о лицензиях 

  •  

2.5 Если сервер имеет несколько физических процессоров


EXEC sp_configure 'max online engines', 2 -- число физических процессоров используемых SQL сервером. Параметры 'number of engines at startup' и 'max online engines' связаны между собой и должны быть равны.
EXEC sp_configure 'number of engines at startup', 2 -- число физических процессоров
 

2.6 Еще раз  перезапускаем Sybase SQL сервер через Службы рееста (программа RegEdit)

2.7 Сравните отчеты по Sybase SQL Server Configuration:
 

EXEC sp_configure
/* Сравните результат: sp_configure.xls 56 Kb */

EXEC sp_cacheconfig
/* Сравните результат: sp_cacheconfig.xls 15 Kb */

2.8. Руссификация сервера - чтобы была правильная русская сортировка

Это можно сделать из любого SQL редактора, в Far(е) или 'Командной строке':
набираем в камандной строке:


isql -Usa -Pпароль_если_есть -Sимя_сервера


Появилось приглашение: 1>
Наберем: 1> sp_configure 'default character set', 1, bin_iso_1
2> go /* нажать Enter */

Ответ:

In changing the default sort order, you have also reconfigured SQL Server's default character set.
Configuration option changed. Since the option is static, Adaptive Server must be rebooted in order for the change to take effect.
Changing the value of 'default character set id' to '1' increases the amount of memory ASE uses by 14 K.
Наберем: 1> exit

Перезапускаем сервер два раза т.к. с первого раза он не стартует.

2.9. Руссификация бэкапа

Для того что бы и бэкап тоже работал в этом формате, идем в regedit

Пуск -> Выполнить -> regedit

В разделе:

HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\имя_бэкап_сервера_BS\Parameters\Arg5 ставим вместо -Jcp850 значение -Jiso_1

3. Создать и поднять Backup

Чтобы создать и поднять Backup можно воспользоаться программой Обновление версии.
 

3.1. Если вы хотите самостоятельно проделать все операции

Проверим, что у нас есть база на которую мы будем поднимать дамп.

Дамп базы подымается только на уже существующую (пустую) базу
Если у вас нет базы, то ее нужно создать как описано в п.1.5  Примечание: Дамп базы ложится на тот же или больший размер базы, с которого он сохранялся. Размер базы указывается при ее создании из заранее созданных девайсов.

3.2. Загрузить (Поднять) базу можно несколькими способами:

1-й из командной строки ISQL  - isql.exe - программа вызывается из коммандной строки после установке Sybase Client
2-й из Sybase Central  - C:\sybase\Shared\Sybase Central 4.3\win32\scjview.exe - программа вызывается из папки Sybase после установке Sybase Client
3-й из любого SQL редактора, например DBArtisan

3.2.1. Из командной строки

Вызов из isql.exe
В программе Far или из cmd - Командной строке или 'Пуск > выполнить' набираем:

c:> isql -Usa -Pпароль_если_есть -Sимя_сервера_по_умолчанию_текущий_компьютер

Появилось приглашение: 1>
Наберем: 1> use master
2> go /* для того чтобы исполниь скрипт - после слова go нажмите Enter, что и является командой для выполнения сценария */

1> load database NameDB from 'c:\???.dmp'
2> go /* для того чтобы исполниь скрипт - после слова go нажмите Enter, что и является командой для выполнения сценария */

/* ---- ели это требуется загрузить лог-файлы то накатываем логи таким образом --- */
/* ---- из моего опыпыта лог файлы лучше не делать т.к. это работает не всегда стабильно --- */
1> load transaction NameDB from 'c:\???.log'
2> load transaction NameDB from 'c:\???.log'
3> load transaction NameDB from 'c:\???.log'
4> go  /* для того чтобы исполниь скрипт - после слова go нажмите Enter, что и является командой для выполнения сценария */

/* ---- после окончания загрузки базы переводим ее в состояние online -- */
1> online database имя_базы_данных
2> go

3.2.2. Загрузка файла дампа базы данных из Sybase Central

Идем на папку Databases
Встаем правой клавишей мыши на бочонок восстанавливаемой базы
далее -> пункт 'Restore'
Restore the entre database Кнопка Next(Далее) ->
-> Кнопка 'Add' -> В окне 'Select dump devices' выбирите
'Explicit Dump Device' и укажите путь - типа 'Physical Path:' c:\???.dmp
Кнопка 'Ok' ->
Кнопка Next(Далее) ->
Кнопка Finish(Готово)
Недостатки: Для версии Sybase 12.5.1 Не появиться окно в котором отображается процесс восстановления базы.
База останется недоступна пока для нее не выполнят из SQL Advantage команду
> online database имя_базы_данных которую нужно сделать после загрузки основной базы

3.2.3 Команда для поднятия DUMP(а) Базы даннх из SQL редактора (например DbArtisan)


Полдключаемся к нужной базе данных (двойной клик по базе) и  открываем чистую страницу при помощи сочетания клавиш Ctrl+N

/* сценарий загрузки базы данных */
load database NameDB from 'c:\???.dmp'
go /* для DbArtisan исполниь скрипт Ctrl+E */

/* после некоторого времен загрузки базы делаем базу online */
online database имя_базы_данных
go
/* для DbArtisan исполниь скрипт Ctrl+E */

3.3 Cоздание DUMP(а) файла из SQL редактора (DbArtisan)

dump database akvilon to "c:\dump_name.dmp"
go /* для DbArtisan исполниь скрипт Ctrl+E */

/* или второй вариант со сжатием, слово 'compress::' нужно будет вставить и при поднятие DUMP(а) */
dump database akvilon to "compress::c:\dump_name.dmp"
go /* для DbArtisan исполниь скрипт Ctrl+E */

3.4.1 Автоматическое создание DUMPа из bat или cmd файла например в 01:00 ночи

Для этого создается два файла dump_today.bat и dump_database.sql

содержание файла dump_today.bat

:создаем новый DUMP в d:\dump\????.dmp
isql -Usa -Pпароль -Sимя_сервера -idump_database.sql


:можем с архивировать DUMP например в d:\dump\rdump_today.rar
if exist d:\dump\rdump_today.rar del d:\dump\rdump_today.rar
"c:\Program Files\WinRAR\WinRAR.exe" a rdump_today.rar *.dmp

Резервное копирование вчерашних дампов которые сохраняются последние семь дней
Echo.|Command /C Date>DayOfWeek.txt
set /p todaydate=set Day=%todaydate:~16,3%
if exist c:\dump\rdump_today.rar copy /Y /Z c:\dump\rdump_today.rar d:\dump\rdump_%Day%.rar
if exist c:\dump\rlog_2007.rar   copy /Y /Z c:\dump\rlog_2007.rar   d:\dump\rlog_%Day%.rar


: копируем DUMP на резервный сервер например - \ \mandrake
if exist \ \mandrake\c$\dump\rdump_today.rar del \ \mandrake\c$\dump\rdump_today.rar
if exist \ \mandrake\c$\AUTOEXEC.BAT copy /Y /Z d:\dump\rdump_today.rar
mandrake\c$\dump\rdump_today.rar
содержание файла dump_database.sql
declare  @path varchar(50)
select @path = 'compress::d:\dump\ak_' + Rtrim (convert(char(10),GetDate (),12))+ '.dmp'
dump database akvilon to @path
go

Примеры создания дампов базы данных dump_database 12 Kb

3.4.2 Автоматическое создание логов из bat или cmd файла например каждые 20 минут

Для этого создается два файла dump_transaction.bat и dump_transaction.sql
содержание файла dump_transaction.bat

:set echo off
:создаем TRANSACTION в d:\dump\дата_время.log
isql -Usa -Pпароль -Sимя_сервера -idump_transaction.sql


:архивируем TRANSACTION в d:\dump\rlog_2007.rar
"c:\Program Files\WinRAR\WinRAR.exe" a log_2007.rar *.log

:переносим созданный файл TRANSACTION в поддиректорию \log\
if exist d:\dump\*.log copy /Y /Z d:\dump\*.log d:\dump\log\*.log
if exist d:\dump\*.log del d:\dump\*.log


:копируем TRANSACTION на резервный сервер например \ \mandrake\c$\dump\
if exist \ \mandrake\c$\AUTOEXEC.BAT copy /Y /Z d:\dump\rlog_2007.rar \ \mandrake\c$\dump\rlog_2006.rar

содержание файла dump_transaction.sql

declare  @path varchar(50)

select @path = 'd:\dump\ak_' + Rtrim (convert(char(10),GetDate (),12)) + '_' + Rtrim (Convert(char(2),GetDate (),8)) + Rtrim (RIGHT(Convert(char(5),GetDate (),8), 2)) + '.log'

dump transaction akvilon to @path
go


3.4.3 Загрузка базы и логов из пакетного файла
 
/* Пример загрузить дамп из файла load_base.txt текс файла ниже... в примере указан дамп на 31.03.2007 + логи до 02.04.2007 17:00  запустить скрипт можно командой "isql -Usa -Ppassword -Sserver -ic:\load_base.txt" набрав ее в коммандной строке > */

load database akvilon from "c:\ak_070331.dmp" go

 

declare  @path       varchar(30)   /* Переменная для конечной строки, которая создастся в цикле: 'load transaction akvilon from "c:\ak_yymmdd_hhmm.log"' */
declare  @date_start datetime  /* Дата начала лог файла */
declare  @date_end   datetime  /* Дата окончания логов */
declare  @minute     int       /* период между логами в минутах */

SELECT   @date_start = '2017.03.31 09:00' /* Дата начала лог файла */
SELECT   @date_end   = '2017.04.02 17:00' /* Дата окончания логов */
SELECT   @minute     = 20                 /* период между логами в минутах */

WHILE @date_start <= @date_end
BEGIN
   SELECT @path = 'c:\ak_' + Rtrim (convert(char(10),@date_start,12)) + '_' + Rtrim (Convert(char(2),@date_start,8)) + Rtrim (RIGHT(Convert(char(5),@date_start,8), 2)) + '.log'

   SELECT @date_start = DateAdd (minute, @minute, @date_start)
   load transaction akvilon from  @path go
END

online database akvilon go

Далее:

1. Инсталляция базы данных.

Зачем нужно перенастраивать конфигурацию Sybase сервера?

Так как Sybasе Enterprise Server 12.5.1 по умолчанию работает почти на любом железе. Поэтому, установки по умолчанию не будут использовать ресурсы компьютера полностью.

 

Даже для средней персоналки, желательно перенастроить Sybasе сервер для программы "Аквилон Банк", как описано ниже.

 

Пример приведен для ОЗУ: 4Gb т.к мы используем версию Sybase ASE - Adaptive Server Enterprise/12.5.1/EBF 11665 ESD#2/P/NT (IX86)/OS 4.0/ase1251/1838/32-bit/OPT/Fri Feb 20 04:11:31 2004   

Версию вашего сервера Базы Данных можно получить при помощи команды SELECT @@version

 

Работает быстро

 
Аквилон Банк — одна из лучших бесплатных программ для Дилеров банка, Казаначейства, Бэкофиса и Бухгалтерии в одной программе. Помогает автоматизировать загрузку сделок из разных источников, чтобы самостоятельно получить требуемые отчеты, позиции, проводки и документы. Программа обладает простым и удобным интерфейсом и не требует сложных настроек для начала работы. 

Мы работаем в Москве, на улице Старокаширское шоссе д.2 стр.1 тел. +7-929-626-88-28