Код ошибки 13059

 
kaand
 
(2006-04-21 13:14)
[0]

Открываю «SQL Explorer». Раскрываю базу.
При попытке раскрыть «Tables» получаю сообщение в окне Database Engine:
«General SQL Error. Connot transliterate character between character sets.»

В Details написано:
BDE Error: 13059     ($33)($ 3)
Server Error: -314
«General SQL Error. Connot transliterate character between character sets.»

Список таблиц так и не раскрывается.
Подскажите, что происходит и как с этим побороться?


 
Desdechado ©
 
(2006-04-21 13:16)
[1]

настроить в алиасе LANGDRIVER на тот, который использовался в БД
если в БД win1251, то в БДЕ Pdox ANSI Cyrillic


 
konda
 
(2006-04-21 13:25)
[2]

LANGDRIVER уже стоит Pdox ANSI Cyrillic.

Т.е. я сделал копию базы (чтобы можно было над ней поэкспериментировать), установил теже настройки алиаса.


 
konda
 
(2006-04-21 13:31)
[3]

Настройки:
Type: INTERBASE 4
Batch Count: 200
Blob Size: 32
Blob To Cache: 1000
Commite Retain: False
Enable BCD: False
Enable Schema Cache: False
LANGDRIVER: Pdox ANSI Cyrillic
Max Rows: -1
Open Mode: Read/Write
Role Name:
Schema Cache Dir: False
Schema Cache Size: 8
Schema Cache Time: -1
Server Name: E:WorkDelphiProjectsDiscountDLR.GDB
SQLPassThru Mode: Shared Autocommit
SQLQRYMODE:
UserName:sysdba
Wait On Locks: False


 
Desdechado ©
 
(2006-04-21 13:36)
[4]

что за тип interbase4 ?
я же сказал, что Pdox только для win1251
а в какой кодировке у тебя база?


 
Johnmen ©
 
(2006-04-21 13:36)
[5]

При соединении надо указывать charset.
Про БДЕ здесь http://www.ibase.ru/devinfo/bde.htm
и далее по ссылкам.


 
konda
 
(2006-04-21 14:16)
[6]

>Desdechado
Как узнать в какой она кодировке?
Программа установки купленной когда-то базы сама устанавливает в алиасе «Pdox ANSI Cyrillic», а я его настройку просто скопировал.


 
Виталий Панасенко
 
(2006-04-21 15:10)
[7]


> Desdechado ©   (21.04.06 13:36) [4]
> что за тип interbase4 ?
> я же сказал, что Pdox только для win1251
> а в какой кодировке у тебя база?

Это БДЕ так строит алиас для ИБ…


 
Desdechado ©
 
(2006-04-21 16:27)
[8]

> Это БДЕ так строит алиас для ИБ
у меня никаких четверок БДЕ не делает
мало того, даже не нашел, как четверку сделать

> Как узнать в какой она кодировке?
у производителя или просмотрев метаданные через какой-нибудь IBExpert


Avatar of mrk_raj

mrk_raj

 asked on 2/13/2003

Hi all,

Iam using Delhp4 and SQL 2000 for my application. some times i get a BDE Error 13059, General SQL error
while attemting to connect to the database using Tdatabase component. This error occurs even if i tried with the database desktop or BDE administratror.

Please help me on this

thanks
Raj

Delphi

Avatar of undefined

13059 : $3303 : General SQL error.

? could be anything

check on the BDE Configuration…what version of BDE are you using?

thanks for that….

    Iam using BDE version 5.01…

yeas it is GeneralSQL  error with error code 13059

thanks
Raj

is there any additional message with that 13059?
is your bde Alias correctly configured? database name etc.

Thanks

yeas everything is correct, and it connects also,
but somtimes it throws this error.it shows the alias name with the error message.

regards
Raj

well, then u use something (filter or similar),
which is not supported

I just have a feeling its something to do with you BDE configuration

wat kind of configuration settings is required for SQL 2000
drivers?

hi all,
i repalced the ntwdblib.dll of the version 1998, overwriting the version 2000., now this works fine….
i dont wats wrong with ver 2000…Is ther any known problem with the version of ntwdblib(2000) and BDE ver 5.1

thanks for all

regards
Raj

glad you got it work :-))

never guessed that this is the problem

meikl ;-)

mrk_raj:
This old question needs to be finalized — accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don’t care.

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.

View this solution by signing up for a free trial.

Members can start a

7-Day free trial

and enjoy unlimited access to the platform.

Модераторы: kdv, CyberMax

alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Ошибка General SQL Error. unsupported on-disk structure…

Помогите, пожалуйста, если кто сталкивался с такой ситуацией:
Приложение на Delphi, БД — Interbase 7.0.1 (сервер и несколько клиентов), используется BDE 5.0 — все в сети под XP, работало.
Заказчик попросил переставить сервер БД на другую машину (ОС Server 2003). Все устанавливалось с тех же самых дисков, т.е. полное соответствие версий. Сама база переносилась копированием. На новом сервере все заработало, с клиентских машин БД не открыть ни в BDE, ни через SQL Explorer ( на 2-х клиентах только путь к серверу перепрописывался, а на одном все перепоставлялось). Выдает ошибку:

General SQL Error.
Unsupported on-disk structure for file xxx.gdb; found 11, support 0
BDE error 13059
Server error -820

Попросила сисадмина заказчика проверить, открыт ли порт 3050, был закрыт, теперь открыт, а ситуация не изменилась.
Заказчик торопит, но надо понять что проверять .
На этой машине еще стоит SQL Server.
Хотя в такой конфигурации (ОС Server 2003, на ней InterBase и SQL Server, клиенты — XP) все работает.
Буду благодарна за любую версию.



alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

alla » 31 авг 2010, 14:56

был снят скриншот ошибки, я просто сюда переписала. По кнопке дитэйл появляется Server error -820. Почитать по Вашей ссылке я почитаю, но просьба всех, кто может еще что-то посоветовать, отозваться. Возможно до открытия порта не было (не смотрели) дитэйл. Но сисадмин сказал, что порт был закрыт, а он теперь его открыл, хотя это не меняет сути дела, нужно добиться работоспособности в такой конфигурации.


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

hvlad » 31 авг 2010, 15:22

Клиент от IB (или от FB 1.x) неправильно форматирует ошибку FB2.x при попытке открыть БД от IB.

Вот как ошибка выглядела до FB2
unsupported on-disk structure for file %s; found %ld, support %ld
т.е. 3 аргумента

А вот как сейчас
unsupported on-disk structure for file @1; found @2.@3, support @4.@5
т.е. 5 аргументов

FB2.х выдал такие аргументы (например)
xxx.gdb, 11, 0, 11, 0

Правильный клиент сказал бы
unsupported on-disk structure for file xxx.gdb; found 11.0, support 11.0

Короче — на новом сервере запущен FB2.x


alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

alla » 31 авг 2010, 16:22

Пока hvlad писал я уже позвонила Заказчику, т .к. возникли подозрения. Известно точно, что на новой машине, куда переносится моя база, стоит и запущен FB2 и запущен мой IB7.Видимо, они конфликтуют. Но тогда почему на самом сервере база открывается и программа запускается и нормально все работает, а с клиентов нет. Врядли в такой ситуации поможет на старой машине сделать бэкап, а на новой ресторе? Или есть еще идеи для проверки?


alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

alla » 31 авг 2010, 17:05

Dimitry Sibiryakov писал(а):Что-то я сомневаюсь в правильности воспроизведения Вами ошибки. Нет таких серверов, которые бы «support 0».
Читайте http://ibase.ru/devinfo/prevver.htm до просветления.

И, кстати, эта ошибка выдаётся сервером, то есть порт 3050 по-всякому был открыт.

Документ по ссылке прочитала, просветления пока не наступило. Хоть и вскрылись новые обстоятельства — запущен FB2 на новой машине, но IB 7.0 и FB2 работают с одинаковыми версиями ODS (11.0), да и база на новом сервере (локально) работает во всех вариантах.
Может быть когда идет обращение к базе с клиентских машин, а на сервере запущены оба сервера БД (IB и FB) надо где-то прописать кого чем открывать?


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

hvlad » 31 авг 2010, 20:52

alla,

Очевидно, FB запускается первым и первым же открывает порт слушателя. IB этого сделать уже не может, изучайте interbase.log.
Что до работы программы локально, так локальные протоколы в IBFB принципиально разные и всё зависит от того, какой клиент будет подключаться — такой же сервер и откликнется.
ODS 11 у IB и ODS 11 у FB принципиально разные и не совместимые.
Изучайте документацию на предмет настройки порта слушателя. Оба сервера это умеют.
Да и вообще — изучайте документацию, ваш уровень вопросов показывает слабую осведомлённость о предмете.


alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

alla » 01 сен 2010, 11:49

hvlad писал(а):alla,

Очевидно, FB запускается первым и первым же открывает порт слушателя. IB этого сделать уже не может, изучайте interbase.log.
Что до работы программы локально, так локальные протоколы в IBFB принципиально разные и всё зависит от того, какой клиент будет подключаться — такой же сервер и откликнется.
ODS 11 у IB и ODS 11 у FB принципиально разные и не совместимые.
Изучайте документацию на предмет настройки порта слушателя. Оба сервера это умеют.
Да и вообще — изучайте документацию, ваш уровень вопросов показывает слабую осведомлённость о предмете.

Ваша корректность в высказываниях потрясает. На форум приходят за помощью и чайники. Если бы была полная осведомленность, не было бы нужды советоваться. Если вам в лом, не отвечайте, а унизить — легче простого. Если Вы видите уровень вопросов и отвечаете, то можно и документацию посоветовать.


hvlad

Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

hvlad » 01 сен 2010, 12:38

alla,

