Toad oracle проверка базы данных на ошибки
Work with Auto Debugger
To work with the auto debugger provided by Toad, we click on the icon Insert Auto Debugger output statements.
This functionality inserts lines of DBMS_OUTPUT.PUTLINE () code for each of our variables within our PL/SQL code:
CREATE OR REPLACE PROCEDURE CLARTECH.loopproc (inval NUMBER)
-- *** DO NOT REMOVE THE AUTO DEBUGGER START/END TAGS
DBMS_OUTPUT.PUT_LINE( '' ) ;
DBMS_OUTPUT.PUT_LINE( '' );
DBMS_OUTPUT.PUT_LINE( '[1] inval = ' || inval);
DBMS_OUTPUT.PUT_LINE( '[1] tmpvar = ' || tmpvar);
DBMS_OUTPUT.PUT_LINE( '[1] tmpvar2 = ' || tmpvar2);
DBMS_OUTPUT.PUT_LINE( '[1] total = ' || total);
-- *** DO NOT REMOVE THE AUTO DEBUGGER START/END TAGS
DBMS_OUTPUT.PUT_LINE( '' );
DBMS_OUTPUT.PUT_LINE( '' );
DBMS_OUTPUT.PUT_LINE( '[2] inval = ' || inval);
DBMS_OUTPUT.PUT_LINE( '[2] tmpvar = ' || tmpvar);
DBMS_OUTPUT.PUT_LINE( '[2] tmpvar2 = ' || tmpvar2);
DBMS_OUTPUT.PUT_LINE( '[2] total = ' || total);
-- *** DO NOT REMOVE THE AUTO DEBUGGER START/END TAGS
DBMS_OUTPUT.PUT_LINE( '' );
When executing this code by clicking on the Execute PL/SQL with debugger icon, a message will appear that we have to previously compile the procedure, so we click on the Yes button.
Then a message appears asking if we want to compile referenced objects, so we click on No because we don’t have objects referenced in our procedure.
Enter the value of the INVAL parameter; for example 5, and click on the Execute button.
Immediately upon completion of debugging, a new tab is added within the DBMS Output tab called Auto Debugger which shows the value of each variable for each iteration.
If we want to know in which sector of the PL/SQL code the variable [7] tmpvar = 6 is shown, we simply double-click on the variable inside the Auto Debugger tab and in this way the place where the variable is referenced is highlighted in the PL/SQL code.
To disable the Auto Debugger and remove all the tags from our code, click on the Remove Auto Debugger output statements icon.
Применение команды ANALYZE
Команду ANALYZE удобно применять для перехвата поврежденных блоков данных. Например, выполнение показанной ниже команды ANALYZE приведет к проверке каждого блока данных в таблице customer и, в случае обнаружения любых поврежденных блоков — добавлению всех подозрительных строк в таблицу invalid_rows:
Помимо выполнения проверки на предмет наличия поврежденных блоков, эта команда еще также проверит, соответствуют ли данные индекса данным таблицы.
5.9 Проверьте процент попаданий в общий пул
Если он меньше 95%, вам необходимо настроить приложение для использования переменных связывания или отрегулировать размер общего пула параметров базы данных.
4.3. Найдите первую десятку SQL-запросов с низкой производительностью
1.3. Проверьте состояние табличного пространства Oracle
СТАТУС в выходном результате должен быть ONLINE 。
4.4. Получение 5 событий ожидания системы с наибольшим временем ожидания
6.2. Отметьте пользователя, чтобы сменить пароль
Часто в системах баз данных много пользователей, таких как сторонние системы мониторинга баз данных, демонстрационные пользователи во время начальной установки базы данных, пользователи-администраторы и т. Д. Пароли этих пользователей часто написаны, известны многим людям и будут злонамеренными. Люди используют для атак на систему и даже для изменения данных. Пользователи, которым необходимо изменить свои пароли, включают:
Администратор базы данных, пользователь SYS, SYSTEM; другие пользователи.
После входа в систему введите в командной строке cat /etc/passwd , И проверьте, есть ли среди перечисленных пользователей учетные записи, которые больше не используются или незнакомы. Если он существует, он регистрируется как ненормальный.
5. Проверьте процессор базы данных, ввод-вывод, производительность памяти.
Запишите использование ЦП, ввод-вывод, память и другое использование базы данных, используйте vmstat, iostat, sar, top и другие команды для сбора информации и проверки информации для оценки использования ресурсов.
5. Проверьте базу данных процессора, ввода-вывода, производительность памяти
Запишите использование ЦП, ввода-вывода, памяти и т. Д. Базы данных, используйте команды vmstat, iostat, sar, top и другие для сбора информации и проверки информации для определения использования ресурса.
5.1 Использование процессора:
top - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38, 0.29
Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.2% us, 0.1% sy, 0.0% ni,98.8% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 16404472k total, 12887428k used, 3517044k free, 60796k buffers
Swap: 8385920k total, 665576k used, 7720344k free, 10358384k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30495 oracle 15 0 8329m 866m 861m R 10 5.4 7:53.90 oracle
32501 oracle 15 0 8328m 1.7g 1.7g S 2 10.6 1:58.38 oracle
32503 oracle 15 0 8329m 1.6g 1.6g S 2 10.2 2:06.62 oracle
Обратите внимание на синий шрифт выше, эта часть представляет оставшийся ЦП системы. Когда среднее значение падает ниже 10%, это рассматривается как ненормальное использование ЦП. Вам необходимо записать это значение и записать состояние как ненормальное.
5.2 Использование памяти:
total used free shared buffers cached
Mem: 2026 1958 67 0 76 1556
-/+ buffers/cache: 326 1700
Swap: 5992 92 5900
Как показано выше, синяя часть представляет общую память системы, красная часть представляет память, используемую системой, а желтая часть представляет оставшуюся память системы. Когда оставшаяся память составляет менее 10% от общей памяти, она считается ненормальной.
5.3 Ситуация с системным вводом / выводом:
Linux 2.6.9-22.ELsmp (AS14) 07/29/2009
avg-cpu: %user %nice %sys%iowait %idle
0.16 0.00 0.05 0.36 99.43
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.33 13.16 50.25 94483478 360665804
avg-cpu: %user %nice %sys%iowait %idle
0.00 0.00 0.00 0.00 100.00
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
Как показано выше, синий шрифт указывает состояние чтения и записи диска, а красный шрифт указывает состояние ожидания ввода-вывода ЦП.
5.4 Системная нагрузка:
12:08:37 up 162 days, 23:33, 15 users, load average: 0.01, 0.15, 0.10
Как показано выше, синий шрифт обозначает нагрузку на систему. Если следующие три значения превышают 2,5, это указывает на то, что система работает при перегрузке. Запишите это значение в таблицу проверки и сочтите его ненормальным.
5.5 Проверьте, есть ли процесс зомби
Некоторые процессы зомби блокируют нормальную работу других сервисов и регулярно убивают процессы зомби.
5.6 Проверьте ссылку на линию / миграцию
Примечание. Обычно таблица с длинными необработанными столбцами имеет ссылку на строку, находит строку миграции и сохраняет ее в таблице chained_rows. Если такой таблицы нет, выполните ее.
Вы можете увидеть, какие строки являются перенесенными строками по таблице имя_хеда, head_rowid в таблице chained_rows
5.7 Регулярный статистический анализ
Для системы, использующей Oracle Cost-Based-Optimizer, необходимо регулярно собирать и обновлять статистическую информацию объектов данных, чтобы оптимизатор мог составить правильный план объяснения на основе подготовленной информации. Статистическая информация должна обновляться в следующих ситуациях:
а. Изменения в приложении
б. Масштабная миграция данных, миграция исторических данных, импорт других данных и т. д.
C. Количество данных изменилось
Проверьте, нужно ли обновлять статистику таблицы или индекса, например:
Если количество строк сильно отличается, таблица должна обновлять статистическую информацию, поэтому рекомендуется собирать статистическую информацию раз в неделю, например:
5.8 Проверьте частоту попаданий в буфер
Если частота попаданий ниже 90%, вам нужно увеличить параметр базы данных db_cache_size.
5.9 Проверка коэффициента попадания в общий пул
Если оно ниже 95%, вам необходимо настроить приложение для использования переменных связывания или настроить размер общего пула параметров базы данных.
5.10 Проверьте область сортировки
Если отношение диск / (памятка + строка) слишком велико, вам нужно настроить sort_area_size (workarea_size_policy = false) или pga_aggregate_target (workarea_size_policy = true).
5.11 Проверьте буфер журнала
Если повторное размещение буфера повторных попыток / повторных записей превышает 1%, вам нужно увеличить log_buffer.
2.3. Проверьте место на системном диске
Если оставшееся пространство файловой системы слишком мало или быстро увеличивается, вам необходимо подтвердить это и удалить неиспользуемые файлы, чтобы освободить место.
3.1. Проверьте информацию журнала резервного копирования базы данных
Предположение: временный каталог резервного копирования - / backup / hotbakup, нам нужно проверить результат резервного копирования 22 июля 2009 г., а затем использовать следующую команду для проверки:
Файл журнала сценария резервного копирования - это hotbackup-month-date-year.log, который находится во временном каталоге резервного копирования. Если в файле есть «ERROR:», это означает, что резервное копирование не было успешным и есть проблема, которую необходимо проверить.
5.1 Использование ЦП:
Обратите внимание на часть синего шрифта выше. Эта часть содержимого представляет собой оставшийся ЦП системы. Когда среднее значение опускается ниже 10%, это рассматривается как ненормальное использование ЦП. Это значение должно быть записано, и статус записывается как ненормальный.
Обнаружение ошибок в блоках данных
Ошибки блоков данных происходят при появлении несогласованных данных в таблицах или индексах СУБД Oracle. Обычно невозможность устранить поврежденные блоки приводит к потере приличного количества данных. Хотя можно предпринимать несколько мер для предотвращения повреждения, своевременное обнаружение поврежденных файлов данных будет тоже помогать.
- Своевременное обнаружение позволяет отыскивать быстрые способы спасения всех или насколько возможно большей части пострадавших данных.
- Своевременное обнаружение избавляет от сюрпризов при выполнении восстановления после ошибок на уровне носителей, поскольку будет сводить к минимуму проблему, позволяя переводить файлы в автономный режим и тем самым сокращать потенциальный объем ущерба.
Существует несколько методов, которые можно применять для обнаружения повреждений в блоках данных БД Oracle. Во-первых, можно устанавливать несколько специальных параметров инициализации и тем самым обеспечивать возможность перехвата информации о поврежденных блоках. Во-вторых, можно использовать утилиты наподобие DBVERIFY и DBMS_REPAIR или команду ANALYZE и тем самым обеспечивать возможность выявления повреждений в блоках данных. Эти методы не являются взаимоисключающими; напротив, их следует рассматривать как дополнения друг к другу, поскольку каждый обладает своими собственными привлекательными возможностями. В следующих подразделах более подробно рассказывается о том, как применять каждый из этих приемов.
Обычно администраторы баз данных используют сценарии проверки базы данных Oracle
оглавление
2.5. Проверьте некоторые расширенные объекты исключений
Если возвращается запись, это означает, что расширение этих объектов почти достигло максимального значения расширения, когда оно было определено.
Для этих объектов измените параметры его структуры хранения.
4. Проверьте производительность базы данных Oracle
В этом разделе мы в основном проверяем производительность базы данных Oracle, в том числе: проверяем события ожидания базы данных, проверяем взаимоблокировки и обработку, проверяем процессор, ввод-вывод, производительность памяти, проверяем, существует ли процесс взаимоблокировки, проверяем связь / перенос строк и регулярно выполняем статистический анализ , Проверьте частоту попаданий в буфер, проверьте частоту попаданий в общий пул, проверьте область сортировки, проверьте буфер журнала, всего десять частей.
4.1. Проверка базы данных на события ожидания
Если в базе данных много событий ожидания, таких как освобождение защелки, постановка в очередь, ожидание занятости буфера, последовательное чтение файла db, чтение файла db, разбросанное по разным данным и т. Д., В течение длительного времени, их необходимо проанализировать, и могут возникнуть проблемные утверждения.
4.2 Получить оператор SQL с самым высоким показанием диска
4.3. Найти десятку плохо работающих SQL
4.4 Пять систем с наибольшим временем ожидания ждут сбора событий
4.5 Проверка долгосрочного SQL
4.6. Проверьте процесс, который потребляет больше всего процессора
4.7 Проверьте таблицы с высокой фрагментацией
4.8 Проверьте соотношение ввода-вывода в табличном пространстве
4.9 Проверьте соотношение ввода / вывода файловой системы
4.10 Проверка на тупик и обработку
Запрос информации о текущем объекте блокировки:
Уровень Oracle убивает сессию:
Сеанс уничтожения на уровне операционной системы:
7. Другие проверки
В этом разделе мы в основном проверяем, является ли текущая задача crontab нормальной и не сработала ли работа Oracle. Существует шесть частей.
7.1 Проверьте, является ли текущая задача crontab нормальной
7.2 Сбой работы Oracle
Если есть проблемы, рекомендуется перестроить задание, например:
7.3. Контролировать рост объема данных
Согласно ежедневной проверке на этой неделе, найдите объекты базы данных с быстро расширяющимся пространством и примите соответствующие меры:
- Удалить исторические данные
Мобильные правила предусматривают, что в базе данных должно храниться не менее 6 месяцев исторических данных, поэтому предыдущие исторические данные можно рассмотреть для резервного копирования, а затем очистить, чтобы освободить занимаемое ими пространство ресурса.
--- Расширить табличное пространство
Примечание: При изменении структуры базы данных, такой как добавление табличного пространства, добавление файлов данных или файлов журнала повторов, эти операции вызовут изменения в контрольном файле базы данных Oracle. Администратор базы данных должен создать резервную копию контрольного файла. Метод резервного копирования:
Выполнить оператор SQL:
Таким образом, команда SQL для создания управляющего файла будет сгенерирована в каталоге USER_DUMP_DEST (указан в файле параметров инициализации).
7.4 Проверка на неуспешные индексы
Примечание. Обычно состояние индекса в таблице разделов равно N / A. Если индекс не выполнен, перестройте его, например:
7. Прочие проверки
В этом разделе мы в основном проверяем, нормально ли выполняется текущая задача crontab, и проверяем, не завершается ли работа Oracle Job.Это шесть частей.
5.5. Проверьте, нет ли мертвого процесса
Некоторые зомби-процессы блокируют нормальную работу других служб и регулярно убивают зомби-процессы.
5.2 Использование памяти:
Как показано выше, синяя часть представляет собой общую память системы, красная часть представляет память, используемую системой, а желтая часть представляет собой оставшуюся память системы. Когда оставшаяся память составляет менее 10% от общей памяти, это считается ненормальным.
Breakpoints
A breakpoint is a location in the code that you identify as a stop point. When the code is executed in debug mode, the execution will stop at the breakpoint.
This helps us developers see the current values of the variables in our PL/SQL code while it is running.
To insert a breakpoint in our code we click on the margin of the line of code where we want the code to stop when debugging starts. For example, enter the breakpoint in the margin of line 12 and the Toad will mark the entire line in red with a stop icon.
In the Breakpoints tab, all the interruption points that we have enabled in our code will be listed.
We can add conditions at our breakpoints.
We click on the Edit button. A modal window opens and we enter the condition TOTAL > 20 and click on the OK button.
This means that the code will be executed until the TOTAL is greater than 20. The debugging will then stop at the breakpoint on line 12.
Once the breakpoint is established, we execute the code by clicking on the Execute PL/SQL with debugger icon.
Enter the value of the INVAL variable in 7 and click on the Execute button.
The code is executed until the condition of the breakpoint is met and line 12 changes from color red to color blue.
Since the value of the TOTAL variable is greater than 20, the debugging stops, and in the Watches tab we can see all the current values of the variables.
From this point on, we can continue executing the code with the Step over until the debugging finishes.
1.1. Проверьте статус экземпляра Oracle
оглавление
Среди них «STATUS» представляет текущий статус экземпляра Oracle и должен быть « OPEN ";" DATABASE_STATUS "указывает текущий статус базы данных Oracle и должен быть" ACTIVE ”。
3.2. Проверьте время создания файлов в резервном томе
Резервный том - это временный каталог для резервного копирования.Дата файла в выходном результате должна быть сгенерирована сценарием горячего резервного копирования ранним утром. Если время указано неверно, это означает, что сценарий горячего резервного копирования не был успешно выполнен.
1.6. Проверьте статус всех сегментов отката.
«СТАТУС» всех сегментов отката в выходном результате должен быть «ОНЛАЙН».
2.4. Проверка использования табличного пространства
Примечание: Если процент бесплатного использования% Free меньше 10% или больше (включая 10%), обратите внимание на добавление файлов данных для расширения табличного пространства вместо использования функции автоматического расширения файлов данных.
- Изменить размер табличного пространства
- Добавить файл данных
Примечание. Не добавляйте слишком много файлов данных в табличное пространство. Принцип добавления файлов данных заключается в том, что размер каждого файла данных составляет 2 ГБ или 4G, а максимальный предел автоматического расширения - 8 ГБ.
4. Проверьте производительность базы данных Oracle.
В этом разделе мы в основном проверяем производительность базы данных Oracle, в том числе: проверяем ожидающие события базы данных
Проверьте взаимоблокировку и обработку, проверьте ЦП, ввод-вывод, производительность памяти, проверьте, есть ли мертвые процессы, проверьте ссылку на строку / миграцию
Регулярный статистический анализ, проверка скорости попадания в буфер, проверка скорости попадания в общий пул, проверка области сортировки, проверка буфера журнала, всего десять частей.
1.4. Проверьте состояние всех файлов данных Oracle
«СТАТУС» должен быть « ONLINE ”。
«СТАТУС» должен быть « AVAILABLE ”。
6. Проверьте безопасность базы данных
В этом разделе мы в основном проверяем безопасность базы данных Oracle, в том числе: проверяем информацию о безопасности системы, регулярно меняем пароль, всего две части.
6.1 Проверьте информацию журнала безопасности системы
Каталог файла журнала безопасности системы находится в / var / log, который в основном проверяет информацию журнала пользователя об успешном или неудачном входе в систему.
Проверьте журнал успешного входа в систему:
Jan 8 08:44:43 rac2 sshd[29559]: Accepted password for root from ::ffff:10.10.10.6 port 1119 ssh2……
Проверьте журнал неудачного входа в систему:
Jan 9 10:30:44 rac2 sshd[3071]: Invalid user ydbuser from ::ffff:192.168.3.5
Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh2
Jan 9 10:30:56 rac2 sshd[3071]: Failed password for invalid user ydbuser from ::ffff:192.168.3.5 port 36005 ssh2
Jan 10 22:44:38 rac2 sshd[21611]: Failed password for root from ::ffff:10.10.10.6 port 1723 ssh2
6.2 Проверьте пользователя, чтобы сменить пароль
В системе баз данных часто бывает много пользователей, таких как: сторонние системы мониторинга баз данных, демонстрационные пользователи во время первоначальной установки базы данных, пользователи-администраторы и т. Д. Пароли этих пользователей часто пишутся, и многие люди знают, что они будут скрытыми мотивами. Люди привыкли атаковать систему и даже изменять данные. В число пользователей, которым необходимо изменить свои пароли, входят:
Пользователи администратора базы данных SYS, SYSTEM; другие пользователи.
После входа в систему введите cat / etc / passwd в командной строке, чтобы проверить, есть ли среди перечисленных пользователей неиспользуемые или странные учетные записи. Если он существует, он записывается как ненормальный.
Метод изменения пароля:
Инициатива HARD
Применение RAID обеспечивает избыточность только на уровне устройств хранения данных, чтобы позволить при потере нескольких дисков не терять данные. А что если используется система с зеркальным отображением дисков, но данные, записываемые на зеркальную пару дисков, повреждены? Тогда на обоих дисках в зеркальной паре, конечно же, будут содержаться поврежденные данные. Поэтому в Oracle недавно объявили о новой инициативе для предотвращения повреждения данных еще до его возникновения, которая получила название Hardware Assisted Resilient Data (Обеспечение устойчивости данных на уровне аппаратных средств), или просто HARD. В рамках этой инициативы Oracle будет встраивать в устройства хранения, продаваемые участвующими в этой инициативе производителями, специальные алгоритмы верификации данных и тем самым предотвращать окончательную запись поврежденных данных на диск. В частности, инициатива HARD направлена на решение проблем следующего рода:
In this article we will learn how Toad for Oracle can help us debug PL/SQL code in very simple ways, allowing us to go through the code a line at a time, view variable content, start or stop execution of code, step in or out of called PL/SQL routines (such as functions and other called procedures) and finally, change the contents of a variable during execution.
In addition, we will work with the Toad Auto Debugger that inserts and removes output commands (DBMS_OUTPUT) for all expressions that are within our PL/SQL code.
3. Проверьте результат резервного копирования базы данных Oracle.
а. Проверьте информацию журнала резервного копирования базы данных;
б) Проверьте время создания файлов в резервном томе;
в. Проверьте электронную почту пользователя оракула;
4.2. Получите самый высокий оператор SQL при чтении с диска
4.8. Проверьте коэффициент ввода-вывода табличного пространства.
1.5. Проверьте недействительные объекты
Если запись возвращается, это означает, что имеется недопустимый объект.
Если эти объекты связаны с приложением, вам необходимо перекомпилировать и сгенерировать этот объект, или:
Обнаружение ошибок в носителях
Повреждения в носителях могут возникать по массе причин, начиная от ошибки пользователя и неполадок в программном обеспечении операционной системы и заканчивая дефектными дисками, ошибками диспетчера логических томов ( Logical Volume Manager — LVM) и неисправными микросхемами памяти. Они могут приводить, в свою очередь, к возникновению повреждений в управляющих файлах, журналах повторного выполнения, словаре данных, табличных данных и данных индексов.
Debug the PL/SQL Procedure
Although this procedure is very simple, it is still perfect for learning how to debug any PL/SQL code with Toad for Oracle.
To begin, we click on the Debug Menu --> Trace Into
The following confirmation message is displayed:
…which asks us if we want to compile the objects referenced with debugging information. Since in this code we do not have any object referenced, we click on the button No.
Another window called Set Parameters and Execute is shown in which we can configure the parameters and execute them.
In the Arguments tab we will have all the parameters required to execute our procedure.
In order to modify the input of the parameter, we select the input cell that we want to modify and a calculator display appears in the case that it is numeric.
Enter the test value; for example, 9.
In the Output Options tab, we select the option Fetch into memory (view in grid) which automatically shows us the information of the data, in the case that we have a referential cursor in our code.
We click on the Execute button.
Now the debugging process begins; as we can see in the Watches tab, the initial information that each of the variables declared in our procedure takes. In this debugging stage we can go step by step or instruction by instruction on our code by clicking the Step over icon of the Execute toolbar.
To enable Smart Watches and see the results of each iteration, we have to click on the Enable Smart Watches control box in the Watches tab.
When we go through the code and enter the loop, we can see how the variables change their value in the Smart Watches. Also, if we want to see the value of each variable in particular, we can position ourselves above the variable in the PL/SQL code and see its current value.
After finishing the loop and fulfilling the exit condition of the loop, the execution is finished by presenting an information message, which can be disabled by clicking on the check to not show this dialog again.
In the tab DBMS Output, we can see the result of the variable TOTAL in 45 having entered as the initial value of the variable INVAL in 9.
Once the debug execution is finished, the Watches tab will not show any variables.
If in the middle of executing the procedure we want to stop the debugging, we click on the icon Terminate execution, debugging, and data fetches.
Применение утилиты DBVERIFY
При возникновении подозрений в повреждении блоков данных еще можно использовать поставляемую Oracle утилиту DBVERIFY. Эта утилита запускается на уровне операционной системы. Она выполняет проверку на предмет повреждения структурной целостности файлов базы данных.
Для иллюстрации применения утилиты DBVERIFY ниже приведен пример выполнения верификации файла на платформе Windows (на платформах UNIX команда будет работать точно так же). Администратор базы данных может легко писать для выполнения верификации файлов данных специальный сценарий и затем настраивать для него график регулярного выполнения с помощью crontab. В листинге 1 показаны результаты применения утилиты DBVERIFY.
Этот пример иллюстрирует упрощенный вариант применения утилиты DBVERIFY, которая вызывается командой DBV на платформах Windows и UNIX. Ключевое слово FILE указывает, какой файл данных требуется проверить на предмет повреждения. Согласно приведенному здесь выводу, общее количество страниц, помеченных как поврежденные (Total Pages Marked Corrupt), равняется нулю, а это значит, что в базе данных нет никаких проблем со структурной целостностью.
5.11 Проверьте буфер журнала
Если количество повторных попыток выделения буфера / количество записей повтора превышает 1%, необходимо увеличить log_buffer.
Conclusion
We have gone through the different features that Toad provides us with to debug our PL/SQL codes. I invite you to use this great functionality and comment on how you are using it in debugging your PL/SQL codes.
2.7. Проверьте следующее расширение объекта и максимальное значение расширения табличного пространства.
Если есть возвращенные записи, это указывает на то, что следующее расширение этих объектов больше, чем максимальное значение расширения табличного пространства, которому принадлежит объект, и параметры хранения соответствующего табличного пространства должны быть скорректированы.
Настройка параметров инициализации
Установив такой параметр инициализации, как DB_BLOCK_CHECKSUM, можно заставить базу данных Oracle вычислять контрольные суммы (check-summing) для каждого блока данных и сохранять их в заголовках блоков. Тогда при чтении данных эти контрольные суммы сравниваются и выявляются поврежденные блоки данных. В Oracle рекомендуют оставить для параметра DB_BLOCK_CHECKSUM принятое для него по умолчанию значение TYPICAL (равнозначное значению TRUE, которое использовалось в предыдущих версиях). Согласно заявлениям Oracle, использование этой функции в режиме TYPICAL приводит к увеличению накладных расходов всего лишь на 1–2%. Применение ее в другом возможном режиме FULL приводит к увеличению накладных расходов уже на 4–5%.
Параметр DB_BLOCK_CHECKING является более сложным и предусматривает выполнение проверки блоков данных и индексов только тогда, когда они действительно изменяются. Он обнаруживает повреждения до присвоения блокам данных статуса поврежденных. По умолчанию для него используется значение OFF. Другие значения, которые он может принимать: LOW, MEDIUM и FULL. Его применение может приводить к увеличению объема накладных расходов на 1–10%; этот объем напрямую зависит от количества выполняемых в базе данных операций обновления и вставки. При наличии возможности справляться с дополнительными накладными расходами, в СУБД Oracle рекомендуют устанавливать для этого параметра значение FULL. Конфигурировать этот параметр можно в файле init.ora, как показано в следующем примере, где для него выбрано значение LOW:
Его также можно конфигурировать и динамически с помощью оператора ALTER SESSION:
Еще одним параметром инициализации, который можно устанавливать, является DB_ULTRA_SAFE. Этот параметр применяется для управления значениями параметров DB_BLOCK_CHECKSUM и DB_BLOCK_CHECKING. В случае если для него оставляется принятое по умолчанию значение (OFF), база данных устанавливает для обоих связанных с выявлением повреждений параметров значение TYPICAL, что означает выполнение минимальных проверок и, следовательно, меньшее потребление ресурсов ЦП. В случае же установки для него значения DATA_ONLY или DATA_AND_INDEX, база данных будет устанавливать для двух связанных с выявлением повреждений параметров значение FULL, что будет приводить к выполнению более интенсивных проверок на предмет повреждений и, следовательно, большему потреблению ресурсов.
7.3. Следите за ростом объема данных
Согласно ежедневным проверкам на этой неделе, найдите объекты базы данных, пространство которых стремительно расширяется, и примите соответствующие меры:
Исторические данные по крайней мере за 6 месяцев хранятся в базе данных мобильных правил, поэтому предыдущие исторические данные могут быть скопированы, а затем очищены, чтобы освободить пространство ресурсов, занимаемое ими.
Примечание: при изменении структуры базы данных, например при добавлении табличного пространства, добавлении файлов данных или файлов журнала повторения, эти операции вызовут изменения в управляющем файле базы данных Oracle, и администратор баз данных должен своевременно создать резервную копию управляющего файла.
Метод резервного копирования
Таким образом, команда SQL для создания управляющего файла будет сгенерирована в каталоге USER_DUMP_DEST (указанном в файле параметров инициализации).
7.4. Проверьте недействительные индексы
Примечание. Статус индекса в таблице разделов - это нормально. Если имеется недопустимый индекс, перестройте индекс.
Регулярное создание резервных копий производственной базы данных Oracle является обязательным, но эти резервные копии никак не помогут, если по какой-то причине окажутся непригодными для использования. Этап тестирования резервных копий часто игнорируется в процессах резервного копирования и восстановления. К сожалению, многие администраторы осознают его необходимость, будучи уже в тяжелых обстоятельствах.
Создаваемые резервные копии файлов базы данных могут становиться бесполезными во время восстановления по нескольким причинам: из-за повреждения файлов данных и журналов повторного выполнения, из-за случайного перезаписывания файлов, из-за дефектов на ленте и даже из-за несуществующих файлов. Поэтому лучше обзавестись привычкой регулярно тестировать производственные резервные копии в соответствие с графиком. Это поможет перехватывать любые повреждения данных. Под повреждением подразумевается несоответствие данных тому виду, в котором они должны быть. Здесь интерес главным образом представляет так называемое повреждение блоков (ошибки блоков), которое может быть как логическим, так и физическим.
5.8 Проверка скорости попадания в буфер
Если процент попаданий ниже 90%, параметр базы данных db_cache_size необходимо увеличить.
4.10. Проверка и устранение тупиковой ситуации
Завершите сеанс на уровне операционной системы:
1.2. Проверка статуса онлайн-журнала Oracle
Выходной результат должен содержать более 3 (включая 3) записей, а "STATUS" не должен быть " INVALID ", а не" УДАЛЕНО ".
Примечание. «СОСТОЯНИЕ» отображается пустым, что означает нормальное состояние.
4.6. Проверьте процессы, которые потребляют больше всего ресурсов ЦП
Change the Values of the Variables Live
It may also happen that we need to change the values of the variables live. To do this, for example, from the Watches tab we select the variable TMPVAR from the box on the right, and then click on the icon Add Watch on the box on the left.
Select the new watches and click on the Evaluate/Modify Watch icon.
The popup window that allows us to modify the value of the variable TMPVAR is opened, and in this case, we can see that the result is 21. We enter the new value, for example 30, and we click on the Modify icon and close the window.
Immediately we can see in the Smart Watches the change of the value of the variable TMPVAR to 30.
And we can continue to debug our code with the Step over and see the changes that occur in the different variables from the Smart Watches.
To eliminate the interruption point, click on the stop icon in the margin of line 12.
4.5. Проверьте долго выполняющийся SQL
5.10 Проверьте область сортировки
Если соотношение диск / (память + строка) слишком велико, вам необходимо отрегулировать sort_area_size (workarea_size_policy = false) или pga_aggregate_target (workarea_size_policy = true).
3.3. Проверьте электронную почту пользователя oracle
1. Проверьте базовое состояние базы данных.
Содержит: проверка состояния экземпляра Oracle, проверка процесса службы Oracle, проверка процесса прослушивания Oracle, состоит из трех частей.
7.2 Не удается выполнить задание Oracle?
Если есть какие-то проблемы, рекомендуется восстановить работу.
2. Проверьте использование ресурсов, связанных с Oracle
содержать:
А. Проверьте значения соответствующих параметров в файле инициализации Oracle.
б. Проверьте подключение к базе данных и проверьте место на системном диске.
В. Проверьте использование различных табличных пространств Oracle, проверьте некоторые объекты с ненормальными расширениями,
г. Проверьте содержимое системного табличного пространства, проверьте следующее расширение объекта и максимальное значение расширения табличного пространства, всего семь частей.
2.1 Проверьте значения соответствующих параметров в файле инициализации Oracle
2.2. Проверка соединения с базой данных
Проверьте, находится ли текущий номер подключения сеанса в пределах нормального диапазона.
Среди них: SID сеанса (сеанса), идентификационный номер;
USERNAME - имя пользователя, с которого был установлен разговор;
Какой инструмент используется для сеанса PROGRAM для подключения к базе данных;
STATUS Текущее состояние этого сеанса. ACTIVE означает, что сеанс выполняет определенные задачи. INACTIVE означает, что текущий сеанс не выполняет никаких операций.
Если установлено слишком много подключений, это потребляет ресурсы базы данных. В то же время некоторые «зависшие» подключения, возможно, придется очистить вручную. Если администратор базы данных хочет отключить сеанс вручную, выполните:
(Обычно не рекомендуется использовать этот метод для разрыва соединения с базой данных, поэтому иногда сеанс не будет отключен. Легко вызвать прерывание соединения. Рекомендуется проверить spid операционной системы через sid и использовать ps –ef | grep spidno для подтверждения spid Не фоновый процесс ORACLE. Используйте команду kill -9 операционной системы, чтобы разорвать соединение)
Примечание. В приведенном выше примере сеансы с SID от 1 до 10 (столбец USERNAME пуст) являются фоновыми процессами Oracle и не выполняют никаких операций в этих сеансах.
2.3 Проверьте место на системном диске
Если оставшееся пространство файловой системы слишком мало или увеличивается быстрее, вам необходимо подтвердить его и удалить неиспользуемые файлы, чтобы освободить место.
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 9.7G 3.9G 5.4G 42% /
/dev/sda1 479M 16M 438M 4% /boot
/dev/sda2 49G 19G 28G 41% /data
none 1014M 0 1014M 0% /dev/shm
2.4 Проверьте использование табличного пространства
select f.tablespace_name,
a.total,
f.free,
round((f.free / a.total) * 100) "% Free"
from (select tablespace_name, sum(bytes / (1024 * 1024)) total
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, round(sum(bytes / (1024 * 1024))) free
from dba_free_space
group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name(+)
order by "% Free";
Если процент простоя% Free составляет менее 10% (включая 10%), обратите внимание на увеличение файла данных для расширения табличного пространства вместо использования функции автоматического расширения файла данных. Пожалуйста, не добавляйте слишком много файлов данных в табличное пространство.Принцип увеличения файлов данных заключается в том, что размер каждого файла данных составляет 2G или 4G, а максимальное ограничение для автоматического расширения составляет 8G.
2.5 Проверьте некоторые расширенные ненормальные объекты
Если запись возвращается, расширение этих объектов почти достигло максимального значения расширения, когда оно было определено. Для этих объектов необходимо изменить параметры его структуры хранения.
2.6 Проверка содержимого системного табличного пространства
Если запись возвращается, это указывает на то, что в системном табличном пространстве есть некоторые не системные и системные пользовательские объекты. Далее следует проверить, относятся ли эти объекты к нашему приложению. Если это уместно, переместите эти объекты в несистемное табличное пространство, и вам следует проверить значение табличного пространства по умолчанию для владельца этих объектов.
2.7 Проверьте следующее расширение объекта и максимальное значение расширения табличного пространства
Если запись возвращается, это указывает, что следующее расширение этих объектов больше, чем максимальное значение расширения табличного пространства, к которому принадлежит объект, и параметры хранения соответствующего табличного пространства должны быть скорректированы.
4.1. Проверка событий ожидания базы данных
Если база данных имеет большое количество ожидающих событий, таких как освобождение защелки, постановка в очередь, ожидание занятости буфера, последовательное чтение файла БД, разрозненное чтение файла БД и т. Д. В течение длительного времени, это необходимо проанализировать, и могут возникнуть проблемные утверждения.
6. Проверьте безопасность базы данных.
В этом разделе мы в основном проверяем безопасность базы данных Oracle, включая: проверку информации о безопасности системы, регулярную смену пароля, всего две части.
2.2. Проверьте подключение к базе данных
Проверьте, находится ли количество подключений в текущем сеансе в пределах нормы.
Если администратор базы данных хочет вручную отключить сеанс, выполните:
- Проверить spid операционной системы через sid
- Убить соединение
Примечание. В приведенном выше примере сеансы с SID от 1 до 10 (столбец USERNAME пуст) являются фоновыми процессами Oracle. Не выполняйте никаких операций с этими сеансами.
7.1 Проверьте, нормально ли текущая задача crontab
4.7. Проверьте наличие сильно фрагментированных таблиц
Loopproc Procedure
For the demonstration of how to debug PL/SQL code, we are going to use the sample code included in the tool.
We select from the Menu Help --> Contents and in the Search box we enter loopproc, which is a very simple process without dependencies that allows us to perform the tests.
We select Debugging a Procedure or Function Tutorial to see the loopproc procedure code and store it in our schema.
CREATE OR REPLACE PROCEDURE loopproc (inval NUMBER)
FOR lcv IN 1 .. inval
total := 2 * total + 1 - tmpvar2;
DBMS_OUTPUT.put_line ('TOTAL IS: ' || total);
The only consideration to make is that we need to remove the blank space within the concatenation operator (highlighted in yellow) because if we do not, the code will show error when saving.
Once we have the procedure opened in our editor, it is necessary to know that in the lower part of our screen we can see different tabs which we will need enabled for this demonstration. The tabs required for this demonstration are Watches and Breakpoints.
To see these tabs, we simply click with the right mouse button on any of the enabled tabs so that a pop-up menu opens with options that we can check which will allow us to see the lower tabs.
2.6. Проверьте содержимое системного табличного пространства.
Если запись возвращается, это указывает на то, что в системном табличном пространстве есть некоторые несистемные и системные пользовательские объекты.
следует дополнительно проверить, связаны ли эти объекты с нашим приложением. Если необходимо, переместите эти объекты в табличные пространства, не являющиеся системными, и проверьте значения табличных пространств по умолчанию для владельцев этих объектов.
Minimum Requirements from Oracle Databases to use Toad’s code debugging
To debug PL/SQL code using Toad for Oracle and in all Oracle databases, we must first have installed Oracle Probe API v2.0 or later.
To verify the version of Oracle Probe API, we must do the following:
- Ensure that there is a package called DBMS_DEBUG in the SYS schema.
- Know which version of Probe API we have within our schema. Then, we execute the following anonymous PL/SQL block in the SQL Editor with an enabled DBMS output window tab:
If the output of the DBMS Output shows:
Then the version of Oracle Probe API that we have is 2.2.
- In addition, we must have the privilege DEBUG CONNECT SESSION or Oracle will not allow us to use DBMS_DEBUG.
grant DEBUG CONNECT SESSION to
5.7 Регулярный статистический анализ
Для систем, использующих Oracle Cost-Based-Optimizer, необходимо регулярно собирать и обновлять статистическую информацию об объектах данных, чтобы оптимизатор мог составить правильный план объяснения на основе подготовленной информации. В следующих ситуациях более необходимо обновить статистическую информацию:
а. Изменения в приложении
б. Крупномасштабная миграция данных, миграция исторических данных, импорт других данных и т. д.
c. Изменяется объем данных.
- Проверьте, нужно ли обновлять статистику таблицы или индекса, например:
- Если количество строк сильно различается, в таблице необходимо обновить статистику. Рекомендуется собирать статистику один раз в неделю, например:
5.4 Ситуация с загрузкой системы:
Как показано выше, синий шрифт указывает на загрузку системы.Если следующие 3 значения больше 2,5, это означает, что система перегружена, и это значение записывается в таблицу проверки как ненормальное.
2. Проверьте использование ресурсов Oracle.
--a. Проверить соответствующие значения параметров в файле инициализации Oracle.
--b. Проверить подключение к базе данных, проверить место на системном диске
--c. Проверить использование каждого табличного пространства в Oracle, проверить некоторые расширенные аномальные объекты,
--d. Проверить содержимое системного табличного пространства, проверить следующее раскрытие объекта и максимальное значение расширения табличного пространства, всего семь частей.
4.9. Проверьте коэффициент ввода-вывода файловой системы
3. Проверьте результаты резервного копирования базы данных Oracle
содержать:
a. Проверьте информацию журнала резервного копирования базы данных;
б. Проверьте время создания файлов в томе резервной копии;
c. Проверьте электронную почту пользователя оракула.
3.1. Проверьте информацию журнала резервного копирования базы данных
Предположение: временный каталог для резервного копирования - / backup / hotbakup, нам нужно проверить результат резервного копирования 22 июля 2009 года, а затем использовать следующую команду для проверки:
cat /backup/hotbackup/hotbackup-09-7-22.log|grep –i error
Файл журнала сценария резервного копирования - hotbackup-month-date-year.log, находящийся во временном каталоге резервного копирования. Если в файле есть «ОШИБКА:», это означает, что резервное копирование не было успешным, и существует проблема, которую необходимо проверить.
3.2 Проверьте время создания файлов в томе резервной копии
Том резервной копии является временным каталогом для резервного копирования. Дата просмотра файла в результате вывода должна быть сгенерирована сценарием горячего резервного копирования ранним утром того же дня. Если время указано неверно, это означает, что сценарий горячего резервного копирования не был успешно выполнен.
3.3 Проверьте электронную почту пользователя оракула
6.1. Проверьте информацию журнала безопасности системы
Каталог файла журнала безопасности системы находится в /var/log Затем в основном проверьте информацию журнала пользователя об успешном или неудачном входе в систему.
- Проверить журнал успешного входа
- Проверить журнал неудачных попыток входа
В отображаемой информации журнала нет подсказки об ошибке (недействительной, отклоненной). Если нет (недействительной, отклоненной), система считается нормальной, и появляется подсказка об ошибке, и должно быть сделано системное тревожное уведомление.
Применение пакета DBMS_REPAIR
Несмотря на то что утилита DBVERIFY очень проста в применении, использовать ее для исправления поврежденных данных нельзя, а это является очень серьезным ограничением. Поэтому еще в версии Oracle8i появился пакет DBMS_REPAIR, позволяющий не только выявлять, но и исправлять поврежденные блоки данных без перевода файлов данных в автономный режим. Прежде чем использовать этот пакет, нужно войти в систему от имени пользователя SYS и создать две специальные таблицы: одну с приставкой repair_ и вторую с именем orphan_key.
После создания таблицы repair_table пакет DBMS_REPAIR можно запускать. В эту таблицу будет заноситься информация обо всех поврежденных данных. Выполнение содержащейся в пакете DBMS_REPAIR процедуры CHECK_OBJECT будет приводить к выявлению поврежденных блоков и отображению рекомендуемых вариантов для их исправления, а выполнение после процедуры CHECK_OBJECT запроса к таким столбцам таблицы repair_table, как OBJECT_NAME и CORRUPT_DESCRIPTION — выяснить, существуют ли повреждения в блоках данных, и если да, то какого типа.
Различные способы исправления поврежденных блоков данных будут рассматриваться в следующей главе, поскольку они подразумевают проведение восстановления базы данных из резервных копий.
5.3 Ситуация ввода / вывода системы:
Как показано выше, часть синего шрифта представляет состояние чтения и записи на диск, а часть красного шрифта представляет состояние ожидания ввода-вывода процессора.
Most Fortune 500 companies choose Toad
Tool for Oracle Application Developers, more widely known as Toad®, was designed by Oracle developer, Jim McDaniel, to make his job easier. It was so helpful that Jim decided to share it. Fast forward to more than 20 years later, Toad is a trusted tool used in most Fortune 500 companies and across the globe.
There are many reasons why people buy Toad rather than staying with the “free” SQL Developer tool Oracle offers. One main reason developers and DBAs choose Toad for Oracle is to reduce time and effort to develop and manage Oracle databases. But did you know that with Toad for Oracle you can automate administration tasks and proactively manage your databases while embracing performance optimization and risk mitigation? Did you know Toad can now find and control sensitive data across all your Oracle databases? What else can Toad do that you didn’t know about? Which edition will benefit you the most ?
We’re so confident that you will love Toad, we’re offering our top 2 editions to you to try for free for 30 days.
Clarisa is a System Engineer with more than 24 years of experience as a developer, teacher, and consultant in Information Technology. She was a Founder and CEO between 2013 to 2020 at ClarTech Solutions, Inc., a consulting firm specializing in Oracle APEX and Open Source technologies. Clarisa entered the world of Oracle technologies in 2009. After a few years, she discovered the power of application development with Oracle Application Express (APEX) and specialized in that area.
Clarisa is from Argentina, and she is living and working in Irvine, California, in the United States. She's also a Co-Founder of the Argentina Oracle User Group (AROUG). In addition, she had actively participated in large and popular events such as the OTN Tour Argentina and Oracle APEX Tour Latin America after called Oracle Developer Tour. She's also authored the first three Spanish books about Oracle Application Express and recorded and published several Online Video Courses.
She has a great passion for Oracle technologies and wants to expand that passion and influence, transferring her knowledge and experience to the entire Latin American and worldwide Oracle communities. You can always contact her through her Twitter account (@Clari707).
Clarisa loves spending time with her family by enjoying outdoor activities with her two adored children, Melanie and Nicolas, as well as hanging out with her friends. Also, she loves traveling with her husband Julio worldwide and to takes new challenges at every moment of her life.
В том числе: Проверьте состояние экземпляра Oracle, проверьте процесс обслуживания Oracle, проверьте процесс мониторинга Oracle, всего три части.
1.1 Проверьте состояние экземпляра Oracle
Среди них «STATUS» указывает текущее состояние экземпляра Oracle, которое должно быть «OPEN», «DATABASE_STATUS» указывает текущее состояние базы данных Oracle, которое должно быть «ACTIVE».
1.2 Проверка состояния журнала онлайн Oracle
Выходной результат должен иметь более 3 записей (включая 3) записи, «STATUS» должен быть не «INVALID», не «DELETED». Примечание: «СТАТУС» пуст для обозначения нормального.
1.3 Проверьте состояние табличного пространства Oracle
СОСТОЯНИЕ должно быть ОНЛАЙН на выходе.
1.4 Проверьте состояние всех файлов данных Oracle
«STATUS» на выходе должно быть «ONLINE». или:
«STATUS» на выходе должно быть «ДОСТУПНО».
1.5 Проверка на недействительные объекты
Если запись возвращается, это означает, что существует недопустимый объект. Если эти объекты связаны с приложением, вам нужно перекомпилировать его для создания или:
1.6 Проверьте состояние всех сегментов отката
«СОСТОЯНИЕ» всех сегментов отката на выходе должно быть «ОНЛАЙН».
2.1. Проверьте соответствующие значения параметров в файле инициализации Oracle.
Если LIMIT_VALU-MAX_UTILIZATION можно изменить, изменив файл параметров инициализации Oracle $ ORACLE_BASE / admin / CKDB / pfile / initORCL.ora.
5.6. Проверьте связывание / перенос строк
Примечание. Для таблицы с длинным необработанным столбцом нормально иметь ссылки на строки. Найдите строку миграции и сохраните ее в таблице chained_rows. Если такой таблицы нет, выполните
Вы можете увидеть, какие строки являются строками миграции, через table_name и head_rowid в таблице chained_rows
Читайте также: