Вы здесь

Activities calendar

настройка запросов

DECLARE
my_task_name VARCHAR2 ( 30 );

BEGIN
my_task_name :=
DBMS_SQLTUNE.CREATE_TUNING_TASK (
sql_id => 'gy9t3hcf3zxzv'
, task_name => 'a_very_hard5'
);
END;
/

EXECUTE DBMS_SQLTUNE.EXECUTE_TUNING_TASK ( 'a_very_hard5' );

SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 200

SELECT
DBMS_SQLTUNE.REPORT_TUNING_TASK ( 'a_very_hard5' )
FROM dual;

execute dbms_sqltune.accept_sql_profile(task_name => 'a_very_hard4',task_owner => 'SYS', replace => TRUE);

стендбай по-всякому

Primary Server Setup

Logging

Check that the primary database is in archivelog mode.

SELECT log_mode FROM v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL>
If it is noarchivelog mode, switch is to archivelog mode.

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
Enabled forced logging by issuing the following command.

ALTER DATABASE FORCE LOGGING;
Initialization Parameters

Архив логи шпаргалка

SELECT LOG_MODE FROM SYS.V$DATABASE;
LOG_MODE
------------
NOARCHIVELOG

NOARCHIVELOG – означает, что СУБД не архивирует логические логи.

ARCHIVELOG – означает, что СУБД находится в режим архивирования логических логов.

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

Oracle on RHel 4.4

Oracle on RHel 4.4

Дока!

Полезные шпаргалки

select name from v$datafile;

 

получаем имена файлов данных и анду

select name from v$tempfile;

получаем имена файлов временных табличных пространств

select member from v$logfile;

группы 

select * from  V$LOG

получаем имена файлов журналов наката где что лежит

John Watson - OCA Oracle Database 11g Administration I Exam Guide (Exam 1Z0-052)

John Watson - OCA Oracle Database 11g Administration I Exam Guide (Exam 1Z0-052) - 2008.pdf
Книга с вопросами, ответами и пояснениями

OCA Oracle Database 11g: SQL Fundamentals I Exam Guide (Exam 1Z0-051)

OCA Oracle Database 11g: SQL Fundamentals I Exam Guide (Exam 1Z0-051) ®
John Watson OCP
Roopesh Ramklass OCP
книга с тестами, ответами, пояснениями для сдачи 1Z0-051

OCA Oracle Database 11g: SQL Fundamentals I: A Real-World Certification Guide

Книга с тестовыми вопросами по 1Z0-051
OCA Oracle Database 11g: SQL Fundamentals I: A Real-World Certification Guide
Ace the 1Z0-051 SQL Fundamentals I exam, and become a successful DBA by learning how SQL concepts work in the real world

1Z0-051.v2010-06-08.by.Yasen.203q.vce

OCA Oracle Database 11g: Administration I Exam Guide (Exam 1Z0-051)
сертификационный экзамен

Подборка полезных shell команд для Solaris

Пользователь

userdel oracle
useradd -d /export/home/oracle -m -s /bin/bash -g oinstall -G dba oracle

Отладка
cat -v -t -e [file] Показать неотображаемые символы
dumpadm -d swap Сконфигурировать swap устройство как dump устройство
ld -l Проверка наличия библиотеки
truss -f -p Использование нескольких окон. Это может использоваться при отслеживании setuid/setgid программ
truss executable Отслеживание команды (полезно при отладке)

Solaris полезные команды

vmstat – выдает статистику по виртуальной памяти, которая также включает в себя информацию о потоках ядра, дисках и активности ЦПУ;
psrinfo – отображает данные о процессорах;
prtconf – отображает системную конфигурацию. Вывод утилиты может быть малопонятен начинающему администратору;
prtdiag – отображает системную диагностическую информацию;

о сайте, о себе

Я Ирина Фаст. По специальности я Oracle DBA и по совместительству директор московского филиала компании Митра

Могу запроектировать базу данных, развернуть Drupal довольно быстро, могу RHEL поставить и настроить. Много чего могу.

Наверно мой сайт выглядит странно, и it--шные дела, и сайтостроение, и организации разных проектов, стихи. Но это отражение моей жизни. Тут собрано все, что я делаю, все в одном месте. It статейками я пользуюсь как шпаргалками, стихи публикую для души и чтобы не потерять, рекламирую себя как организатора web-проектов, ну и помогаю кой кому.

Так что веллкам. Буду рада гостям и комментаторам.

несколько полезных юниксовых команд

grep — вывести несколько строк до и после

Как здоровье, стендбай?