я дал вам исчерпывающие ответы, с полным объяснением что, как и почему. В следующий раз позвоните в поддержку IB (который вы конечно же честно купили за свои кровные и вправе ставить «Заказчикам») и сравните уровень ответов. Если там понравится больше — там и оставайтесь :-D
Здесь же вам никто и ничего не должен.

PS про обиженных и воду знаете ?


alla

Сообщения: 6
Зарегистрирован: 21 июл 2010, 16:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

alla » 01 сен 2010, 12:53

hvlad писал(а):alla,

я дал вам исчерпывающие ответы, с полным объяснением что, как и почему. В следующий раз позвоните в поддержку IB (который вы конечно же честно купили за свои кровные и вправе ставить «Заказчикам») и сравните уровень ответов. Если там понравится больше — там и оставайтесь :-D
Здесь же вам никто и ничего не должен.

PS про обиженных и воду знаете ?

Ссориться не будем и обижаться тоже. Каждый поможет, чем сможет. И Вам спасибо.


Dimitry Sibiryakov

Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

Dimitry Sibiryakov » 01 сен 2010, 14:41

alla писал(а):это не меняет сути дела, нужно добиться работоспособности в такой конфигурации.

Пригласите опытного IB/FB DBA, он всё сделает. Быстро, качественно или недорого. Выберите два.

ЗЫ: Кстати, непонятна ваша роль в проекте. Вы разработчик приложения или работник саппорта первой линии?


kdv

Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Ошибка General SQL Error. unsupported on-disk structure.

Сообщение

kdv » 02 сен 2010, 19:26

Ваша корректность в высказываниях потрясает. На форум приходят за помощью и чайники. Если бы была полная осведомленность, не было бы нужды советоваться. Если вам в лом, не отвечайте, а унизить — легче простого. Если Вы видите уровень вопросов и отвечаете, то можно и документацию посоветовать.

alla, Вам предупреждение, за гордыню. Вас тут никто не унижал и не пытался. Еще один такой выпад, и пойдете читать документацию от начала до конца.


Список ошибок BDE

$0000 (0) = Successful completion.

$0021 (33) = System Error

$0022 (34) = Object of Interest Not Found

$0023 (35) = Physical Data Corruption

$0024 (36) = I/O Related Error

$0025 (37) = Resource or Limit Error

$0026 (38) = Data Integrity Violation

$0027 (39) = Invalid Request

$0028 (40) = Lock Violation

$0029 (41) = Access/Security Violation

$002A (42) = Invalid Context

$002B (43) = OS Error

$002C (44) = Network Error

$002D (45) = Optional Parameter

$002E (46) = Query Processor

$002F (47) = Version Mismatch

$0030 (48) = Capability Not Supported

$0031 (49) = System Configuration Error

$0032 (50) = Warning

$0033 (51) = Miscellaneous

$0034 (52) = Compatibility Error

$003E (62) = Driver Specific Error

$003F (63) = Internal Symbol

$2101 (8449) = Cannot open a system file.

$2102 (8450) = I/O error on a system file.

$2103 (8451) = Data structure corruption.

$2104 (8452) = Cannot find Engine configuration file.

$2105 (8453) = Cannot write to Engine configuration file.

$2106 (8454) = Cannot initialize with different configuration file.

$2107 (8455) = System has been illegally re-entered.

$2108 (8456) = Cannot locate IDAPI32 .DLL.

$2109 (8457) = Cannot load IDAPI32 .DLL.

$210A (8458) = Cannot load an IDAPI service library.

$210B (8459) = Cannot create or open temporary file.

$2201 (8705) = At beginning of table.

$2202 (8706) = At end of table.

$2203 (8707) = Record moved because key value changed.

$2204 (8708) = Record/Key deleted.

$2205 (8709) = No current record.

$2206 (8710) = Could not find record.

$2207 (8711) = End of BLOB.

$2208 (8712) = Could not find object.

$2209 (8713) = Could not find family member.

$220A (8714) = BLOB file is missing.

$220B (8715) = Could not find language driver.

$2301 (8961) = Corrupt table/index header.

$2302 (8962) = Corrupt file — other than header.

$2303 (8963) = Corrupt Memo/BLOB file.

$2305 (8965) = Corrupt index.

$2306 (8966) = Corrupt lock file.

$2307 (8967) = Corrupt family file.

$2308 (8968) = Corrupt or missing .VAL file.

$2309 (8969) = Foreign index file format.

$2401 (9217) = Read failure.

$2402 (9218) = Write failure.

$2403 (9219) = Cannot access directory.

$2404 (9220) = File Delete operation failed.

$2405 (9221) = Cannot access file.

$2406 (9222) = Access to table disabled because of previous error.

$2501 (9473) = Insufficient memory for this operation.

$2502 (9474) = Not enough file handles.

$2503 (9475) = Insufficient disk space.

$2504 (9476) = Temporary table resource limit.

$2505 (9477) = Record size is too big for table.

$2506 (9478) = Too many open cursors.

$2507 (9479) = Table is full.

$2508 (9480) = Too many sessions from this workstation.

$2509 (9481) = Serial number limit (Paradox).

$250A (9482) = Some internal limit (see context).

$250B (9483) = Too many open tables.

$250C (9484) = Too many cursors per table.

$250D (9485) = Too many record locks on table.

$250E (9486) = Too many clients.

$250F (9487) = Too many indexes on table.

$2510 (9488) = Too many sessions.

$2511 (9489) = Too many open databases.

$2512 (9490) = Too many passwords.

$2513 (9491) = Too many active drivers.

$2514 (9492) = Too many fields in Table Create.

$2515 (9493) = Too many table locks.

$2516 (9494) = Too many open BLOBs.

$2517 (9495) = Lock file has grown too large.

$2518 (9496) = Too many open queries.

$251A (9498) = Too many BLOBs.

$251B (9499) = File name is too long for a Paradox version 5.0 table.

$251C (9500) = Row fetch limit exceeded.

$251D (9501) = Long name not allowed for this tablelevel.

$2601 (9729) = Key violation.

$2602 (9730) = Minimum validity check failed.

$2603 (9731) = Maximum validity check failed.

$2604 (9732) = Field value required.

$2605 (9733) = Master record missing.

$2606 (9734) = Master has detail records. Cannot delete or modify.

$2607 (9735) = Master table level is incorrect.

$2608 (9736) = Field value out of lookup table range.

$2609 (9737) = Lookup Table Open operation failed.

$260A (9738) = Detail Table Open operation failed.

$260B (9739) = Master Table Open operation failed.

$260C (9740) = Field is blank.

$260D (9741) = Link to master table already defined.

$260E (9742) = Master table is open.

$260F (9743) = Detail table(s) exist.

$2610 (9744) = Master has detail records. Cannot empty it.

$2611 (9745) = Self referencing referential integrity must be entered one at a time with no other changes to the table

$2612 (9746) = Detail table is open.

$2613 (9747) = Cannot make this master a detail of another table if its details are not empty.

$2614 (9748) = Referential integrity fields must be indexed.

$2615 (9749) = A table linked by referential integrity requires password to open.

$2616 (9750) = Field(s) linked to more than one master.

$2617 (9751) = Expression validity check failed.

$2701 (9985) = Number is out of range.

$2702 (9986) = Invalid parameter.

$2703 (9987) = Invalid file name.

$2704 (9988) = File does not exist.

$2705 (9989) = Invalid option.

$2706 (9990) = Invalid handle to the function.

$2707 (9991) = Unknown table type.

$2708 (9992) = Cannot open file.

$2709 (9993) = Cannot redefine primary key.

$270A (9994) = Cannot change this RINTDesc.

$270B (9995) = Foreign and primary key do not match.

$270C (9996) = Invalid modify request.

$270D (9997) = Index does not exist.

$270E (9998) = Invalid offset into the BLOB.

$270F (9999) = Invalid descriptor number.

$2710 (10000) = Invalid field type.

$2711 (10001) = Invalid field descriptor.

$2712 (10002) = Invalid field transformation.

$2713 (10003) = Invalid record structure.

$2714 (10004) = Invalid descriptor.

$2715 (10005) = Invalid array of index descriptors.

$2716 (10006) = Invalid array of validity check descriptors.

$2717 (10007) = Invalid array of referential integrity descriptors.

$2718 (10008) = Invalid ordering of tables during restructure.

$2719 (10009) = Name not unique in this context.

$271A (10010) = Index name required.

$271B (10011) = Invalid session handle.

$271C (10012) = invalid restructure operation.

$271D (10013) = Driver not known to system.

$271E (10014) = Unknown database.

$271F (10015) = Invalid password given.

$2720 (10016) = No callback function.

$2721 (10017) = Invalid callback buffer length.

$2722 (10018) = Invalid directory.

$2723 (10019) = Translate Error. Value out of bounds.

$2724 (10020) = Cannot set cursor of one table to another.

$2725 (10021) = Bookmarks do not match table.

$2726 (10022) = Invalid index/tag name.

$2727 (10023) = Invalid index descriptor.

$2728 (10024) = Table does not exist.

$2729 (10025) = Table has too many users.

$272A (10026) = Cannot evaluate Key or Key does not pass filter condition.

$272B (10027) = Index already exists.

$272C (10028) = Index is open.

$272D (10029) = Invalid BLOB length.

$272E (10030) = Invalid BLOB handle in record buffer.

$272F (10031) = Table is open.

$2730 (10032) = Need to do (hard) restructure.

$2731 (10033) = Invalid mode.

$2732 (10034) = Cannot close index.

$2733 (10035) = Index is being used to order table.

$2734 (10036) = Unknown user name or password.

$2735 (10037) = Multi-level cascade is not supported.

$2736 (10038) = Invalid field name.

$2737 (10039) = Invalid table name.

$2738 (10040) = Invalid linked cursor expression.

$2739 (10041) = Name is reserved.

