четверг, 19 февраля 2009 г.

Oracle 11g Installations on Oracle Linux 6

1. Установить пакеты:


# su - root
# yum install oracle-rdbms-server-11gR2-preinstall


# Логи установки пакетов
# ls -al /var/log/oracle-rdbms-server-11gR2-preinstall/results/orakernel.log

2. Подготовить диски ASM Multipath


3. Создать директории


DB: http://docs.oracle.com/cd/E11882_01/install.112/e47689/appendix_ofa.htm#LADBI1398
GI: http://docs.oracle.com/cd/E11882_01/install.112/e41961/prelinux.htm#CWLIN181

Определим следующее расположение:

ORACLE_BASE       /u01/app/oracle
ORACLE_HOME       /u01/app/oracle/product/11.2.0.4
GRID_HOME       /u01/app/grid/product/11.2.0.4
ORACLE_ADMIN    /u01/app/oracle/admin
ORA_INVENTORY   /u01/app/oraInventory



# su - root
# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/oraInventory
# mkdir -p /u01/app/oracle/admin
# mkdir -p /u01/app/oracle/product/11.2.0.4
# mkdir -p /u01/app/grid/product/11.2.0.4
# chown -R oracle:oinstall /u01



4. Настроить .bash_profile oracle


oracle@:~$ cat .bash_profile

# .bash_profile

# Source global definitions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

if [ "$BASH" = "" ]; then
echo Hello Bourne or K shell ....
PS1=$LOGNAME@`uname -n`"# "
else
echo Hello Bash ...
PS1="\u@\h:\w> "
fi


oracle@:~$ cat .bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi


##################################################
# Setup Oracle standard env
##################################################

export ORACLE_SID=TESTDB
export ORACLE_BASE=/u01/app/oracle
export PATH=$PATH:/usr/local/bin
ORAENV_ASK=NO
. /usr/local/bin/oraenv > /dev/null 2>&1
ORAENV_ASK=YES

##################################################
# Setup Oracle extended env
##################################################
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT=YYYY-MM-DD:HH24:MI:SS
export LIBPATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:$PATH


umask 022
unset TMOUT

if [ `uname` = "Linux" ]; then
unset LS_COLORS
fi



5. Установка Grid Infrastructure


su - oracle
export ORACLE_BASE=/u01/app/oracle
unset ORACLE_SID ORACLE_HOME LIBPATH LD_LIBRARY_PATH
cd /u01/distrib/11.2.0.4
unzip p13390677_112040_Linux-x86-64_3of7.zip
cd grid
./runInstaller


Oracle Base: /u01/app/oracle
Software Location: /u01/app/grid/product/11.2.0.4


Проверка показала что необходимо увеличить размер swap
Увеличим размер:

su - root

swapoff -v /dev/vg_dc1oel67/lv_swap
lvresize   /dev/vg_dc1oel67/lv_swap -L +4G
mkswap     /dev/vg_dc1oel67/lv_swap
swapon -v  /dev/vg_dc1oel67/lv_swap


lvdisplay | egrep "LV Name|LV Size|LV Path"
  LV Path                /dev/vg_dc1oel67/lv_swap
  LV Name                lv_swap
  LV Size                7.88 GiB

Повторим: Check Again

Запустим скрипт от root:

# /u01/app/oraInventory/orainstRoot.sh

#



6. Настройка SUDO для запуска утилит по администрированию GI с правами root

для учётной записи oracle


su – root

#vi /etc/sudoers
или
# visudo


###################################
# For oracle
###################################
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/crsctl
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/ocrconfig
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/ocrcheck
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/srvctl
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/acfsload
oracle  ALL=NOPASSWD:/u01/app/grid/product/11.2.0.4/bin/acfsroot



Проверка

su - oracle
$ sudo –l


User oracle may run the following commands on this host:
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/crsctl
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/ocrconfig
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/ocrcheck
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/srvctl
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/acfsload
    (root) NOPASSWD: /u01/app/grid/product/11.2.0.4/bin/acfsroot
#


Проверка работы GI с использованием утилит через SUDO

# su - oracle

$ . oraenv

ORACLE_SID = [root] ? +ASM
The Oracle base has been set to /u01/app/oracle

oracle@omega:~$ sudo /u01/app/grid/product/11.2.0.4/bin/crsctl status res –t



7. Установка DB Home


su - oracle
export ORACLE_BASE=/u01/app/oracle
unset ORACLE_SID ORACLE_HOME LIBPATH LD_LIBRARY_PATH
cd /u01/distrib/11.2.0.4
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
cd database
./runInstaller


Oracle Base: /u01/app/oracle
Software Location: /u01/app/oracle/product/11.2.0.4

Запустим скрипт от root:

