(simple) Инсталляция oracle database 11g r2 x86 64 bit в операционной...
TRANSCRIPT
www.oracle-dba.ru
Инсталляция Oracle DataBase 11G R2 x86 64 bit в операционной системе Oracle Linux 5.8 x86 64 bit В документе описывается один из способов инсталляции базы данных Oracle в операционной системе Oracle Linux. Использовать его следует, если вы только приступаете к изучению основ администрирования баз данных Oracle в операционной системе Linux. В случае необходимости использования в промышленной среде, необходимо обеспечить резервное копирование, избыточность критичных для работы файлов и правильно настроить системные параметры базы данных. В случае обнаружения ошибок, неточностей, опечаток или Вам известны лучшие способы, пишите мне адрес эл. почты
Самые последние версии (на момент написания):
● Oracle Linux - 5.8 ● Oracle DataBase - 11.2.0.3
Инсталляция происходит на удаленный сервер без GUI. Управление процессом установки и настройки происходит с рабочей станции под управлением Windows, на которой устанавлены putty и xming. При помощью консоли putty на сервере выполняются команды. Xming нужен для получения графических изображений.
1
www.oracle-dba.ru
Минимальные и рекомендованные характеристики сервера: Процессор:
○ Минимум 1 сертифицированный процессор○ Рекомендуется 2 и более сертифицированных процессоров
Оперативная память:
○ Минимум 1.5GB оперативной памяти○ Рекомендуется 2GB на каждый процессор
Пространство под Swap:
○ Минимум 1 - 1.5 от оперативной памяти○ Рекомендуется >= 2 от оперативной памяти
Место на жестком диске:
○ Минимум: 4GB○ Рекомендуется : 10GB
Пространство для временных файлов:
○ Минимум: 1GB○ Рекомендуется: 1GB
Сеть:
○ Минимум: 100Mb○ Рекомендуется: 1Gb и более
Дистрибутивы и дополнительное ПО:
2
www.oracle-dba.ruПоследние версии БД Oracle и пакеты критических исправлений доступны коммерческим подписчикам с активным контрактом на техническую поддержку. Если у вас есть контракт на техподдержку, вы можете скачать дистрибутивы базы данных непосредственно с сайта metalink.oracle.com. Если контракта у вас нет, простой регистрации на сайте Oracle будет недостаточно, чтобы скачать последние версии даже для изучения. Тем не менее, ссылки на дистрибутивы последних версий приведены чуть ниже. Каких-либо ключей для активации нет. Для разработки (development) дистрибутивы можно использовать бесплатно, но для использования по основному их назначению (production), требуется приобрести лицензию. Существует версия с существенными ограничениями - XE 10 и 11. Их можно использовать и в коммерческих целях совершенно бесплатно. Инсталляция бесплатных версий существенно отличается от данной инструкции. Например:http://odba.ru/showthread.php?t=400 Дистрибутивы операционной системы Oracle Linux 5.8:http://rutracker.org/forum/viewtopic.php?t=3971967 Дистрибутивы базы данных Oracle (Linux x86-64):http://rutracker.org/forum/viewtopic.php?t=3749965 Putty:http://www.putty.org/ XMing:http://sourceforge.net/projects/xming/ VirtualBox:http://www.virtualbox.org/wiki/Downloads
winscp
http://winscp.net/eng/download.php
Подготовка компьютера с которого производится инсталляция На машине с которой идет управление процессом установки (обычно это не сам сервер базы данных), запустить xserver.
3
www.oracle-dba.ru Под windows его можно скачать с сайта:http://sourceforge.net/projects/xming/files/ Необходимо скачать сам сервер и шрифты к нему, после, лучше сделать reboot системы. Далее, необходимо настроить правила доступа.В самом простом варианте, правой кнопкой мыши по ярлыку xming. Зайти в свойства и в target, дописать -ac (т.е. без контроля доступа)
Создание виртуальной машины для инсталляции базы данных Oracle
https://docs.google.com/document/d/1ZU6Hk5DYitFYwlRFqN2qmJr6maPpvgsVc6ZTiZ1kYVA/edit
4
www.oracle-dba.ru
Подготовка операционной системы к инсталляции базы данных: Необходимо выбрать подходящее имя для сервера, которое бы отражало его роль и назначение в сети. Для этого, с помощью редактора (например, vi) отредактируйте файл /etc/sysconfig/networkЗадайте параметры, согласно характеристикам Вашей сети. Команды редактора vihttp://odba.ru/showthread.php?t=331
Настройка сетевых интерфейсов Не рекомендуется в hostname использовать знак нижнего подчеркивания (_). (Enterprise Manager и другие web приложения не сможет подключиться к базе по http/https) # vi /etc/sysconfig/network
NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=oracle112.localdomain
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"ONBOOT="yes"BOOTPROTO=staticIPADDR=192.168.1.10NETMASK=255.255.255.0GATEWAY=192.168.1.1
# vi /etc/resolv.conf
nameserver 192.168.1.1nameserver 127.0.0.1search localdomain
5
www.oracle-dba.ru
options attempts: 2options timeout: 1
# vi /etc/hosts
## Localdomain and Localhost (hosts file, DNS)127.0.0.1 localhost.localdomain localhost::1 localhost6.localdomain6 localhost6 ## IPs Public Network (hosts file, DNS)192.168.1.10 oracle112.localdomain oracle112
Перестартовать сетевые интерфейсы, можно с помощью следующей команды:# service network restart Некоторые комментарии к следующей команде. Создаем резервную копию файла /etc/selinux/config, и меняем значение парамета SELINUX с enforcing на disabled # sed -i.bkp -e "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config А здесь, мы делаем резервную копию и меняем значение timeout с 5 на 0# sed -i.bkp -e "s/timeout=5/timeout=0/g" /boot/grub/grub.conf Выключаю firewall# service iptables stop Запрещаю firewall запускаться при старте операционной системы# chkconfig iptables off
Инсталляция обязательных пакетов: База данных Oracle, требует, чтобы в системе были обязательно установлены некоторые компоненты. Пакеты можно скачать с публичного репозитория (из интернет) или взять с диска, на котором и располагается дистрибутив операционной системы. 1) Инсталляция пакетов с DVD диска Oracle Linux:
6
www.oracle-dba.ru# mkdir /mnt/cdrom# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom # vi /etc/yum.repos.d/oracleLinuxRepoDVD.repo
[OEL58_DVD]name=Oracle Enterprise Linux DVDbaseurl=file:///mnt/cdrom/Server/gpgcheck=0enabled=1
2) Инсталляция пакетов из репозитория Oracle Linux в интернете: # vi /etc/yum.repos.d/oracleLinuxRepoINTERNET.repo
[OEL_INTERNET]name=Oracle Enterprise Linux $releasever - $basearch baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/x86_64/gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5gpgcheck=1enabled=1
# yum repolist Следующие пакеты, необходимо установить обязательно. Просто скопируйте код и вставьте в консоль putty # yum install -y \binutils \compat-libstdc++*33* \elfutils-libelf \elfutils-libelf-devel \elfutils-libelf-devel-static \gcc \gcc-c++ \glibc \glibc-common \glibc-devel \glibc-headers \kernel-headers \libaio \libaio-devel \libgcc \
7
www.oracle-dba.rulibgomp \libstdc++ \libstdc++-devel \make \numactl-devel \sysstat Дополнительные пакеты: # yum install -y \mc \nano \vim \emacs \make \openssh-clients \wget \xinetd \screen \vsftpd \gamin \unzip \ntp \net-snmp \ntsysv \libXext.x86_64 \compat-libstdc++* \readline-devel.x86_64 rlwrap - пакет, который позволяет хранить историю команд в SQL*PLUS и RMAN в Linux (его необходимо прописывать отдельной строкой в bash профиле). Установив данный пакет, вы сможете использовать кнопки вверх, вниз для просмотра истории введенных команд, правильную работу команды backspace и др. # cd /tmp# wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz # tar zxvf rlwrap-0.37.tar.gz# cd rlwrap-0.37# ./configure# make # make check# make install
8
www.oracle-dba.ru
9
www.oracle-dba.ru
Дополнительные настройки: Настраиваем планировщик заданий Сервера ru.pool.ntp.org выбраны в качестве примера # crontab -e
# Set the date and time via NTP*/15 * * * * /usr/sbin/ntpdate 0.ru.pool.ntp.org 1.ru.pool.ntp.org 2.ru.pool.ntp.org 3.ru.pool.ntp.org > /var/log/time.log
Внесите изменения в файл параметров ntpd # vi /etc/sysconfig/ntpd замените
# Drop root to id 'ntp:ntp' by default.OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"
на
# Drop root to id 'ntp:ntp' by default.# OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
// Перестартуйте сетевые интерфейсы# service ntpd restart
10
www.oracle-dba.ru
Подготовка дисков к инсталляции базы данных В каталоге /u01 будет храниться программное обеспечение для работы с базами данных (Database Software) а в каталоге /u02 файлы базы данных. # ls /dev/sd*/dev/sda /dev/sda2 /dev/sdc /dev/sde /dev/sdg/dev/sda1 /dev/sdb /dev/sdd /dev/sdf /dev/sdh # fdisk /dev/sdb# fdisk /dev/sdc# fdisk /dev/sdd
The number of cylinders for this disk is set to 5221.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): nCommand action e extended p primary partition (1-4)[p]Partition number (1-4): [1]First cylinder (1-5221, default 1): [Enter]Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-5221, default 5221): [Enter]Using default value 5221 Command (m for help): [w]The partition table has been altered! Calling ioctl() to re-read partition table.Syncing disks.
11
www.oracle-dba.ru # mkfs.ext4 /dev/sdb1# mkfs.ext4 /dev/sdc1# mkfs.ext4 /dev/sdd1 # mkdir /u01# mkdir /u02# mkdir /u03 # cp /etc/fstab /etc/fstab.bkp# echo "/dev/sdb1 /u01 ext4 defaults 1 2" >> /etc/fstab# echo "/dev/sdc1 /u02 ext4 defaults 1 2" >> /etc/fstab# echo "/dev/sdd1 /u03 ext4 defaults 1 2" >> /etc/fstab # mount /u01# mount /u02# mount /u03 # mount | grep sdb1/dev/sdb1 on /u01 type ext4 (rw) # mount | grep sdc1/dev/sdc1 on /u02 type ext4 (rw) # mount | grep sdd1/dev/sdd1 on /u03 type ext4 (rw)
12
www.oracle-dba.ru
Конфигурурование системных пользователей, настройка параметров системы: Перед тем как вносить изменения в конфигурационные файлы, рекомедуется сделать их резервные копии: # {cp /etc/sysctl.conf /etc/sysctl.conf.bkpcp /etc/security/limits.conf /etc/security/limits.conf.bkpcp /etc/pam.d/login /etc/pam.d/login.bkpcp /etc/profile /etc/profile.bkp}
Создание пользователей и групп Создаем группы: # groupadd -g 1000 oinstall# groupadd -g 1001 dba# groupadd -g 1002 oper Создаем пользователя oracle11, сообщаем, что он будет находиться в группах dba и oinstall и домашним каталогом у него будет /home/oracle11 # useradd \-g oinstall \-G dba \-d /home/oracle11 \-m oracle11 Устанавливаем пароль для пользователе oracle11# passwd oracle11
13
www.oracle-dba.ru
Изменение параметров ядра и параметров учетной записи с правами администратора базы данных 1) Отредактируйте файл /etc/sysctl.conf Рекомендуется закомментировать (поставить перед ними знак #) имеющиеся параметры kernel.shmmax и kernel.shmall. Далее они будут добавлены в качестве параметров вместе с остальными параметрами Oracle. # sed -i.gres "s/kernel.shmmax/#kernel.shmmax/g" /etc/sysctl.conf# sed -i.gres "s/kernel.shmall/#kernel.shmall/g" /etc/sysctl.conf # vi /etc/sysctl.conf kernel.shmmax = RAM (in bytes) / 22100154368 / 2 = 1050077184 Количество байт отперативной памяти, можно узнать введя команду # free -b Добавьте в конец документа следующие параметры ядра.
################################################ Oracle Kernel Parameters
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152 # kernel.shmmax = 1050077184
kernel.shmmax = 1054117888kernel.shmmni = 4096fs.file-max = 6815744fs.aio-max-nr = 1048576net.ipv4.ip_local_port_range = 20000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586vm.min_free_kbytes = 23168
############################################
14
www.oracle-dba.ru
2) Отредактируйте файл /etc/security/limits.conf # vi /etc/security/limits.conf Добавьте следующие строки
################################################ Settings required for Oracle 11
oracle11 soft nproc 2047oracle11 hard nproc 16384oracle11 soft nofile 1024oracle11 hard nofile 65536oracle11 soft stack 10240oracle11 hard stack 32768
############################################
3) Отредактируйте файл /etc/pam.d/login # vi /etc/pam.d/login Добавьте следующие строки
################################################ Settings required for Oracle
session required pam_limits.so############################################
4) Отредактируйте файл /etc/profile # vi /etc/profile Перед unset iunset pathmunge Добавьте
15
www.oracle-dba.ru
################################################ Shell limits for Oracle 11 user accounts
if [ $USER = "oracle11" ]; thenulimit -u 16384 -n 65536fi
############################################
5) Отредактируйте файл /home/oracle11/.bash_profile # vi /home/oracle11/.bash_profile После; # User specific environment and startup programs
Добавьте
################################################ Oracle Parameters
umask 022
export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2export ORACLE_SID=ora112export ORACLE_UNQNAME=ora112
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"
export PATH=$PATH:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib
alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman'
############################################
Применить параметры ядра без перезагрузки можно следующей командой:# sysctl -p Применить переменные, определенные в файле .bash_profile к текущей сессии bash можно следующей командой: # source ~/.bash_profile
16
www.oracle-dba.ru
17
www.oracle-dba.ru
Автозапуск только выбранных программ Получить список программ, которые будут автоматически стартовать, можно с помощью команды # chkconfig --list Самый быстрый способ - отключить все и после выбрать только те пакеты, которые должны быть стартовать автоматически при запуске операционной системы. // Создаем резервную копию выходного потока от программы chkconfig --list# chkconfig --list > /tmp/chkconfig.backup // Посмотреть какие программы сейча автостартуют при запуске операционной системы.# chkconfig --list | grep '3:on\|4:on\|5:on' |awk '{print $1}' | sort // Следующая команда отключает автозапуск сразу всех пакетов. # for i in $(chkconfig --list | grep '3:on\|4:on\|5:on' | awk {'print $1'}); do chkconfig --level 345 $i off; done После этого, включаем в автозапуск следующие программы: {chkconfig --level 345 acpid onchkconfig --level 345 atd on
chkconfig --level 345 auditd onchkconfig --level 345 autofs onchkconfig --level 345 crond onchkconfig --level 345 haldaemon onchkconfig --level 345 irqbalance onchkconfig --level 345 messagebus onchkconfig --level 345 netfs onchkconfig --level 345 network onchkconfig --level 345 nfs onchkconfig --level 345 nfslock onchkconfig --level 345 ntpd onchkconfig --level 345 portmap on
chkconfig --level 345 rpcgssd on
18
www.oracle-dba.ruchkconfig --level 345 rpcidmapd onchkconfig --level 345 sendmail on
chkconfig --level 345 sshd onchkconfig --level 345 syslog onchkconfig --level 345 sysstat onchkconfig --level 345 xinetd on
chkconfig --level 345 readahead_early onchkconfig --level 345 readahead_later on
chkconfig --level 345 snmpd on
} // Обязательно убедиться, что ssh будет запущен при автозапуске!.# chkconfig --list | grep ssh Далее, следует перезагрузить сервер, чтобы просто убедиться, что все нормально поднимается после перезагрузки. # reboot
Создание структуры каталогов и назначение необходимых прав # mkdir -p /u01/app/oracle/product/11.2# chown -R oracle11:dba /u01/app/oracle# chmod -R 775 /u01/app/oracle/product/11.2 # mkdir -p /u01/app/oraInventory# chown -R oracle11:oinstall /u01/app/oraInventory# chmod -R 775 /u01/app/oraInventory # mkdir -p /u02/oradata# chown -R oracle11:oinstall /u02/oradata# chmod -R 775 /u02/oradata
19
www.oracle-dba.ru # mkdir -p /u03/orabackups# chown -R oracle11:oinstall /u03/orabackups# chmod -R 775 /u03/orabackups
Копирование дистрибутивов базы данных на сервер (в каталог /tmp): Необходимо скопировать следующие архивы на сервер в каталог /tmp: p10404530_112030_Linux-x86-64_1of7.zipp10404530_112030_Linux-x86-64_2of7.zip Для инсталляции базы данных достаточно первых 2-х архивов из 7. Если архивы, лежат на сервере с операционной системой linux, можно воспользоваться утилитой scp. Например, следующей командой можно забрать дистрибутивы базы данных с другого сервера linux и положить их в каталог /tmp:# scp [email protected]:/oracle/p10404530_112030_Linux-x86-64_{1..2}of7.zip /tmp/ Если Вы работаете под Windows, самый простой спомоб - воспользоваться winscp. Назначить владельцем скачанных архивов пользователя oracle11 # chown -R oracle11:oinstall /tmp/p10404530_112030_Linux-x86-64_*
20
www.oracle-dba.ru
Инсталляция ПО Oracle (DataBase SoftWare) Войдите в систему пользователем, от имени которого будет будет происходить инсталляция базы данных. # su - oracle11$ cd /tmp $ unzip p10404530_112030_Linux-x86-64_1of7.zip; \unzip p10404530_112030_Linux-x86-64_2of7.zip $ cd /tmp/database
Если вы инсталлируете Oracle на сервер с GUI. И при инсталляции будут возникать задержки при работе с XMING, возможно, вам поможет VNC - клиент.http://odba.ru/showthread.php?goto=newpost&t=738
Определите системную переменную DISPLAY следующим образом. $ export DISPLAY=192.168.1.50:0.0 В данном случае 192.168.1.50 - ip адрес компьютера, с которого происходит процесс управления установкой. На этом компьютере должен быть стартован xserver, например XMing. Запустите утилиту для установки базы данных. $ ./runInstaller В некоторых случаях приходится запускать инсталляцию с игнорированием системных сообщений $ ./runInstaller -ignoreSysPrereqs Если все нормально, появится картинка:
21
www.oracle-dba.ru
22
www.oracle-dba.ru
23
www.oracle-dba.ru
24
www.oracle-dba.ru
25
www.oracle-dba.ru
26
www.oracle-dba.ru
27
www.oracle-dba.ru
28
www.oracle-dba.ru
29
www.oracle-dba.ru
30
www.oracle-dba.ru
31
www.oracle-dba.ru
32
www.oracle-dba.ru
После появления следующего окна, необходимо выполнить под учетной записью root следующие скрипты. Рекомендуется подключиться к серверу баз данных еще одной сессией putty.
33
www.oracle-dba.ru
# /u01/app/oraInventory/orainstRoot.sh# /u01/app/oracle/product/11.2/root.sh Enter the full pathname of the local bin directory: [/usr/local/bin]: [Enter]
34
www.oracle-dba.ru
35
www.oracle-dba.ru
Настройка службы, отвечающей за удаленное подключение к серверу (Listener) Предполагается, что системная переменная DISPLAY определена. $ netca
36
www.oracle-dba.ru
37
www.oracle-dba.ru
38
www.oracle-dba.ru
39
www.oracle-dba.ru
40
www.oracle-dba.ru
41
www.oracle-dba.ru
Создание экземпляря (instance) базы данных Предполагается, что системная переменная DISPLAY определена. $ dbca
42
www.oracle-dba.ru
Step2: Database Templates Ниже Вам предлагают выбрать, один из вариантов инсталляции базы данных. Тот или иной выбор определяет то, каким образом будут оптимизированы параметры работы базы данных. Упрощенно:Вариант 1 OLTP - когда необходимо оптимизировать ввод данных в базу данных.Вариант 2 - вам предлагается самостоятельно выбрать системные параметры базы данных.Вариант 3 Data Warehouse - когда необходимо оптимизировать работу с данными в базе данных (построения всевозможных отчетов).
43
www.oracle-dba.ru
44
www.oracle-dba.ru
45
www.oracle-dba.ru
46
www.oracle-dba.ru
Step 6: Database File Locations Далее необходимо указать место, где база данных будет хранить файлы базы данных - т.е. те файлы в которых собственно и будут храниться данные. /u02/oradata
47
www.oracle-dba.ru
Step 7: Recovery Configuration
48
www.oracle-dba.ru
Нужно определить каталог для резевных копий. По умолчанию там же хранятся и архивные журналов (если включить Enable Archiving). Посмотреть размер свободного пространства на диске (в мегабайта) # df -m | grep /dev/sdd1/dev/sdd1 40313 176 38089 1% /u03 Available 38089 MПусть будет 30 G = 30MНе весь, для того, чтобы при необходимости можно было бы добавить из имеющихся ресурсов.
49
www.oracle-dba.ru Step 8: Database Content
Oracle Text - обеспечивает индексирование слов и поиск http://docs.oracle.com/cd/B10501_01/text.920/a96517/cdefault.htm Oracle OLAP - многомерный анализ данных, для аналитических приложений.http://www.oracle.com/technetwork/documentation/olap-101824.html Oracle Spatial - для Geographic Information System (GIS)http://docs.oracle.com/html/A88805_01/sdo_intr.htm Oracle Multimedia - нужна в случае, если предполагается хранить в базе картинки, аудио, видео.http://docs.oracle.com/cd/E11882_01/appdev.112/e10777/ch_intr.htm#i610845
50
www.oracle-dba.ru Oracle JVM - если нужна java внутри базы данных. Application Express - имеет смысл оставить, только если предполагается с ним работать.
Step 9: Initialization Parameters Если не планируется на сервере создавать еще один экземпляр базы данных, имеет смысл выделить для сервера побольше памяти. (90%). (на картинке изображена установка с большим количеством оперативной памяти, чем прилагается в документе по созданию виртуальной машины)
51
www.oracle-dba.ru
Если в базе будут использоваться русские буквы, рекомендуется выбрать кодировку, которая поддерживает данную возможность. Unicode, где каждый символ кодируется 2 байтами, вполне подходит для этой задачи.
52
www.oracle-dba.ru
53
www.oracle-dba.ru
54
www.oracle-dba.ru
55
www.oracle-dba.ru
56
www.oracle-dba.ru
57
www.oracle-dba.ru
При желании, можно подключиться к Enterprise Manager (EM).
58
www.oracle-dba.ru
59
www.oracle-dba.ru
Проверка правильности выбора кодировки если планируется использовать кириллицу в базе данных $ sqlplus / as sysdba SQL> select 'пиво' from dual; 'пиво'----пиво
60
www.oracle-dba.ru
Создание резервной копии созданной базы данных: На шаге 7 был выбран режим работы базы данных archivelog. Данный режим работы базы данных позволяет создавать резервные копии базы данных не останавливая базу данных. $ rman target / RMAN> BACKUP FULL DATABASE TAG "FULL_DATABASE" PLUS ARCHIVELOG TAG "FULL_DATABASE_ARCHIVELOGS"; RMAN> quit // При необходимости, можно посмотреть когда делались бекапы, и завершились ли они успешно или нет. $ sqlplus / as sysdbaSQL> set pagesize 200;SQL> SELECT start_time, end_time, statusFROM v$rman_backup_job_details order by 1 desc;
START_TIME END_TIME STATUS------------------- ------------------- -----------------------05.05.2012 16:04:40 05.05.2012 16:06:41 COMPLETED
Замечание: При инсталляции, было определено это пространство для резервных копий базы данных и файлов архивных журналов (Fast Recovery Area (FRA). Необходимо следить за тем, чтобы у базы данных оставалось место для записи в него своих данных. При необходимости, его нужно освобождать от устаревших данных. Чистить можно только средствами RMAN. Посмотреть свободное место, можно командой: $ sqlplus / as sysdba SQL>
61
www.oracle-dba.ru
SELECT TO_CHAR(SPACE_USED, '999,999,999,999') AS "Used", TO_CHAR(SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE, '999,999,999,999') AS "Free", ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1) AS "Used %" FROM V$RECOVERY_FILE_DEST;
Used Free Used %---------------- ---------------- ---------- 1,130,799,104 3,201,327,104 25.9 // Изменить размер выделенный для бекапов и архивных журналов, можно командойalter system set db_recovery_file_dest_size = 80G;
Дополнительные настройки (необязательные):
Автоматизация автозапуска Oracle после перезагрузки: Необходимо отредактировать файл /etc/oratab $ vi /etc/oratab Замените строку:
ora112:/u01/app/oracle/product/11.2:N
на
# ora112:/u01/app/oracle/product/11.2:Nora112:/u01/app/oracle/product/11.2:Y
62
www.oracle-dba.ru
Создание скрипта, стартующего и останавливающего базу данных при старте и перезапуске операционной системы: Создайте скрипт для запуска базы данных следующего содержания. # vi /etc/rc.d/init.d/startupOracleDatabase11GR2
#!/bin/bash## chkconfig: 35 98 03# description: Oracle 11gR2 startup and shutdown script # source function library. /etc/rc.d/init.d/functions ORA_SCRIPTS=/u01/app/oracle/product/11.2/binORA_OWNER=oracle11 echo "-------------------------------------------------" >> /var/log/ora112.logdate >> /var/log/ora112.log start() { if [ -x $ORA_SCRIPTS/dbstart ]; then echo -n "Starting Oracle 11gR2 databases: " su - $ORA_OWNER -c "$ORA_SCRIPTS/dbstart" >> /var/log/ora112.log echo_success echo echo -n "Starting Oracle 11gR2 TNS listener: " su - $ORA_OWNER -c "$ORA_SCRIPTS/lsnrctl start" >> /var/log/ora112.log touch /var/lock/subsys/ora112.log echo_success echo exit 0 else echo -n "Starting Oracle 11gR2 databases: " echo_failed echo exit 1; fi} stop() {
63
www.oracle-dba.ru
if [ -x $ORA_SCRIPTS/dbshut ]; then echo -n "Stoping Oracle 11gR2 TNS listener: " su - $ORA_OWNER -c "$ORA_SCRIPTS/lsnrctl stop" >> /var/log/ora112.log echo_success echo echo -n "Stoping Oracle 11gR2 databases: " su - $ORA_OWNER -c $ORA_SCRIPTS/dbshut >> /var/log/ora112.log echo_success echo rm -f /var/lock/subsys/ora112.log exit 0 else echo -n "Stoping Oracle 11gR2 databases: " echo_failed echo exit 1; fi} case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" exit 1esac exit 0
# chmod +x /etc/rc.d/init.d/startupOracleDatabase11GR2# chkconfig --add startupOracleDatabase11GR2
64
www.oracle-dba.ru
Запретить удаленное подключение к сереверу баз данных пользователем root Создаем группу:# groupadd sysadmins Создаем пользователя:# useradd \-g sysadmins \-d /home/sysadm \-m sysadm Устанавливаем пароль для пользователе sysadm# passwd sysadm Пожалуй предоставим пользователю sysadm возможность работать с полномочиями root# vi /etc/sudoers
## Allow root to run any commands anywhereroot ALL=(ALL) ALLsysadm ALL=(ALL) ALL
Запрет входа root по SSH vi /etc/ssh/sshd_config
#PermitRootLogin yes
меняем на
PermitRootLogin no
# service sshd restart
65
www.oracle-dba.ru
Обеспечение дополнительной отказоустойчивости системы: В целях повышения надежности работы данных, необходимо обеспечить мультиплексирование: control file, redo-log журналов.
Мультиплексирование controlfiles Под рутом создаю каталог: # mkdir -p /u03/oradata# chown -R oracle11:dba /u03/oradata# chmod -R 775 /u03/oradata $ su - oracle11 $ sqlplus / as sysdba SQL> select name from v$CONTROLFILE;
NAME--------------------------------------------------------------------------------/u02/oradata/ora112/control01.ctl/u03/orabackups/ora112/control02.ctl
SQL> shutdown immediate; SQL> quit $ mkdir -p /u03/oradata/${ORACLE_SID}$ cp /u02/oradata/ora112/control01.ctl /u03/oradata/ora112/control01.ctl$ rm -rf /u03/orabackups/ora112 $ sqlplus / as sysdba SQL> startup nomount;
66
www.oracle-dba.ruSQL> ALTER SYSTEM SET control_files = '/u02/oradata/ora112/control01.ctl', '/u03/oradata/ora112/control01.ctl' scope=spfile; SQL> shutdown immediate;SQL> startup; SQL> SELECT name FROM v$CONTROLFILE;
NAME--------------------------------------------------------------------------------/u02/oradata/ora112/control01.ctl/u03/oradata/ora112/control01.ctl
Мультиплексирование redologs $ sqlplus / as sysdba Блок команд, чтобы удобнее представить на экране результаты выполнения запросов. SQL> set linesize 200;SQL> set pagesize 0;SQL> col GROUP# format 99;SQL> col MEMBER format a40;SQL> col STATUS format a30;SQL> col MB format 999; SQL>
select a.group#, member, a.status, bytes/1024/1024 as "MB"from v$log a, v$logfile bwhere a.group# = b.group#order by 1;
1 /u02/oradata/ora112/redo01.log CURRENT 50 2 /u02/oradata/ora112/redo02.log INACTIVE 50 3 /u02/oradata/ora112/redo03.log INACTIVE 50 Удаляем файлы группы в состоянии INACTIVE
67
www.oracle-dba.ruУдаляем файлы группы 2SQL> alter database drop logfile group 2; SQL> quit $ rm /u02/oradata/ora112/redo02.log $ sqlplus / as sysdba Добавляем новую группу, перечисляем файлы новой группы и определяем их размер.SQL> alter database add logfile group 2 ('/u02/oradata/ora112/redo02.log' , '/u03/oradata/ora112/redo02.log') size 100M; Удаляем файлы группы 3 SQL> alter database drop logfile group 3; SQL> quit $ rm /u02/oradata/ora112/redo03.log $ sqlplus / as sysdba SQL> alter database add logfile group 3 ('/u02/oradata/ora112/redo03.log' , '/u03/oradata/ora112/redo03.log ') size 100M; Удаляем файлы группы 1 Нужно пересоздать группу 1 и файлы данной группы. Но так как группа активна, необходимо переключиться на следующую группу файлов, сделав группу 1 INACTIVE. Для переключения, достаточно выполнить команды. SQL> alter system checkpoint;SQL> alter system switch logfile; // Теперь можно удалить группу 1SQL> alter database drop logfile group 1; SQL> quit $ rm /u02/oradata/ora112/redo01.log $ sqlplus / as sysdba SQL> alter database add logfile group 1 ('/u02/oradata/ora112/redo01.log' , '/u03/oradata/ora112/redo01.log ') size 100M;
68
www.oracle-dba.ru SQL> set linesize 200;SQL> set pagesize 0;SQL> col GROUP# format 99;SQL> col MEMBER format a50;SQL> col STATUS format a30;SQL> col MB format 999; SQL> set linesize 640 SQL> select a.group#, member, a.status, bytes/1024/1024 as "MB"from v$log a, v$logfile bwhere a.group# = b.group#order by 1,2;
1 /u02/oradata/ora112/redo01.log UNUSED 100 1 /u03/oradata/ora112/redo01.log UNUSED 100 2 /u02/oradata/ora112/redo02.log CURRENT 100 2 /u03/oradata/ora112/redo02.log CURRENT 100 3 /u02/oradata/ora112/redo03.log UNUSED 100 3 /u02/oradata/ora112/redo03.log UNUSED 100
Мультиплексирование archivelog. $ mkdir -p /u02/oradata/${ORACLE_SID}/archivelogs$ mkdir -p /u03/oradata/${ORACLE_SID}/archivelogs Задать разделы для архивных журналовSQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=/u02/oradata/ora112/archivelogs mandatory' scope=both; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location=/u03/oradata/ora112/archivelogs mandatory' scope=both; Посмотреть текущие значения параметра LOG_ARCHIVE_DESTSQL> show parameter LOG_ARCHIVE_DEST ; Задать формат для файлов arhivelogsSQL> ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%R.arc' scope=spfile;
69
www.oracle-dba.ru
Контрольный backup$ cd /u03/orabackups$ vi rmanscript.rman
RUN {CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;BACKUP FULL DATABASE TAG "FULL_DATABASE" PLUS ARCHIVELOG TAG "FULL_DATABASE_ARCHIVELOGS";}
Проверка синтаксиса созданного файла сценария$ rman CHECKSYNTAX @rmanscript.rman Выполнение скрипта резервного копирования$ rman target / @rmanscript.rman Удалить предыдущий бекап: Следующая команда сообщает, что нужно хранить только 1 бекап. RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1; Теперь прошу RMAN удалить устаревшие бекап RMAN> delete noprompt obsolete;
70