$273A (10042) = Invalid file extension.

$273B (10043) = Invalid language Driver.

$273C (10044) = Alias is not currently opened.

$273D (10045) = Incompatible record structures.

$273E (10046) = Name is reserved by DOS.

$273F (10047) = Destination must be indexed.

$2740 (10048) = Invalid index type

$2741 (10049) = Language Drivers of Table and Index do not match

$2742 (10050) = Filter handle is invalid

$2743 (10051) = Invalid Filter

$2744 (10052) = Invalid table create request

$2745 (10053) = Invalid table delete request

$2746 (10054) = Invalid index create request

$2747 (10055) = Invalid index delete request

$2748 (10056) = Invalid table specified

$274A (10058) = Invalid Time.

$274B (10059) = Invalid Date.

$274C (10060) = Invalid Datetime

$274D (10061) = Tables in different directories

$274E (10062) = Mismatch in the number of arguments

$274F (10063) = Function not found in service library.

$2750 (10064) = Must use baseorder for this operation.

$2751 (10065) = Invalid procedure name

$2752 (10066) = The field map is invalid.

$2801 (10241) = Record locked by another user.

$2802 (10242) = Unlock failed.

$2803 (10243) = Table is busy.

$2804 (10244) = Directory is busy.

$2805 (10245) = File is locked.

$2806 (10246) = Directory is locked.

$2807 (10247) = Record already locked by this session.

$2808 (10248) = Object not locked.

$2809 (10249) = Lock time out.

$280A (10250) = Key group is locked.

$280B (10251) = Table lock was lost.

$280C (10252) = Exclusive access was lost.

$280D (10253) = Table cannot be opened for exclusive use.

$280E (10254) = Conflicting record lock in this session.

$280F (10255) = A deadlock was detected.

$2810 (10256) = A user transaction is already in progress.

$2811 (10257) = No user transaction is currently in progress.

$2812 (10258) = Record lock failed.

$2813 (10259) = Couldn’t perform the edit because another user changed the record.

$2814 (10260) = Couldn’t perform the edit because another user deleted or moved the record.

$2901 (10497) = Insufficient field rights for operation.

$2902 (10498) = Insufficient table rights for operation. Password required.

$2903 (10499) = Insufficient family rights for operation.

$2904 (10500) = This directory is read only.

$2905 (10501) = Database is read only.

$2906 (10502) = Trying to modify read-only field.

$2907 (10503) = Encrypted dBASE tables not supported.

$2908 (10504) = Insufficient SQL rights for operation.

$2A01 (10753) = Field is not a BLOB.

$2A02 (10754) = BLOB already opened.

$2A03 (10755) = BLOB not opened.

$2A04 (10756) = Operation not applicable.

$2A05 (10757) = Table is not indexed.

$2A06 (10758) = Engine not initialized.

$2A07 (10759) = Attempt to re-initialize Engine.

$2A08 (10760) = Attempt to mix objects from different sessions.

$2A09 (10761) = Paradox driver not active.

$2A0A (10762) = Driver not loaded.

$2A0B (10763) = Table is read only.

$2A0C (10764) = No associated index.

$2A0D (10765) = Table(s) open. Cannot perform this operation.

$2A0E (10766) = Table does not support this operation.

$2A0F (10767) = Index is read only.

$2A10 (10768) = Table does not support this operation because it is not uniquely indexed.

$2A11 (10769) = Operation must be performed on the current session.

$2A12 (10770) = Invalid use of keyword.

$2A13 (10771) = Connection is in use by another statement.

$2A14 (10772) = Passthrough SQL connection must be shared

$2B01 (11009) = Invalid function number.

$2B02 (11010) = File or directory does not exist.

$2B03 (11011) = Path not found.

$2B04 (11012) = Too many open files. You may need to increase MAXFILEHANDLE limit in IDAPI configuration.

$2B05 (11013) = Permission denied.

$2B06 (11014) = Bad file number.

$2B07 (11015) = Memory blocks destroyed.

$2B08 (11016) = Not enough memory.

$2B09 (11017) = Invalid memory block address.

$2B0A (11018) = Invalid environment.

$2B0B (11019) = Invalid format.

$2B0C (11020) = Invalid access code.

$2B0D (11021) = Invalid data.

$2B0F (11023) = Device does not exist.

$2B10 (11024) = Attempt to remove current directory.

$2B11 (11025) = Not same device.

$2B12 (11026) = No more files.

$2B13 (11027) = Invalid argument.

$2B14 (11028) = Argument list is too long.

$2B15 (11029) = Execution format error.

$2B16 (11030) = Cross-device link.

$2B21 (11041) = Math argument.

$2B22 (11042) = Result is too large.

$2B23 (11043) = File already exists.

$2B27 (11047) = Unknown internal operating system error.

$2B32 (11058) = Share violation.

$2B33 (11059) = Lock violation.

$2B34 (11060) = Critical DOS Error.

$2B35 (11061) = Drive not ready.

$2B64 (11108) = Not exact read/write.

$2B65 (11109) = Operating system network error.

$2B66 (11110) = Error from NOVELL file server.

$2B67 (11111) = NOVELL server out of memory.

$2B68 (11112) = Record already locked by this workstation.

$2B69 (11113) = Record not locked.

$2C01 (11265) = Network initialization failed.

$2C02 (11266) = Network user limit exceeded.

$2C03 (11267) = Wrong .NET file version.

$2C04 (11268) = Cannot lock network file.

$2C05 (11269) = Directory is not private.

$2C06 (11270) = Directory is controlled by other .NET file.

$2C07 (11271) = Unknown network error.

$2C08 (11272) = Not initialized for accessing network files.

$2C09 (11273) = SHARE not loaded. It is required to share local files.

$2C0A (11274) = Not on a network. Not logged in or wrong network driver.

$2C0B (11275) = Lost communication with SQL server.

$2C0D (11277) = Cannot locate or connect to SQL server.

$2C0E (11278) = Cannot locate or connect to network server.

$2D01 (11521) = Optional parameter is required.

$2D02 (11522) = Invalid optional parameter.

$2E01 (11777) = obsolete

$2E02 (11778) = obsolete

$2E03 (11779) = Ambiguous use of ! (inclusion operator).

$2E04 (11780) = obsolete

$2E05 (11781) = obsolete

$2E06 (11782) = A SET operation cannot be included in its own grouping.

$2E07 (11783) = Only numeric and date/time fields can be averaged.

$2E08 (11784) = Invalid expression.

$2E09 (11785) = Invalid OR expression.

$2E0A (11786) = obsolete

$2E0B (11787) = bitmap

$2E0C (11788) = CALC expression cannot be used in INSERT, DELETE, CHANGETO and SET rows.

$2E0D (11789) = Type error in CALC expression.

$2E0E (11790) = CHANGETO can be used in only one query form at a time.

$2E0F (11791) = Cannot modify CHANGED table.

$2E10 (11792) = A field can contain only one CHANGETO expression.

$2E11 (11793) = A field cannot contain more than one expression to be inserted.

$2E12 (11794) = obsolete

$2E13 (11795) = CHANGETO must be followed by the new value for the field.

$2E14 (11796) = Checkmark or CALC expressions cannot be used in FIND queries.

$2E15 (11797) = Cannot perform operation on CHANGED table together with a CHANGETO query.

$2E16 (11798) = chunk

$2E17 (11799) = More than 255 fields in ANSWER table.

$2E18 (11800) = AS must be followed by the name for the field in the ANSWER table.

$2E19 (11801) = DELETE can be used in only one query form at a time.

$2E1A (11802) = Cannot perform operation on DELETED table together with a DELETE query.

$2E1B (11803) = Cannot delete from the DELETED table.

$2E1C (11804) = Example element is used in two fields with incompatible types or with a BLOB.

$2E1D (11805) = Cannot use example elements in an OR expression.

$2E1E (11806) = Expression in this field has the wrong type.

$2E1F (11807) = Extra comma found.

$2E20 (11808) = Extra OR found.

$2E21 (11809) = One or more query rows do not contribute to the ANSWER.

$2E22 (11810) = FIND can be used in only one query form at a time.

$2E23 (11811) = FIND cannot be used with the ANSWER table.

$2E24 (11812) = A row with GROUPBY must contain SET operations.

$2E25 (11813) = GROUPBY can be used only in SET rows.

$2E26 (11814) = Use only INSERT, DELETE, SET or FIND in leftmost column.

$2E27 (11815) = Use only one INSERT, DELETE, SET or FIND per line.

$2E28 (11816) = Syntax error in expression.

$2E29 (11817) = INSERT can be used in only one query form at a time.

$2E2A (11818) = Cannot perform operation on INSERTED table together with an INSERT query.

$2E2B (11819) = INSERT, DELETE, CHANGETO and SET rows may not be checked.

$2E2C (11820) = Field must contain an expression to insert (or be blank).

$2E2D (11821) = Cannot insert into the INSERTED table.

$2E2E (11822) = Variable is an array and cannot be accessed.

$2E2F (11823) = Label

$2E30 (11824) = Rows of example elements in CALC expression must be linked.

$2E31 (11825) = Variable name is too long.

$2E32 (11826) = Query may take a long time to process.

$2E33 (11827) = Reserved word or one that can’t be used as a variable name.

$2E34 (11828) = Missing comma.

$2E35 (11829) = Missing ).

$2E36 (11830) = Missing right quote.

$2E37 (11831) = Cannot specify duplicate column names.

$2E38 (11832) = Query has no checked fields.

$2E39 (11833) = Example element has no defining occurrence.

$2E3A (11834) = No grouping is defined for SET operation.

$2E3B (11835) = Query makes no sense.

$2E3C (11836) = Cannot use patterns in this context.

$2E3D (11837) = Date does not exist.

$2E3E (11838) = Variable has not been assigned a value.