[root@omega ~]# /u01/app/oracle/product/11.2.0.4/root.sh


8. Создание тестовой БД TESTDB с помощью dbca


su – oracle
$ . oraenv
$ dbca


Проверка работы DB TESTDB

su – oracle

$ . oraenv

ORACLE_SID = [TESTDB] ?
The Oracle base remains unchanged with value /u01/app/oracle

oracle@omega:~$ sudo /u01/app/grid/product/11.2.0.4/bin/crsctl status res -t


Проверка содержимого файла alert_TESTDB.log

# tail -1000f /u01/app/oracle/diag/rdbms/testdb_omega/TESTDB/trace/alert_TESTDB.log




9. Установка PSU патчей для GI_HOME + DB_HOME в режиме AUTO


Список последних PSU патчей доступен здесь:
http://www.oracle.com/technetwork/topics/security/alerts-086861.html

Установить последнюю версию утилиты OPatch (патч 6880880) во все $ORACLE_HOME.

GRID_HOME


su - root
chown oracle:oinstall /u01/app/grid/product/11.2.0.4

su – oracle
$ . oraenv
cd /u01/distrib/11.2.0.4/PSU/160119
cp p6880880_112000_Linux-x86-64.Opatch_11.2.0.3.12.zip $ORACLE_HOME
cd $ORACLE_HOME
mv OPatch OPatch.old
unzip p6880880_112000_Linux-x86-64.Opatch_11.2.0.3.12.zip
$ORACLE_HOME/OPatch/opatch version

DB_HOME


su – oracle
$ . oraenv
cd /u01/distrib/11.2.0.4/PSU/160119
cp p6880880_112000_Linux-x86-64.Opatch_11.2.0.3.12.zip $ORACLE_HOME
cd $ORACLE_HOME
mv OPatch OPatch.old
unzip p6880880_112000_Linux-x86-64.Opatch_11.2.0.3.12.zip
$ORACLE_HOME/OPatch/opatch version




Создать файл unconfig.rsp во всех $ORACLE_HOME


GRID_HOME


su – oracle
$ . oraenv
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output $ORACLE_HOME/OPatch/ocm/unconfig.rsp

DB_HOME


su – oracle
$ . oraenv
$ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output $ORACLE_HOME/OPatch/ocm/unconfig.rsp


Подготовка перед установкой PSU патчей


Желательно остановить работающий экземпляр СУБД – хотя это не обязательно
GI – должна продолжать работать

su – oracle
. oraenv
srvctl stop database -d testdb_omega



Установка последней версии PSU патча (для GI+DB ) в АВТО режиме


 директория где лежит распакованный патч не должна ничего содержать кроме этого патча
 убедиться, что в /u01 свободно минимум 24 GB

 скопировать патч в директорию /u01/distrib/11.2.0.4/PSU/160119
 распаковать патч в директории /u01/distrib/11.2.0.4/PSU/160119

su – oracle
cd /u01/distrib/11.2.0.4/PSU/160119
unzip p22191577_112040_Linux-x86-64.GI.zip


Установить патч
установка производится из-под пользователя root

su - root
unset TMOUT
export PATH=$PATH:/usr/ccs/bin:/u01/app/grid/product/11.2.0.4/OPatch


# opatch auto /u01/distrib/11.2.0.4/PSU/160119/22191577 -ocmrf /u01/app/grid/product/11.2.0.4/OPatch/ocm/unconfig.rsp
opatch auto succeeded.

Проверка наличия установленных патчей для GRID_HOME + DB_HOME


GRID_HOME

su - oracle
. oraenv

ORACLE_SID = [TESTDB] ? +ASM

$ORACLE_HOME/OPatch/opatch lspatches

DB_HOME

su - oracle
. oraenv

ORACLE_SID = [+ASM] ? TESTDB

$ORACLE_HOME/OPatch/opatch lspatches


Loading Modified SQL Files into the Database


The following steps load modified SQL files into the database.
For an Oracle RAC or Oracle RAC One Node environment, perform these steps on only one node.


Запустить экземпляр БД

su – oracle
. oraenv
srvctl start database -d testdb_omega

Установить изменения в БД
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT


Проверка

SQL> select action, version||'.'||id as version_id, comments, ACTION_TIME
from DBA_REGISTRY_HISTORY;



10. Установка JVM патча для DB_HOME (устанавливается после установки PSU патча)



директория где лежит распакованный патч не должна ничего содержать кроме этого патча
убедиться, что в /u01 свободно минимум 24 GB

скопировать патч в директорию /u01/distrib/11.2.0.4/PSU/160119
распаковать патч в директории /u01/distrib/11.2.0.4/PSU/160119

su – oracle
cd /u01/distrib/11.2.0.4/PSU/160119
unzip p22139245_112040_Linux-x86-64.JVM.zip


Остановить ПО Oracle запущенное с использованием DB_HOME

$ . oraenv
ORACLE_SID = [TESTDB] ? TESTDB
The Oracle base remains unchanged with value /u01/app/oracle

$ srvctl stop database -d testdb_omega


Установить патч

$ cd /u01/distrib/11.2.0.4/PSU/160119/22139245
$ $ORACLE_HOME/OPatch/opatch apply
$ $ORACLE_HOME/OPatch/opatch lspatches



Install the SQL portion of the patch by running the following command for a single instance environment.

cd $ORACLE_HOME/sqlpatch/22139245
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> startup upgrade
SQL> @postinstall.sql
SQL> shutdown
SQL> startup
SQL> @?/rdbms/admin/utlrp



Проверка

$ $ORACLE_HOME/OPatch/opatch lspatches

SQL> select action, version||'.'||id as version_id, comments, ACTION_TIME
from DBA_REGISTRY_HISTORY;




11. Установка DSTv25 патча для DB_HOME (Manually upgrade DST to DSTv25)



директория где лежит распакованный патч не должна ничего содержать кроме этого патча
убедиться, что в /u01 свободно минимум 24 GB

скопировать патч в директорию /u01/distrib/11.2.0.4/PSU/DST-25
распаковать патч в директории /u01/distrib/11.2.0.4/PSU/DST-25


Request and download the 11.2.0.4 DSTv25 Patch 22037014

* Download p22037014_112040_Linux-x86-64.DST-25.zip
* Unzip the RDBMS DSTv25 Patch 22037014
* Apply the RDBMS DSTv25 Patch 22037014  using Opatch.

$ . oraenv
ORACLE_SID = [TESTDB] ? TESTDB
$ srvctl stop database -d testdb_omega
$ cd /u01/distrib/11.2.0.4/PSU/DST-25
$ unzip p22037014_112040_Linux-x86-64.DST-25.zip
$ cd 22037014
$ $ORACLE_HOME/OPatch/opatch apply
$ $ORACLE_HOME/OPatch/opatch lspatches

$ srvctl start database -d testdb_omega

Download the DBMS_DST_scriptsV1.9.zip file and unzip from Doc ID 1585343.1

$ cd /u01/distrib/11.2.0.4/PSU/DST-25
$ unzip DBMS_DST_scriptsV1.9.zip
$ cd DBMS_DST_scriptsV1.9


Проверка

col PROPERTY_NAME format a28
col VALUE format a28

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%'
ORDER BY PROPERTY_NAME;


Установка изменений в системный словарь

# sqlplus / as sysdba

-- Step 1 ---
@countstatsTSTZ.sql
 exec dbms_scheduler.purge_log;

-- Step 2 --
@upg_tzv_check.sql
-- Step 3 --
@upg_tzv_apply.sql


-- Проверка
select filename, to_char(version) as version from v$timezone_file;


-- Проверка
col PROPERTY_NAME format a28
col VALUE format a28

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%'
ORDER BY PROPERTY_NAME;



Создание томов VM и файловой системы Oracle

Информацию о конфигурировании дисковой подсистемы необходимо уточнять в группе проектирования. Ниже приводятся примеры конфигурации, которые нельзя рассматривать, как руководство к действию.
Пример конфигурации V880 с двумя внешними массивами А1000, разбитыми на 3 RAID-группы по одному LUN, и с 12 внутренними дисками
Инициализировать диски, которые будут входить в конфигурацию Volume Manager:
/etc/vx/bin/vxdisksetup -i
где - это имя устройства (первый столбец вывода vxdisk list).
Создать дисковую группу intdg на внутренних дисках (8 дисков, не относящихся к rootdg):
vxdg init ora ora11=SENA0_7 ora12=SENA0_11 ora13=SENA0_3 \
ora14=SENA0_4 ora21=SENA0_6 ora22=SENA0_2 ora23=SENA0_8 ora24=SENA0_10
Создание тома для файловой системы Oracle в дисковой группе intdg:
vxassist -b -g intdg make home 3g nlog=2 nmirror=2 ncol=4 layout=stripe-mirror

Создание томов для логов БД в дисковой группе oradg:

vxassist -b -g oradg make log11 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log11 logtype=drl nlog=2 alloc="ora00 ora21"
vxassist addlog log11 logtype=drl nlog=2 alloc="ora10 ora22"

vxassist -b -g oradg make log12 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log12 logtype=drl nlog=2 alloc="ora00 ora01"
vxassist addlog log12 logtype=drl nlog=2 alloc="ora02 ora03"