select (a.maxa-b.maxb) LAG from (select max(sequence#) maxa from v$archived_log where standby_dest='NO') a, (select nvl(max(sequence#),0) maxb from v$archived_log where applied ='YES') b;

alter database recover managed standby database cancel;

alter database recover managed standby database disconnect;

alter database mount standby database;

recover managed standby database cancel;

1. На праймари узнаем последний sequence#

Гранты

select tpm.name privilege,
       decode(mod(oa.option$,2), 1, 'YES', 'NO') grantable,
       ue.name grantee,
       ur.name grantor,
       u.name owner,
       decode(o.TYPE#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
                       4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
                       7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
                       11, 'PACKAGE BODY', 12, 'TRIGGER',
                       13, 'TYPE', 14, 'TYPE BODY',

полезно

Скрипты Backup

allocate channel for maintenance type disk;
crosscheck backup;
crosscheck archivelog all;
crosscheck copy;
delete noprompt backup completed before 'trunc(sysdate)-14';
delete noprompt copy completed before 'trunc(sysdate)-14';
release channel ;
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset
incremental level 0

Просмотр реально используемой памяти в AIX

События ожидания

Группы событий ожидания


SHRINK SPACE оперативное сжатие сегмента

Почему поиск в таблице с небольшим количеством строк может отнять довольно много времени?

Миша

Restore Oracle hot backup

Копируем datafile которые взяли с донора и архивлоги на свои места

Manual Online Hot Backup

--—сценарий пользовательского горячего резервного копирования
-------------------------Проверяем, что работает в архилог моде.
archive log list;

Клонирование DUPLICATE RMAN

Готовим целевую базу : 

Курсоры в Oracle

Курсор это средство извлечения данных из БД.
Курсоры содержат определения столбцов и объектов.

Ваккум

JSON in PL/SQL Oracle 12c

I have a procedure with below structure:

Немного про JSON и ORACLE 12

немного про JSON и ORACLE 12

Шикарная картинка про память в POSTGRESQL

The Art of Monitoring James Turnbull June 11, 2016

The Art of Monitoring
James Turnbull
June 11, 2016
Version: v1.0.0 (b30718d)
Website: The Art of Monitoring

Install and configure Graphite on Redhat7 + Centos7

In this section you will learn How to Install and Configure Graphite into Centos 7 part 1

We are going to configure Graphite into three host

Работа с PostgreSQL: настройка и масштабирование

Работа с PostgreSQL: настройка и масштабирование А. Ю. Васильев aka leopard Creative Commons Attribution-Noncommercial 4.0 International 2017

Блокировки

======================    Idle In Transaction Session Timeout

параметр который определяет сколько можно безнаказано висеть

больше - принудительный rollback

===================  pg_blocking_pids

Статистика для PostgreSql

Статистика сбрасывается на диск в каталог pg_stat и pg_stat_tmp

Текущая активность

Кто сейчас происходит в базе: (клиентские и серверные процессы)

================================================  pg_stat_activity 

параметры

Динамический SQL и NDS команды PL/SQL на примерах

Пожалуй, написание динамических команд SQL и динамических программ PL/SQL было самым интересным делом из всего, что я когда-либо делал на языке PL/SQL. Конструирование и динамическое выполнение обеспечивает невероятную гибкость. У разработчика появляется возможность создавать обобщенный код с широким спек­тром применения.

MERGE в POstgreSql, эскиз

Oracle statement:
 
 
 
MERGE INTO acme_obj_value d
USING ( SELECT object_id
        FROM   acme_state_tmp
      ) s
ON (d.object_id = s.object_id)
  WHEN matched THEN
    UPDATE SET d.date_value = LEAST(l_dt, d.date_value)
  WHEN NOT matched THEN
    INSERT (d.id, d.object_id, d.date_value)
    VALUES (acme_param_sequence.NEXTVAL, s.object_id, l_dt)
 
 
PostgreSQL statement:
 

Бэкапирование (логическое) кластера баз

Первая часть - скрипты на бекапирование всех рабочих кластеров баз, которые есть в эксплуатации.

Вторая - бекапирование конфигурационных файлов.

Barman

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

Чем мониторить postgresql online

Grafana, подключение к Zabbix Server           http://ithelp21.ru/ustanovka-grafana-podklyutchenie-k-zabbix-server/
 
 
 
1. настраиваем brubeck + graphite + grafana
2. пишем крон или демон который раз в минуту или n-секунд забирает данные из pg_stat_* и pg_statio_* и скидывает в brubeck
3. настраиваем dashboards в графане
 

Prometheus

Step 1 — Installing Prometheus Server

First, create a new directory to store all the files you download in this tutorial and move to it.

Установка patroni

yum install -y https://centos7.iuscommunity.org/ius-release.rpm
yum update
yum install  -y epel-release
yum upgrade

установка, настройка и синхронизация времени в CentOS

Итак, у нас им

pgbadger

log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] ' или '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
lc_messages='C'
log_duration = on
log_statement = all
log_destination = stderr
 

Установка PostgreSQL 9.6

В CentOS 7, по умолчанию, достуна версия postgres 9.2.

Несколько способов аутентификации postgresql

Настройка потребление ресурсов PostgreSQL (Resource Consumption (Usage))

Управление транзакциями

1. Блокировки пользовательских таблиц в PostgreSQL.

-- Блокировки уровня таблицы

ACCESS SHARE

Конфликтует с ACCESS EXCLUSIVE, используется SELECT(блокировка для чтения таблицы)

ROW SHARE

Конфликтует с EXCLUSIVE, ACCESS EXCLUSIVE, используется SELECT FOR UPDATE, SELECT FOR SHARE

ROW EXLUSIVE

Конфликтует с SHARE,EXCLUSIVE, ACCESS EXCLUSIVE, используется UPDATE, DELETE, INSERT

SHARE UPDATE EXCLUSIVE

Логирование в PostgreSQL

Зачем вообще нужно логирование в базе данных? Для начала попробуйте ответить себе сами на этот вопрос.

Создание FT и FDW

Function to generate Foreign table create statements

The function script is shown here and should be installed on the database that you want to script the tables as foreign tables for future use on a target server.

Oracle Database Upgrade from 11.2.0.1 to 11.2.0.4

Oracle Databases Upgrade from 11.2.0.1 to 11.2.0.4

11.2.0.1 ORACLE_HOME
/u01/app/oracle/product/11.2.0.1/db_home

Потоковая репликация в PostgreSQL и пример фейловера

Вот многие жалуются, что PostgreSQL сложно масштабировать и нужно быть в нем очень большим специалистом, чтобы настроить обычную master-slave репликацию. По-моему, это все чушь. Не так давно мне потребовалась всего лишь пара часов вдумчивого чтения документации, чтобы во всем разобраться. В этой заметке я постараюсь показать, что с репликацией в PostgreSQL все очень просто.

Шпаргалка для PostgreSQL

Размеры таблиц, баз, схем.

pgBadger - a fast PostgreSQL log analysis report


SYNOPSIS
    Usage: pgbadger [options] logfile [...]

            PostgreSQL log analyzer with fully detailed reports and graphs.

    Arguments:

        logfile can be a single log file, a list of files, or a shell command
        returning a list of files. If you want to pass log content from stdin

Какую утилиту лучше использовать для реорганизации таблиц PostgreSQL (например: pg_repack vs pgcompactor vs подстройка автовакума)?

Модуль pg_repack — это расширение Postgres Pro Enterprise, которое позволяет ликвидировать пустоты в таблицах и индексах и может дополнительно восстанавливать физический порядок кластеризованных индексов. В отличие от CLUSTER и VACUUM_ FULL, оно выполняет эти операции «на ходу», обходясь без исключительных блокировок таблиц в ходе их обработки.

Модуль pgstattuple

Функция pgstattuple возвращает физическую длину отношения, процент "мёртвых" кортежей и другую информацию. Она может быть полезна для принятия решения о необходимости очистки.

Настройки autovacuum под HighLoad

 параметры autovacuum на базе 24/7, с интенсивной записью, размером 1,1 Тб.

Текущие:
autovacuum = on .

Логирование в PostgreSQL

Зачем вообще нужно логирование в базе данных? Для начала попробуйте ответить себе сами на этот вопрос.

Оптимизация настроек PostgreSQL (postgresql.conf)

Здесь будут настройки для PostgreSQL, работающей в виртуальной машине ESXi 6.5.

Ресурсы выделенные для ВМ:

Как настроить dblink в PostgreSQL

Как-то мне потребовалось настроить синхронизацию нескольких таблиц на разных серверах PostgreSQL, не настраивая при этом репликацию в классическом её виде, проанализировал я много разных вариантов и самый простой оказался синхронизация через dblink.

Размер таблиц в postgresql

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

SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 20;

DB upgrade 11.2.0.1 to11.2.0.4

  • To open the Database

            [root@oracle ~]# su – oracle

Взаимодействие python с базами данных Oracle с использованием модуля cx_oracle или "Python и Великий Оракул"

В python для взаимодействия с базами данных Oracle служит модуль расширения cx-oracle.

Оптимизация PostgreSQL. Autovacuum – сборка мусора

запрос для рассматривания чего вакумим

SELECT relname, age(relfrozenxid) as xid_age,
pg_size_pretty(pg_table_size(oid)) as table_size
FROM pg_class
WHERE relkind = 'r' and pg_table_size(oid) > 1073741824
ORDER BY age(relfrozenxid) DESC LIMIT 10;

 

Получить JSON по URL на Javascript, аналог функции $.getJSON

Пример кода на jQuery, для получения JSON данных по URL, недостаток - посторонние зависимости

CentOS, кто съел место?

Проблема с заполненным разделом в Linux встречается часто. По большей степени это возникает из за ранее созданного раздела с маленьким объемом. Например под раздел /var отвели всего 10 Гб, так как он используется многими программами для хранения данных, часто виновником переполнения становится именно он. Бывает что и корневой раздел заполняется.

curl — консольная утилита для передачи данных используя URL-синтаксис

curl — консольная утилита для передачи данных используя URL-синтаксис,

Ежегодная работа с партициями.

Каждый год в декабре я делаю одно и тоже. Пора запротоколировать.

Создаем табличные пространства под новые партиции.

Регулярные выражения для чайников

Что такое регулярные выражения?

SoapUI Tutorials

 

Настройка PostgreSQL. Оптимизация работы PostgreSQL.

Настройка конфигурациипараметр - значение - рекомендации  Настройка ресурсовshared_buffersРазмер разделяемой между процессами PostgreSQL памяти, которая нужна для выполнения активных операций. Не следует указывать слишком большой объём, так как PostgreSQL использует также дисковый кэш. Значения: 

Процедура для создания партиций, добавления партиций

CREATE OR REPLACE PACKAGE BILLING7.PARTITIONIER
IS
   PROCEDURE partitions_create (
      table_name_arg   IN   VARCHAR2,
      days_count_arg   IN   NUMBER,
      block_measure    IN   VARCHAR2 DEFAULT 'MM'
   );
 
    PROCEDURE partitions_job_runner;
 
 
 
END;                                                           -- Package spec
/
 
CREATE OR REPLACE PACKAGE BODY BILLING7.PARTITIONIER
IS

Простая настройка репликации в PostgreSQL

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

Урок для "Специалиста"

Сделала для Специалиста. Затырю.

Презентация PostgreSql объекты

Сделала лекцию, пусть пока тут полежит

BRIN-индексы

Аббревиатура «BRIN» означает «Block Range Index», или индекс блоковых зон. Если у вас есть очень большие таблицы и столбцы, по своей природе связанные с положением строки в таблице, как, например, временная метка в некотором логе, то BRIN-индексы предоставляют вам возможность индексировать такие столбцы, не тратясь на создание и поддержку B-деревьев (структур, используемых в стандартных индексах).Работу BRIN-индекса можно представить так: данные разбиваются на зоны, после чего в индексе сохраняется информация о страницах, попадающих в данные диапазоны, плюс служебная информация.

Индексы PostgreSQL: полное руководство

Индексы помогают ускорить операций, требующие выборки ограниченных данных. Это:

  • операции selectupdate и delete, в которых присутствует условие where;
  • операция join и подобные ей (если индекс создан для полей, по которым происходит объединение);
  • некоторые случаи, где присутствует ORDER BY.

Создание и удаление индексовВ самом базовом случае команда создания индекса выглядит следующим образом:

Рулим em12c

После инсталяции смотрим состояние.

 

 /home/em12c/oms/bin/emctl status oms

Oracle Enterprise Manager Cloud Control 12c Release 5
Copyright (c) 1996, 2015 Oracle Corporation.  All rights reserved.
WebTier is Up
Oracle Management Server is Up
 

 /home/agent/agent_inst/bin/emctl status agent

Oracle Enterprise Manager Cloud Control 12c Release 5

postgresql.conf - основной конфигурационный файл

Вот описание некоторых важных опций:

 

Renaming/Dropping and recreating online redo logs and Standby logfiles

Как переименова, пересоздать и возможно размер изменить редо логов и проде и стендбае.

Примеры rman скриптов

----------------------------------------  inc0
 
cat /export/home/oracle/rman/rman_hd_inc0.sh
#!/bin/bash
## prepare variables
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=/u01/app/oracle/product/11.2.0/db_1/bin:$PATH
export ORACLE_SID=hd
export NLS_DATE_FORMAT='dd.mm.yyyy hh24:mi:ss'
CONN=/
SCRIPT_DIR=`dirname $0`
if [ "$SCRIPT_DIR" = "." ]; then
SCRIPT_DIR=`pwd`
fi

15 команд для управления PostgreSQL

 

Data Integration — Kettle | Запуск работы/трансформации для каждой строки.

Задача: «Трансформация произвела какую-то обработку и получила на выходе n строк. Для каждой строки необходимо выполнить работу.»

Инструментарий Kettle

•■■ Spoon: Графический пользовательский интерфейс, позволяющий вести быструю разработку и управлять всем ETL процессом загрузки данных.
•■■ Kitchen: Инструментарий командной строки, позволяющий запускать jobs
•■■ Pan: Инструментарий командной строки, позволяющий запускать transformations.

ЧТо проверить перед Quick Switchover with Physical Standby Database

НА ПРОДЕ
 
db_name
db_unique_name
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DB11G,DB11G_STBY)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
 
ALTER SYSTEM SET FAL_SERVER=DB11G_STBY;
alter system set fal_client=DB11G;
 

Сервисы в Oracle

Смотрим

select * from V$SERVICES

 lsnrctl SERVICES

 

Создаем сервисы в БД testdb:

10 способов сделать резервную копию в PostgreSQL

How to Recreate the Database Control Repository - (Oracle 10g / 11g)

Create Database ConsoleTo create the configuration files and repository for Database Console, run: 

$ emca -config dbcontrol db -repos create

STARTED EMCA at Jul 24, 2006 9:59:39 PM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright (c) 2003, 2005, Oracle. All rights reserved.

Oracle 12 EM как запустить

Oracle DB Express is the new replacement for Oracle DB Console in the Oracle 12c database. Here are some first steps to get started.

Установка прав доступа ACL для Oracle 11g

col host format a15;
col ACL format a20;
col LOWER_PORT format  99999;
col UPPER_PORT format 99999;
col PRINCIPAL format a10;
col start_date format a8;
col end_date format a10;
select HOST,LOWER_PORT,UPPER_PORT,ACL from  DBA_NETWORK_ACLS;

HOST            LOWER_PORT UPPER_PORT ACL

SQL и оператор JOIN

Настройка Pentaho BI Server

 

Установка Enterprise Manager 12c Cloud Control

Сам процесс установки EM 12c описан в документации, а MOS Note 1359176.1 даже включает скриншоты. Тем не менее, процесс установки имеет некоторые специфические детали и почти всегда в первый раз заканчивается неудачно. Это неудивительно, учитывая количество программных компонентов, включённых в продукт.

Could not execute auto check for display colors using command /usr/bin/xdpyinfo

even after you set DISPLAY when installing oracle on a linux environment you get the following error

Как удалить Archivelogs и Backups используя RMAN

Удаление архивных логов и старых бекапов - часть обязательных плясок обслуживания базы. Ниже описаны вариации на тему  DELETE ARCHIVELOG, Delete Archivelog Backups и Obsolete database backups.

DELETE ARCHIVELOG.

PostgreSQL: справочник по командам psql, pg_dump, pg_restore

Все команды запускаются под пользователем postgres (postgresql-суперпользователь)

$ su - postgres

То что в нормальных базах называется логический импорт - экспорт

смотрим базы и роли.
 
\l - список баз данных

32 vs 64: Как определить битность операционной системы и процессора

Linux

Как перекомпилировать объекты базы данных?

Существует пять способов:

pg_dump

pg_dump выгружает базу данных в файл в текстовом или других форматах.

Использование:
  pg_dump [ОПЦИЯ]... [ИМЯБД]

Опции общего характера:
  -f, --file=ИМЯФАЙЛА      имя выходного файла
  -F, --format=c|t|p       формат выходного файла (пользовательский, tar, только текст)
  -i, --ignore-version     продолжить даже если версия сервера не совпадает с
                           версией pg_dump
  -v, --verbose            режим вывода всех сообщений

Install PostgreSQL 9.4 on Fedora 23/22, CentOS/RHEL/SL 7.2/6.7/5.11

This is guide, howto install Pos

Установка PostgreSQL

Варианты установки

PostgreSQL допускает различные варианты установки. Предпочтительным способом является использование готовых пакетов, так как в этом случае получается понятная, поддерживаемая и легко обновляемая установка. Пакеты существуют для большинства широко распространенных систем (см. http://www.postgresql.org/download/):

• FreeBSD, OpenBSD (пакеты из Ports and Packages Collection)

Архитектура PostgreSQL

Процессы и память

ORA-00600 [ktbdchk1: bad dscn] — как найти повреждённые индексы

Пример практического проявления Bug 8895202 – ORA-1555 / ORA-600 [ktbdchk1: bad dscn] in Physical Standby after switch-over [ID 8895202.8] и действий, которые могут помочь в разрешении возникающих проблем.Проблема (неоднократно наблюдалась после switch-over Physical Standby database to the Primary database role): в блоках индексов itl (Interested Transactio

Проверка базы (физическая и логическая)

-- Проверка самой базы (физическая и логическая)

dedicate - shared

1.Если запросы select * from v$circuit; select * from v$dispatcher; не возвращают строк, то можно с уверенностью сказать, что сервер в дедикейтед режиме. Другой способ проверить - посмотреть параметер 

SQL> show parameter mts_disp

NAME TYPE VALUE

------------------------------------ ------- -----

Обязательные фоновые процессы

Данные процессы присутствуют во всех типичных конфигурациях базы данных. Эти процессы, запущенны по умолчанию в экземпляре базы данных с минимально конфигурируемым файлом параметров инициализации.Process Monitor Process (PMON)Process Monitor (PMON) контролирует другие фоновые процессы, а так же выполняет процесс восстановления, когда сервер или диспетчер процессов завершается аварийно. PMON отвечает за очистку кэша буферов базы данных и освобождение используемых ресурсов клиентских процессов.

merge join, sort merge join, sort-merge join

Алгоритм соединения слиянием сортированных списков (merge join, sort merge join, sort-merge join)

 

hash join и nested loops

Алгоритм соединения вложенными циклами

Тип коллекции

 

Процедура вытаскивает наименование таблиц из BLOB

CREATE OR REPLACE PROCEDURE REPMAN.tables_report IS
 
--- sql string
 
sql_ifrom  varchar(1000);
sql_ifromn varchar(1000);
 
sql_iwhere varchar(1000);
sql_iclip varchar(1000);
sql_iorder varchar(1000);
sql_igroup varchar(1000);
sql_ihaving varchar(1000);
sql_lenght varchar(1000);
 
sql_tables varchar(1000);
strsql varchar(5000);
sql_tables1 varchar(1000);
strsql1 varchar(5000);
 

Вопросы, которые задают претендентам на позицию Oracle DBA на собеседованиях

Вопрос 1: На сервере СУБД на диске заканчивается место (используется Linux). Вы выяснили, что процесс lns1 начал по какой-то причине очень активно писать в файл /dbname/sid/trace/_lns1_

Пикольная задачка на непрерывные интервалы

В таблицы хранятся целые числа.

Например

1,4,6,5,78,24,79

Франментация

Место которое занято на диске - реально данные
 
SELECT TABLE_NAME, ROUND((BLOCKS * 8)/1024, 0) "SIZE, Mb"  ,
ROUND((NUM_ROWS * AVG_ROW_LEN / 1024 / 1024), 0) "SIZE, Mb"  ,
ROUND((BLOCKS * 8)/1024, 0)-ROUND((NUM_ROWS * AVG_ROW_LEN / 1024 / 1024), 0)
  FROM DBA_TABLES  
WHERE OWNER = 'IBS' and TABLESPACE_NAME='T_USR'
and ROUND((BLOCKS * 8)/1024, 0)-ROUND((NUM_ROWS * AVG_ROW_LEN / 1024 / 1024), 0)!=0
order by 4 desc;
 
 
 

Redo Log Groups часто переключаются

Ну помониторь кто генерит много redo запросами типа

Типы данных, размер

dbms lob

Когда хранимая процедура Oracle извлекает из таблицы объект типа lob, Oracle на самом деле возвращает не его содержимое, а локатор lob (в объектной терминологии - дескриптор). Локатор используется совместно с набором из девяти специальных функций, с помощью которых хранимая процедура может манипулировать данными, хранящимися в столбце типа lob. Вот краткое описание этих функций:

ВОСПОМИНАНИЕ. Пушкин наше солнце.

Когда для смертного умолкнет шумный день,

И на немые стогны града

Grant flashback privileges

Grant flashback privileges to users, roles, or applications that need to use flashback features, as follows:
 
  • DBMS_FLASHBACK package - Grant EXECUTE privilege on DBMS_FLASHBACK to provide access to the features in this package.
  • Flashback Query and Flashback Version Query - Grant FLASHBACK and SELECT privileges on specific objects to be accessed during queries, or grant the FLASHBACK ANY TABLE privilege to allow queries on all tables.
  • Flashback Transaction Query - Grant the SELECT ANY TRANSACTION privilege.

Эти подгружаемые шрифты на сайтах

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

  1. .eot
  2. .woff
  3. .ttf'

Пример из жизни: 

Как подключить нестандартный шрифт в css

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

New Background Processes in Oracle 11g

  • ACMS - Atomic Controlfile to Memory Server

Jobs

Категории джобов

Разные запросы для определения проблем

 


--Сессии, интенсивно использующие ресурсы процессора
select v.sid, v.value,USERNAME
from v$statname s, v$sesstat v,V$SESSION S
where s.name = 'CPU used by this session'
and v.statistic# = s.statistic#
and v.value > 0 AND V.SID=S.SID
order by 2 desc;
--статистика по запросам. ограничивайте по нужной вам статистике

Oracle Resource Manager

Основные определения.

Использование русского языка и символов кириллицы в базах данных Oracle

На сегодняшний день использование набора символов Unicode стало стандартом в почти всём программном обеспечении. Вот уже несколько лет Oracle предлагает элегантное решение в виде кодировки AL32UTF8. Тем не менее, во многих случаях использование Unicode нежелательно, по причинам несовместимости со старыми версиями программных продуктов либо из соображений экономии дискового пространства, как в случае с бесплатным Oracle Express Edition.Данная заметка знакомит читателя с двумя подходами к использованию русского языка и сохранению кириллических символов в базах данных Oracle.

Конфигурация множественных резервных копий

Следующая команда определяет, что при резервном копировании (архивные журналы, файлы данных, контрольные файлы) на диск должны быть сделаны две копии частей резервного набора:

RMAN> configure datafile backup copies for device type disk to 2;

Решение проблемы PostgreSQL из Oracle database

Краткое описание логики работы:  

Наум Коржавин НАИВНОСТЬ (5 стихотворений)

I

Наивность!
Хватит умиленья!
Она совсем не благодать.
Наивность может быть от лени,
От нежеланья понимать.

От равнодушия к потерям.
К любви... А это тоже лень.
Куда спокойней раз поверить,
Чем жить и мыслить каждый день.

Настройка линков с Oracle на PostgreSQL

Особенности:

Oracle PL/SQL to HP Vertica

Conversion FeaturesSQLWays has a built-in capability of migrating Oracle packages, triggers, procedures and functions to Java classes with generic rules to create scalar functions for HP Vertica. The tool will create a few separate files for each PL/SQL element.From one PL/SQL function or procedure two files are created:

Создание БД в кластере

Графический инструмент который создает базы. 

/opt/vertica/bin/adminTools

создаем vertica1

Первый узел

Управление пользователями

Инсталяция

 
Четыре основных сценария для установки HP Vertica на хозяев являются:
 
  •  Установка для одного узла установить, где установлен HP Vertica на одном хосте в процессе LOCALHOST. Это форма установки не может быть расширена до большего количества хостов в дальнейшем, и, как правило, используется для опытов.

скрипт по активации стендбая в open mode

Standby в режиме наката логов создовал manual не GUI Data Guard.  
 
startup nomount;
alter database mount standby database;
alter database recover managed standby database disconnect from session;
exit;
 
Вот Активация.
/******************************************************/
Connect &LogonUserName/&LogonPassword@&LogonDatabase as sysdba
alter database recover managed standby database cancel;
alter database recover standby database;

Компрессия патриций и субпартиций в oracle 10

Задача  произвести компрессию всех табличных сегментов , находящихся в табличных пространствах:

DATAMOS_2005

 

сморим свободное пространство

Oracle Locally Managed Tablespaces (LMT)

Локально управляемые табличные пространства отслеживать все extent information в tablespace используя bitmaps, что приводит к следующим преимуществам:

Ожидание pipe_put в ЦФС

Ожидание pipe_put  дословно - заталкивание в трубу. т.е. обмен данными между двумя программами, когда между ними установлена pipe и это ожидание того, когда труба освободится и "толкатель" сможет вытолкнуть очередную порцию.
 
В одном из процедуры ЦФТ использовали DBMS_PIPE упаковать и распаковать сообщения. При запуске процедуры, сессия висит в течение длительного времени, и в событиях ожидания я нашла  pipe_put 
 
Теория.

Системная статистика / System Statistics

 

Системная статистика / System Statistics

select * from sys.aux_stats$;

Планировщики

  создать запустить
Chain create job type chain run_chain
     
     
     
     

Rman в сводной таблице. В процессе написания

действия без каталога с каталогом
гранты   recivery_catalog_owner

RMAN Data Recovery Advisor

В Oracle 11g, RMAN  существует Data Recovery Advisor (DRA). DRA имеет несколько разных полезных команд

список сбоев

Главные отличия SEO продвижения в поисковых системах Google и Yandex

 Общие отличия Google от Yandex

RESUMABLE

Как Resumable Space Allocation работает

RESUMABLE_TIMEOUT параметр который указывает сколько будет висеть сессия, если кончится место в tablespace. И вы можете решить, следует ли убить сессию, или добавить пространства.  Сессия возобновляется после таймаута

не использовать

Создание тестовой среды

  • 1. На проде делаем контрольник
  • 2. На тесте-приемнике гасим базу
  • 3. Гасим стендбай
  • 4. Копируем файлы из стенбая на тест-приемник
  • 5. заходим на тест в номаунт
  • 6. пересоздаем контрольник.
  • 7. окрываем с резет лог
  • 8. создаем темпы
  • 9. поднимаем стендбай
  • 10. архивлог убрать на тесте
  • 11. проверить как стендбае логи накатываются
  • 12. посмотреть алерт на тесте

На боевом проде который клонируем

Diagnosing and Resolving ORA-4030 errors

 

select         sum(value)/1024/1024 Mb
         from
                 v$sesstat s, v$statname n
         where
                  n.STATISTIC# = s.STATISTIC# and
                  name = 'session pga memory';
 
 
col name format a30;
select   sid,name,value/1024/1024
        from v$statname n,v$sesstat s

Система управления планами запросов SPM

SPM позволяет формировать «базу управления запросами» (SQL management base, SMB)

 

 

Модуль IMCE Drupal — работа с картинками в визуальном редакторе

 Сегодня мы научим его работать с картинками. В этом нам помогут два модуля Drupal: IMCE и IMCE Wysiwyg bridge.Давайте посмотрим, какие возможности для работы с картинками предоставляет нам редактор CKEditor по умолчанию. Переходим на страницу создания нового материала любого типа и переключаемся на формат текста «Full HTMS», для которого задан редактор CKEditor. Жмем на кнопку «Изображение» и попадаем в окно свойств изображения.Как видите, можно только добавить изображение с другого интернет ресурса, указав URL адрес в поле «Ссылка».

СОЗДАНИЕ ИНТЕРНЕТ-МАГАЗИНА НА DRUPAL 7 И DRUPAL COMMERCE ЧАСТЬ 1: ВВЕДЕНИЕ

Этой статьей я начинаю цикл посвященный созданию интернет магазина на CMS Drupal c использованием модуля Drupal Commerce. Данный текст будет включать в себя перевод доступный на данный момент литературы, а также советы пользователей с различных форумов и других интернет ресурсов.

Визуальный редактор Drupal — модуль Wysiwyg

WYSIWYG — аббревиатура, полученная от английского выражения «What you see is what you get», что в переводе означает «Получаю, то что вижу». 

Использование PSQL

Назначение
Psql это терминальный клиент, который поставляется вместе с PostgreSQL. Широко используется администраторами БД и разработчиками для интерактивной работы и выполнения скриптов.
Официальная документацию по psql расположена по адресу: http://www.postgresql.org/docs/current/static/app-psql.html
Запуск, выход, получение справки

Установка PostgreSQL

Варианты установки
PostgreSQL допускает различные варианты установки.
Предпочтительным способом является использование готовых пакетов, так как в этом случае
получается понятная, поддерживаемая и легко обновляемая установка.
Пакеты существуют для большинства широко распространенных систем (см. http://www.postgresql.org/download/):
• FreeBSD, OpenBSD (пакеты из Ports and Packages Collection)
• Red Hat, Debian, Ubuntu Linux (входит в дистрибутив ОС + репозиторий yum/apt)

Архитектура PostgreSQL

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

Введение в PostgreSQL

PostgreSQL (http://www.postgresql.org) — наиболее полнофункциональная, свободно распространяемая объектно-реляционная СУБД с открытым кодом. Разработанная в академической среде, за долгую историю сплотившая вокруг себя широкое сообщество разработчиков, эта СУБД обладает всеми возможностями, необходимыми большинству заказчиков. PostgreSQL активно применяется по всему миру для создания критичных бизнес-систем, работающих под большой нагрузкой.

Лицензирование

Типы лицензий
• Лицензии полного использования - Full Use (FU)
• Лицензии на специальные прикладные программы - Application
Specific Full Use (ASFU)
• Встроенная лицензия - Embedded Software License (ESL)
• Демонстрационная лицензия - Demonstration
• Лицензия на разработку - Development
• Техническая поддержка лицензий на разработку (Service Request
Pack)
• Лицензия для тестирования - Trial
Лицензии Demonstration и Development (Service Request Pack)
доступны только для официальных партнеров

Редакции Oracle Database 10g

Модуль / Редакция Personal Edition Standard Edition One Standard Edition Enterprise
Edition

Opensource Softwares for DBA

Greenshot A free screenshot capture & Annotation tool – Similar to Snagit.
Dropbox– Self explanatory!
SSH and telnet client
VNC Viewer
WinSCP

Oracle ASM Initialization Parameters

Есть несколько параметров инициализации, которые нужно задать для экземпляра Oracle ASM. Вы можете установить эти параметры с Oracle ASM Ассистент конфигурирования (ASMCA). Вы также можете установить некоторые параметры после создания базы данных с помощью диспетчера или SQL ALTER SYSTEM Oracle Enterprise или ALTER SESSION заявления.

Пример применения Result Cache на стороне сервера

Тема неновая, относится к «бородатым» новым фичам Oracle 11g, однако, технология хорошо работающая и, что важно, позволяющая при определённых условиях, существенно экономить ресурсы сервера RDBMS

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

Практическая часть

statistics_level

Параметр STATISTICS_LEVEL был введен в Oracle 9.2 и призван упростить управление параметрами, отвечающими за сбор статистики.
Согласно документации он может принимать значения:
STATISTICS_LEVEL = ALL | TYPICAL | BASIC
Уровень BASIC не предполагает сбора статистики. Прочие статистики активируются на соответствующем уровне параметра statistics_level:
SQL> select statistics_name, activation_level, description from v$statistics_level

DBMS_WORKLOAD_REPLAY и DBMS_WORKLOAD_CAPTURE

The other day I was playing around with the 11g Database Replay features and came across Arup Nanda's 11g-top-features articles on oracle site. Very very Nice! It goes in great depth detailing every step neatly with nice screen shots using Database Control. I went thru the steps and everything went clean!
Next, I decided to repeat all the steps using the DBMS_WORKLOAD_REPLAY packages and had to follow the documentation and a couple ML notes (mostly Note 445116.1 and Note 560977.1 ).

11g RMAN Virtual Private Catalog

В Oracle 11g, мы можем предоставить ограниченный доступ к каталогу RMAN для некоторых пользователей, так что они могут получить доступ только к ограниченный набор баз данных, зарегистрированных в каталоге RMAN.

Oracle 11g ASM Diskgroup Compatibility

Каждая дисковая группа ASM имеет 2 compatibility атрибута — compatible.asm и compatible.rdbms. В 10.2, $ ASM_DISKGROUP имеет несколько новых столбцов - COMPATIBILITY и DATABASE_COMPATIBILITY, но только в 11g Oracle сделал понятие атрибутов дисковой группы V$ASM_ATTRIBUTE вью. Таким образом, существует два способа, чтобы проверить атрибуты дисковой группы в 11g:

DBMS_SCHEDULER

SQL> desc DBMS_SCHEDULER
PROCEDURE ADD_EVENT_QUEUE_SUBSCRIBER
Argument Name Type In/Out Default?
------------------------------ --------- --------------
SUBSCRIBER_NAME VARCHAR2 IN DEFAULT
PROCEDURE ADD_WINDOW_GROUP_MEMBER
Argument Name Type In/Out Default?
------------------------------ --------- --------------
GROUP_NAME VARCHAR2 IN
WINDOW_LIST VARCHAR2 IN
PROCEDURE ALTER_CHAIN
Argument Name Type In/Out Default?
------------------------------ --------- --------------
CHAIN_NAME VARCHAR2 IN

SQL Access Advisor

Для оптимизации доступа к данным из запросов SQL, рекомендует соответствующий набор материализованных представлений и журналы, индексы и партиции.
- может рекомендовать партиционирование если таблица как минимум 10 000 строк
- может рекомендовать партиционирование при условии если таблица имеет предикаты и джоины на колоннах типа числа или даты

а тюнер creation of new indexes, restructuring of the SQL statements, or creation of SQL Profiles.

Backup and Restore of ASM Metadata in Oracle 11gR2 (md_backup and md_restore)

ASMCMD утилита была введена в Oracle 10g и предлагает некоторые основные возможности для навигации, поиска, мониторинга и управления, для полного описания смотрите документацию здесь .

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

СМЕРТЬ Михаил Светлов

Каждый год и цветет
И отцветает миндаль...
Миллиарды людей
На планете успели истлеть...
Что о мертвых жалеть нам!
Мне мертвых нисколько не жаль!
Пожалейте меня!
Мне еще предстоит умереть!
1929

Кодировка

Вопрос:Как можно решить проблемы, связанные с неверно заданной кодовой страницей?

Ответ:

Изменение DATABASE CHARSET
Перекодировки данных здесь не происходит, изменяется только пометка для Oracle. Вы должны точно представлять в какой кодировке ваши данные находятся.

Прежде, чем использовать этот метод проверьте, присутствует ли необходимая вам кодировка в списке допустимых :

SQL> select value from V$NLS_VALID_VALUES

where parameter='CHARACTERSET'
and (value like 'RU%' or value like 'CL%')
VALUE

CL8ISO8859P5

RU8PC866

Блокировки объектов

Cписок блокированных объектов Вывести список блокированных объектов с указанием идентификатора сессии, пользователя, блокирующего объект, схему-владельца и объект, типа объекта и типа блокировки.

 
select lo.session_id , lo.oracle_username locker , lo.os_user_name,o.owner||'.'||o.object_name object , o.object_type , 
DECODE(lo.locked_mode, 1, 'No Lock', 2, 'Row Share', 3, 'Row Exclusive', 4, 'Shared Table', 5, 'Shared Row Exclusive', 6, 'Exclusive') locked_mode 
from v$locked_object lo, dba_objects o where lo.object_id=o.object_id;

 

Automatic SQL Tuning

Automatic SQL Tuning, Oracle 11g автоматически запускаем SQL Tuning Advisor against
Шаги:
Статистика AWR используются для компиляции упорядоченный список SQL запросов с наибольшим влиянием на производительность в системе, где большое воздействие затрат CPU и времени ввода / вывода за последнюю неделю. Выкидываются уже настроенные или не настраеваемые запросы и запросы SQL, производительность которых проблемы вызваны проблем параллелизма.

SQL tuning advisor запускается на каждый запрос.Результат может включать в себя как профили SQL и других рекомендаций.

block change tracking

Режим block change tracking в ORACLE 10g и выше позволяет уменьшить время инкрементального бэкапа за счёт ведения лога изменённых блоков с момента бэкапа предыдущего уровня.

Как это работает?

ASM

Архитектура ASM

Для увеличения производительности и надежности ASM делит файлы данных и другие структуры базы данных на экстенты и распределяет эти экстенты по всем дисковым устройствам, входящим в дисковую группу. Вместо зеркалирования всего дискового тома ASM подвергает зеркалированию объекты базы данных для придания зеркалированию гибкости или рассредоточению объектов базы данных способом, наиболее подходящего для их типа.

Автоматическая регулировка нагрузки является еще одной ключевой характеристикой ASM. Когда требуется увеличение объема дискового пространства, к дисковой группе могут быть добавлены новые дисковые устройства, a ASM перенесет пропорциональное количество файлов с одного или с нескольких имевшихся ранее дисков на новые диски для поддержания общего баланса ввода/вывода для всех имеющихся дисков. Если влияние, оказываемое во время выполнения операций по перенастройке на подсистему ввода /вывода, велико, скорость перенастройки может быть уменьшена за счет применения параметров инициализации.

Для ASM необходим особый экземпляр Oracle, который предназначается для поддержки взаимодействия между традиционным экземпляром Oracle и файловой системой. Компоненты программного обеспечения ASM поставляются вместе с программным обеспечением базы данных Oracle и всегда доступны в тех случаях, когда при создании базы данных для табличных пространств SYSTEM, SYSAUX и для других табличных пространств был выбран тип хранения ASM.

Однако использование ASM не избавляет от необходимости смешивать дисковые группы ASM с «ручными» методами управления файлами данных, описанными выше. Тем не менее, простота использования и высокая производительность ASM становятся веским доводом в пользу применения ASM для всех потребностей хранения.

Для поддержки экземпляров ASM появились два новых фоновых процесса Oracle: RBAL и ORBn. Процесс RBAL координирует всю дисковую активность для дисковых групп, в то время как ORBn, где n может быть числом от 0 до 9, выполняет фактическое перемещение экстентов между дисками, входящими в дисковую группу.

Для баз данных, использующих ASM, также появились два новых фоновых процесса: OSMB и RBAL. Процесс OSMB осуществляет взаимодействие между базой данных и экземпляром ASM, в то время как RBAL от имени базы данных выполняет открытие и закрытие дисков в составе дисковой группы.

Automatic Diagnostic Repository (ADR)

дока

FLASHBACK TECHNOLOGY IN ORACLE DATABASE 11g

Flashback Drop обеспечивает защиту при удалении объектов, поскольку можно очень быстро и легко восстановить таблицу и связанные с ней компоненты.
Flashback Query позволяет восстанавливать единовременные копии данных, которые могли быть случайно удалены или изменены
Flashback Version Queryобеспечивает механизм просмотра изменений, произошедших в БД с течением времени на уровне строк.
Flashback Transaction Query – обеспечивает механизм просмотра изменений в БД на уровне транзакций.

Oracle 11g New Feature: RMAN Data Recovery Advisor

In Oracle 11g, RMAN предоставляет новый advisor под названием Data Recovery Advisor (DRA). DRA имеет несколько новых команд, чтобы помочь администраторам баз данных для выполнения задачи восстановления.
Чтобы вывести список failures баз данных, вы можете выдать команду:

RMAN

Ниже перечислены некоторые опции команды SHOW:

инициализирующие параметны

REMOTE_LOGIN_PASSWORDFILE

Установка этого параметра в NONE заставляет Oracle Database вести себя так, как будто файл паролей не существует. То есть, нет привилегированных соединений и не разрешается небезопасное соединение.

установка EXCLUSIVE: (по умолчанию) файл пароля может использоваться только с одним экземпляром одной базе данных. Только элемент EXCLUSIVE файл может быть изменен. Использование EXCLUSIVE файл паролей позволяет добавлять, изменять и удалять пользователей. Это также позволяет вам изменять пароль SYS с командой ALTER USER.

Hstore — key-value расширение для postgresql

Наверное, не все знают, что для postgresql существует большое количество расширений, которые называются contrib модулями.

RMAN delete obsolete = ORA-19606: Cannot copy or restore to snapshot control file, RMAN-06214: Datafile Copy, etc…

How to solve ORA-19606: Cannot copy or restore to snapshot control file error:
----------------------------------------------------------------------------------

переименовать партиции

Задача: переименовать ошибочные названия партиций.

Необходимо установить VALUES LESS THAN на +1 месяц выше, либо изменить название партиции на -1 месяц меньше, только партиции при этом должны оставаться в наличии с 01.01.2012 года по 01.01.2016, т.е. с P20120101 до P20160101.

Например:

-- на данный момент
PARTITION p20120801 VALUES LESS THAN (TO_DATE('01-08-2012', 'DD-MM-YYYY')),

-- необходимо изменить на
PARTITION p20120801 VALUES LESS THAN (TO_DATE('01-09-2012', 'DD-MM-YYYY')),

v$transportable

Сегодня понадобилось мигрировать БД между платформами HPUX и AIX, и сразу решил это описать. Небольшое усложнение этой задачи в том, что на этих платформах разные версии БД и одновременно с переносом нужно еще и обновить бд с 11.2.0.2, на 11.2.0.3.

Сразу оговорюсь, что процесс разворачивания ПО Oracle Database в этой заметке описывать не буду.

Для начала нужно узнать endian платформ между которыми мигрируем, так как от порядка байтов зависит какие преобразования с БД нам нужно будет сделать. Данную информацию можно взять из представлений:

V$RECOVERY

V$RECOVERY_LOG

Показывает список архивных журналов, которые необходимы, чтобы закончить восстановление носителя. Информация извлекается из представления V$LOG_HISTORY. Это представление полезно только для процесса Oracle, делающего восстановление. Для всех остальных пользователей представление будет пустым.

V$RECOVER_FILE

Показывает статус файлов, для которых необходимо выполнить восстановление.

V$RECOVERY_AREA_USAGE

Показывает информацию об использовании областей восстановления.

V$RECOVERY_FILE_DEST

чистим логи

Где это все лежит

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/11.2.0/db_1/dbs/arch
Oldest online log sequence 748
Next log sequence to archive 752
Current log sequence 752

находим самый ранний

SQL> select min(RESETLOGS_TIME) from v$archived_log;
07-APR-14

удаляем

10 примеров использования команды Ping

полезно лично мне
большой пакет со статистикой

ping -w 5 -s 65507 10.0.8.29
PING 10.0.8.29 (10.0.8.29) 65507(65535) bytes of data.
65515 bytes from 10.0.8.29: icmp_seq=1 ttl=254 time=1.30 ms
65515 bytes from 10.0.8.29: icmp_seq=2 ttl=254 time=0.881 ms
65515 bytes from 10.0.8.29: icmp_seq=3 ttl=254 time=0.825 ms
65515 bytes from 10.0.8.29: icmp_seq=4 ttl=254 time=0.768 ms
65515 bytes from 10.0.8.29: icmp_seq=5 ttl=254 time=0.850 ms

Как включить трассировку сессии?

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

alter system set timed_statistics=true

если трассировка включается в текущей сессии, тогда эта команда выглядит так:
alter session set timed_statistics=true

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

SQL> select value from v$parameter p
2 where name='max_dump_file_size'
3 /

СОЗДАНИЕ DIRECTORY В ORACLE

Объект DIRECTORY может потребоваться для работы пакета UTL_FILE или иных PL/SQL процедур и функций, которым требуется создание или чтение файлов операционной системы.

Управление SQL-планами в Oracle Database 11g

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

ORA-600 [32695] [hash aggregation can't be done]

Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.1.0.6 [Release 10.2 to 11.1]
Information in this document applies to any platform.
***Checked for relevance on 17-Nov-2011***

SYMPTOMS

When running a statement that involves a GROUP BY operation, the following error is raised:

ORA-00600: internal error code, arguments: [32695], [hash aggregation can't be done], [], [],
If we look in the trace file, under Call Stack Trace section, we see the functions:

Как посмотреть план исполнения SQL запроса ?

предлагаю четыре варианта под разные случаи

1. Вариант EXPLAIN PLAN.

Структура каталогов и файлов PostgreSQL

СУБД PostgreSQL в разных операционных системах имеет практически идентичную структуру каталогов. В данной статье рассматривается стандартная структура каталогов для ОС Ubuntu 12.04.

По умолчанию PostgreSQL устанавливается в папку /var/lib/postgresql//main. Основной каталог СУБД содержит подкаталоги с пользовательскими данными и служебной информацией.

postmaster.opts - файл, в котором сдержится командная строка с параметрами, с помощью которой была запущена СУБД.
На моем компьютере в этом файле хранится следующая строка

Upgrade Postgres из 9.3 в 9.4 способ 1, через pg_dumpall

Запускаем версию 9.3
[postgres@bi-6 ~]$ /usr/local/pgsql/bin/pg_ctl -D /u02/pg -l logfile start
server starting

Как upgrade Postgres из 9.3 в 9.4 без потери реальности?

я так обновлял:

sudo pg_createcluster --locale ru_RU.utf8 9.2 main
sudo -u postgres -i
mkdir upgrade
cd upgrade/
/usr/lib/postgresql/9.2/bin/pg_upgrade -c -k -b /usr/lib/postgresql/9.0/bin -B /usr/lib/postgresql/9.2/bin -d ../9.0/main/ -D ../9.2/main/ -o " -c config_file=/etc/postgresql/9.0/main/postgresql.conf " -O " -c config_file=/etc/postgresql/9.2/main/postgresql.conf "

это только check (проверка) если всё ок проходит, то убираем ключ -c и делаем реальный upgrade

Открыть порт Linux и посмотреть открытые средствами самой системы

В ОС Linux понятие открытие порта немного звучит некорректно. Можно, конечно закрыть сначала все соединения и потом открыть порт Linux, который необходим.

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

Определение открытых портов

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

Поставить 9.4

Смотрим что имеем
cat /etc/*-release
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

Инсталируем PostgreSQL 9.4 Repository

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-5-i386/pgdg-redhat94-9.4-1.noarch.rpm

Как определить версию Unix системы

Можно узнать к какому типу относится ОС:

Shared server

Достаточно часто администраторы БД Oracle недооценивают возможности Shared server при большом количестве соединений. Ниже будет на примере базы Супермага рассмотрена настройка Shared сервера, но суть подойдет и для других баз Oracle. Итак, Супермаг, собака такая, даже на простое подключение к БД тратит минимум 3 сессии, что в сумме дает целый ворох простаивающих, но выделенных процессов на сервере, пожирающих достаточное количество оперативки. Маленький ликбез, хоть он и описан уже на миллионе сайтов: Oracle позволяет организовать два типа подключений.

простой exp

только метданные некоторых схем

expdp system METADATA_ONLY chemas=DWHMOS,ODI_MREP,ODI_WREP,BO31REP,ODI_D,SRV2,APLLO,BO31REP2,OUTLN,TEST_APLLO,BO31AUDIT,FLOWS_FILES,DBFMOS,TRACKER,ORDPLUGINS,ODI_R,ODI_WREP_2,SRV,SI_INFORMTN_SCHEMA,OWB,DWH

directory=DP_DIR dumpfile=dit1.dmp logfile=dit1.log

часто используемый

[oracle@dit-prod ~]$ expdp system tables=DWHMOS.TMP_EMIAS_APRWORK,DWHMOS.TMP_EMIAS_APSTO directory=DP_DIR dumpfile=tmp_emias.dmp logfile=tmp_emias.log

Мониторинг индексов

grant select on V_$SQL to SSDR_SOURCE;
grant select on V_$SQL_PLAN to SSDR_SOURCE;
grant select on V$SQL_BIND_CAPTURE to SSDR_SOURCE;

Создадим таблицы для хранения полезной информации для анализа:

-- таблица для хранение информации из V$SQL по интересным для нас обьектам
CREATE TABLE monitoring_index_usage_table as
SELECT *
FROM v$sql s
WHERE s.hash_value IN
(SELECT v.hash_value FROM v$sql_plan v WHERE v.object_name = 'I#SA$DISTR_STOCK#SP_ST_DT_MT');

-- Add/modify columns
-- Add/modify columns

Задача на 10 тыщ

Задача:

На железнодорожных станциях A, B и C имеются билетные кассы, в которых пассажир может купить билет на любой участок маршрута с любой станции: как на весь маршрут, так и на любой из его отрезков. Компьютеры во всех билетных кассах соединены локальной сетью, которая ненадежна и может давать сбои. Кроме того, компьютер каждой станции соединен локальной сетью с платежной системой. Оплатить билет пассажир может только с помощью карты этой системы. Вы участвуете в разработке ряда компонентов системы, предназначенной для бронирования билетов.

сносим партиции

ALTER TABLE DROP PARTITION  UPDATE GLOBAL INDEXES;

 

добываем все таблицы с партициями

select TABLE_NAME,PARTITIONED

from all_tables

where owner='BILLING7' and PARTITIONED!='NO'

BM_ACTION_LOG YES DAILY_BACKUP YES BM_CDR_ACCT YES BM_CDR_FILE YES BM_APERIODIC_ACCT YES BM_PERIODIC_ACCT YES RADACCT YES BM_SERVICE_MONEY YES

или все пучком

"\*" команды

Просмотреть ново созданную таблицу можно воспользовавшись командой \d
, которая выведет содержимое таблицы . Эта же
команда без параметров приведет к выводу на терминал названий всех
таблиц в базе данных (аналог "show tables;" в MySQL).

Помимо "\d" среда Postgres предоставляет и другие не SQL команды.
Рассмотрим их:

10 способов сделать резервную копию в PostgreSQL

Многие разговоры про бэкапы начинаются с присказки что люди делятся на две категории… так вот я отношусь к тем людям которые делают бэкапы. Правильно настроенное резервное копирование и проверка резервных копий укрепляет сон. А наличие заранее написаных и проигранных инструкций по восстановлению вообще укрепляет пищеварение и иммунитет. Так вот, за время работы с PostgreSQL мне довелось часто настраивать резервное копирование, при этом условия и требования были самые разные. Однако при этом набор инструментов за редким исключением оставался неизменным.

pg_ctl

Стоп - старт 9.4.4

/usr/pgsql-9.4/bin/pg_ctl -D /u02/pg4 stop
/usr/pgsql-9.4/bin/pg_ctl -D /u02/pg4 start

pwd
/usr/local/pgsql/bin

/usr/local/pgsql/bin/pg_ctl -D /u02/pg start
/usr/local/pgsql/bin/pg_ctl -D /u02/pg stop

Name

pg_ctl -- start, stop, or restart a PostgreSQL server
Synopsis

Просто и доступно про триггеры PostgreSQL

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

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

-- Таблица пользователей
CREATE TABLE users
(
"name" text
)

Что нужно знать об индексах gin и gist

Индексы используются только для ускорения операций
Результат выполнения запроса не зависит от использования индексов
Индексы не всегда ускоряют операции
Для ускорения полнотекстового поиска можно использовать два индекса - на основе GiST [GIST] или GIN [GIN].

Быть знаменитым некрасиво. Борис Пастернак

Быть знаменитым некрасиво.
Не это подымает ввысь.
Не надо заводить архива,
Над рукописями трястись.

Цель творчества - самоотдача,
А не шумиха, не успех.
Позорно, ничего не знача,
Быть притчей на устах у всех.

Но надо жить без самозванства,
Так жить, чтобы в конце концов
Привлечь к себе любовь пространства,
Услышать будущего зов.

И надо оставлять пробелы
В судьбе, а не среди бумаг,
Места и главы жизни целой
Отчеркивая на полях.

C-функции для PostgreSQL (gcc postgresql function)

Введение
Данная статья содержит материалы, посвященные написанию на C функций
для PostgreSQL - оказывается, делать это довольно легко, ну а бонусов
вы получаете существенно больше, чем если бы вы писали всю ту же
логику на процедурных языках. Скомпиленные в shared object функции
затем можно будет загрузить в PostgreSQL и использовать по своему
усмотрению как SQL команды, например.

Констрейнты

Список всех констрейнтов

Полнотекстовый поиск в PostgreSQL

Введение

Полнотекстовый поиск (Full Text Search, FTS) - это не новая технология. Самые ранние патенты, связанные с поиском документов по заданной теме, были зарегистрированы в 1963 году, более чем 45 лет назад. Эти патенты включают "CONTENT ADDRESSABLE MEMORY APPARATUS" (US Pat. 3290659 - зарег. 30.12.1963), "SCAN CONTROL, AND NORMALIZATION FOR A CHARACTER RECOGNITION SYSTEM" (US Pat. 3295105 - зарег. 27.08.1964) и "INFORMATION RETRIEVAL SYSTEM AND METHOD" (US Pat. RE26429 - зарег. 08.12.1964).

Схемы

Схемы в postgresql это несколько иное понятие, чем в oracle. Понятие пользователь и схема несколько разнесены.

Когда мы создаем в postgresql базу - мы создаем кластер баз.
./postmaster -i -D /u02/pgsdata >logfile 2>&1 &

/usr/local/pgsql/bin/initdb -D /u02/pg --locale=ru_RU.UTF-8

потом создаем базу в кластере

/usr/local/pgsql/bin/createdb test

цепляемся к ней

/usr/local/pgsql/bin/psql -d test

Неполное восстановление

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

RMAN> LIST BACKUP OF ARCHIVELOG ALL;
List of Archived Logs in backup set 4
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 142 1559239 07-NOV-11 1559289 07-NOV-11

Перед восстановлением монтируем БД:
SQL> alter database mount;

работа с композиционными типами


CREATE TYPE complex AS (
r double precision,
i double precision
);
CREATE TYPE inventory_item AS (
name text,
supplier_id integer,
price numeric
);
CREATE TABLE on_hand (
item inventory_item,
count integer
);
INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);

структура памяти oracle

ORACLE в оперативной памяти держит 2 больших структуры памяти:

PostgreSQL и Oracle глазами DBA

Привлекает внимание волнение компании Oracle, которые проявляет озабоченность по поводу возможности наиболее жадных (смотри экономных) адептов перейти на бесплатный продукт типа postgresql. А компания Oracle так просто озабочиваться ничем не будет. Значит чуют достойного конкурента. Изучим как этот вопрос поподробнее.

Марк Ривкин из Oracle просит не спешить с миграцией на PostgreSQL. Слева направо: Владимир Захаров («Ланит»), Владимир Рубанов («НТЦ ИТ РОСА»), Марк Ривкин, Александр Жижкин («Иновентика технолоджес») и Олег Бартунов (Postgres Professional)

Зачем использовать хеш?

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

Оконные функции

window function выполняет вычисления над списком строк в таблице, которые как-то относятся к текущей строке. Это сравнимо с типом вычислений, которые могут быть выполнены с помощью какой-либо агрегатной функции. Но в отличие от обычных агрегатных функций, использование оконной функции не заставляет строки группироваться в одну; строки сохраняют свои отдельные значения. Другими словами, оконная функция позволяет получить доступ более чем только к текущей строке результата запроса.

Аналитические функции

Статья разбита на следующие параграфы:
Немного теории
Общее понятие
Классификация функций
Конструкция секционирования
Конструкция упорядочения
Конструкция окна
Окна диапазона
Окна строк
Небольшие важные замечания
Немного примеров
Перечень функций из книги Тома Кайта
Аналитические функции используют общий синтаксис и предоставляют специфические возможности.
Чтобы понять принцип написания аналитических функций, необходимо понять
как секционировать данные
как упорядочивать данные

скрипты

full_backup.sh
#!/bin/bash
## prepare variables
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=/u01/app/oracle/product/11.2.0/db_1/bin:$PATH
export ORACLE_SID=hd
export NLS_DATE_FORMAT='dd.mm.yyyy hh24:mi:ss'
CONN=/
SCRIPT_DIR=`dirname $0`
if [ "$SCRIPT_DIR" = "." ]; then
SCRIPT_DIR=`pwd`
fi
SCRIPT_FILE=`basename $0 | cut -f1 -d'.'`
echo script-file=$SCRIPT_FILE
RMAN_FILE=$SCRIPT_DIR/$SCRIPT_FILE.rman

Настройка производительности PostgreSql

Настройка сервера

В этом разделе описаны рекомендуемые значения параметров, влияющих на производительность СУБД. Эти параметры обычно устанавливаются в конфигурационном файле postgresql.conf и влияют на все базы в текущей установке.
Используемая память
Общий буфер сервера: shared_buffers

PostgreSQL не читает данные напрямую с диска и не пишет их сразу на диск. Данные загружаются в общий буфер сервера, находящийся в разделяемой памяти, серверные процессы читают и пишут блоки в этом буфере, а затем уже изменения сбрасываются на диск.

Создание БД (не кластера)

Убедимся что запущено

[root@bi-6 u02]# ps -fu postgres
UID PID PPID C STIME TTY TIME CMD
postgres 1168 22959 0 18:17 pts/0 00:00:00 /usr/local/pgsql/bin/postgres -D /u02/pg
postgres 1173 1168 0 18:17 ? 00:00:00 postgres: checkpointer process
postgres 1174 1168 0 18:17 ? 00:00:00 postgres: writer process
postgres 1175 1168 0 18:17 ? 00:00:00 postgres: wal writer process
postgres 1176 1168 0 18:17 ? 00:00:00 postgres: autovacuum launcher process

Проблемы с кодировкой Encoding

Возникли вопросы по вставке данных в таблицу. PostgreSQL база не с тем Encoding создана (надо UTF8 а у меня LATIN1).

Смотрим какие БД и с чем созданы

Ограничение целостности PostgreSQL

NOT NULL
Не допускает появление значений NULL в колонке. При insert или update null выйдет ошибка.
UNIQUE
Создание уникального индекса для колонки, при этом можно вставить несколько значений NULL. Если нужно ограничение на несколько колонок (комбинация значений уникальна) - нужно использователь отдельную колонку с указанием UNIQUE и перечислением колонок, по которым ограничение. Добавление ограничения уникальности автоматически создаст уникальный btree индекс на колонку или группу колонок, использующих данное ограничение.
PRIMARY KEY

Индексы

PostgreSQL предлагает 4-ре типа индексов: B-tree, Hash, GiST и GIN. Каждый тип индекса имеет свой алгоритм реализации, что позволяет существенно увеличить быстродействие, если для определённого вида данных выборать определённый типа индекса.

PostgreSQL позволяет создавать индексы с использованием выражений, например: CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));

PostgreSQL позволяет создавать частичные (partial) индексы, используя выражение WHERE, например: CREATE INDEX orders_unbilled_index ON orders (order_nr) WHERE billed IS NOT true;.

Анонс

Размер базы данных
Максимальный размер БД Неограничен
Максимальный размер таблицы 32 TB
Максимальный размер записи (строки) в таблице 1.6 TB
Максимальный размер поля в записи (строке) 1 GB
Максимальное количество записей (строк) в таблице не ограничено
Максимальное количество полей (колонок) в таблице 250 - 1600 в зависимости от типа данных в колонке
Максимальное количество индексов на таблицу не ограничено

Концепции

Основное понятие в Postgres - это класс, т.е. именованный набор экземпляров объектов. Каждый экземпляр имеет одинаковое множество именованных атрибутов, а каждый атрибут имеет определенный тип. К тому же, каждый экземпляр имеет постоянный идентификатор объекта (OID), который является уникальным во всей установке. Т.к. синтаксис SQL ссылается на таблицы, мы будем использовать термины таблица и класс как взаимозаменяемые. Также, SQL строка - это экземпляр и SQL колонки - это атрибуты.

история POSTGRESQL

Откуда все взялось.

Генеалогическое дерево PostgreSQL начинается в 1977 году в Калифорнии в университете Беркли. Реляционная база данных Ingres разрабатывалась там с 1977 по 1985 год. В 1986 году она вышла на коммерческий рынок от компании Relation Technologies / Ingres Corporation, сейчас она живет и здравствует под названием CA-INGRES II владелец компания Computer Associates.

Как в PostgreSQL посмотреть список баз, таблицы и пользователей

SELECT * FROM information_schema.tables WHERE table_type='BASE TABLE' and ...

настройка и создание файла плана выгрузки ora2pg.conf

Ora2Pg использование

По определению исполняемый файл дежит тут /usr/local/bin/ora2pg или тут /usr/bin/ora2pg.
Файл с конфигурацией /etc/ora2pg/ora2pg.conf
По идее исполняемый файл можно просто запустить и он сам найдет файл конфигурации, но хорошо бы посмотреть что там наконфигурировалось по умолчанию и поправить.
Что я и сделала.

Если вы хотите вызвать другой конфигурационный файл, то укажите его с ключом -с.

/usr/local/bin/ora2pg -c /etc/ora2pg/new_ora2pg.conf

ora2pg установка

PostgreSQL установка

PostgreSQL является объектно-реляционной системой управления базами данных (ОРСУБД) на основе POSTGRES, версия 4.2, разработанной в Университете Калифорнии в Беркли департаменте компьютерных наук.

PostgreSQL является open source потомком оригинального кода Berkeley. Он поддерживает большую часть стандарта SQL и предлагает множество современных функций:

Cложные запросы
Внешние ключи
Триггеры
Представление
Транзакционная целостность (transactional integrity)
Управление конкурентным доступом с помощью многоверсионности

Инсталяция PGADMIN на postgesql

ставим уже готовый собранный отсюда http://mirror.yandex.ru/epel/6/i386/pgadmin3-1.20.0-1.el6.i686.rpm

Скачиваешь, и ставишь его командой rpm –ivh файл.рпм

___________ ТО ЖЕ ИЗ ИСХОДНИКОВ

скачиваем дистрибутив - исходники

wget http://ftp.postgresql.org/../../pub/pgadmin3/release/v1.8.0/rhel-5/srpm/...

трассировка

select sid,serial#,pid from v$session where sid=280

begin
sys.dbms_system.set_ev(280, 48459, 10046, 12, '');
end;

\

SELECT s.SID, s.SERIAL#,p.spid, p.pid
FROM V$SESSION S, V$PROCESS p
WHERE s.sid=280 and
(
s.STATUS = 'ACTIVE'
) AND ( (s.USERNAME is not null) and (NVL(s.osuser,'x') <> 'SYSTEM') and (s.type <> 'BACKGROUND') )
and (p.addr(+)=s.paddr)
order by "SID" ASC

Размер логов

сколько логов переключается в час

redo

select * from v$statname q, v$sesstat v where q.name='redo size' and v.STATISTIC#=q.STATISTIC# and v.VALUE>0 order by v.VALUE desc

Покажет сессии, которые больше всего сгенерили логов с момента своего возникновения.

Планировщик заданий в Oracle

СУБД Oracle — большой и сложный механизм, требующий выполнения определенных плановых работ, таких как сбор статистики о хранимых объектах или сбор/чистка внутренней информации. Необходимость осуществлять плановый запуск работ могут испытывать и пользователи БД.

Configuring HugePages for Oracle on Linux (x86-64)

Закрепи SGA в памяти через HugePages.

Увеличиваешь SGA до скольки тебе надо. Проверяешь, что вышло через ipcs -m (там в байтах).
Проверяешь, какого размера страницы - grep Huge /proc/meminfo (тут вкилобайтах)

Далее поделить значение из ipcs -m на Hugepagesize (не забыть про разный масштаб), к полученному добавить несколько десятков единиц, и установить в vm.nr_hugepages (через sysctl.conf).

Проверить limits.conf на предмет ограничения memlock для оракла.

PGA настроить

select
name,
decode(unit,'bytes',round((value/1024/1024),2),value) AS VALUE,
decode(unit,'bytes','MB',unit) as unit
from v$pgastat;

SQL> select name,decode(unit,'bytes',round((value/1024/1024),2),value) AS VALUE,decode(unit,'bytes','MB',unit) as unit from v$pgastat;

Популярно о Supplemental Logging

Если достаточно просто понять для чего Supplemental Logging нужен, то вопросы об условном и обязательном журналировании, объеме дополнительно генерируемого потока журнальных данных и другие более тонкие технические вопросы всегда вызывают дополнительные вопросы.

Кроме того, еще и сам Oracle не так глубоко описывает это влияние, а если и описывает то в разных местах документации. Теоретическую информацию о Supplemental Logging еще можно найти в блогах и на металинке, но с практической информацией все сложно.

Block Change Tracking

Block Change Tracking как раз таки призван снимать нагрузку с системы при инкрементал-бэкапах, а не дополнительно грузить ее. Тем более на OLTP-системах. Обеспечивая отслеживание измененных блоков для оптимизации инкрементального резервирования за счет устранения необходимости полного просмотра файлов данных в ходе резервирования.
Информация о физическом расположении всех изменений, заносится в файл отслеживания изменений change tracking file фоновым процессом CTWR (change tracking writer).

Создание резервной копии и восстановление метаданных

оздание резервной копии и восстановление метаданных

Многие люди считают ASM базой данных со своей собственной памятью. Это не совсем так – ASM не хранит данные; их хранит база данных. Однако экземпляр ASM хранит метаданные, такие как имена дисковых групп; диски, входящие в них; директории и т.д. Эти метаданные хранятся в заголовках дисков.

Flashback Data Archive

Flashback Data archive is one of the Oracle 11g feature (Oracle Total Recall).

A flashback data archive это логический контейнер для хранения исторической информации. Хранится в одном или более тейблспейсе и хранит историю одной или более таблиц.

Retention Period :

Администратор создает flashback data archive с именем fla1, which uses up to unlimited of the tablespace and whose data will be retained for one years. If you want to set up your database so that information in the fla1 is automatically deleted, the day after 1 years is complete.

Архив ретроспективных данных (Flashback Data Archive)

В Oracle Database 11g функциональность Flashback Data Archive (архивирование ретроспективных данных) совмещает лучшее из двух миров: простоту и мощь ретроспективных запросов, которые не зависят от скоротечной памяти типа undo (отката). Это потому, что Flashback Data Archive записывает изменения в место более длительного хранения, в область Flashback Recovery Area.

Механизм сбора и воспроизведения нагрузки базы данных Database Replay

АБД запускает процесс сбора нагрузки, который фиксирует активность внутри базы данных.
Процесс сбора нагрузки записывает результаты в файлы сбора нагрузки в специальную директорию (Capture Directory).
Через некоторое время АБД останавливает процесс сбора нагрузки и перемещает файлы на тестовую систему в директорию повтора (Replay Directory).
АБД запускает процесс воспроизведения нагрузки, а также несколько клиентов повтора для воспроизведения.
Файлы записи нагрузки воспроизводятся на тестовой системе.

Сбор нагрузки

Пример запроса Flashback Version Query

Вывести все значения поля salary на протяжении какого-то периода времени.

SELECT salary
FROM employees3
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE
WHERE employee_id=107;

Узнать время, когда произошло изменение данных

SELECT versions_starttime "START_DATE", versions_endtime "END_DATE" , salary
FROM employess
VERSIONS BETWEEN SCN NIMVALUE AND MAXVALUE
WHERE last_name = 'Lorentz';

Flashback Query — ретроспективные запросы Oracle

В Oracle есть интересная возможность - извлекать данные по состоянию на заданное время в прошлом.
Эта технология называется Flashback Query. Давайте рассмотрим пример.

--создаем тестовую таблицу
create table tTest
(
id number,
value varchar2(100)
);
--вставляем строку:
insert into tTest(id,value) values(1,'oldValue');
commit;
--смотрим, что получилось:
select * from tTest;
--вот, что в таблице:
Id Value
1 oldValue

Free Memory, Swap, Oracle и прочее

Что такое память?

Advisors

SQL Tuning Advisor

ORA-01578: ORACLE data block corrupted in UNDO

SQL> STARTUP;
ORACLE instance started.

Total System Global Area 2.1379E+10 bytes
Fixed Size 2185160 bytes
Variable Size 1.0133E+10 bytes
Database Buffers 1.1207E+10 bytes
Redo Buffers 36151296 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-01578: ORACLE data block corrupted (file # 3, block # 240)
ORA-01110: data file 3: 'G:\APP\ORACLE\ORADATA\ORUSX2\UNDOTBS01.DBF'

При попыке пересоздать

ASM (Automatic Storage Management)

ASM (Automatic Storage Management) - повышает производительность путем автоматического рассредоточения объектов базы данных по большому количеству устройств, увеличивает доступность базы данных, так как позволяет добавлять в базу данных новые дисковые устройства, не останавливая ее; ASM автоматически, с минимальным вмешательством в работу производит выравнивание распределения файлов но устройствам.

3 способа задания избыточности:

Oracle Resource Manager

что такое RM ?
Основные определения

Группа потребителей ресурсов - определяет совокупность пользователей со схожими требованиями по использованию ресурсов системы и бд.

Ресурсный план - определяет, как распределяются ресурсы м\у различными группами потребителей ресурсов. Можно создавать под-планы внутри планов.

Директивы ресурсного плана - задает как ресурс делится м\у группами потребителей ресурсов.

Быстро про RMAN

Бекапы могут храниться как backup set (по умолчанию) и image copies:

backup set - данные хранятся в формате понятном только для RMAN. В Backup set состоит из Backup piece, каждый из которых может представлять из себя копию файла данных или копию управляющего файла, или копию архивлогов.
image copies - отличаются от копий, создаваемых, например с помощью команды cp, лишь тем, что информация о них заносится в управляющий файл или каталог восстановления.

Команда:
RMAN> BACKUP AS BACKUPSET DATABASE;
Создаст резернвую копию как backup set

Supplemental Logging

Теория

Итак, журнальные файлы обычно используются для восстановления экземпляра и восстановления носителя данных. Данные, которые необходимы для этих операций автоматически заносятся в журнальные файлы. Например, перед фиксацией транзакции сначала в журнал пишется информация, необходимая для ее повторения в случае форс-мажорной ситуации (например, выключение электропитания).

Система управления планами запросов

Изменение свойств планов в SMB

Процедура ALTER_SQL_PLAN_BASELINE позволяет устанавливать атрибутам ENABLED, FIXED и AUTOPURGE плана требуемые значения явочным порядком. Пример:

EXECUTE :retcode := DBMS_SPM.ALTER_SQL_PLAN_BASELINE -

( :sqlhandle, 'SYS_SQL_PLAN_38c100c08916fd8c', 'enabled', 'no' )

SELECT :retcode "Plans disabled:" FROM dual;

@baseline :sqlhandle

Просто затырить ссылку на 2 стендбая

Эксперименты с flash

create table a as select * from v$instance;
insert into a select * from v$instance;
commit;
insert into a select * from v$instance;
commit;
insert into a select * from v$instance;
commit;

SELECT to_char(START_SCN),to_char(START_TIMESTAMP,'dd-mm-yyyy mi:hh24'), to_char(COMMIT_SCN),to_char(COMMIT_TIMESTAMP,'dd-mm-yyyy mi:hh24'),
OPERATION FROM flashback_transaction_query where TABLE_NAME='A' order by 4;

Automatic Workload Repository

Возможности AWR

Можно разделить статистические данные собираемые AWR на два больших класса:

VUE

ORA-12170 & SQLNET.INBOUND_CONNECT_TIMEOUT

SQLNET.INBOUND_CONNECT_TIMEOUT появилась начиная с версии 9i.Определяется в sqlnet.ora и определяет в секундах сколько по времени клиент будет ждать коннект с базой и идентификацию.
Если в сети большие задержки и клиент не может установить соединение и аутентификацию в срок, то сервер БД терменирует попытку коннекта и пишет в журнал sqlnet.log сообщение про таймаут ORA-12170: TNS:Connect timeout occurred.
Сам клиент получает сообщение ORA-12547: TNS:lost contact или ORA-12637: Packet receive failed error message. IНачиная с 10g ORA-3136 может появляться в alert.log.

Включить режим работы FLASH BACK

FlashBack бывает полезен, когда нужно откатить изменения или посмотреть предыдущее состояние объектов в базе данных. Как следствие растет нагрузка на сервер, т.к. приходится хранить дополнительную информацию.

$ sqlplus / as sysdba

SQL> shutdown immediate;
SQL> startup mount exclusive;
SQL> alter database flashback on;
SQL> alter database open;

SQL> select flashback_on from v$database;

FLASHBACK_ON ------------------ YES

Как перенести LONG

CREATE OR REPLACE FUNCTION LONG_TO_CHAR
  ( in_table_name varchar,
    in_column varchar2,
    in_column_name varchar2,
    in_tab_name varchar2)
RETURN varchar AS
text_c1 varchar2(32767);
sql_cur varchar2(32767);
begin
sql_cur := 'select '||in_column||' from '||in_table_name||' where  ' ||in_column_name ||' = '|| in_tab_name ;
dbms_output.put_line (sql_cur);
 execute immediate sql_cur into text_c1;
 text_c1 := substr(text_c1, 1, 2000);

11g ACTIVE STANDBY

ctive Standby :

PRIMARY DB- APEX

STANDBY DB- APEXDG

Now you can bring up the standby database in read-only mode and continue to have the standby database updated from the primary. Here are the steps to achieve that:

1. Stop the managed recovery process on STANDBY database :
In APEXDG ( Standby database )

SQL > alter database recover managed standby database cancel;
Database altered.

2. Open the APEXDG – standby database as read-only:
SQL > alter database open read only;
Database altered.

Синхронизация биллинговой базы

Находим максимальное значение и тащим от него, таблицы работают только на вставку

CREATE OR REPLACE PROCEDURE BILLING7.sync_append
IS
i number := 0;
sql_del varchar(5000);
sql_text varchar(5000);
begin

sql_text :='select max(RADACCTID) i from billing7.RADACCT where trunc(ACCTSTARTTIME,''mm'')= TO_DATE(''2014-06-01'', ''YYYY-MM-DD'')';
execute immediate sql_text into i;

Немного полезностей об индексах и их реорганизации

Без рассмотрения контекста, в котором используется индекс, проанализируем некоторые величины, чтобы оценить состояние конкретного индекса.

1. INDEX_STATS

Основные команды по управлению оперативными журналами

Основные команды: создание и удаление групп, элементов групп, очистка файлов, выполнение контрольной точки, переключение журналов.
ALTER DATABASE ADD LOGFILE GROUP NN (‘C:\ORACLE\ORADATA\MY_DB\REDO1.LOG’, ‘C:\ORACLE\ORADATA\MY_DB\REDO2.LOG’) SIZE 100M; - создание группы оперативных журналов
ALTER DATABASE ADD LOGFILE MEMBER ‘C:\ORACLE\ORADATA\MY_DB\REDO3.LOG’ TO GROUP NN; - для добавления в существующую группу

Пакеты

Пакеты ищем тут http://pkg.oracle.com/solaris/release/en/search.shtml?token=libXp.so.1&a...
Документация по инсталяции oracle на solaris тут http://docs.oracle.com/cd/E11882_01/install.112/e24351/toc.htm#CIHFICFD

Работа с проектами

Описание технологии

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

ORA-28002

В Oracle 11 по умолчанию профиль устанавливает всякие лимиты. Например.

ORA-28002: дата действия пароля истечет в течение 6 дней

смотрим под каким профилем ходит проблемным пользователем. заодно и остальных глянем.

select username, profile from dba_users;
select * from dba_profiles where resource_name like '%PASS%' order by 1;

ALTER PROFILE DEFAULT LIMIT password_grace_time UNLIMITED;
ALTER PROFILE DEFAULT LIMIT password_life_time UNLIMITED;

ORA-19566: exceeded limit of 0 corrupt blocks for file : Block that not part of any segment

Getting this error,

RMAN-00571: ======================================================
RMAN-00569: ========= ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: =====================================================
RMAN-03009: failure of backup command on ch02 channel at 10/08/2012 18:18:35
ORA-19566: exceeded limit of 0 corrupt blocks for file /testdb/dev/oradata/test13.dbf

Get the file id of the above file using

select file_id from dba_data_files where file_name=’/testdb/dev/oradata/test13.dbf’;

File_id
——
16

Работа с архиваторами (tar, zip, gz, bzip2) из консоли Linux

Копировать с одного сервера на другой, можно между 2 другими scp database.tar oracle@192.168.3.7:/u01/distrib Краткая памятка по работе с архиваторами (программами управления файловыми архивами) из консоли в Linux. Работа с TAR в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы. Например чтобы запаковать текущую папку в tar-архив напишем где foo.tar имя которое будет присвоено полученному архиву, а "./" указание папки

шпаргалки по data pump

Перед импортом устанавливает нужную кодировку, куда будем грузить
select value from nls_database_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';
nls_lang=AMERICAN_AMERICA.AL32UTF8
NLS_LANG=RUSSIAN_RUSSIA.CL8MSWIN1251
export nls_lang=AMERICAN_AMERICA.CL8MSWIN1251

Создаем каталог

CREATE OR REPLACE DIRECTORY NOVARTIS_DIR AS '/oraupload/novartis';
GRANT READ, WRITE ON DIRECTORY SYS.NOVARTIS_DIR TO NOVADWH WITH GRANT OPTION;
GRANT READ, WRITE ON DIRECTORY SYS.NOVARTIS_DIR TO SYSTEM WITH GRANT OPTION;

Резервное копирование и восстановление данных (Команды RMAN)

FRA - Fast Recovery Area - область на диске для бекапов и архивных журналов
RMAN - Recovery Manager (утилита для резервного копирования и восстановление данных)

В большинстве случаев, рекомендуется настроить работу базы данных в режиме работы ARCHIVELOG.
ARCHIVELOGи и BACKUPы хранятся в FRA, необходимо, чтобы база данных имела возможность записи данных в эту область, иначе возникнет ошибка и база перестанет принимать команды пользователей. Поэтому, по мере заполенения FRA, необходимо ее очищать (исключительно средствами RMAN).

Посмотреть данные FRA:

Сессии к базе данных Oracle

Сессии к базе данных Oracle

Список:

Посмотреть текущие сессии к базе данных
Найти блокирующую сессию
Убить сессию
Убийство всех сессий к одной схеме

Посмотреть текущие сессии к базе данных

ночь с М4000

Irina Fast (23:56) :
сервер на солярке
оракл 11
билинг
висит не коннектися нормально

teo (23:57) :
на пинги отвечает?

Irina Fast (23:57) :
я зашла рутом много оракловых процессо и все висят

teo (23:57) :
ссх войти можешь?

Irina Fast (23:57) :
рман убила, убила несколько больших запросов

teo (23:57) :
а что в алерт логе?

Irina Fast (23:59) :
Fatal NI connect error 12170.

Oracle 11g AMM: MEMORY_TARGET, MEMORY_MAX_TARGET and /dev/shm

I knew in Oracle 11g with Automatic Memory Management (AMM), the database was able to give unused memory back to the OS, controlled by MEMORY_TARGET and MEMORY_MAX_TARGET.
This mechanism is present in 11g since day 1 (in 2007), but I never actually played with it.
MEMORY_TARGET and MEMORY_MAX_TARGET
The Oracle documents state the following:
MEMORY_TARGET specifies the Oracle system-wide usable memory.
MEMORY_MAX_TARGET (…) decide on a maximum amount of memory that you would want to allocate to the database for the foreseeable future.

Столбцы в строку

select table_name, max(sys_connect_by_path (column_name, ',' )) scbp from (select table_name, column_name, row_number() over
(partition by table_name order by column_name) rn from SYS.DBA_CONS_COLUMNS )
start with rn = 1
connect by prior rn = rn-1
and prior table_name = table_name
group by table_name
order by table_name

скрипт показывающий распределение памяти в solaris

#!/bin/ksh
#============================================================================
# File: oramem.sh
# Type: UNIX korn-shell script
# Author: Tim Gorman (Sagelogix Inc.)
# Date: 28jun02
#
# Description:
#
# This shell script utilizes the "pmap -x" command to total up the
# total amount of virtual memory used by all of the Oracle server
# processes (both "background" and "foreground") belonging to a
# database instance.
#
# Modifications:
# TGorman 28jun02 written for Solaris 2.8

Как правильно настроить параметры ядра управление ресурсами в Solaris 10 для установки Oracle

Перевод статьи Andrew Evdokimov «Correct way to configure Solaris 10 kernel parameters resource controls for Oracle installation». Оригинал статьи http://blogs.sun.com/ave/entry/correct_way_to_configure_solaris

Save an Oracle user password

Question: I need be able to sign-on with my end-users accounts to test the functionality of their application. I know that I can change their password, sign-on, do my testing, and then expire their password, but I don't want to unnecessarily force them my users to change their passwords. How can I extract a user password, save it, and then restore it after I have completed user testing?

Answer: A smart DBA always remembers that their customers are the end-users, and it's an Oracle best practice to be unobtrusive as possible.

Установка Oracle Application Express

Перед установкой

Необходимо проверить, что прослушиватель БД (listener) настроен.
Экземпляр Oracle должен быть сконфигурирован c XML DB. Если изначально это не было сделано, добавить XML DB можно с помощью утилиты Database Configuration Assistant (dbca).
Остановить все сервисы oracle (listener и пр.). Экземпляр БД (instance) при этом остается запущенным.
Загрузка последней версии Oracle Application Express

task manager command

taskmgr диспетчер задач из командной строки

1. Tasklist : This command is similar to “ps” command on Linux and is used to see the details of the programs and processes that are running in Windows. Tasklist can be applied to see how much memory and CPU time running processes are using, what DLL files they rely on, and other information. Thus it can be a very useful troubleshooting tool.trans WindowsXP: Using the Command prompt to see and kill processes

Nested loop, Hash join, Merge join упрощенно

Nested loop - (сильно грубое описание) Пробегаем по таблице 1 и для каждой строки из нее смотрим какие строки из таблицы 2 ей подходят.
Обычно очень быстро дает первые строки результата (если конечно таблица 2 не гигантская, а единственная строка из первой таблицы, которая попадет в результат - последняя). Еще алгоритм, практически не требует дополнительной памяти для промежуточной работы и индекс во второй таблице может сильно помочь.

Oracle. Основы стоимостной оптимизации. Джонатан Льюис

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

Как сделать Upgrate базы без ASM, RAC и прочих хитростей

Переход на новую версию Oracle то есть upgrade присходит 3 способами:

start upgrade

ставить другой новый нужный cофт с другом новом нужном хоуме
export ORACLE_HOME=новый хоум
open with upgrade option
upgrade database в скрипте $ORACLE_HOME/rdbms/admin/catupgrd.sql
shutdown
startup
скрипт $ORACLE_HOME/rdbms/admin/utlrp.sql для починки инвалидов

Скрипты для переноса с ASM

Стартуем с spfile специально сделанном на продакшн и подправленом в разумных пределах.

Меняем тайм зону для агента

export TZ=Etc/GMT+3

export TZ=Europe/Moscow

env | grep TZ
emctl resetTZ agent
...
This can be done for example by logging into sqlplus and doing at emdb
SQL> exec mgmt_target.set_agent_tzrgn('xxx:3872','Etc/GMT+3')
SQL> commit
unset TZ

Как добыть DBID

Мы остро нуждаемся в DBID всякий раз, когда мы потеряли все файлы базы данных, или всякий раз, когда нам нужно восстановить SPFile или управления файл.
После разного рода исследований нашли несколько способов узнать эту штуку и ниже приводится несколько путей получения DBID.

V$DATABASE
Если база данных открыта или смонтирована, запрос V$database с удовольствием снабдит вас DBID, а заодно и кучей другой полезной информации.
Если база данных лежит, но у вас есть control file тогда вы можете смонтировать базу и опять же спросить V$DATABASE.

И еще скрипты на восстановление (Oracle 10g Solaris)

run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
SET UNTIL SEQUENCE 34427 THREAD 1;
restore controlfile from '/qnap/vinny_backup/bm7_rman/cntrl_BM7_14896_1_20140401';
set dbid=3096235568;
alter database mount;
CATALOG START WITH '/qnap/vinny_backup/bm7_rman';
restore database;
release channel c4;
release channel c3;
release channel c2;
release channel c1;
}

Скрипт для создания клона

#!/bin/bash

Activate Standby as Production

Primary Site

Archive the current online redo log
ALTER SYSTEM ARCHIVE LOG CURRENT;
Send the ARCH files to the standby site

Standby Site

Восстанавливать контролфайл

Восстанавливать старый контролфайл можно:
restore controlfile from 'path/filename'
restore until time ... controlfile from autobackup
restore controlfile from autobackup maxdays 100

Все ты попробовал и у тебя везде 6172 (хотя при выводе от 2 и 3 у тебя должны были быть показаны правильные данные, за какой день файл ищется)
Осталось прочитать вторую часть ошибки (признайся -- тащил через FTP в ASCII режиме )

Ставим Oracle11g на solaris 10

Смотрим чего есть

ASM солярковый

ALTER DISKGROUP ALL MOUNT;
ALTER DISKGROUP FRA MOUNT;

SQL> alter system set asm_diskstring = '/dev/rdsk/*';

System altered.

SQL> select substr(name,1,10) name,substr(path,1,50) path, REDUNDANCY, TOTAL_MB, free_mb from V$ASM_DISK;

RAID. Просто о сложном

RAID (англ. redundant array of independent disks — избыточный массив независимых жёстких дисков) — массив из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива может обеспечивать различные степени отказоустойчивости и быстродействия. Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации (RAID 0).

Перенос, пеименование файлов БД

Контрольные файлы

Для переноса или переименования контрольников нужно
1.изменить параметр control_files с помощью команды ALTER SYSTEM,
2. остановить базу
3. перенести файлы физически
4. открыть номоунт базу
5. переименовывать файлы .
4. запустить базу.

Смотрим где лежат контрольные файлы в вьюшке V$CONTROLFILE.

SQL> select name from v$controlfile;

ШПАРГАЛКА ПО SED

Удалить символ # в файле и записать в другой файл
cat output_insert.sql | sed 's/#//g' > out.sql

Удалить строки содержащие шаблон и записать в другой файл
cat output_insert.sql | sed '/aabxvwaanaaar6rabh/d' > out.sql

Пространство между строками:

Двойное пространство между строками:

sed G

Двойное пространство между строками исключая пустые строки (на
выходе содержаться не больше одной пустой строки между двумя
строками с текстом):

sed '/^$/d;G'

пока куча

find /mnt/flstor/oracle/navgt/rman -mtime +2 -type f -print | sed 's/mnt\/flstor\/oracle/u01\/oradata\/bkup/g;' | while read f; do if [[ -e "$f" ]]; then ls -l $f; fi; done

find /mnt/flstor/oracle/ibso/rman/ -mtime +2 -type f -print | sed 's/mnt\/flstor\/oracle/u02\/oradata\/bkup/g;' | while read f; do if [[ -e "$f" ]]; then ls -l $f; fi; done

"Неужели не я" Иосиф Бродский

Неужели не я, освещенный тремя фонарями,
Столько лет в темноте по осколкам бежал пустырями,
И сиянье небес у подъемного крана клубилось?
Неужели не я? Что-то здесь навсегда изменилось.

Кто-то новый царит, безымянный, прекрасный, всесильный.
Над отчизной горит, разливается свет темно-синий,
А в глазах у борзых мельтешат фонари - по цветочку,
Кто-то вечно идет возле новых домов в одиночку.

Что можно настраивать:

1. Приложение:
1.1. Плохо написанный SQL
1.2. Распределение ресурсов
1.3. Плохое управление сессией
2. Настройка инстанса
2.1. Память
2.2. Структура базы данных
2.3. Конфигурация инстанса
3. Операционная система
3.1. Ввод-вывод
3.2. Своп
3.3. Параметры

Свободное пространство в объектах (индексы, таблицы)

Размер и свободное место табличных пространств

SELECT a.tablespace_name, "Free, MB", "Total, MB" FROM
(SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Total, MB" FROM dba_data_files GROUP BY tablespace_name
UNION
SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Total, MB" FROM dba_temp_files GROUP BY tablespace_name) a,
(SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Free, MB" FROM dba_free_space GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name (+)
ORDER BY a.tablespace_name;

О, память сердца...

1. SGA
1.1. Database Buffer Cache
1.1.1. Write List
1.1.2. Least Recent Used (LRU) List
1.1.2.1. Pinned buffers
1.1.2.2. Clean buffers
1.1.2.3. Free buffers или Unused
1.1.2.4. Dirty buffers
1.2. Redo Log Buffer
1.3. Shared Pool
1.3.1. Library Cache
1.3.1.1. Shared SQL Area
1.3.1.2. Private SQL Area (Shared Server Only)
1.3.2. Data Dictionary Cache
1.3.3. Server Result Cache
1.3.4. Other
1.3.5. Reserved Pool
1.4. Larger Pool
1.4.1. Response Queue
1.4.2. Request Queue

Процессы

этапы старта

spfile
SGA allocated
background proccesses
control file is read
redo log files are opend
datafile headers are checked for consistency
instance recovery is started (if abort)

Rman. Бекап полный, инкрементальный, комулятивный, дифференциальный

0-ой уровень - это фул бекап(то есть тот, который содержит все блоки с данными(10-ка)) при этом поддерживается возможность инкрементального бекапирования.

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

включение защиты словаря данных

То есть необходимо защищать словарь данных от доступа пользователей с системными привилегиями типа ANY (например, SELECT ANY TABLE ). Для этого параметр инициализации O7_DICTIONARY_ACCESSIBILITY устанавливается в значение FALSE. В Oracle9i и выше параметр O7_DICTIONARY_ACCESSIBILITY по умолчанию установлен в FALSE.

Predefined Roles, определенные роли

connect - create session, alter session, create synonym, create view, create database link, create table, create cluster and create sequence
resource - create table , create cluster, create sequence, create trigger create procedure, create type, create indextype and create operator
dba - все с опцией DBA
delete_catalog_role, execute_catalog_role, select_catalog_role Accessing data dictionary views (v$ views and static dictionary views)

Протоколы Oracle

Database Buffer Cache

буферный кеш организован двумя списками.

Write List

Писательный список Write List содержит модифицированные буферы. Это блоки данных, которые содержат измененные данные и должны были быть записаны в файлы данных.

Least Recent Used (LRU) List Последние используемые.

Все что есть у пользователя

Select * from DBA_users u where U.USERNAME = :OneObjectName order by username

Холодный бекап

BACKUP_DIR=C:\ORA_BACKUP\NOVADWH
RMAN_FILE=D:\oracle\rman\cold_backup.rman
Recovery Manager: Release 10.2.0.4.0 - Production on Thu Dec 12 06:30:00 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: NOVADWH (DBID=2113033022)
using target database control file instead of recovery catalog
RMAN> # Cold Backup NOVADWH
2> shutdown immediate;
3> startup nomount;
4> sql 'alter database mount';
5> allocate channel for maintenance type disk;
6> crosscheck backup;

Скрипты на копирование

Смотрим хвост чего-нибудь

@echo off
cd "\Users\bipartners"
(
echo LLCMN:
echo.
tail.exe -10 D:\oracle\admin\scripts\backup_llcmn\hot_backup.log
echo.
echo LLCPRMN:
echo.
tail.exe -10 D:\oracle\admin\scripts\backup_llcprmn\hot_backup.log
) > tails.log
start notepad tails.log

смотрим логи

@start notepad D:\oracle\admin\scripts\backup_llcmn\hot_backup.log
@start notepad D:\oracle\admin\scripts\backup_llcprmn\hot_backup.log

Горячий бекап в архивлоге база

SQL Loader

Умеет грузить данные из вне разных формалов, работать с внешними таблицами как со своими.

Профили и пользователи

Профиль (profile) – это поименованный набор ограничений на использование вычислительных ресурсов. Аналогия профиля – это роль. Заметьте, что роль – это набор привилегий (разрешений), а профиль – набор ограничений (запрещений). Самое важное отличие это то, что одному пользователю может быть назначен только один профиль (ролей может быть назначено сколько угодно).

Если не назначить явно никакого профиля, то будет назначен специальный профиль "по-умолчанию" (DEFAULT).

Констрейнты

Шесть типов ограничений создается двумя способами.

  1. NOT NULL
  2. unique
  3. primary key : NOT NULL + unique
  4. foreign key
  5. check
  6. REF

назначается CREATE TABLE, ALTER TABLE

Можно определить как и где применять констрейнт. только вот зачем этот бред нужен... не понимаю.

DEFERRABLE

Chechpoint

Зачем надо? Чтобы гарантировано периодически сбрасывать грязные блоки на диск и транзакции в редо логи из лог буфера.
2 вида. Инкрементальный и полный. Полный выполняется либо по требованию, либо при shutdown. Инкрементальный - перманентно.

условия DBWn и LGWR

DBWn, the Database Writer
DBWn скидывает грязные блоки

There are four circumstances that will cause DBWn to write: no free buffers, too many dirty buffers, a three-second timeout, and when there is a checkpoint.

1. нет свободных блоков
2. слишком много грязных
3. 3-секундный тайм аут
4. чекпоин

swap на solaris

SQL> startup
ORACLE instance started.

Как посмотреть размер таблицы?

Размер занимаемого таблицей табличного пространства можно посмотреть в представлении dba_extents с помощью следующего запроса:

SELECT owner, segment_name, segment_type,tablespace_name,
ROUND(SUM (BYTES) / 1024 / 1024) "SIZE (MB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents
WHERE owner = ‘HR’ AND segment_name = 'EMPLOYEES'
AND segment_type = ‘TABLE’
GROUP BY owner, segment_name, segment_type, tablespace_name

Размер таблицы так же можно посмотреть и в представлении dba_extents:

Полезные шпаргалки. Union Union all Intersect Minus

■ UNION Returns the combined rows from two queries, sorting them and removing duplicates.
■ UNION ALL Returns the combined rows from two queries without sorting or removing duplicates.
■ INTERSECT Returns only the rows that occur in both queries’ result sets, sorting them and removing duplicates.
■ MINUS Returns only the rows in the first result set that do not appear in the second result set, sorting them and removing duplicates.

Полезные шпаргалки. SET

SET DEFINE OFF - избежать запроса по амперсанту
SET DEFINE ON - соответственно разрешить
SET PAGESIZE 0 Сбрасывает всю информацию о форматировании страницы - заголовки столбцов, титулы, начальную пустую строку, разрыв страницы и т.п.
SET HEADING OFF Отключает изображение заголовков столбцов
SET FEEDBACK OFF Отключает вывод на экран строк возвращаемых запросом
SET VERIFY OFF Отключает вывод на экран текста SQL-команд до и после замены SQL*Plus формальных переменных их значениями

Полезные шпаргалки. DML DDL DCL TCL

The Data Manipulation Language (DML) commands:
■ SELECT
■ INSERT
■ UPDATE
■ DELETE
■ MERGE
The Data Definition Language (DDL) commands:
■ CREATE
■ ALTER
■ DROP
■ RENAME
■ TRUNCATE
■ COMMENT
The Data Control Language (DCL) commands:
■ GRANT
■ REVOKE
The Transaction Control Language (TCL) commands:
■ COMMIT
■ ROLLBACK
■ SAVEPOINT

Полезные шпаргалки. HAVING

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

Полезные шпаргалки. Опции [WITH [CASCADED | LOCAL] CHECK OPTION

Для изменяемого представления можно указывать фразу WITH CHECK OPTION, позволяющую предотвращать "потерю строк" в представлениях. Так, если эта фраза указана, то при внесении изменений в таблицу будет проверен предикат, указанный в запросе, использованном для создания таблицы. Если предикат не возвращает значение TRUE, то изменения не будут внесены.

Например, если запрос создан оператором

CREATE VIEW v_tbl1 AS
(SELECT f1,f2, f3 FROM tbl1 WHERE f2>100)
WITH CHECK OPTION;,

то вставка строки не будет произведена:

Полезные шпаргалки. Order

ORDER BY [ABS | DESC] [NULLS FIRST| LAST]

order by сортировка в прямом порядке NULL внизу
order by desc сортировка в обратном порядке NULL вверху
order by desc nulls last сортировка в обратном порядке NULL внизу

сортировки чувствительны к регистру

Полезные шпаргалки. Join

equijoin and the nonequijoin

Делятся соединения на 2 класса: "Inner join" и "Outer join". Outer join характеризуется тем, что значений во второй таблице, соответствующих условию, может не быть - тогда на месте полей из второй таблицы будет NULL. В Inner join такая строка отсутствовала бы в выборке.

Outer joins, таким образом, это: Left Outer Join, Right Outer Join, Full Outer Join.

GRANT/REVOKE privileges in Oracle.

System privileges to users and roles.
Roles to users and roles. Both privileges and roles are either local, global, or external.
Object privileges for a particular object to users, roles, and PUBLIC.

To grant a system privilege, you must either have been granted the system privilege with the ADMIN OPTION or have been granted the GRANT ANY PRIVILEGE system privilege.

To grant a role, you must either have been granted the role with the ADMIN OPTION or have been granted the GRANT ANY ROLE system privilege, or you must have created the role.

Аудит

Вопрос: а зачем это вот такое вот файлы *.aud и почему по 15 штук в минуту. Есть ли в них смысл.

Аудит является функцией по умолчанию на сервере Oracle. Параметры инициализации , влияющие на его поведение можно отобразить с помощьюSHOW ПАРАМЕТР SQL * Plus команды.

select * from v$parameter where name like '%audit%'
или
SQL> SHOW PARAMETER AUDIT

SQL> SHOW PARAMETER AUDIT

Oracle NET

Сеть является неотъемлемой частью клиент-серверной архитектуры, что является основой для всех современных реляционных баз. База данных имела потенциал для клиент-серверных вычислений с первой версии 1978 года, когда было сделано разделение между серверным и пользовательским кодом. Но только с 4 версии в 1984 году представил взаимодействие между ПК и сервером. Нормальная клиент-серверная технология появилась в 5 версии в 1986 году. Эта глава посвящена Oracle NET сервисам.

Инсталляция Oracle

Универсальный инсталлятор Oracle OUI проверяет основные параметры сервера, необходимые для нормальной работы oracle перед тем как запуститься. Эти параметры для разных платформ записаны в таком специальном файле.
• /install/oraparam.ini (Unix)
• \install\oraparam.ini (Windows)

OUI, инвентори и прочие туманности - 2

Тут об этом же другими словами. Исторически сложилось, что управление программным обеспечением oracle, установленным на сервере может стать сложной задачей. Потому что DBA ответственен за установку и нормальную работу софта. Можно поставить один продукт, второй, третий и нормально, а четвертый нарушит работу первых трех. Проблема несовместимости заключалась в использовании базы библиотек, которая обеспечивает средства которые являются общими для всех продуктов. Например, все оракловые продукты используют Oracle Net коммуникационный протокол.

Молви, ты не демон?

Oracle экземпляры бывают 3-х видов: Real Application Clusters (RAC), Streams или Dataguard

Как понять что перед тобой.

1. соединяемся с базой как SYSTEM или SYS.

2. Определяем, является ли экземпляр частью RAC :

select parallel from v$instance;

Если вохвращается NO , то нет, не кластер.

3. Определяем, защищена ли база от потерь стендбаем:

select protection_level from v$database;

Вернулось MAXIMUM PERFORMANCE есть стендбай или она сама стендбай. Вернулось UNPROTECTED значит Dataguard не про нее.

4. То же про стрим:

OCA /OCP Oracle Database 11g All-in-One Exam Guide (Exam 1Z0-051, 1Z0-052, and 1Z0-053)

OCA /OCP Oracle Database 11g All-in-One Exam Guide (Exam 1Z0-051, 1Z0-052, and 1Z0-053)
John Watson, OCP
Roopesh Ramklass, OCP
Bob Bryla, OCP

Сжатие и архивация файлов с помощью Gzip, Zip и Tar

Сжатие с помощью Gzip и Zip

Сжатые файлы занимают меньше места на диске и загружаются из сети быстрее, чем большие, несжатые файлы. Вы можете сжать файлы Linux свободно распространяемыми утилитами сжатия Gzip или Zip, такой формат распознаётся большинством операционных систем. По умолчанию, сжатые файлы получают расширение .gz. Команда Gzip создаёт сжатый файл с расширением .gz; Gunzip извлекает сжатые файлы и удаляет файл .gz.

Чтобы сжать файл, в приглашении оболочки введите следующая команду:

gzip filename.ext

Этапы создания сайта. Заказная статейка.

Итак, вы поняли, что без офиса в интернете сейчас вести реальный бизнес невозможно. Или есть желание создать интернет-бизнес. Или у вас есть веб-ресурс, но нужно мобильное приложение, которое увеличит посещаемость в 2-3 раза. Или вы хотите просто громко и красиво заявить о себе . Не важно. Важно, что вы на верном пути и вам нужно интернет-агенство.

Бриф

команда lsof

В жизни каждого пользователя Linux наступает момент, когда в ответ на команду "umount /mnt/cdrom/" выдается безжалостное "umount: /mnt/cdrom: device is busy". После этого начинается изнурительная (особенно в случае сильно загруженной системы) процедура убиения процессов "по одному" с целью найти источник блокировки. Однако, проблему можно решить более изящным способом...
Виктор Костромин (kos AT rus-linux.net)

OUI, инвентори и прочие туманности.

О программе установки Инвентаризация Oracle Universal

Тут об этом же другими словами

Oracle Universal Installer инвентори хранит информацию обо всех программных продуктах Oracle установлены во всех домах Oracle на хост, если продукт был установлен с использованием Oracle Universal Installer.
Инвентаризация информация хранится в Extensible Markup Language (XML) формат.Формате XML облегчает диагностику проблем и быстрой загрузки данных.

Структура программы установки Инвентаризация Oracle Universal

Онлайн-инструменты распознавания текста - JPEG, PNG, BMP, TIFF, PDF в TXT или Word

Онлайн-инструменты позволяют распознать текст или символы с любого изображения (сканированный документ, многостраничные документы TIFF и PDF, цифровая фотография или просто картинка в формате JPG, BMP, PNG и др.) и конвертировать полученный текст в форматы: PDF, Word, Excel, HTML, RTF, TXT.

* - некоторые из представленных онлайн-инструментов имеют ограниченные возможности.

Бесплатные онлайн-инструменты, распознающие текст на русском языке:

Патчи на агенте

cd /bin
emctl stop agent
cd /Opatch
opatch lsinventory -detail

например так еще

opatch lsinventory -detail | grep Net

Если инвентори не там где надо, то совершенно ничего не видно. Как посмотреть в этом случае - не знаю. Кто знает - не таите.

Давид Самойлов. Давай поедем в город 1963

О, как я поздно понял,
Зачем я существую,
Зачем гоняет сердце
По жилам кровь живую,

И что, порой, напрасно
Давал страстям улечься,
И что нельзя беречься,
И что нельзя беречься...

Оракловые сервисы на win

погасить сервис
oradim -SHUTDOWN -SID VAK -SHUTTYPE srvc -SHUTMODE normal

создать сервис
oradim -NEW -SID VAK -SRVC OracleServicevak -STARTMODE auto -SRVCSTART system -PFILE C:\app\admin\vak\pfile\initvak.ora

удалить сервис
oradim -DELETE -SRVC OracleServicevak

tablespaces

SELECT /* + RULE */ df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Size (MB)",
SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
GROUP BY df.tablespace_name,df.bytes
UNION ALL

Как пересоздать табличное пространство TEMP

Увеличить файл

ALTER DATABASE TEMPFILE '/u01/oradata/b11/temp01.dbf' AUTOEXTEND ON  NEXT 10M MAXSIZE 2048M;

добавить файл

ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/bm7/onlinelog/BM7M3/datafile/temp_b4mphmky_.tmp' SIZE 100M AUTOEXTEND ON  NEXT 100M MAXSIZE UNLIMITED;

 

Если что-то случилось с табличным пространством, предназначенным для временного хранения информации (TEMP), то его достаточно просто пересоздать.

восстанавливали базу из обломков

Создала пустую базу с sid=vak
Пересоздала файл паролей
Перенесла все отстатки от старой базы:

файлы базы данных:
C:\app\oradata\vak\SYSAUX01.DBF
C:\app\oradata\vak\SYSTEM01.DBF
C:\app\oradata\vak\UNDOTBS01.DBF
C:\app\oradata\vak\USERS01.DBF
C:\app\oradata\vak\VAK_DATA.DBF

логи:
C:\app\oradata\vak\REDO01.LOG
C:\app\oradata\vak\REDO02.LOG
C:\app\oradata\vak\REDO03.LOG

контрол файлы:
c:\app\oradata\vak\control01.ctl
c:\app\flash_recovery_area\vak\control02.ctl

recover [SQL*PLUS]

recover database until cancel
recover database until time '2004-03-21:22:59:04'
recover database until change 123456

recover datafile 'filename' until cancel
recover datafile 'filename' until time '2004-03-21:22:59:04'
recover datafile 'filename' until change 123456

recover tablespace ts_name until cancel
recover tablespace ts_name until time '2004-03-21:22:59:04'
recover tablespace ts_name until change 123456

recover database using backup controlfile

Пересоздание файла паролей (ORA-01031)

Подключение к Oracle с правами SYSDBA и с правами обычного пользователя имеет коренные отличия.

Chapter 2 Exploring the Database Architecture

Изучение архитектуры Oracle

Single-Row Functions. Однострочные функции.

Определение функции
Функция-это программа, написанная чтобы принимать входные параметры, если это необходимо, выполнять операции и возвращать одиночное значение. Функция возвращает только одно значение за одно выполнение.
Есть 3 важные составляющие определения функции.
1. Список входных параметров. Это может быть ноль или более аргументов, которые могут передаваться функции в качестве входных данных для обработки. Эти аргументы или параметры могут быть различающихся типов данных, некоторые являются обязательными, а другие могут быть необязательными.

FAST_START_MTTR_TARGET

desc v$instance_recovery
desc v$mttr_target_advice

а именно TARGET_MTTR, ESTIMATED_MTTR
Путем анализа по этим полям выявить необходимое значение FAST_START_MTTR_TARGET

Параметр устанавливает желаемое максимальное время восстановления после сбоя экземпляра (MTTR – Mean Time To Recover). Желаемое время задается в секундах от 0 до 3600, причем значение 0 запрещает этот механизм.

Создание своей формы в Drupal 7. Модуль Webform

Для каждого разработчика рано или поздно встаёт задача создание формы для сайта, как минимум это форма обратной связи или создание больших форм,- как например составление ТЗ сайта. С такими задачами в Drupal легко справляется модуль Webform, скачать его можно вот отсюда, а как с ним работать я сейчас продемонстрирую.

создание логического стендбай 11gr1. инструкция

На standby.
0. создать точную физическую структуру каталогов, что и на primary. ОС и архитектура не должны отличаться.
1. Создать Listener на стендбай следующего содержания и после создания перезапустить:
# listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = STANDBY.DOMAIN.LAN)
(ORACLE_HOME = /u01/app/oracle/product/11.1.0)
(SID_NAME = STANDBY)
))

# lsnrctl reload

Процессы

к фоновым процессам относятся следующие:

SMON - PMON
DBWR
LGWR
Dnnn
ARCH
CKPT
RECO
SPNn
LCKn
Pnnn
Snnn

Так же есть процессы User и Server выполняющие обработку транзакций, конечного пользователя БД. Рассмотрим их, более подробно.

Набор полезных модулей

Те, кому часто приходится поднимать сайты на Drupal, имеют в загашнике постоянный набор модулей и тем, которые так или иначе могут использоваться на поднимаемом ресурсе.
При отсутствии данного набора приходится вспоминать и скачивать модули для воплощения на сайте того или иного функционала.
Поскольку актуальной на данный момент версией является седьмая, о ней и пойдёт речь.

Администрирование

Nvl2

NVL2(a,b,c) == if 'a' is not null then return 'b' else return 'c'.
Examples

SELECT nvl2(ename, 'Do have a name', 'No Name') FROM emp;

Восстановить standby если потерялся лог при помощи инкрементального бекапа

По разным, не всегда зависящим от ДБА причинам, могут исчезнуть логи с основной базы. Поэтому, когда возникает такая ситуация, выходящая за рамки понимания, почему архив журнала(ы) пропали без вести, откинем в негодовании вопрос "Кто виноват?" сосредоточим внимание на вопросе "Что делать?".
Первое - это устраним коренную причину этого.
Далее, существуют 3 варианта устранения проблемы:
- Восстановить пропавший архив журнала из резервной копии на сервере-источнике.

Lost an Archive Log File? Use RMAN Incremental Backups to Resync Your Standby Database

Anyone who has done time on the “tech frontline” knows that there are occasions in production systems when the unexpected transpires. Whether such events are of human origin, for example, accidentally deleting a file or setting an overly agressive retention policy, or otherwise (corruptions and disk failures), these threaten to compromise the integrity of the system(s) you are responsible for.

Что такое этот Buffer Cache (буферный кеш)?

Это составная часть SGA
Используется для быстрого доступа к данным
Использует LRU алгоритм, для того чтобы лишаться непопулярных данных
Содержит внутренние структуры: Default buffer pool, Keep buffer pool и Recycle buffer pool
Параметром DB_CACHE_SIZE устанавливается размер

Частота переключения журналов

1 select
2 to_char(trunc(completion_time), 'dd-mm') "Date",
3 count(completion_time) "Count",
4 to_char(min(completion_time-prev_time)*24*60, '99999,990.99') "Min",
5 to_char(avg(completion_time-prev_time)*24*60, '99,990.99') "Mid",
6 to_char(max(completion_time-prev_time)*24*60, '99,990.99') "Max"
7 from (select completion_time,
8 lag(completion_time) over (order by completion_time) prev_time
9 from v$archived_log
10 where dest_id=1

"Автоматическое" управление памятью в СУБД Oracle 10g

Oracle, осознавая чудовищную сложность в управлении одним из флагманских продуктов, пытается повернуться к пользователю лицом. Странно, но или лицо у корпорации такое загадочное или это всё-таки какая-то другая часть тела.

Появилась в новой версии (10g) такая возможность, как ASMM (Automatic Shared Memory Management) и APMM (Automatic PGA Memory Management). Согласно рекламе выставил пару параметров и забыл про управление памятью вручную. Но это реклама. В жизни всё не так безоблачно.

Работает ASMM так:

Иосиф Бродский. "Приехать морю в несезон..."

Когда так много позади
Всего, в особенности - горя,
Поддержки чьей-нибудь не жди,
Сядь в поезд, высадись у моря.
Оно обширнее. Оно
И глубже. Это превосходство -
Не слишком радостное. Но
Уж если чувствовать сиротство,
то лучше в тех местах, чей вид
волнует, нежели язвит.

Oracle 10g Data Guard – Quick Switchover with Physical Standby Database

В этом документе речь идет лишь о переходе с физической бд на резервную. PRIM первичная БД и STAN - резервная.

Перед Переключением:

ping солярковый

ping– send ICMP (ICMP6) ECHO_REQUEST packets to network hosts

Synopsis

/usr/sbin/ping host [timeout]

/usr/sbin/ping -s [-l | -U] [-adlLnrRv] [-A addr_family]
[-c traffic_class] [-g gateway [-g gateway...]] [-F flow_label]
[-I interval] [-i interface] [-P tos] [-p port] [-t ttl]
host [data_size] [npackets]

Description

Место под солнцем. Евгений Бунимович

...может – глотая слезы, ты расстаешься с морем?
Скоро мы соль морскую в душе столичном смоем!

Съездим к друзьям на дачу – 20 минут в электричке,
съездим к друзьям – подарим миг ожидания птички...

...там на семейном фото, под санаторной пальмой,
где на переднем плане виден газон двуспальный,

все-таки не хватает хрестоматийных сосен...
Место, куда мы летим, называется ОСЕНЬ.

Coalesce

Coalesce is an SQL function that returns the first expression that is NOT NULL.
Examples

SELECT COALESCE(NULL, '2', '5') FROM dual;

SELECT 'Dear '||COALESCE(preferred_name, first_name, 'Sir or Madam')
FROM emp2;

Nullif

Nullif is an SQL function that returns a NULL value if both parameters are equal in value. If not, the first value will be returned.

This function is mostly provided for compatibility with other database systems (like SQL Server) and not frequently used in the Oracle world.
Examples

This query will return NULL:

SELECT NULLIF(ename, ename) FROM emp;

This query will return 1:

SELECT NULLIF(1, 2) FROM dual;

The following query will return NULL if the bind variable 'b' is zero-valued, otherwise it will return the inverse of b:

Получение грантов пользователя

ttitle left 'Display Roles granted to Users and Roles' -
skip 2
set feed off
set pagesize 10000
break on grantee skip 1
column datum new_value datum noprint
column grantee format A27 heading 'User or Role|receiving the Grant'
column granted_role format A30 heading 'Granted|Role'
column default_role format A10 heading 'Default|Role'
column admin_option format A10 heading 'Admin|Option'

утилита pscp (Putty SCP)

pscp C:\Distrib\APEX\apex_4.0.2.zip oracle@156.4.128.86:/home/oracle/distrib/apex

Передача файлов осуществляется с помощью утилиты pscp (Putty SCP). Для того чтобы настроить работу pscp из командной строки или файлового менеджера, надо в переменных средах windows в разделе Системные переменные отредактировать переменную path и добавить туда путь до каталога в котором находится pscp. В этом случае мы получим возможность набрав команду pscp в командной строке работать с утилитой pscp.

где чего на каком порту сидит

если это нормальный линукс - то netstat -nltp
если старый то только netstat -na |grep LISTE

Установка Oracle Application Express

Перед установкой

Необходимо проверить, что прослушиватель БД (listener) настроен.
Экземпляр Oracle должен быть сконфигурирован c XML DB. Если изначально это не было сделано, добавить XML DB можно с помощью утилиты Database Configuration Assistant (dbca).
Остановить все сервисы oracle (listener и пр.). Экземпляр БД (instance) при этом остается запущенным.

Загрузка последней версии Oracle Application Express

XML DB

SQL> select * from dba_objects where owner='XDB' and status='INVALID';

Installing APEX 4.0 and 3.2 on Oracle 10gR2 on Mac OS X Leopard (Intel)

Download APEX installation archive. Unzip it (Oracle database home seems to be a good location). All scripts are then run from that unzipped apex directory.
Identify or create a tablespace for APEX (or two to separate the framework and applications). I created APEX tablespace.
Install APEX framework schemas in the database — @apexins APEX APEX TEMP /i/.
Reset ADMIN password — @apxchpwd
Next is the trick — remove some security on XDB, which is not a good thing, by the way, but I can live with it on my development box that’s available on localhost only:

Ресурсные планы

Достаточно часто сталкиваюсь с проблемой, когда расчет ТД не считается, потому, что кто-то забыл закрыть Супермаг. Бывает, что кто-то регулярно кладет базу своими тяжелыми запросами, выбивая мелких создателей карточек и накладных из колеи. Я уже говорил о том, что лучше перевести в shared сервер. Теперь упомяну о том, чем я давно пользуюсь, ставя любителей рукописных поделий на место.
Во-первых, с самого начала надо выставить:
Цитата:
alter system set resource_limit=true scope=both;

создание FlashBack

2-1. Создание флэш-области
Выключение параметров log_archive_dest и log_archive_duplex_dest
SQL> alter system set log_archive_duplex_dest = '';

System altered.

SQL> alter system set log_archive_dest = '';

System altered.

Если при изменении параметров выводится ошибка :

Performing Switchover in a Data Guard Configuration

Subject: Performing Switchover in a Data Guard Configuration
Doc ID: Note:232240.1 Type: BULLETIN
Last Revision Date: 10-NOV-2003 Status: PUBLISHED

Overview
---------------

Обязательные параметры Oracle

При запуске ораклового инстанса инициализационные параметры читаются из spfile/pfile файлов, которые формируются при создании БД. Практически все параметры имеют значение по умолчанию, но некоторые необходимо указывать вручную и знать какие из них обязательно необходимы для запуска БД как минимум полезно. Поскольку я всегда работал с однотипными базами писать с нуля pfile не приходилось никогда, но тема довольно интересная и, к тому же, не освещенная официальной документацией.

Резвимся на UNDO

SQL> sho parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 86700
undo_tablespace string UNDOTBS1

SQL> select sum(bytes)/1024/1024 from dba_undo_extents;

SUM(BYTES)/1024/1024
--------------------
4199.5

Параметр OS_AUTHENT_PREFIX и подключение

Если приводить выдержку из документации:
OS_AUTHENT_PREFIX specifies a prefix that Oracle uses to authenticate users attempting to connect to the server. Oracle concatenates the value of this parameter to the beginning of the user's operating system account name and password. When a connection request is attempted, Oracle compares the prefixed username with Oracle usernames in the database.

Итак попробуем:

oracle@v-pc-dev-3:~> sqlplus /
ERROR:
ORA-01017: invalid username/password; logon denied

ASMCMD

Start asmcmd

The ASM Command Line Utility can be started by executing the asmcmd command. Here is a Linux/Unix example:

$ export ORACLE_SID=+ASM
$ cd $ORACLE_HOME/bin
$ asmcmd
ASMCMD> exit
$

The asmcmd utility also provides a useful "-p" option that will display the current path in the prompt. Here is an example:

$ asmcmd -p
ASMCMD [+] > cd FLASH
ASMCMD [+FLASH] >

Asmcmd commands

Some of the more interesting commands are described below -

Getting some help:

ASMCMD> help

Optimizing Oracle RAM for SGA & PGA

Oracle technology is constantly changing, so don't miss my notes on updates to Oracle PGA behavior. Also see these important notes on over-riding the Oracle PGA defaults.

This is an excerpt on RAM sizing for Oracle from my bestselling book "Oracle Tuning: The Definitive Reference". In this book I have complete coverage of RAM management plus automated scripts for the initial sizing of your SGA and PGA regions.

If you want an automated tool, check-out Ion monitor for Oracle.

How to Install Oracle Linux 5.6 (Step by Step Guide)

Oracle Linux, formerly known as Oracle Enterprise Linux, is a Red Hat Enterprise Linux-compatible distribution, repackaged and distributed by Oracle, available under the GNU General Public License (GPL) since late 2006. Oracle Linux can be freely downloaded from Oracle’s E-delivery service (edelivery.oracle.com).

I’ll show how to install Oracle Linux 5.6. First you need to download the DVD (or CDs) from edelivery website and burn them. Then insert your Oracle Linux media in your CD/DVD drive and reboot your system (be sure to set your computer to boot from the CD/DVD drive).

Процессы сервера Oracle Database

Процессы сервера Oracle Database делятся на три типа:

Фоновые процессы – выполняют служебные функции, стартуют вместе со стартом экземпляра Oracle.
Пользовательские процессы – предназначены для взаимодействия пользователей и Oracle, управляют входным и выходным потоком.
Серверные процессы – запускаются на сервере после подключения клиента, выполняют обработку запросов пользователей.

Размеры таблиц и базы

Размер базы данных

SELECT round((sum(bytes)/1048576/1024),2) "Total(GB)" FROM V$DATAFILE;

Размер и свободное место в базе данных

SELECT
"RESERVED_SPACE(MB)", "RESERVED_SPACE(MB)" - "FREE_SPACE(MB)" "USED_SPACE(MB)","FREE_SPACE(MB)"
FROM(
SELECT
(SELECT SUM(BYTES/(1014*1024)) FROM DBA_DATA_FILES) "RESERVED_SPACE(MB)",
(SELECT SUM(BYTES/(1024*1024)) FROM DBA_FREE_SPACE) "FREE_SPACE(MB)"
FROM DUAL);

----------- фрагментация

exec dbms_stats.gather_table_stats('HR', 'BIG1');

Размеры индексов

alter index NAT_ADMIN.XPR33_CO01ID rebuild online;

alter index NAT_ADMIN.FN12DOCUMENT_FN13_NUM_UNIQ REBUILD TABLESPACE NTOURS_INDEXES online;

select TABLESPACE_NAME, SEGMENT_TYPE table_type, SEGMENT_NAME,
ceil(sum(bytes) / 1024/1024/1024) sizeGb
from dba_segments
where TABLESPACE_NAME in ('NTOURS_DATA') and SEGMENT_TYPE='INDEX'
group by TABLESPACE_NAME, SEGMENT_TYPE, SEGMENT_NAME
order by 1,2
;

SHRINK

Для начала рассмотрим что такое HWM и куда девается пространство. Предположим, что мы заполнили таблицу с 1 000 000 строк. HWM установился на уровне 1 000 000. Затем мы удаляем 500 000 строк, но HWM остается по прежнему на первоначальном уровне, т.е. 1 000 000. И это означает, что у нас имеются свободные блоки, ниже HWM. Для Oracle есть веские причины не опускать уровень HWM, при каждом удалении строк.

тейблспейсное пространство. размеры базы

COLUMN block_size NEW_VALUE v_block_size

SELECT TO_NUMBER(value) AS block_size
FROM v$parameter
WHERE name = 'db_block_size';

COLUMN tablespace_name FORMAT A20
COLUMN file_name FORMAT A50
COLUMN current_bytes FORMAT 999999999999999
COLUMN shrink_by_bytes FORMAT 999999999999999
COLUMN resize_to_bytes FORMAT 999999999999999
SET VERIFY OFF
SET LINESIZE 200

Одиночество. Иосиф Бродский

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

MOVE или SHRINK

The move command compacts the rows within Oracle blocks, resolves row chaining, and resets a table's High Water Mark

Both the move and shrink commands reset the high water mark of a table, but which command is more efficient? This article discusses re-organizing a table using the move and shrink commands, then compares how the rows are compacted within Oracle blocks and how row chaining is resolved.

Смена SGA_MAX_SIZE

SGA_TARGET - параметр инициализации, впервые представлен в Oracle 10g, позволяет использовать автоматическое управление размером SGA.
Описание:
Oracle Docs пишет:
Parameter description:
SGA_TARGET
Property Description
Parameter type Big integer
Syntax SGA_TARGET = integer [K | M | G]
Default value 0 (SGA autotuning is disabled)
Modifiable ALTER SYSTEM
Range of values 64 to operating system-dependent
Basic Yes

SGA

Основная структура памяти Oracle – System Global Area (SGA, системная глобальная область). Размер SGA вычисляется по определенным параметрам инициализации.

SGA разбивается на четыре раздела:

фиксированный раздел,
переменный раздел,
журнальный буфер,
пул буферов блоков базы данных.

Размер SGA – сумма размеров этих четырех разделов.

Все это Вы видите, когда стартует екземпляр:

SQL> startup nomount
ORACLE instance started.

4 уровня сертификации Oracle

Для начала небольшая справка.

Есть 4 уровня сертификации Oracle:

Вывод дат

Разница между day и fmday, month и fmmonth

Режим заполнения. Oracle использует символы пробела, чтобы заполнить элементы формата на элементы постоянной ширины, равное по величине элемент для соответствующей модели в формате языка текущей сессии. Например, когда NLS_LANGUAGE AMERICAN, наибольший элемент за MONTH - SEPTEMBER, поэтому все значения MONTH дополняются до 9 отображения символов. Этот модификатор подавляет пустые значение которые возвращает TO_CHAR функция:

Символьные функции

CHR(x)
Возвращает символ, имеющий код, равный x в наборе символов БД. Пример
строка 1*.
CONCAT(строка 1, строка2)
Возвращает "строка 1", конкатенированную, (сцепленную) со "строка 2". То
же что и операция "||"! Пример строка 2*.
INITCAP(строка)
Возвращает "строка", в которой каждое слово начинается с прописной буквы и
продолжается строчными. Слова разделяются пробелами или не буквенно-цифровыми
символами. Символы не являющиеся буквами не изменяются. Пример строка 3*.
LOWER(строка)

How to add or drop online-redo logs?

Below are the steps on how to add a new online redo-group. It could be of the same size as other groups or different size.
1) List log groups, their archive status, activity status and size
SQL> SELECT GROUP#, ARCHIVED, STATUS, BYTES FROM V$LOG;

GROUP# ARC STATUS BYTES
———- — —————- ———–
1 NO ACTIVE 104857600
2 NO CURRENT 104857600
3 NO INACTIVE 104857600

Изменение размера Logfile на Primary и Standby

По логам увидел, что переключение на пике работы происходит 3 или 30 секунд. Обычная работа базы - переключение 3-6 минут. Oracle рекомендует 15-20 минут.

#смотрим чтобы удаляемый logfile не был текущим или активным. Хоть Оракл и проругается
#береженого бог бережет.
select * from v$log;

alter system switch logfile;
alter database drop logfile group 1;
alter database add logfile group 1 ('g:\oracle\...\acs_log1a','h:\oracle\...\acs_log1b') size 100M reuse;

Мониторинг ресурсов

2.5. Информация, ориентированная на Red Hat Enterprise Linux

Red Hat Enterprise Linux поставляется с большим набором инструментом для мониторинга ресурсов. Хотя ниже перечислены далеко не все инструменты, перечисленные здесь явяются хорошими представителями своего класса с точки зрения функциональности:

free

top (и Системный монитор GNOME (GNOME System Monitor) — версия top, больше ориентированная на графическую среду)

vmstat

Sysstat — набор инструментов для мониторинга ресурсов

RMAN в примерах

Режим архивации

При попытке осуществить резервное копирование вашей базы данных с помощью RMAN у вас выдается ошибка:

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 02/17/2011 09:43:56
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

Сообщение говорит о том, что прежде чем начинать резервное копирование с помощью RMAN, нужно перевести базу данных в режим архивации.
Включение режима архивации базы данных

Удаленный доступ при разрыве коннекта

nohup
или screen - это новая сессия, к которой потом можно подсоединиться и увидеть результат

Клонирование БД

OMS version not checked yet ...

When a grid control agent was installed during a RAC setup an error showed up at the end of the agent configuration assistant.

The agent was started successfully, but it was not possible to force the agent to have the XML files uploaded to the grid server, it was when the dreaded error "EMD upload error: uploadXMLFiles skipped :: OMS version not checked yet.." showed up.

The problem basically was due to a password typing error during the configuration phase.

The Troubleshooting Procedure Outline was:

Клонирование grid agent

How to Clone a Management Agent
Как клонировать грид агент

Only implement solution below under Oracle Support guidance

export AGENT_HOME=/u01/app/oracle/product/10.2.0/agent10g
export PATH=$AGENT_HOME/bin:$PATH

To implement the solution, please execute the following steps:

alter database open resetlogs на standby

Если вы случайно, не нарочно, сделали alter database open resetlogs; на стендбае, то не отчаивайтесь.

Делаем контрольник на продакшн.

ALTER DATABASE CREATE PHYSICAL STANDBY CONTROLFILE AS '/u00/standby01.ctl';

Подсовываем его вместо родного, просто тот прячем и
startup nomount;
alter database mount;
alter database recover managed standby database disconnect from session;

и смотрим как душевно накатываются логи

Восстанавливаем ORACLE из RMAN

Disaster recovery
Кратенько
-- создать экземпляр в винде
-- восстановить spfile с автобэкапа (настроив параметры или указав файл напрямую) (startup force nomount; restore spfile from ...)
-- стартануть в NOMOUNT
-- создать pfile
-- поправить пути для контролов в pfile
-- перестартовать в NOMOUNT
-- восстановить контролы из автобэкапа restore controlfile from ...
-- смонтировать экземпляр
-- закаталогизировать бэкап
-- прописать новые пути для файлов
-- восстановить БД (RESTORE+RECOVER)

Пересоздать undo

Смена UNDO TABLESPACE Во-первых, необходимо узнать текущие UNDO параметры:

SQL> show parameter undo;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

undo_management string AUTO

Дублируем базу Oracle 10g с 64 на 32

На примере JSC:

1. Рестартуем базу в nomount

set ORACLE_SID=t1JSC

sqlplus / as sysdba

startup force nomount exit

2. Находим последний бэкап контолфайла и восстанавиваем его dir /s \\ruistrdb10\backup\JSC

rman target / restore controlfile from '\\ruistrdb10\backup\JSC\...';

alter database mount;

Клон не rman с пересоздание control

На приемнике

Connected to:
Oracle9i Release 9.2.0.8.0 - 64bit Production
JServer Release 9.2.0.8.0 - Production

dblink

посмотреть

select db_link from all_db_links where owner='PUBLIC';

DROP PUBLIC DATABASE LINK ;

http://psoug.org/reference/db_link.html

Остановить логи на standby и запустить

останов:
alter system set log_archive_dest_state_2='defer' scope=both;

возобновление:
alter system set log_archive_dest_state_2='enable' scope=both;

посмотреть логи

SELECT THREAD#,MAX(SEQUENCE#) FROM V$ARCHIVED_LOG GROUP BY THREAD#;

Oracle 10g, остановка Standby на 7 часов и последующая синхронизация

Сценарий, который на тестовых БД, располоденных на одном сервере работал отлично и многократно, но нагрузка на прамари БД там была невольшая:
1. На праймари приостановить (задержать) передачу архлогов на standby
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
После первого переключения журналов alter system switch logfile;
2.Остановить standby БД.
3. Выключить standby-сервер
4.Включить сервер standby-сервер на новом месте через 7 часов, standby БД откроется в реад-онли режиме, т.к. сработают rc-скрипты по автостарту БД.

How to export from oracle 11.2 and import into 10.2 version

How to export from oracle 11.2 and import into 10.2 version
by Mohamed Azar on January 23, 2011
I think many OTN users asked repeately this question How do i export from higher version and import into lower version.I just show here How do we do.

First : Using Datapump from Oralce 11.2 and import into 10.2 version

Source DB 11.2 Version :

Step 1: Create Directory

SQL> create or replace directory test_dir as 'D:\backupnew\dump';

Directory created.

SQL> grant read,write on directory test_dir to scott;

Grant succeeded.

Посмотреть накатаные патчи на базу

select * from registry$history;

[oracle@armada2 OPatch]$ ./opatch lsinventory -invPtrLoc /u00/oraInventory/oraInst.loc
[oracle@armada2 OPatch]$ ./opatch lsinventory -help

Opatch
Jump to: navigation, search

OPatch is the Oracle database's Interim (one-off) Patch Installer.

If OPatch is not installed into your Oracle Home ($ORACLE_HOME/OPatch), you may need to download it from Metalink and install it yourself.
Syntax

Syntax and options can be displayed using the -help option:

Проверить, установить пакеты

rpm (RPM Package Manager) - система управления пакетами. Команда rpm позволяет осуществлять основные действия с пакетами - установку, обновление, удаление, получение информации о пакетах. В случае с rpm, атрибуты коренным образом влияют на поведение команды. Перечислим основные из них:

Выключение режима ARCHIVELOG

Выключение режима ARCHIVELOG Для выключения режима ARCHIVELOG выполните следующие команды: ALTER SYSTEM SET log_archive_start=FALSE scope=spfile; CREATE pfile FROM spfile; shutdown IMMEDIATE; startup mount excluseve; ALTER DATABASE noarchivelog; ALTER DATABASE OPEN; ALTER DATABASE OPEN READ ONLY; только для чтения

Описана простая (без ASM, raw devices, RAC,…) установка и создание бд для тестовых целей на последнюю версию Oracle Enterprise Linux

http://sysdba.org.ua/ustanovka/oracle/prostaya-ustanovka-oracle-10.2.0.4...

Описана простая (без ASM, raw devices, RAC,…) установка и создание бд для тестовых целей на последнюю версию Oracle Enterprise Linux

Подключение виртуальных машин VMware Workstation к интернету

сеть

Скрипт копировния базы из RMAN

######################################################################
#
# Name:
#       mkclone.sh
# Purpose:
#       RMAN-based make/refresh clone Oracle Database >=10g from backup sets (on disk)
# Parameters:
#       none
#
# Restrictions:
#       1. All backups sets stored in one place ($BACKUP_DIR).
#       2. A backup of the control file has a mask *_CTL_* ($CONTROLFILE_BACKUP_MASK) for the file name

Версия и upgrate oracle

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Solaris: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

"Текущая настройка системы безопасности запрещает это действие"

У меня windows 7 максимальная. Все драйвера и кодеки установлены. Подключил стандартную учетную запись администратора, захожу через нее. При попытке открыть видео файл формата flash (.swf) появляется окно с текстом: "Текущая настройка системы безопасности запрещает это действие". Как исправить?

в свойствах обозревателя на вкладке "Безопасность" в зоне "Интернет" установить разрешение "Разное -> Запуск программ и небезопасных файлов" в "Предлагать" или "Включить"

NFS и CIFS: что выбрать?

Goal
Can RMAN be used to create backuppieces on CIFS?

Fix
We do not in general certify against particular storage vendors and use of NAS devices (NFS/CIFS) is treated as any other file system.

Oracle does not support CIFS protocol in general because CIFS does not guarantee
atomic write of 512 byte (Oracle log block size) like NFS can (with wsize parameter). So in case of power failure, it is possible to corrupt Oracle archived logs.

Текущая настройка безопасности не допускает загрузку этого файла

Вот такие мерзкие штуки выделывает ОС Windows Server 2008 или же ОС Windows Server 2003 с браузером Internet Explorer 8.0. При попытке скачать любой файл из инета он получает ошибку: «Текущая настройка безопасности не допускает загрузку этого файла» («Your current security settings do not allow this file to be downloaded») В качестве дополнительной защиты в Windows 2008 и Windows 2003 загрузка файлов по умолчанию отключена.

Чтобы разрешить скачивание файлов средствами Internet Explorer, нужно изменить ключ реестра (без админских прав обходится):

Где лежат alert, trc и прочая диагностика

show parameter dump_dest

SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME like '%_dump_dest%';

Какие команды Unix могут быть использованы для администрирования базы данных?

Список команд Unix настолько велик, что даже перечислить их трудно.
Тем не менее, для начала, можно ограничиться следующими полезными командами.
Для получения подробной информации о любой команде просто исполните man <имя команды>.

Основные крманды:
cd Изменяет текущий каталог. После логина Вы находитесь в своем "домашнем" каталоге.

ls Выдает список файлов в каталоге (Аналогична DOS-команде DIR).

pwd Выводит рабочий (текущий) каталог.

cp Копирует файл или каталог.

Сведения о системе а-ля Диспетчер устройств от Linux

lshw - команда выведет полную информацию о железе, следует выполнять с правами root'а (sudo lshw).
hwinfo - вывод информации о железе. Предварительно требуется установить утилиту (sudo apt-get install hwinfo).
uname -a - вывод информации о системе, версии ядра, дистрибутиве и архитектуре (32/64 бита).
lsb_release -a - выведет название и версию используемого дистрибутива.
cat /etc/*release* - аналогично предыдущей команде, плюс информация о базовом дистрибутиве (например, для Linux Mint 9 выведет еще и Ubuntu 10.04, как базовый дистрибутив).

RAID 0, RAID 1, RAID 5, RAID6, RAID 10 или что такое уровни RAID?

Все «зеркальные» уровни – RAID 1, 1+0, 10, 1E, 1E0.

Давайте еще раз попробуем досконально разобраться, чем же различаются эти уровни?

создать standby сервер

Представим себе ситуацию, когда наш проект, использующий в качестве СУБД Oracle, неожиданно (или с надеждой ожидаемо) стал критически важным для бизнеса (соответственно, появилась готовность выделять средства на обеспечение надежности системы).

До этого момента мы вполне обходились ежедневным или даже еженедельным бэкапом («горячим» или «холодным» копированием, а может и просто экспортом данных) и нас устраивало время восстановления системы порядка суток (будем считать, что данных у нас на пару терабайт).

Настройка Putty

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

закладка Terminal --> Keyboard: The Function keys and keypads ставим Linux
закладка Connection --> Data: Terminal-type string ставим linux или xterm-color (если нужна мышка в MC)
закладка Window --> Translation: Received data assumed... ставим UTF-8, и ниже указываем Handling of line drawing... = Use Unicode line drawing code points

Таксономия и создание структуры сайта Drupal 7

Таксономия для Drupal 7

На первый взгляд таксономия - штука сложная и не понятная. На второй тоже. Но опытный въедливый перфекционист завсегда разберется.
Самое главное в сайте это не дизайн, не наполнение, не раскрутка. Самое главное - правильная структура. Это костяк на который растет много чего хорошего. Или не растет, как структурируешь. И таксономия Drupal 7 дает отличные возможности все разложить.

Как перевести на русский уже установленный Drupal 7

Три простых шага для русификации уже установленного Drupal 7

Скачиваем и включаем модуль Localization update (в простонародье l10n_update). http://drupal.org/project/l10n_update
На странице admin/config/regional/language добавляем новый язык — Russian и делаем его языком по умолчанию.
На странице admin/config/regional/translate/update обновляем перевод с помощью кнопки Update translations.

Как сделать снимок экрана print screen в Mac OS

Ну нет на маках кнопки PrintScreen и не понятно, как сделать снимок экрана в Mac OS. Все просто и даже в нескольких вариантах.

Вариант для трудолюбивых.

Ставим Windows 7 на Mac

Если вы счастливый обладатель продукции Apple, то радость обладания все-таки омрачается тем, что куча отличных и полезных программ работает только из-под винды. И в один прекрасный момент таки встает вопрос второй системы. В этой статье изложен личный опыт установки Windows 7 на Mac.

Перво-наперво нужно определить 32 или 64 разрядный Win будем ставить. Установим некоторые соответствия:
x86 – это архитектура соответствующая 32-битной разрядности
x64 – это архитектура соответствующая 64-битной разрядности

FTP команды

Ниже приведен краткий перечень команд, необходимых для того, чтобы переписать требуемый файл или файлы при использовании FTP-клиента с командной строкой. Если есть желание узнать остальные команды, которые нужны для профессиональной работы с FTP, то введите help в Вашем FTP-клиенте.
При работе с графическим клиентом, поддерживающим современный интерфейс, Вам, скорее всего, все будет понятно без объяснений.
Учтите, что в именах файлов большие и маленькие буквы различаются.
open имя_сервера - открыть соединение

AIX основные команды

Введение

Посмотреть накатанные патчи

из базы

select * from sys.registry$history;

из системы

opath lsinventOry -all

opath lsinventOry

oracle@ds02:~> cd $ORACLE_HOME
oracle@ds02:/u01/app/oracle/product/10.2.0/db_1> cd OPatch/
oracle@ds02:/u01/app/oracle/product/10.2.0/db_1/OPatch> ./opatch Isinventory
Invoking OPatch 10.2.0.3.0

$ORACLE_HOME/OPatch/opatch lsinventory

OPatch failed with error code 14
oracle@ds02:/u01/app/oracle/product/10.2.0/db_1/OPatch>

repair_trigger

Exec dbms_ddl.alter_compile ( type , schema, name);
select OBJECT_NAME from all_objects where STATUS ='INVALID' and OBJECT_TYPE='TRIGGER';

create or replace PROCEDURE repair_trigger
IS

sql_text varchar(500);
cnt number(3);

begin
cnt:=0;
select count(*) into cnt from all_objects where STATUS ='INVALID' and OBJECT_TYPE='TRIGGER';

if cnt > 0 then
sql_text:= NULL;

kill_long_session

PROCEDURE kill_long_session
IS
sql_text varchar(500);
cnt number(3);
result_txt varchar(500);
k_id number;
MAX_TTL CONSTANT PLS_INTEGER := 600;
begin
cnt:=0;
select count(*) into cnt
from v$session vs, v$sqlarea vsa
where vs.sql_address=vsa.address
--and (upper(sql_text) not like '%UPDATE%' or upper(sql_text) not like '%INSERT%')
--and program='JDBC Thin Client'
and osuser='weblogic'
--and username='FSERG'
and status='ACTIVE'

auto_outline

SELECT
s.SID, s.SQL_ID, s.LAST_CALL_ET
FROM V$SESSION S, V$PROCESS p,
(select ss.sid stat_sid,
sum(decode(sn.name, 'CPU used when call started', ss.value, 0)) CPU_this_call_start,
sum(decode(sn.name, 'CPU used by this session', ss.value, 0)) CPU,
sum(decode(sn.name, 'session uga memory', ss.value, 0)) uga_memory,
sum(decode(sn.name, 'session pga memory', ss.value, 0)) pga_memory,
sum(decode(sn.name, 'user commits', ss.value, 0)) commits,

Партицируем непартицированные таблицы с LOB

Как надо делать.

EXCHANGE PARTITION
DBMS_REDEFINITION

ЧТо делала сама.

Does index need rebuilding?

declare
v_Owner dba_indexes.owner%type; -- Setup Index Owner
v_IdxName dba_indexes.index_name%type; -- Setup Index Name

Используемые и неиспользуемые индексы

включаем монитоинг

ALTER INDEX summit.orders_id_idx MONITORING USAGE

Делаем запрос в :
V$OBJECT_USAGE

Редактор vi

D Удаляет текст от позиции курсора до конца строки
dd Удаляет всю строку целиком.
ndd Здесь n - число удаляемых строк. Например, 5dd удаляет текущую строку и четыре следующие за ней
rc Здесь c - символ. Это команда заменяет символ в позиции курсора символом, который указан за r
R Текст, вводимый после этой команды, замещает текущий текст, начиная с позиции курсора. Этот режим действует до тех пор, пока не будет нажата клавиша Escape, возвращающая редактор в командный режим.
S Удаляет текущую строку и начинает ввод текста на новой строке.

Редактор VI основные команды

По не знаю какой уж там исторической традиции "честные" (канонические, особенно коммерческие) системы Unix не имеют в своем базовом комплекте ни одного нормального (еще раз подчеркну это слово - НОРМАЛЬНОГО) текстового редактора. Поэтому системный администратор должен уметь пользоваться тем, что ему дают. А дают ему несравненный "Визуальный" экранный редактор файлов - Редактор VI.

Редактор VI имеет три режима:

Оценка роста базы

DROP TABLE FAST.DB_TABLES_SIZE CASCADE CONSTRAINTS;

Добавляем партиции

CREATE OR REPLACE procedure NAT_ADMIN.extend_LG01JUNIPER as
--declare
/*
ALTER TABLE NAT_ADMIN.LG01JUNIPER
ADD
PARTITION LG01_2012_07 VALUES LESS THAN (TO_DATE(' 2012-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

Разнообразный сбор статистики

По партициям

CREATE OR REPLACE PROCEDURE NAT_ADMIN.GATHER_PR32_STAT is
p_name sys.all_tab_partitions.partition_name%type;
begin

SQL profiles

Возможность настройки запросов при помощи построения SQL profiles обеспечивается установленными Tuning& Diagnostic Pack (требуется версия Oracle 10 EE или 11 EE). С точки зрения рассматриваемой задачи интересным в использовании SQL profiles является тот факт, что профили можно создавать вручную через импорт. Недокументированная процедура dbms_sqltune.import_sql_profile обычно используется при импорте профиля, созданного ранее на основе списка специальных хинтов, предназначенных для корректировки статистики.

Редактирование private outline и создание на его основе public outline.

Cпособ настройки основан на функционале Stored Outlines и заключается в подмене хинтов private outline проблемного запроса хинтами настроенного запроса и последующего создания public outline. Особенно актуален такой вариант для версии Standard Edition, где Plan Stability является доступной опцией. Этот способ настройки работает во всех редакциях версий 9,10,11.

Итак, допустим, нужно оптимизировать выполнение некоего запроса с помощью outline. План действий следующий:

OutLine

declare
cursor sss is
select rownum, v.*
from v$sql v
where parsing_schema_name = 'NAT_ADMIN'
and sql_id = 'cpp3gqz0kk2hh';
r sss%rowtype;
qqq varchar2(32000);
a varchar(100);
hv varchar(30);
begin
for r in sss
loop
select address, hash_value into a, hv
from v$sqlarea where sql_id = r.sql_id;

Бродский Иосиф Александрович

Не выходи из комнаты, не совершай ошибку.
Зачем тебе Солнце, если ты куришь Шипку?
За дверью бессмысленно все, особенно - возглас счастья.
Только в уборную - и сразу же возвращайся.

Профилирование нагрузки на файловую систему с помощью iostat и gnuplot

Зачастую работа «в поле» требует сбора и анализа информации на сайте заказчика в условиях наличия крайне скудного списка утилит. В частности собрать информацию об использовании системы ввода-вывода в течении дня.

В статье я попробую показать, как располагая только iostat и gnuplot можно попробовать провести анализ системы и какие выводы можно сделать.

Я не претендую на доскональное владение предметом и точное использование терминов. Более того, я постараюсь говорить «обычным» языком и не бросаться терминами.

Ключи авторизации SSH, безопасное копирование - SCP

Public key - Публичный ключ

Для соединения с удаленным хостом без ввода пароля, можно использовать так называемый Public key (публичный ключ). Нужно добавить запись о публичном ключе в файл ~/.ssh/authorized_keys на удаленном хосте. В данном случае для подключения используются ключи сгенерированные на стороне-клиенте. В cygwin создать /home директорию и .csh в ней, можно с помощью

# mkdir -p /home/USER/.ssh