$2E3F (11839) = Invalid use of example element in summary expression.

$2E40 (11840) = Incomplete query statement. Query only contains a SET definition.

$2E41 (11841) = Example element with ! makes no sense in expression.

$2E42 (11842) = Example element cannot be used more than twice with a ! query.

$2E43 (11843) = Row cannot contain expression.

$2E44 (11844) = obsolete

$2E45 (11845) = obsolete

$2E46 (11846) = No permission to insert or delete records.

$2E47 (11847) = No permission to modify field.

$2E48 (11848) = Field not found in table.

$2E49 (11849) = Expecting a column separator in table header.

$2E4A (11850) = Expecting a column separator in table.

$2E4B (11851) = Expecting column name in table.

$2E4C (11852) = Expecting table name.

$2E4D (11853) = Expecting consistent number of columns in all rows of table.

$2E4E (11854) = Cannot open table.

$2E4F (11855) = Field appears more than once in table.

$2E50 (11856) = This DELETE, CHANGE or INSERT query has no ANSWER.

$2E51 (11857) = Query is not prepared. Properties unknown.

$2E52 (11858) = DELETE rows cannot contain quantifier expression.

$2E53 (11859) = Invalid expression in INSERT row.

$2E54 (11860) = Invalid expression in INSERT row.

$2E55 (11861) = Invalid expression in SET definition.

$2E56 (11862) = row use

$2E57 (11863) = SET keyword expected.

$2E58 (11864) = Ambiguous use of example element.

$2E59 (11865) = obsolete

$2E5A (11866) = obsolete

$2E5B (11867) = Only numeric fields can be summed.

$2E5C (11868) = Table is write protected.

$2E5D (11869) = Token not found.

$2E5E (11870) = Cannot use example element with ! more than once in a single row.

$2E5F (11871) = Type mismatch in expression.

$2E60 (11872) = Query appears to ask two unrelated questions.

$2E61 (11873) = Unused SET row.

$2E62 (11874) = INSERT, DELETE, FIND, and SET can be used only in the leftmost column.

$2E63 (11875) = CHANGETO cannot be used with INSERT, DELETE, SET or FIND.

$2E64 (11876) = Expression must be followed by an example element defined in a SET.

$2E65 (11877) = Lock failure.

$2E66 (11878) = Expression is too long.

$2E67 (11879) = Refresh exception during query.

$2E68 (11880) = Query canceled.

$2E69 (11881) = Unexpected Database Engine error.

$2E6A (11882) = Not enough memory to finish operation.

$2E6B (11883) = Unexpected exception.

$2E6C (11884) = Feature not implemented yet in query.

$2E6D (11885) = Query format is not supported.

$2E6E (11886) = Query string is empty.

$2E6F (11887) = Attempted to prepare an empty query.

$2E70 (11888) = Buffer too small to contain query string.

$2E71 (11889) = Query was not previously parsed or prepared.

$2E72 (11890) = Function called with bad query handle.

$2E73 (11891) = QBE syntax error.

$2E74 (11892) = Query extended syntax field count error.

$2E75 (11893) = Field name in sort or field clause not found.

$2E76 (11894) = Table name in sort or field clause not found.

$2E77 (11895) = Operation is not supported on BLOB fields.

$2E78 (11896) = General BLOB error.

$2E79 (11897) = Query must be restarted.

$2E7A (11898) = Unknown answer table type.

$2E96 (11926) = Blob cannot be used as grouping field.

$2E97 (11927) = Query properties have not been fetched.

$2E98 (11928) = Answer table is of unsuitable type.

$2E99 (11929) = Answer table is not yet supported under server alias.

$2E9A (11930) = Non-null blob field required. Can’t insert records

$2E9B (11931) = Unique index required to perform changeto

$2E9C (11932) = Unique index required to delete records

$2E9D (11933) = Update of table on the server failed.

$2E9E (11934) = Can’t process this query remotely.

$2E9F (11935) = Unexpected end of command.

$2EA0 (11936) = Parameter not set in query string.

$2EA1 (11937) = Query string is too long.

$2EAA (11946) = No such table or correlation name.

$2EAB (11947) = Expression has ambiguous data type.

$2EAC (11948) = Field in order by must be in result set.

$2EAD (11949) = General parsing error.

$2EAE (11950) = Record or field constraint failed.

$2EAF (11951) = When GROUP BY exists, every simple field in projectors must be in GROUP BY.

$2EB0 (11952) = User defined function is not defined.

$2EB1 (11953) = Unknown error from User defined function.

$2EB2 (11954) = Single row subquery produced more than one row.

$2EB3 (11955) = Expressions in group by are not supported.

$2EB4 (11956) = Queries on text or ascii tables is not supported.

$2EB5 (11957) = ANSI join keywords USING and NATURAL are not supported in this release.

$2EB6 (11958) = SELECT DISTINCT may not be used with UNION unless UNION ALL is used.

$2EB7 (11959) = GROUP BY is required when both aggregate and non-aggregate fields are used in result set.

$2EB8 (11960) = INSERT and UPDATE operations are not supported on autoincrement field type.

$2EB9 (11961) = UPDATE on Primary Key of a Master Table may modify more than one record.

$2EBA (11962) = Queries on MS ACCESS tables are not supported by local query engines.

$2EBB (11963) = Preparation of field-level constraint failed.

$2EBC (11964) = Preparation of field default failed.

$2EBD (11965) = Preparation of record-level constraint failed.

$2EC4 (11972) = Constraint Failed. Expression:

$2F01 (12033) = Interface mismatch. Engine version different.

$2F02 (12034) = Index is out of date.

$2F03 (12035) = Older version (see context).

$2F04 (12036) = .VAL file is out of date.

$2F05 (12037) = BLOB file version is too old.

$2F06 (12038) = Query and Engine DLLs are mismatched.

$2F07 (12039) = Server is incompatible version.

$2F08 (12040) = Higher table level required

$3001 (12289) = Capability not supported.

$3002 (12290) = Not implemented yet.

$3003 (12291) = SQL replicas not supported.

$3004 (12292) = Non-blob column in table required to perform operation.

$3005 (12293) = Multiple connections not supported.

$3006 (12294) = Full dBASE expressions not supported.

$3101 (12545) = Invalid database alias specification.

$3102 (12546) = Unknown database type.

$3103 (12547) = Corrupt system configuration file.

$3104 (12548) = Network type unknown.

$3105 (12549) = Not on the network.

$3106 (12550) = Invalid configuration parameter.

$3201 (12801) = Object implicitly dropped.

$3202 (12802) = Object may be truncated.

$3203 (12803) = Object implicitly modified.

$3204 (12804) = Should field constraints be checked?

$3205 (12805) = Validity check field modified.

$3206 (12806) = Table level changed.

$3207 (12807) = Copy linked tables?

$3209 (12809) = Object implicitly truncated.

$320A (12810) = Validity check will not be enforced.

$320B (12811) = Multiple records found, but only one was expected.

$320C (12812) = Field will be trimmed, cannot put master records into PROBLEM table.

$3301 (13057) = File already exists.

$3302 (13058) = BLOB has been modified.

$3303 (13059) = General SQL error.

$3304 (13060) = Table already exists.

$3305 (13061) = Paradox 1.0 tables are not supported.

$3306 (13062) = Update aborted.

$3401 (13313) = Different sort order.

$3402 (13314) = Directory in use by earlier version of Paradox.

$3403 (13315) = Needs Paradox 3.5-compatible language driver.

$3501 (13569) = Data Dictionary is corrupt

$3502 (13570) = Data Dictionary Info Blob corrupted

$3503 (13571) = Data Dictionary Schema is corrupt

$3504 (13572) = Attribute Type exists

$3505 (13573) = Invalid Object Type

$3506 (13574) = Invalid Relation Type

$3507 (13575) = View already exists

$3508 (13576) = No such View exists

$3509 (13577) = Invalid Record Constraint

$350A (13578) = Object is in a Logical DB

$350B (13579) = Dictionary already exists

$350C (13580) = Dictionary does not exist

$350D (13581) = Dictionary database does not exist

$350E (13582) = Dictionary info is out of date — needs Refresh

$3510 (13584) = Invalid Dictionary Name

$3511 (13585) = Dependent Objects exist

$3512 (13586) = Too many Relationships for this Object Type

$3513 (13587) = Relationships to the Object exist

$3514 (13588) = Dictionary Exchange File is corrupt

$3515 (13589) = Dictionary Exchange File Version mismatch

$3516 (13590) = Dictionary Object Type Mismatch

$3517 (13591) = Object exists in Target Dictionary

$3518 (13592) = Cannot access Data Dictionary

$3519 (13593) = Cannot create Data Dictionary

$351A (13594) = Cannot open Database

$3E01 (15873) = Wrong driver name.

$3E02 (15874) = Wrong system version.

$3E03 (15875) = Wrong driver version.

$3E04 (15876) = Wrong driver type.

$3E05 (15877) = Cannot load driver.

$3E06 (15878) = Cannot load language driver.

$3E07 (15879) = Vendor initialization failed.

$3E08 (15880) = Your application is not enabled for use with this driver.

$3F01 (16129) = Query By Example

$3F02 (16130) = SQL Generator

$3F03 (16131) = IDAPI

$3F04 (16132) = Lock Manager

$3F05 (16133) = SQL Driver

$3F06 (16134) = IDAPI Services

$3F07 (16135) = dBASE Driver

$3F08 (16136) = Dictionary Manager

$3F0B (16139) = Token

$3F0D (16141) = Table

$3F0E (16142) = Field

$3F0F (16143) = Image

$3F10 (16144) = User

$3F11 (16145) = File

$3F12 (16146) = Index

$3F13 (16147) = Directory

$3F14 (16148) = Key

$3F15 (16149) = Alias