vxassist -b -g oradg make log21 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log21 logtype=drl nlog=2 alloc="ora00 ora01"
vxassist addlog log21 logtype=drl nlog=2 alloc="ora02 ora03"

vxassist -b -g oradg make log22 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log22 logtype=drl nlog=2 alloc="ora00 ora01"
vxassist addlog log22 logtype=drl nlog=2 alloc="ora02 ora03"

vxassist -b -g oradg make log31 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log31 logtype=drl nlog=2 alloc="ora00 ora01"
vxassist addlog log31 logtype=drl nlog=2 alloc="ora02 ora03"

vxassist -b -g oradg make log32 100m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist addlog log32 logtype=drl nlog=2 alloc="ora00 ora01"
vxassist addlog log32 logtype=drl nlog=2 alloc="ora02 ora03"

Создание томов для файлов БД в дисковой группе ora:

vxassist -b -g oradg make system01 1g layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist -b -g oradg make temp01 2001m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist -b -g oradg make rbs01 2001m layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist -b -g oradg make cb01 10g layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817
vxassist -b -g oradg make cb02 10g layout=stripe-mirror ncol=3 mirror=2 mirror=ctrl usetype=gen user=ora817

Пример конфигурации V880 с одним внешним массивам A1000, разбитым на 3 RAID-группы по одному LUN, и с 6 внутренними дисками
Инициализировать диски, которые будут входить в конфигурацию Volume Manager:
/etc/vx/bin/vxdisksetup -i
где - это имя устройства (первый столбец вывода vxdisk list).
Создать дисковую группу intdg на внутренних дисках (8 дисков, не относящихся к rootdg):
vxdg init ora ora01=SENA0_4 ora02=SENA0_5
Создать дисковую группу oradg на внешних дисковых массивах:
vxdg init oradg ora00=RDAC0_0 ora01=RDAC0_1 ora02=RDAC0_2
Создание тома для файловой системы archivelog Oracle в дисковой группе intdg:
vxassist -b -g intdg make arch 70g nlog=2 nmirror=2 layout= mirror
Создание томов для логов БД в дисковой группе ora:
vxassist -b -g oradg make log11 100m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make log12 100m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make log21 100m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make log22 100m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make log31 100m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make log32 100m layout=stripe ncol=3 usetype=gen user=ora817
Создание томов для файлов БД в дисковой группе oradg:
vxassist -b -g oradg make system01 1g layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make temp01 2001m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make rbs01 2001m layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make ora01 10g layout=stripe ncol=3 usetype=gen user=ora817
vxassist -b -g oradg make ora02 10g layout=stripe ncol=3 usetype=gen user=ora817
Отображение тома swap на слайсы и настройка dump device
Отображаем тома на слайсы командами:
/usr/lib/vxvm/bin/vxmksdpart -g rootdg rootdisk-02 1 0x03 0x01
/usr/lib/vxvm/bin/vxmksdpart -g rootdg rootmirr-01 1 0x03 0x01
Узнаем, какой диск загрузочный
vxdisk list SENA0_0|grep s2
Результатом должны быть два диска:
c1t0d0s2 state=enabled
c4t0d0s2 state=enabled
для любого из них выполняем команду для первого слайса:
dumpadm -d /dev/dsk/c1t0d0s1
проверить настройку dump device можно командой
dumpadm
Результат должен быть подобен следующему:
Dump content: kernel pages
Dump device: /dev/dsk/c1t0d0s1 (dedicated)
Savecore directory: /var/crash/sf880
Savecore enabled: yes
Настройка переменных bootprom
Для программирования переменной nvramrc выполнить следующий скрипт:

vxdisk list|grep rootdg| while read Unit state Disk Dg StatusDisk
do
i=1
vxdisk list $Disk|grep "state=enabled"| while read Device status
do
Boot_DSK=`echo $Device | awk '{print substr($1,1,length($1)-1)0}'`
echo /usr/lib/vxvm/bin/vxeeprom devalias $Disk$i /dev/dsk/$Boot_DSK
/usr/lib/vxvm/bin/vxeeprom devalias $Disk$i /dev/dsk/$Boot_DSK
i=`expr $i + 1`
done
done
eeprom use-nvramrc?=true
eeprom auto-boot?=true

Скрипт создает алиасы для дисков группы rootdg, разрешает использование nvramrc и включает автоматическую загрузку.
Проверить командой:
eeprom nvramrc
Задать загрузочные устройства:
eeprom boot-device="rootdisk1 rootdisk2 rootmirr1 rootmirr2"
Настройка переменных окружения
Добавить в файл .profile пользователя root следующие строчки:
MANPATH=/usr/share/man:/usr/local/man:/opt/VRTS/man:/opt/VRTSvlic/man:$MANPATH
PATH=$PATH:/etc/vx/bin:/opt/VRTSob/bin:/usr/lib/vxvm/bin

