Это 8-й день моего участия в августовском испытании обновлений.Подробности о событии:Испытание августовского обновления
🌲 Предисловие 🌲
Если вам как администратору баз данных предоставляется совершенно новая автономная среда базы данных Oracle, на что вам следует обратить внимание? В этой статье обсуждаются только хосты Linux~
📢 Прежде всего заявляю, что ответы в этой статье не стандартные ответы, а лишь некоторые личные мнения.Приглашаю 👏🏻 всех дополнять и улучшать~
Прежде всего, конечно, подтвердите, является ли это базой данных одномашинного или кластерного режима! В этой статье в основном объясняется автономная база данных.
1. ⭐️ Уровень хоста ⭐️
1. 📚 Версия хоста и версия Oracle
Версия хоста:
cat /etc/system-release
cat /etc/redhat-release
Версия Oracle и версия патча:
sqlplus -version
opatch lspatches
2. 💻 Аппаратные ресурсы хоста
Включая загрузку ЦП, физическую память и использование диска.
Загрузка процессора и памяти:
top
free -m
⚠️ Необходимо обратить внимание на то, не является ли нагрузка на процессор и использование физической памяти хоста аномальной, а также не слишком ли часто используется Swap.
Использование диска:
lsblk
fdisk -l
df -Th
⚠️ Очевидно, вам нужно обратить внимание на использование диска и на наличие чрезмерного использования.
3. 📒 Запланированные задачи crontab
Общие запланированные задачи упорядочат некоторые стратегии резервного копирования или стратегии удаления архива, мы можем просмотреть их через crontab:
crontab -l
4. 🌿 Проверьте файл Hosts и конфигурацию сети.
cat /etc/hosts
ip addr
nmcli connection show
5. 🍄 Проверьте файл системных параметров
cat /etc/sysctl.conf
⚠️ Обратите внимание, не установлены ли нестандартные параметры.
6. 🌻 Проверьте файл rc.local
Файл rc.local используется для настройки сценария автозапуска при загрузке, обычно он настроен на закрытие прозрачных огромных страниц или автозапуск при загрузке базы данных Oracle.
cat /etc/rc.local
7. 🍁 Конфигурация переменных среды
Ознакомьтесь с конфигурацией переменных среды, чтобы лучше ознакомиться со средой.
cat ~/.bash_profile
cat /home/oracle/.bash_profile
8. 🌵 Проверить системные службы
systemctl status firewalld.service
getenforce
cat /proc/cmdline
cat /etc/sysconfig/network
2. 💫 Уровень базы данных 💫
1. 🍔 Просмотр экземпляра базы данных и мониторинг
ps -ef|grep smon
su - oracle
lsnrctl status
2. 🍖 использование табличного пространства базы данных
sqlplus / as sysdba
col TABLESPACE_NAME for a20
select tbs_used_info.tablespace_name,
tbs_used_info.alloc_mb,
tbs_used_info.used_mb,
tbs_used_info.max_mb,
tbs_used_info.free_of_max_mb,
tbs_used_info.used_of_max || '%' used_of_max_pct
from (select a.tablespace_name,
round(a.bytes_alloc / 1024 / 1024) alloc_mb,
round((a.bytes_alloc - nvl(b.bytes_free,
0)) / 1024 / 1024) used_mb,
round((a.bytes_alloc - nvl(b.bytes_free,
0)) * 100 / a.maxbytes) used_of_max,
round((a.maxbytes - a.bytes_alloc + nvl(b.bytes_free,
0)) / 1048576) free_of_max_mb,
round(a.maxbytes / 1048576) max_mb
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,
'YES',
f.maxbytes,
'NO',
f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
(select f.tablespace_name,
sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)) tbs_used_info
order by tbs_used_info.used_of_max desc;
3. 🍢 Проверьте состояние резервной копии RMAN
rman target /
list backup;
sqlplus / as sysdba
col status for a10
col input_type for a20
col INPUT_BYTES_DISPLAY for a10
col OUTPUT_BYTES_DISPLAY for a10
col TIME_TAKEN_DISPLAY for a10
select input_type,
status,
to_char(start_time,
'yyyy-mm-dd hh24:mi:ss'),
to_char(end_time,
'yyyy-mm-dd hh24:mi:ss'),
input_bytes_display,
output_bytes_display,
time_taken_display,
COMPRESSION_RATIO
from v$rman_backup_job_details
where start_time > date '2021-07-01'
order by 3 desc;
4. 🍡 Проверить избыточность контрольного файла
Проверьте количество и расположение управляющих файлов, а также наличие в них избыточности.
sqlplus / as sysdba
show parameter control_files
select name from v$controlfile;
5. 🍭 Проверьте файл параметров
Проверьте файл параметров базы данных, чтобы убедиться, что параметры используются нормально.
sqlplus / as sysdba
show parameter spfile
create pfile='/home/oracle/pfile.ora' from spfile;
strings /home/oracle/pfile.ora
6. 🍬 Включены ли архивация и флэшбэк
sqlplus / as sysdba
archive log list
select open_mode,log_mode,flashback_on,force_logging from v$database;
7. 🍗 Проверьте онлайн-логи и частоту переключения
Проверьте размер онлайн-журнала:
set line222
col member for a100
select f.group#,f.member,l.sequence#,l.bytes/1024/1024,l.archived,l.status,l.first_time
from v$logfile f,v$log l
where f.group# = l.group#
order by f.group#,f.member;
Проверьте частоту переключения онлайн-журнала:
col day for a30
SELECT
SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) DAY,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'00',1,0)) H00,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'01',1,0)) H01,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'02',1,0)) H02,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'03',1,0)) H03,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'04',1,0)) H04,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'05',1,0)) H05,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'06',1,0)) H06,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'07',1,0)) H07,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'08',1,0)) H08,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'09',1,0)) H09,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'10',1,0)) H10,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'11',1,0)) H11,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'12',1,0)) H12,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'13',1,0)) H13,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'14',1,0)) H14,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'15',1,0)) H15,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'16',1,0)) H16,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'17',1,0)) H17,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'18',1,0)) H18,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'19',1,0)) H19,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'20',1,0)) H20,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'21',1,0)) H21,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'22',1,0)) H22,
SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'23',1,0)) H23,
COUNT(*) TOTAL
FROM
v$log_history a where SYSDATE - first_time < 35
GROUP BY SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) order by 1;
8. 🍕 Просмотр набора символов базы данных
select * from nls_database_parameters;
9. 🍯 Проверка на недопустимые объекты
SELECT owner,object_name,object_type,status
FROM dba_objects
WHERE status <> 'VALID'
ORDER BY owner,object_name;
10. 🍋 Проверить объекты таблицы разделов
set line222
col high_value for a100
select t2.TABLE_OWNER,t1.table_name, t1.max_partition_name, t2.high_value
from (select table_name, max(partition_name) as max_partition_name
from dba_tab_partitions
group by table_name) t1,
(select TABLE_OWNER,table_name, partition_name, high_value
from dba_tab_partitions
where tablespace_name not in ('SYSAUX', 'SYSTEM')) t2
where t1.table_name = t2.table_name
and t1.max_partition_name = t2.partition_name
order by 1,2;
Необходимо обратить внимание на максимально расширенный раздел раздела и на необходимость его расширения.Рекомендуется расширить его заранее, чтобы избежать дробления.
3. ❄️ Уровень отчетности ❄️
С помощью собственных отчетов Oracle awr, ash, awrsqrpt и других вы можете четко понять текущую ситуацию с базой данных.
1. 🍉 авт отчет
AWR содержит подробный набор операций с базой данных и часто используется для анализа проблем с производительностью коллекции.
sqlplus / as sysdba @?/rdbms/admin/awrrpt.sql
Отчет AWR можно сгенерировать с помощью приведенных выше команд.Во время процесса вам необходимо указать тип отчета и период захвата.Пожалуйста, проверьте, как его использовать самостоятельно.Вы также можете подписаться на мой официальный аккаунт, чтобы получить орлиный глаз awr видеоурок по настройке бесплатно.
2. 🍊 пепельный отчет
ash может собирать более подробную информацию, чем отчеты AWR, он может быть точным до минуты и чаще используется.
sqlplus / as sysdba @?/rdbms/admin/ashrpt.sql
Вышеупомянутый метод генерации, период времени является необязательным, и по умолчанию используется получение отчета от текущего времени до 15 минут назад.
3. 🍒 отчет awrsqrpt
Для отчетов, используемых для анализа проблем производительности с одним SQL, необходимо знать SQL_ID.
sqlplus / as sysdba @?/rdbms/admin/awrsqrpt.sql
Вам необходимо указать период времени и sql_id, чтобы получить соответствующий отчет sql.
4. 🍑 отчет sqltrpt
Обычно используемый вместе с отчетом awrsqrpt, вы можете получить предложения по оптимизации SQL, предоставленные Oracle.Вообще говоря, рекомендуется создать больше индексов и профилей, которые подходят для новичков, чтобы оптимизировать использование SQL.
sqlplus / as sysdba @?/rdbms/admin/sqltrpt.sql
Требуется только SQL_ID.
5. 🍍отчет о добавлении
addmrpt — это отчет, созданный оракулом путем автоматической диагностики отчета awr.
sqlplus / as sysdba @?/rdbms/admin/addmrpt.sql
Только для справки, реальная помощь не имеет смысла. Процедура требует ввода периода времени.
6. 🌽 Отчет о проверке здоровья
Этот тип отчета о проверке работоспособности обычно представляет собой отчет, созданный при выполнении скрипта, написанного человеком.Результат проверки определяется человеком и обычно включает указанную выше необходимую информацию. Конечно, официальный Oracle также предоставляет полный метод создания отчетов базы данных.Я не буду вводить здесь слишком много.Друзья, которым это нужно, могут связаться со мной, чтобы получить его.
⚡️ Напишите в конце ⚡️
Благодаря вышеуказанным проверкам я считаю, что у вас есть общее представление о системе баз данных, с которой вы впервые контактируете.Далее вам нужно только медленно и глубоко проанализировать, а затем сформулировать набор спецификаций эксплуатации и обслуживания, которые соответствуют реальной ситуации. .
ヾ(◍°∇°◍)ノ゙
Этот обмен заканчивается здесь~
Если вы считаете, что статья полезна для вас,Нравится, Избранное, Следите, Комментируйте, Поддержка четырех ссылок одним щелчком мыши, ваша поддержка является самой большой движущей силой для моего творчества.