$3F16 (16150) = Drive

$3F17 (16151) = Server error

$3F18 (16152) = Server message

$3F19 (16153) = Line Number

$3F1A (16154) = Capability

$3F1B (16155) = Dictionary

$3F1D (16157) = Object

$3F1E (16158) = Limit

$3F1F (16159) = Expression

$3F70 (16240) = WORK

$3F71 (16241) = PRIV

$3F72 (16242) = Records copied

$3F73 (16243) = Records appended

$3F74 (16244) = LineNo

$3F75 (16245) = Line

$3F76 (16246) = Reason

Автор признателен руководителям и сотрудникам ЗАО «Нефтегазсистемы»,
начальникам и персоналу вычислительных центров региональных управлений ОАО «Транснефть»,
c чьей помощью был разработан и внедрен данный Oracle-проект.

Возможные ошибки и методы их устранения

            В
данном пункте приводится список ошибок с примерами сообщений на английском и
русском языке (через косую черту). Далее идет текст с указанием причины и
решения проблемы: сначала из фирменной документации, затем комментарий из
практики (чаще всего по решению проблемы, но иногда только по причине, если
решение проблемы ясно).

Ошибка ORA-00020

ORA-00020: maximum number of
processes (num) exceeded

         / превышено максимальное
количество процессов (ном)

По
документации:

Причина:
Операция потребовала ресурс,
оказавшийся недоступным. Максимальное количество процессов определяется
параметром инициализации
PROCESSES.
Когда этот максимум превышается, никакие запросы больше обрабатываться не
могут.

Действие:
Повторите операцию еще раз через
несколько минут. Если это сообщение выдается часто, закройте
ORACLE,
увеличьте параметр
PROCESSES в файле
параметров инициализации, и запустите
ORACLE вновь.

Из
практики:

Действие:
Требуется увеличить параметр PROCESSES в
файле
INIT<SID>.ORA, причем для деф-сайта этот параметр должен
быть больше, чем для дест-сайта. Для БД СИСТЕМЫ было рекомендовано
установить этот параметр в 300 для дест-сайта и 400 для деф-сайта.

Ошибка ORA-00060

ORA-00060: deadlock detected
while waiting for resource

         / во время ожидания ресурса
произошла взаимоблокировка

По
документации:

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

Действие: Либо:

·        
выдайте команду ROLLBACK и перезапустите все команды, входящие в последнюю транзакцию;

·        
подождите, пока блокировка не
закончится (возможно, через несколько минут), и перезапустите те команды, на
которых произошел откат. 

Из
практики:

Причина:
Ошибка может возникнуть при
перегенерации сайта на БД, куда был неудачно выполнен полный импорт БД другого
сайта (см. Часть 2, Глава 3: Перенос основной БД на сервер с другой ОС).

Действие: Попробуйте удалить мастер-группы вместе с объектами и
повторить генерацию сайта.

Ошибка ORA-00600

ORA-00600:
internal error code, arguments: [num],[?],[?],[?],[?],[?] ,[?],[?]

         / код внутренней ошибки,
аргументы: [ном],[?],[?],[?], [?],[?],[?],[?]

По
документации:

Причина:
Это общее внутреннее сообщение для
исключительных ситуаций программ
ORACLE. Оно указывает, что процесс столкнулся с неожиданным
событием нижнего уровня.
Причинами,
вызывающими это сообщение, могут быть: 

·        
истечение времени
ожидания; 

·        
поломка файла; 

·        
сбойные ситуации при проверке
данных в памяти; 

·        
сообщения ввода/вывода,
аппаратного обеспечения, памяти; 

·        
некорректно
восстановленные файлы.

Первый
аргумент — это номер внутреннего сообщения; другие аргументы — различные 
числа, имена и символьные строки. (Для получения более полной информации см. 
раздел «Обращение в службу поддержки пользователей
ORACLE«.)
Числа могут  меняться в зависимости от версии сервера
ORACLE.

Действие:
Отправьте описание этой ошибки в
службу поддержки пользователей
ORACLE, сопроводив его информацией о: 

·        
событиях, которые привели к
ошибке; 

·        
предпринятых вами действиях,
которые привели к ошибке; 

·        
состоянии операционной системы и ORACLE
на момент ошибки; 

·        
подробностях всех необычных
обстоятельств, предшествовавших получению сообщения
ORA-00600

·        
содержимом всех файлов трассировок,
созданных в результате ошибки; 

·        
относящихся к этому случаю
реакциях сигнального файла. 

Замечание:
необходимо знать предысторию ошибок,
произошедших в самое разное время до этой внутренней ошибки, поскольку именно
они и могут оказаться ее причиной.

Из
практики:

Действие:
Это одна из самых скверных ошибок.
При ее возникновении рекомендуется обратиться к группе технической поддержки
Oracle.
Но существует также еще одна рекомендация: настройте работу в
Oracle через
протокол
IPC.

Ошибка ORA-01400

ORA-01400: cannot
insert NULL into (PLIPEKN.EDITIONS.ID)

         / Пропущен первичный ключ
или обязательный

           (NOT NULL) столбец, или NULL во время операции INSERT

ORA-06512: at
«PLIPEKN.WORKS_LOG», line 16

ORA-04088: error
during execution of trigger ‘PLIPEKN.WORKS_LOG’

ORA-06512: at
«PLIPEKN.WORKS$RP», line 831

ORA-01085:
preceding errors in deferred rpc to «PLIPEKN.WORKS$RP. REP_UPDATE»

ORA-02063:
preceding 5 lines from PLI_NORD

По документации:

Причина: При вводе или редактировании записи Вы не задали
значение обязательного (
NOT
NULL
) столбца.

Действие: Задайте значение для каждого столбца NOT NULL или измените определение таблицы так, чтобы
разрешить  устанавливать пустые значения столбцов.

Из
практики:

Причина:
Возникает при попытке сделать изменение
в таблице при отключенном или отсутствующем триггере
EDITIONS_COR (который расчитывает и устанавливает системный
идентификатор записи
ID).

Действие:
Включите (поставьте Enabled с
помощью
Oracle Schema
Manager
) либо создайте
триггер EDITIONS_COR:

create or replace
trigger EDITIONS_COR

  before insert
or update on EDITIONS

  for each row

begin

  if INSERTING
then

    select
EDITIONS_SEQ.nextval into :new.ID from DUAL;

  end if;

 
:new.CORDATE:=SYSDATE;

 
:new.USERNAME:=USER;

end;

Ошибка ORA-01403

ORA-01403: data not found

         / данные не найдены

ORA-06512: на
«PLIPEKN.DRFEAT$RP», строки 321

ORA-01085: ошибка обработки в
задержанном
rpc в «PLIPEKN.DRFEAT$RP. REP_UPDATE«

По
документации:

Причина: В программе на базовом языке были выбраны все записи.
Код возврата от операции
FETCH равен +4. Это означает, что из запроса на были
извлечены все записи.

Действие: Прекратите обработку для данного оператора SELECT.

Из
практики:

Причина:
Ошибка ORA-01403 является большим сюрпризом. Она возникает в самом важном месте – при выполнении
удаленной транзакции, и, притом, из-за множества причин, большинство которых
Вам еще не известно. Эта трудно распознаваемая ошибка обязательно будет время
от времени у Вас возникать.

Действие:
Дело может быть в следующем: не
обновлено поле, по которому разрешаются конфликты
(отключен или отсутствует
триггер
ТАБЛИЦА_COR, который расчитывает и устанавливает поле CORDATE, по которому как раз и разрешаются конфликты методом Latest Timestamp — см. пример триггера _COR выше при описании ошибки ORA-01400). Эта ошибка не возникает, если транзакция по данной
записи идет одна, без встречной.

Ошибка ORA-01591

ORA-01591: lock held by
in-doubt distributed transaction 6.58.10015

         / блокировка, удерживаемая
распред. транзакцией 6.58.10015,

           находящейся в неопр. сост.

По
документации:

Причина:
Была попытка доступа к ресурсу,
заблокированному «повисшей» распределенной транзакцией, находящейся в
состоянии подготовки.

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

Из
практики:

Причина:
Ошибка диагностирует возникновение
«смертельных объятий», зацикливании процессов друг на друге. Может возникнуть
при попытке удалить из мастер-группы дест-сайт, если одна из БД других
сайтов остановлена.

Действие:
Запустите БД всех сайтов и в
состоянии мастер-группы NORMAL повторите операцию.

Ошибка ORA-02049

ORA-02049: time-out:
distributed transaction waiting for lock

         / таймаут: распределенная
транзакция ждет блокировку

По
документации:

Причина:
Превышено время ожидания блокировки
распределенной транзакции. Это время задается в параметре инициализации
DISTRIBUTED_LOCK_TIMEOUT.

Действие:
Эта ситуация трактуется как
тупиковая, поэтому происходит откат вашей команды. Установите в параметре
инициализации
DISTRIBUTED_LOCK_TIMEOUT более длительный интервал времени ожидания; затем
закройте и перезапустите экземпляр СУБД.

Из
практики:

Причина:
Ошибка может порождаться при
возникновении «смертельных объятий», связанных с тем, что кончилось время
ожидания выполнения распределенной транзакции, заданное в конфигурационном
файле параметром
DISTRIBUTED_LOCK_TIMEOUT.

Действие:
Увеличьте значение указанного
параметра и перезагрузите БД.

ПРИМЕЧАНИЕ 1.

На момент внедрения этот параметр можно снизить до 60
(1 мин), чтобы долго не ожидать результатов выполнения небольших тестов по
проверке репликации. Во время же эксплуатации лучше увеличить этот параметр,
например, до 300 (5 мин).

ПРИМЕЧАНИЕ 2.