VxVM Создание диска Clone



Бывают случаи, когда необходимо загрузить систему с целью восстановления после сбоя и при этом иметь возможность управлять объектами Volume Manager. Имеется несколько способов добиться этого, наиболее универсальный - создание диска Clone.
Диск Clone содержит копию операционной системы Solaris, которая записана на диск, не включенный в конфигурацию Volume Manager.
Функция диска Clone - создать полнофункциоальную копию операционной системы, не зависящую от объектов Volume Manager, сохраняющую способность использовать утилиты и драйвера Volume Manager.
Размер диска Clone должен быть не менее корневого диска, другие физические параметры, например количество секторов в цилиндре, могут отличаться.

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

1. Инициализация диска clone;
2. Создание на диске clone нового зеркала загрузочного диска;
3. Удаление созданных половинок зеркала, принадлежащих диску clone;
4. Исправление ошибок на файловых системах оторванных половинок зеркал (fsck);
5. Создание subdisk DO_NOT_USE на всем диске clone для резервирования места;
6. Корректировка файлов /etc/system и /etc/vfstab диска clone для обеспечения возможности загрузки с данного диска.

Резервирование диска Clone
/etc/vx/bin/vxdisksetup -i SENA0_3
vxdg -g rootdg adddisk clone=SENA0_3
vxmake sd DO_NOT_USE dmname=clone dmoffset=0 len=`vxdg -g rootdg free clone|awk '$1 == "clone" {print $5}'` comment="Do not delete or relocate this subdisk."
Настройка скрипта
Настройка обычно выполняется один раз при установке скрипта на сервер. Изменение параметров настроенного скрипта может потребоваться в случае изменения структуры загрузочного диска.
При текущих настройках скрипт выполняет создание диска clone для загрузочного диска, содержащего слайсы: swap, root, var, ora817.
Далее перечисляются секции, которые могут потребовать изменения при настройке скрипта под конкретный сервер.

секция: number of slices
указываются порядковые номера слайсов
rootslice=0
swapslice=1
varslice=5
oraslice=6

секция: Mirroring data
выполняет создание зеркал для слайсов загрузочного диска.
Должны быть отзеркалены все слайсы загрузочного диска.
/etc/vx/bin/vxrootmir clone
sizeSWAP=`vxprint -v -q -g rootdg swapvol|awk '{print $5}'`
vxassist -g rootdg make _swap_vol_tmp `expr $sizeSWAP / 2`K clone
vxassist -g rootdg mirror var clone
vxassist -g rootdg mirror ora817 clone

секция: Creating the underlying partitions
выполняет отображение томов Volume Manager на слайсы
# swap
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-02 $swapslice 0x03 0x01
# /var
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-03 $varslice 0x07 0x00
# /ora817
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-04 $oraslice 0x08 0x00

секция fsck
выполняет исправление ошибок на файловых системах
fsck -y /dev/dsk/${TargetDisk}s${rootslice}
fsck -y /dev/dsk/${TargetDisk}s${varslice}
fsck -y /dev/dsk/${TargetDisk}s${oraslice}

секция: Tweak system config files
корректирует системные файлы /etc/system и /etc/vfstab.
строчки, относящиеся к /etc/system, править не требуется.
Корректировку /etc/vfstab нужно выполнять в соответствии со своим сервером.

## /etc/system
mv /tmp/_clone/root/etc/system /tmp/_clone/root/etc/system.pre_clone
sed -e '/vol_rootdev_is_volume/d' -e '/rootdev:/d' /tmp/_clone/root/etc/system.pre_clone > /tmp/_clone/root/etc/system
## /etc/vfstab
mv /tmp/_clone/root/etc/vfstab /tmp/_clone/root/etc/vfstab.pre_clone

cat > /tmp/_clone/root/etc/vfstab << EOVFSTAB

/dev/dsk/${TargetDisk}s${rootslice} /dev/rdsk/${TargetDisk}s${rootslice} / ufs 1 no -
/dev/dsk/${TargetDisk}s${swapslice} - - swap - no -
/dev/dsk/${TargetDisk}s${varslice} /dev/rdsk/${TargetDisk}s${varslice} /var ufs 1 no -
swap - /tmp tmpfs - no -
/proc - /proc proc - no -
/dev/vx/dsk/oradata/oracle /dev/vx/rdsk/oradata/oracle /oracle ufs 2 yes logging
/dev/vx/dsk/archive/arch /dev/vx/rdsk/archive/arch /archive ufs 2 yes logging
/dev/vx/dsk/archive/arch02 /dev/vx/rdsk/archive/arch02 /arch02 ufs 2 yes logging
EOVFSTAB
Остальные секции настройки не требуют.
Настройка запуска по расписанию
Скопировать скрипт в директорию /var/adm/clone, в той же директории будут находиться его логи.
Настроить запуск скрипта script_clone.sh раз в неделю, например в ночь с субботы на воскресенье.
Для этого в расписании пользователя root добавить пункт:
15 22 * * 6 /var/adm/clone/script_clone_ntc.sh >>/var/adm/clone/script_clone_ntc.log 2>&1