Такое сообщение может появиться при выполнении
административных запросов, причем не адекватным образом, например, при переводе
группы в
NORMAL, затем сразу в QUIESCED
(для проверки). Транзакций в этом случае быть не должно (кроме, возможно,
системных). Подождите немного и повторите попытку.

ПРИМЕЧАНИЕ 3.

Сообщение об этой ошибке однажды появилось при
одновременном добавлении сайта к двум мастер-группам (первой и последней),
причем таблицы обеих групп друг на друга не ссылались.

Ошибка ORA-02266

ORA-02266: unique/primary
keys in table referenced by enabled

           foreign keys

         / таблица имеет некие уникальные/первичные
ключи,

           на которые ссылаются внешние ключи

По
документации:

Причина: Была попытка уничтожить таблицу, хотя она имела еще
какие-то уникальные или первичные ключи, на которые имеются активные (
enabled) ссылки внешних ключей.

Действие:
Перед удалением таблицы отключите все
ссылки внешних ключей на уникальные или первичные ключи. Посмотреть имеющиеся
ссылки и их статус Вы можете с помощью следующего
SQL-запроса:

select
CONSTRAINT_NAME, TABLE_NAME, STATUS

from
USER_CONSTRAINTS

where
R_CONSTRAINT_NAME in (

 
select CONSTRAINT_NAME

  from
USER_CONSTRAINTS

  where
TABLE_NAME=’TABNAM’);

Из практики:

Причина:
Фирма Oracle
инструктирует, что эта ошибка возникает при попытке сделать
DROP или TRUNCATE на
таблицу со связями. Но при репликации эта ошибка может возникнуть в случае,
если на дест-сайте таблица имеет статус
Error.

Действие:
Для исправления ситуации требуется
приостановить мастер-группу (
Suspend),
удалить таблицу (
Remove) из
мастер-группы деф-сайта (не удаляя физически), дождаться удаления из дест-сайта,
затем опять ее добавить (
Add) и
активизировать мастер-группу (
Resume).

Ошибка ORA-02449

ORA-02449: unique/primary keys in table referenced by
foreign keys

         / уникальный/первичный
ключ в таблице,

           на которую
ссылаются по внешнему ключу

По документации:

Причина: Была попытка уничтожить таблицу, хотя она имела еще
какие-то уникальные или первичные ключи, на которые ссылаются внешние ключи.

Действие:
Перед удалением таблицы удалите все
ссылки внешних ключей на уникальные или первичные ключи. Посмотреть имеющиеся
ссылки Вы можете с помощью следующего
SQL-запроса:

select * from
USER_CONSTRAINTS where table_name = «TABNAM»;

Из практики:

Причина:
Возникает при попытке удалить таблицу
с первичным или уникальным ключем, если на нее ссылается другая таблица (см.
выше:
ORA-02266).

Ошибка ORA-03113

ORA-03113:
end-of-file on communication channel

         / конец файла по
коммуникационному каналу

По документации:

Причина:       По коммуникационному каналу передан сигнал
конца файла, который не был обработан соответствующим образом программным
обеспечением
SQL*Net (двухзадачным программным обеспечением). Это
сообщение может быть выдано, если теневой двухзадачный процесс, связанный с
SQL*Net, завершился ненормально, или же на устройстве связи
между процессами  произошел физический сбой (сеть или сервер отключились от
коммуникации).

Действие:      Если это сообщение было выдано при попытке
осуществить связь, проверьте установочные файлы для соответствующего драйвера
SQL*Net и убедитесь, что программное обеспечение SQL*Net на сервере установлено правильно. Если сообщение было
выдано после того, как связь правильно установилась, и ошибка не связана с
физическим сбоем, проверьте файл трассировки, если таковой был создан на
сервере в момент сбоя. Существование файла трассировки может указать вам на то,
что эта ошибка — внутренняя ошибка
ORACLE, требующая вмешательства
службы поддержки пользователей
ORACLE.

Из практики:

При
возникновении этой ошибки рекомендуется посмотреть трассировочные файлы (обычно
находятся в каталоге
RDBMS80TRACE). Как
правило, это связано с потерей связи или неисправностью на сервере, возникших
во время выполнения процесса в
Oracle.

Эта
ошибка часто возникает при прохождении на сервер большого пакета транзакций или
подтверждений от них (см. Часть 2, Глава 3: Если пропала связь с сервером),
но может возникнуть и во время выполнения административных запросов (например,
одновременный запуск добавления достаточно больших таблиц в несколько
мастер-групп).

Конкретно
эта ошибка может возникнуть при попытке создания на удаленном сервере большой
таблицы (команда
create table TAB as select * from USER.TAB@DBLINK или
аналогичный процесс в Мультимастере). В этом случае рекомендуется
послать администратору удаленного сервера дамп для импорта больших файлов
(можно целой группы или всей БД), а затем лишь сгенерить репликационную
поддержку для этих таблиц.

Ошибка ORA-04030

ORA-04030: out of
process memory when trying to allocate 524316 bytes

           (pga heap, KSFQ Buffers)

         / выход за пределы
памяти процесса при попытке выделить

           524316 байт (стр)

По
документации:

Причина:
Собственная память системного
процесса исчерпана.

Действие:
Попросите администратора базы данных
или администратора операционной системы увеличить квоту памяти процессу. В
приложении может быть ошибка, которая и приводит к чрезмерному потреблению
памяти процесса.

Из
практики:

Выделяемая
под процессы память на сервере исчерпалась. Причины могут быть разные. На
Netware-сервере
это обычно происходит при фрагментации кэш-памяти и помогает только
перезагрузка сервера.

Ошибка ORA-04052

ORA-04052: error
occurred when looking up remote object

          
REPADMIN
.SYS @ULAN.WORLD

         / ошибка возникла
во время поиска удаленного объекта

           REPADMIN.SYS
@ULAN.WORLD

ORA-00604: error
occurred at recursive SQL level 2

ORA-12154:
TNS:could not resolve service name

ORA-06512: at
«SYS.DBMS_REPCAT_MAS», line 674

ORA-06512: at
«SYS.DBMS_REPCAT», line 516

ORA-06512: at line 2

По
документации:

Причина:
Ошибка возникла во время поиска
удаленного объекта.

Действие:
Исправьте ошибку. Убедитесь, что на
удаленной базе данных были запущены все необходимые командные файлы создания
представлений данных, используемых для запроса/поиска объектов базы данных. См.
книгу Сервер
ORACLE7. Руководство администратора.

Из практики:

Причина: Ошибка может возникнуть при ручном «толкании»
административных запросов (
Apply all admin requests now).

Действие: Посмотрите, не «уронили» ли Вы при этом сервер. Если
да – перезапустите его.

Ошибка ORA-06502

ORA-06502: PL/SQL:
numeric or value error

         / PL/SQL: ошибка в числе или в
значении

По документации:

Причина: Произошла ошибка арифметическая, числовая, строковая,
преобразования или правила целостности. Например, такая ошибка  может произойти
при попытке присвоить значение
NULL
переменной, описанной как
NOT NULL, или при
попытке присвоить целое, больше переменной, описанной как
NUMBER(2).

Действие: Измените данные, которыми вы манипулируете, или  их
описание таким образом, чтобы они не противоречили друг другу.

Из практики:

Причина:
Ошибка может возникнуть при
перегенерации сайта на БД, куда уже был выполнен полный импорт БД другого сайта
(см. Часть 2, Глава 3: Перенос основной БД на сервер с другой ОС).

Действие: Необходимо удалить мастер-группы вместе с объектами и
повторить генерацию сайта (на самом деле так просто отделаться от этой ошибки
не всегда удается).

Ошибка ORA-12011

ORA-12011: execution of 1
jobs failed

         / сбой при выполнении 1
задания

ORA-06512: at «SYS.DBMS_IJOB», line 255

ORA-06512: at «SYS.DBMS_JOB»,
line 218

ORA-06512: at line 2

По
документации:

Причина:
DBMS_IJOB.RUN обнаружил ошибку. Запуск одного или нескольких
заданий привел к ошибке, которую не удалось обработать.

Действие:
Посмотрите в журнале предупреждений,
какое задание не смогло запуститься и почему.

Из
практики:

Причина:
Ошибка возникает при попытке
запустить задачу
PUSH, которая до этого
находилась в состоянии
BROKEN, причем, предварительный перевод ее в состояние NORMAL не помогает –
задача или сама через некоторое время устанавливается в
BROKEN, или это происходит после попытки ее запустить. Это может произойти по
причине выполненного ранее  выполнилось автоматически при установке в это
состояние пакета транзакций).

Ошибка ORA-23308

ORA-23308: object
PLIPEKN.COUNTRY$RU does not exist or is invalid

         / объект PLIPEKN.COUNTRY$RU
либо неправильный,

           либо не
существует

По
документации:

Причина:
Указанное имя введено неправильно или
пусто, заданный тип неправилен, объект не является правильным объектом базы данных
или не существует как тиражируемый объект с соответствующим состоянием.

Действие:
Проверьте, что объект существует,
доступен пользователю и, если требуется, является правильным объектом в списке
ALL_REPOBJECT.

Из
практики:

Причина:
Ошибка возникает при несоответствии
структуры таблицы одного сайта с другим (например, при перегенерации
репликационной поддержки).

Действие:
Тщательно сверьте структуру указанной
таблицы на деф-сайте и дест-сайте. Возможно, на деф-сайте
была изменена ее структура, типы полей или ограничения вне DDL-механизма ORM.

ВНИМАНИЕ
!

Эта ошибка может создать заколдованный круг: при ее удалении на дест-сайте вне
DDL-механизма ORM остаются неудаленными
$RP и $RR модули и операции Remove
затем
Add для этой таблицы на деф-сайте вызывает ошибку.
Удаление вышеназванных модулей тоже не помогает. Не помогает также
соответствующая операция
alter
table
для этой таблицы в БД дест-сайта
(вне ORM). При попытке удаления этой таблицы из мастер-группы деф-сайта
(с тем, чтобы это удаление распространилось на дест-сайт) также
возникает ошибочный административный запрос, поскольку из мастер-группы дест-сайта
в этом случае нельзя удалить таблицу с несоответствующей структурой.