Скрипт для cоздания диска Clone
#!/bin/sh
##
## clone
##
## Takes on-line copy of the running OS to a spare "clone" disk.
## Data is copied via mirroring volumes by Volume Manager
##
## Central assumptions:
## 1) A disk in rootdg is called "clone" (case sensitive match)
## 2) No volumes are defined on "clone"
##
#
# Slices for copy to clone by this script: /, /var, /ora817
#
#
##### number of slices #####
rootslice=0
swapslice=1
varslice=5
oraslice=6
############################


echo `date '+%m/%d/%y %H:%M:%S'` --- Start create disk clone
TargetDiskEnclosure=`vxprint -g rootdg -F"%device_tag" clone`
if [ -z "$TargetDiskEnclosure" ] ; then
echo "WARNING: No disk found matching the name \"clone\"."
echo "Unable to continue."
exit 2
fi
vols=`vxprint -Q -g rootdg -e"pl_sd.sd_dm_name == \"clone\"" -F"%vol"`
if [ -n "$vols" ] ; then
echo "WARNING: Volumes found on \"clone\" disk."
echo "Unable to continue."
exit 2
fi

vxdisk list ${TargetDiskEnclosure}>/tmp/disk_clone_num$
TargetDisks=`nawk '$2 == "state=enabled" {print substr($1,1,length($1)-2)}' /tmp/disk_clone_num$`
TargetDisk=`echo "$TargetDisks" | while read DISK_LINE
do echo $DISK_LINE;break;done`

PATH=/usr/sbin:/usr/bin:$PATH
echo Name of clone disk: $TargetDiskEnclosure : $TargetDisk

### Removing sundisk DO_NOT_USE
vxedit rm DO_NOT_USE

### Initialize disk
vxdg rmdisk clone
/usr/lib/vxvm/bin/vxdisksetup -i $TargetDiskEnclosure
vxdg adddisk clone=$TargetDiskEnclosure

##### Mirroring data #####
date '+%m/%d/%y %H:%M:%S'
echo Mirroring root...
/etc/vx/bin/vxrootmir clone
date '+%m/%d/%y %H:%M:%S'
echo Creating swap...
sizeSWAP=`vxprint -v -q -g rootdg swapvol|awk '{print $5}'`
vxassist -g rootdg make _swap_vol_tmp `expr $sizeSWAP / 2`K clone
date '+%m/%d/%y %H:%M:%S'
echo Mirroring /var...
vxassist -g rootdg mirror var clone
date '+%m/%d/%y %H:%M:%S'
echo Mirroring /ora817...
vxassist -g rootdg mirror ora817 clone
date '+%m/%d/%y %H:%M:%S'

##### Creating the underlying partitions #####
# swap
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-02 $swapslice 0x03 0x01
# /var
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-03 $varslice 0x07 0x00
# /ora817
/usr/lib/vxvm/bin/vxmksdpart -g rootdg clone-04 $oraslice 0x08 0x00

##### Deleting clone slices #####
vxplex -o rm dis rootvol-03 var-03 ora817-03
vxplex -f -o rm dis _swap_vol_tmp-01
vxedit -f rm _swap_vol_tmp

### fsck
fsck -y /dev/dsk/${TargetDisk}s${rootslice}
fsck -y /dev/dsk/${TargetDisk}s${varslice}
fsck -y /dev/dsk/${TargetDisk}s${oraslice}

### Mount on tmp mount point
mkdir -p /tmp/_clone/root
mount /dev/dsk/${TargetDisk}s${rootslice} /tmp/_clone/root

##### Tweak system config files #####
## /etc/system
mv /tmp/_clone/root/etc/system /tmp/_clone/root/etc/system.pre_clone
sed -e '/vol_rootdev_is_volume/d' -e '/rootdev:/d' /tmp/_clone/root/etc/system.pre_clone > /tmp/_clone/root/etc/system
## /etc/vfstab
mv /tmp/_clone/root/etc/vfstab /tmp/_clone/root/etc/vfstab.pre_clone
cat > /tmp/_clone/root/etc/vfstab >>EOVFSTAB
/dev/dsk/${TargetDisk}s${rootslice} /dev/rdsk/${TargetDisk}s${rootslice} / ufs 1 no -
/dev/dsk/${TargetDisk}s${swapslice} - - swap - no -
/dev/dsk/${TargetDisk}s${varslice} /dev/rdsk/${TargetDisk}s${varslice} /var ufs 1 no -
swap - /tmp tmpfs - no -
/proc - /proc proc - no -
/dev/dsk/${TargetDisk}s${oraslice} /dev/rdsk/${TargetDisk}s${oraslice} /ora817 ufs 1 yes -
/dev/vx/dsk/intdg/arch01 /dev/vx/rdsk/intdg/arch01 /ora817 ufs 1 yes -
EOVFSTAB
### umount tmp space
umount /tmp/_clone/root

### Reserve clone disk by creating subdisk DO_NOT_USE
vxmake sd DO_NOT_USE dmname=clone dmoffset=0 len=`vxdg -g rootdg free clone|awk '$1 == "clone" {print $5}'` comment="Do not delete or relocate this subdisk."

echo `date '+%m/%d/%y %H:%M:%S'` --- Create disk clone complete
exit 0

VxVM Отображение томов на слайсы

Данная процедура необходима для обеспечения возможности загрузить систему в случае сбоя, приводящего к невозможности загрузки с устройств Volume Manager.
Отобразить тома rootvol, swapvol, var и записать загрузочный блок на все зеркала загрузочного диска можно командой:
vxbootsetup
Проверить результат можно командой format
Если на загрузочном диске существуют тома, отличные от указанных, их также необходимо отобразить на слайсы. Выполнить это можно командой vxmksdpart. Ее формат следующий:
vxmksdpart -g rootdg subdisk sliceno tag flags
, где
subdisk - имя сабдиска отображаемого тома;
sliceno - номер слайса, на который отображается том;
flags - 0 Mountable, Read and Write;
- 1 Not mountable.
tag - тэг из таблицы, приведенной ниже:

Таблица тэгов
Name Tag
UNASSIGNED 0x00
BOOT 0x01
ROOT 0x02
SWAP 0x03
USR 0x04
BACKUP 0x05
STAND 0x06
VAR 0x07
HOME 0x08
ALTSCTR 0x09
CACHE 0x0a
VxVM PRIVATE REGION 0x15
VxVM PUBLIC REGION 0x14

Пример: том home (сабдиск rootmirror-05), отобразить на слайс 7:
vxmksdpart -g rootdg rootmirror-05 7 0x08 0x00
ВНИМАНИЕ! Слайсы 3, 4 зарезервированы Volume Manager, использовать их для отображения томов нельзя, также не используется слайс 2. Таким образом для отображения томов можно использовать 5 слайсов с номерами 0, 1, 5, 6, 7. Слайсы 0 и 1 как правило используются для отображения rootvol и swapvol.

VxVM Настройка диска Hotspare

Ининциализировать диск и настроить его как hotspare:
/etc/vx/bin/vxdisksetup -i SENA0_2
vxdg -g rootdg adddisk hotspare=SENA0_2
vxedit -g rootdg set spare=on hotspare
Для замены политики hotrelocation на hotspare необходимо в файле /etc/rc2.d/S95vxvm-recover закомментировать строчку “ vxrelocd root &” и раскомментировать строчку “vxsparecheck root &”.
Последние 10 строк файла должны выглядеть так:

# start the watch daemon. This sends E-mail to the administrator when
# any problems are found. To change the address used for sending problem
# reports, change the argument to vxrelocd.
#vxrelocd root &

# to enable hot sparing instead of hot relocation.
# ( comment out vxrelocd before uncommenting vxspare )

vxsparecheck root &

exit 0

Чтобы изменить стратегию восстановления без перезагрузки нужно убить процесс vxrelocd и запустить vxsparecheck:
ps -ef|grep vxrelocd
kill -9
/usr/lib/vxvm/bin/vxsparecheck root &
For maximum redundancy, configure all private regions to have a copy of rootdg database:
vxedit set nconfig=all nlog=all rootdg
vxdg flush rootdg

Английская грамматика

Present Simple


Я верю

I believe
You believe
We believe
They believe
He believes
She believes
It believes

Я не верю

I don't believe
You don't believe
We don't believe
They don't believe
He doesn't believe
She doesn't believe
It doesn't believe

Я верю?

Do I believe?
Do you believe?
Do we believe?
Do they believe?
Does he believe?
Does she believe?
Does it believe?

Future Simple


I will = I'll
You will = You'll
We will = We'll
They will = They'll
He will = He'll
She will = She'll
It will = It'll

Я буду верить

I'll believe
You'll believe
We'll believe
They'll believe
He'll believe
She'll believe
It'll believe