Рекомендуется следующее: сделайте соответствующую
операцию
alter
table
для этой таблицы в БД дест-сайта
через механизм ORM. Если при этом также возникнет ошибка можно поступить
иначе: удалите таблицу из БД дест-сайта с помощью SQL*Plus
(отключив предварительно ограничения) и создайте заново (можно пустую). Затем
можно попытаться удалить эту таблицу из мастер-группы деф-сайта,
подождать окончания административного запроса на обоих сайтах и вновь добавив
таблицу в мастер-группу. Если и это не поможет, то пересоздайте всю
мастер-группу путем удаления и последующего подключения к ней этого сайта с
отключенной опцией
Use
existing object
.

Ошибка ORA-23309

ORA-23309: object
PLIPEKN.COUNTRY of type TABLE exists

         / объект PLIPEKN.COUNTRY типа
TABLE существует

По документации:

Причина:       Объект уже существует в том же пространстве имен,
возможно с другим типом или формой.

Действие:      Удалите объект или повторите запрос со значением
TRUE логического параметра RETRY или USE_EXISTING_OBJECT.

Из
практики:

Причина:
Ошибка может возникнуть после
добавления на мастер-группу деф-сайта нового дест-сайта, если на дест-сайте
уже есть такая таблица, но ее структура другая. Ошибка возникает независимо от
того, была ли включена или отключена опция
Use existing object при создании мастер-группы и включении в нее таблиц
на дест-сайте.

Действие:
Удалите эту таблицу в БД дест-сайта
и повторите добавление этого сайта на мастер-группу дест-сайта.

Ошибка ORA-23312

ORA-23312: not
the masterdef according to …

         / не masterdef согласно …

По документации:

Причина: Имя схемы пусто или неправильно введено,
запрашиваемая заданная база данных не является оригиналом, или один из
оригиналов не считает вызываемую базу данных оригиналом.

Действие:
Если заданное имя схемы и оригинала
правильны, соединитесь с оригиналом и повторите запрос, или переместите
masterdef, использовав RELOCATE_masterdef.

Из
практики:

Причина:
Ошибка может возникнуть при
перегенерации репликационной поддержки для сайта, где объекты имеют статус
Error (см. Часть 2, Глава 3: Работа с административными запросами, Решение
проблем при создании мастер-групп
).

Действие: Удалите всю группу с объектами с этого сайта (или
только
Error-объекты) и перегенерите репликацию.

Ошибка ORA-23313

ORA-23313: object
group PLIPEKN7 is not mastered at PLI_BONN.WORLD

         / схема PLIPEKN7 не явл.главной для PLI_BONN.WORLD

По документации:

Причина:
Имя схемы пусто или неправильно
введено, запрашиваемая база данных не является оригиналом или запрашиваемая
база данных не считает заданную базу данных оригиналом.

Действие:
Если заданное имя схемы правильно,
соединитесь с текущим оригиналом и повторите запрос, установите запрашиваемую
базу данных оригиналом с помощью
ADD_MASTER_DATABASE или используйте SWITCH_SNAPSHOT_MASTER, если запрашиваемая база данных является узлом копии.

Из практики:

Причина:
Ошибка возникает, если мастер-БД с
мастер-группы деф-сайта уже удалена.

Ошибка ORA-23374

ORA-23374: object
group PLIPEKN0 already exists

         / мастергруппа PLIPEKN0 уже существует

ORA-06512: at
«SYS.DBMS_SYS_ERROR», line 86

ORA-06512: at
«SYS.DBMS_REPCAT_MAS», line 1598

ORA-06512: at
«SYS.DBMS_REPCAT», line 113

ORA-06512: at line 2

По документации:

Причина: Данная мастер-БД уже реплицирована данной
мастер-группой.

Действие: Выберите другую мастер-группу или мастер-БД.

Из практики:

Причина:
Ошибка возникает при попытке
«прицепить» дест-сайт к мастер-группе деф-сайта, если на этом дест-сайте
такая мастер-группа уже существует. Эта ситуация возникает, если сайт пытаются
пересоздать (см. Часть 2, Глава 3: Пересоздание дест-сайта), для чего
сначала его «отрывают» от мастер-группы деф-сайта, а потом (переведя ее
в состояние
QUIESCED) пытаются опять присоединить.

Действие: Удалите в режиме NORMAL мастер-группу с дест-сайта
со всеми ее объектами, т.е. отметьте опцию
Drop all objects in the group (на предупреждение, что объекты группы сохранятся на
других сайтах – нажмите
OK). Затем повторите присоединение (Properties… => Destinations => Add… => Asysnc, Use
existing objects
, Copy row
data
).

SQL-команды по анализу и управлению репликацией

Нижеприведенные команды SQL и PL/SQL окажутся для администратора Oracle
полезными и часто необходимыми для.
анализа и управления распределенными транзакциями. Полный синтаксис
использования
DBMS-процедур и структура представлений Словаря данных
приводятся в Приложении 3  и Приложении 4, соответственно.

Анализ объектов в мастер-группе

·        
Поиск мастер-группы для таблицы
(например, BRANCH):

select GNAME from
ALL_REPOBJECT

where
ONAME=’BRANCH’ and TYPE=’TABLE’;

·        
Кол-во записей по всем таблицам
мастер-группы
(пример для PLIPEKN0). Используйте скрипт RowCntMg.sql (предварительно исправив в нем название нужной
мастер-группы или аналогичные скрипты для каждой мастер-группы:
RwCntMg0.sql, …, RwCntMg7.sql), который формирует скрипт Temp.sql и запускает его
(создан по прототипу известного скрипта
TabCount.sql автора Peter Koletzke):

Листинг скрипта
на подсчет записей всех таблиц БД

set echo off

set feed off

set term off

set head off

set pages 10000

col L newline

————————————————————

spool temp.sql

————————————————————

prompt set head off

prompt set feed off

prompt set term on

prompt set recsep off

—prompt set echo off

prompt variable iC number;;

prompt execute :iC:=0;;

prompt begin

select

  ‘select :iC + count(*) into :iC’,’from
‘||T.TABLE_NAME||’;’ L

from

  ALL_REPOBJECT R, USER_TABLES T

where

  R.GNAME=’PLIPEKN0′ and R.TYPE=’TABLE’ and

  R.ONAME = T.TABLE_NAME

/

prompt end;;

prompt /

prompt select :iC from DUAL;;

—prompt set feed on

spool off

————————————————————

set term on

set pages 0

————————————————————

@temp

————————————————————

set pages 23

set feed on

set head on

Сформированный и
запускаемый далее скрипт
Temp.sql имеет следующий вид:

set
head off

set
feed off

set
term on

set
recsep off

variable
iC number;

execute
:iC:=0;

begin

 
select :iC + count(*) into :iC from BRANCH;

 
select :iC + count(*) into :iC from CONOPF;

.

.

.

select
:iC + count(*) into :iC from TYPEM;

select
:iC + count(*) into :iC from TYPEOBJECT;

end;

/

select
:iC from DUAL;

/

·        
Кол-во модулей по всем
мастер-группам
(если объекты – только
таблицы, то равно учетверенному кол-ву таблиц –
Package и Package Body по
модулям
$RP и $RR):

select count(*) from
ALL_REPGENERATED order by ONAME, TYPE;

·        
Кол-во модулей по каждой
мастер-группе
(очень полезный запрос):

select GNAME,
count(*) from ALL_REPOBJECT

where
TYPE=’TABLE’

group by GNAME

order by GNAME;

·        
Объекты, нуждающиеся в перегенерации
репликационной поддержки
:

select ONAME from
ALL_REPOBJECT

where
(GENERATION_STATUS <> ‘GENERATED’) and TYPE=’TABLE’;

·        
Error-объекты на сайте (обязателен к применению):

select GNAME,
ONAME from ALL_REPOBJECT

where
STATUS=’ERROR’ and TYPE=’TABLE’ order by GNAME;

·        
Кол-во Error-объектов по мастер-группам:

select GNAME,
count(*) from ALL_REPOBJECT

where
STATUS=’ERROR’ and TYPE=’TABLE’

group by GNAME

order by GNAME;

·        
Кол-во изменений по мастер-группам
за период времени
(для определения
наиболее активных мастер-групп):

select R.GNAME,
count(A.ID) CNT

from
ALL_REPOBJECT R, EDITIONS A

where

  R.TYPE=’TABLE’
and R.ONAME=A.TABNAME and

 
trunc(A.CORDATE)=trunc(SYSDATE-1)

group by R.GNAME

order by
count(A.ID);

Результат выполнения запроса (пример):

GNAME                                CNT

——————————
———

PLIPEKN6                              
4

PLIPEKN0                              
6

PLIPEKN4                             
35

PLIPEKN5                             
93

PLIPEKN3          
                  143

Анализ административных запросов

·        
Ошибочные административные
запросы по таблицам
(некоторые
ошибки, в частности,
endoffile, могут
не войти):

select

 
ID, to_char(TIMESTAMP,’DD.MM.YYYY HH24:MI:SS’) TIME,

 
substr(MASTER,1,15) MR, substr(GNAME,1,8) GR,

 
substr(ONAME,1,12) OB, substr(MESSAGE,1,40)

from

 
USER_REPCATLOG

where

 
STATUS=’ERROR’ and TYPE=’TABLE’;

·        
Административные запросы по
мастер-группе
(PLIPEKNn):

select

 
ID, to_char(TIMESTAMP,’DD.MM.YYYY HH24:MI:SS’) TIME,

 
substr(MASTER,1,15) MAST, substr(ONAME,1,12) OB,

 
STATUS, REQUEST, ERRNUM

from

 
USER_REPCATLOG

where

 
GNAME=’PLIPEKN0′

order
by ID;

·        
Административные запросы по
мастер-сайту первой очереди
(для
выявления блокирующих административных запросов):

select

 
ID, to_char(TIMESTAMP,’DD.MM.YYYY HH24:MI:SS’) TIME,

 
substr(MASTER,1,15) M, substr(GNAME,1,12) G,

 
substr(ONAME,1,12) O, STATUS, REQUEST, ERRNUM

from

 
USER_REPCATLOG

where

 
ROWNUM < 10;

·        
Кол-во адм-запросов по всему
мастер-сайту
(для общего контроля
выполнения):

   select count(*) from
USER_REPCATLOG;

·        
Кол-во административных
запросов по каждой мастер-группе
(для
общего контроля выполнения):

select  
substr(GNAME,1,12) GR, count(*) REQ_NUM

from    
USER_REPCATLOG

group
by GNAME

order
by GNAME;

·        
Кол-во каждого вида и статуса
административных запросов по каждой мастер-группе
(для детального контроля выполнения):

select

 
substr(GNAME,1,12) GR, REQUEST, STATUS, count(*) REQ_NUM

from

 
USER_REPCATLOG

group
by

 
GNAME, REQUEST, STATUS

order
by

 
GNAME, REQUEST, STATUS

;

Анализ транзакций

·        
Кол-во всех транзакций:

select count(*) from
DEFTRAN;

·        
Кол-во транзакций для каждого
сайта
:

select
substr(DBLINK,1,20), count(*) CNT from DEFTRANDEST

group by DBLINK
order by DBLINK;

·        
Кол-во транзакций для каждого
сайта по дням формирования
:

select

 
substr(DD.DBLINK,1,20) DL,

 
trunc(D.START_TIME) ST,

  count(DD.DEFERRED_TRAN_ID) CT

from

  DEFTRANDEST DD,
DEFTRAN D

where

  DD.DEFERRED_TRAN_ID=D.DEFERRED_TRAN_ID

group by

 
substr(DD.DBLINK,1,20), trunc(D.START_TIME)

order by

  DL, ST

;

Результат выполнения запроса (пример):

DL                  
ST               CT

———————
——— ———

PLI_ANTA.WORLD      
29-FEB-00       939

PLI_ANTA.WORLD      
01-MAR-00      6160

PLI_ANTA.WORLD      
02-MAR-00      7546

PLI_ANTA.WORLD      
03-MAR-00       245

PLI_ANTA.WORLD      
25-FEB-00      1580

PLI_ANTA.WORLD      
26-FEB-00       570

PLI_ANTA.WORLD      
27-FEB-00       165

PLI_ANTA.WORLD      
28-FEB-00      8753

PLI_ANTA.WORLD      
29-FEB-00      7491

PLI_ANTA.WORLD      
01-MAR-00      6160

PLI_ANTA.WORLD      
02-MAR-00      7546

PLI_ANTA.WORLD      
03-MAR-00       245

12
rows selected.

·        
Удаление транзакций. Для удаления одной транзакции (например, с
идентификатором 6.19.11941) используется следующее
DBMS-предложение (значение NULL параметра DESTINATION указывает
о применении команды ко всем мастер-сайтам):

begin

 
DBMS_DEFER_SYS.DELETE_TRAN(

   
deferred_tran_id => ‘6.19.11941’,

   
destination

=>
NULL);

end;

/

Для удаления всех транзакций используется пустое
значение
параметра
DEFERRED_TRAN_ID:

begin

 
DBMS_DEFER_SYS.DELETE_TRAN(

   
deferred_tran_id => »,

   
destination => NULL);

end;

/

·        
Перезапуск транзакций: данная функция отсутствует, но можно использовать
запуск соответствующей задачи, т.е. процесс
PUSH для нужного дест-сайта,
например:

DBMS_JOB.RUN(job
=> 204);

·        
Кол-во ошибочных транзакций:

select count(*)
from DEFERROR;

·        
Удаление всех ошибочных
транзакций
. Для удаления ошибочной
транзакции (например, с идентификатором 8.55.21) используется
нижеприведенная
DBMS-процедура (значение NULL параметра
DESTINATION указывает
о применении команды ко всем мастер-сайтам). Если значение параметра
DEFERRED_TRAN_ID не
указано (=>’’), то удаляются все ошибочные транзакции
(см. RemErr.sql):

begin

 
DBMS_DEFER_SYS.DELETE_ERROR(

   
deferred_tran_id => ‘8.55.21’,

   
destination => NULL);

end;

/

·        
Перезапуск ошибочных транзакций. Для перезапуска ошибочной транзакции (например, с
идентификатором 8.55.21) используется нижеприведенная
DBMS-процедура (параметр DESTINATION не
должен иметь значение
NULL, а
указывать на требуемый мастер-сайт). Если значение параметра
DEFERRED_TRAN_ID не
указано (=>’’), то перезапускаются все ошибочные транзакции
:

begin

 
DBMS_DEFER_SYS.EXECUTE_ERROR(

   
deferred_tran_id => ‘8.55.21’,

   
destination => ‘PLI_ANTA’);

end;

/

Анализ журнала правок БД (EDITIONS)

            В БД
рекомендуется создать и использовать специальную таблицу (например,
EDITIONS), куда триггерами ТАБЛИЦА_LOG заносятся все изменения по таблицам
Вашей системы (находящимся только в БД
Oracle). Анализ
этой таблицы полезен для сверки с выполненными и выполняемыми транзакциями.
Ниже приведен ряд полезных запросов (находятся в файле
ShwAllEd.sql):

— Сводка по таблицам и датам последних правок

select TABNAME, count(TABNAME)
C, max(CORDATE) D

  from EDITIONS

  /*where CORDATE>SYSDATE-5*/

  group by TABNAME

  order by TABNAME;

— Сводка по видам правок за диапазон дат

select ACTION, count(ACTION)
C

  from EDITIONS

  where trunc(CORDATE)
between trunc(SYSDATE)-2 and trunc(SYSDATE)

  group by ACTION

  order by ACTION;

Пример
результата данного запроса (
ACTION=1,2,3 – добавление,
изменение, удаление):

ACTION            C

——— ———

        1       431

        2       247

        3        44

— where to_char(CORDATE,’dd.mm.yy’)=to_char(SYSDATE-1,
‘dd.mm.yy’)

select TABNAME, count(TABNAME)
C

  from EDITIONS

  where trunc(CORDATE)=trunc(SYSDATE-1)

  and ACTION=1

  group by TABNAME

  order by TABNAME;

— Сводка по таблицам, которые правились за
предыдущие дни

select TABNAME, count(TABNAME)
C

  from EDITIONS

  where trunc(CORDATE)>trunc(SYSDATE-2)

  group by TABNAME

  order by TABNAME;

— Все изменения (добавления) за день (для сверки с
репликацией)

select TABNAME,TABKEY,ACTION,to_char(CORDATE,’dd.mm.yy
hh:mi:ss’) DL

  from EDITIONS

  where to_char(CORDATE,’dd.mm.yy’)=to_char(SYSDATE-1,’dd.mm.yyyy’)

—   and ACTION=1

  order by CORDATE;

— Общее кол-во изменений за день

select count(*) CNT

  from EDITIONS

  where to_char(CORDATE,’dd.mm.yyyy’)=to_char(SYSDATE,’dd.mm.yyyy’)

  and ACTION=1;

— Выборка добавленных в таблицу записей за 1 день

select T.ID, T.NAME, A.CORDATE

  from PIPECROSS T, EDITIONS
A

  where trunc(T.CORDATE)=trunc(SYSDATE-1)

  and T.ID=A.TABKEY and A.TABNAME=’PIPECROSS’
and A.ACTION=1

  and trunc(A.CORDATE)=trunc(SYSDATE-1)

  order by A.CORDATE;

Необходимые конфигурационные параметры для репликаци

В этом пункте перечислены параметры конфигурационного
файла
INIT<SID>.ORA, являющиеся важными для работы приложений. Эти
параметры должны иметь следующие значения.

·        
DISTRIBUTED_LOCK_TIMEOUT       =  300;

·        
DISTRIBUTED_TRANSACTIONS       
    =  5
(для
репликации Мультимастер увеличить до 12-20);

·        
GLOBAL_NAMES                        = TRUE;

·        
JOB_QUEUE_INTERVAL             =   10;

·        
JOB_QUEUE_PROCESSES                 =   4 (для репликации Мультимастер
увеличить до 10 — 12, т.е., примерно, удвоенное кол-во мастер-сайтов);

·        
OPEN_LINKS                      =   10;

·        
PARALLEL_MAX_SERVERS            =   10;

·        
PARALLEL_MIN_SERVERS            =    2;

·        
REPLICATION_DEPENDENCY_TRACKING =
TRUE
;

·        
SHARED_POOL_SIZE – не менее 18000000, но не
более 40% ОЗУ сервера (если кроме
Oracle на сервере не выполняются другие процессы), а если на сервере уже
установлены другие экземпляры
Oracle (например, другая система или учебная БД), то сумма этих параметров не
должна превышать 40% ОЗУ;

·        
DML_LOCKне менее 300;

·        
PROCESSES                      = 200 (при использовании репликации Мультимастер
увеличить: 300 на
destination-сайте, 400 на definition-сайте).

Понравилась статья? Поделить с друзьями:
  • Код ошибки 13056 робот пылесос samsung
  • Код ошибки 13056 powerbot e wi fi
  • Код ошибки 128 valorant виндовс 10
  • Код ошибки 128 opel insignia
  • Код ошибки 1275 при установке кредо