I will not = I won't
You will not = You won't
We will not = We won't
They will not = They won't
He will not = He won't
She will not = She won't
It will not = It won't

Я не буду верить

I won't believe
You won't believe
We won't believe
They won't believe
He won't believe
She won't believe
It won't believe

Я буду верить?

Will I believe?
Will you believe?
Will we believe?
Will they believe?
Will he believe?
Will she believe?
Will it believe?

Past Simple


Я верил

I believed
You believed
We believed
They believed
He believed
She believed
It believed

I did not = I didn't
You did not = You didn't
We did not = We didn't
They did not = They didn't
He did not = He didn't
She did not = She didn't
It did not = It didn't

Я не верил

I didn't believe
You didn't believe
We didn't believe
They didn't believe
He didn't believe
She didn't believe
It didn't believe

Я верил?

Did I believe?
Did you believe?
Did we believe?
Did they believe?
Did he believe?
Did she believe?
Did it believe?




Глагол have


Present Simple


У меня есть мечта

I have a dream
You have a dream
We have a dream
They have a dream
He has a dream
She has a dream
It has a dream

У меня нет мечты

do not = don't

I don't have a dream
You don't have a dream
We don't have a dream
They don't have a dream
He doesn't have a dream
She doesn't have a dream
It doesn't have a dream

У меня есть мечта?

Do I have a dream?
Do you have a dream?
Do we have a dream?
Do they have a dream?
Does he have a dream?
Does she have a dream?
Does it have a dream?

Future Simple


I will = I'll
You will = You'll
We will = We'll
They will = They'll
He will = He'll
She will = She'll
It will = It'll

У меня будет мечта

I'll have a dream
You'll have a dream
We'll have a dream
They'll have a dream
He'll have a dream
She'll have a dream
It'll have a dream

will not = won't

У меня не будет мечты

I won't have a dream
You won't have a dream
We won't have a dream
They won't have a dream
He won't have a dream
She won't have a dream
It won't have a dream

У меня будет мечта?

Will I have a dream?
Will you have a dream?
Will we have a dream?
Will they have a dream?
Will he have a dream?
Will she have a dream?
Will it have a dream?

Past Simple


У меня была мечта

I had a dream
You had a dream
We had a dream
They had a dream
He had a dream
She had a dream
It had a dream

did not = didn't

У меня не было мечты

I didn't have a dream
You didn't have a dream
We didn't have a dream
They didn't have a dream
He didn't have a dream
She didn't have a dream
It didn't have a dream

У меня была мечта?

Did I have a dream?
Did you have a dream?
Did we have a dream?
Did they have a dream?
Did he have a dream?
Did she have a dream?
Did it have a dream?


VxVM Зеркалирование загрузочного диска

Предположим, что зеркало основного диска будет располагаться на диске SENA0_7:
# vxdisk list SENA0_7|grep "state=enabled"
c1t8d0s2 state=enabled
c2t8d0s2 state=enabled

Добавляем в группу rootdg второй диск, называем его rootmirr:
/etc/vx/bin/vxdisksetup -i SENA0_7
vxdg -g rootdg adddisk rootmirr=SENA0_7

Создаем зеркала для /, /dev и для swap:
/etc/vx/bin/vxrootmir rootmirr &
vxassist -b -g rootdg mirror swapvol rootmirr
vxassist -b -g rootdg mirror var rootmirr

После того как зеркала будут созданы (проверить vxtask list, не должно быть задач), удаляем первую половинку зеркал:
vxplex -g rootdg dis rootvol-01 swapvol-01 var-01
vxedit -g rootdg -fr rm rootvol-01 swapvol-01 var-01

Удаляем rootdisk из группы rootdg, затем снова инициализируем и добавляем:
vxdg -g rootdg rmdisk rootdisk
/etc/vx/bin/vxdisksetup -i SENA0_0
vxdg -g rootdg adddisk rootdisk=SENA0_0

Создаём зеркала /, /dev и swap:
/etc/vx/bin/vxrootmir rootdisk &
vxassist -b -g rootdg mirror swapvol rootdisk
vxassist -b -g rootdg mirror var rootdisk

Проверяем размер оставшегося свободного места в группе rootdg и создаем том arch, создаем на нем файловую систему, монтируем в каталог /arch и делаем ora817 владельцем:
vxassist -b -g rootdg maxsize layout=mirror
vxassist -b -g rootdg make arch01 55585M layout=mirror
newfs /dev/vx/dsk/arch01
mkdir /arch
mount /dev/vx/dsk/arch01 /arch
chown ora817:dba /arch

Добавляем в /etc/vfstab строчку:
/dev/vx/dsk/arch /dev/vx/rdsk/arch /arch ufs 2 yes -