Как быстро скопировать мандант SAP R/3

Как быстро скопировать мандант SAP R/3

Инструкция по смене SID системы

Имеем backup продуктивной базы X61, надо восстановить с backup и поднять на другом сервере систему XYZ.
Подготовительный этап:
 создание дисковых групп для Sap и Oracle для системы XYZ
 монтирование на сервер /usr/sap/XYZ, /sapmnt/XYZ, /oracle/XYZ, /usr/sap/trans
 создание пользователей xyzadm, oraxyz, для этого
правим файлы /etc/group (копируем с продуктивного сервера X61 записи с именами групп dba и sapsys),
правим файл /etc/passwd (копируем с продуктивного сервера X61 записи с именами пользователей x61adm и orax61, меняем x61 на xyz),
правим /etc/shadow (копируем с продуктивного сервера X61 записи с пользователями x61adm и orax61, меняем x61 на xyz, зашифрованный пароль не трогаем, можно потом через команду passwd сменить пароль для пользователей xyzadm и oraxyz на новый или оставить такие как на продуктивном сервере у пользователей x61adm и orax61) ,
создаем домашние директории /export/home/xyzadm и /oracle/XYZ/920_64, даем права на них пользователям xyzadm и oraxyz соответственно, проверяем возможность логиниться под созданными пользователями
 корректируем /etc/system для правильного распределения памяти на сервере между Oracle, Sap, Solaris и прочими приложениями
 копируем содержимое /oracle/X61/920_64 в /oracle/XYZ/920_64 (установки oracle не требуется, достаточно скопировать все кроме содержимого sapdata , не забыть скопировать все файли с именами типа <.dbenv*>, <.sapenv*>, <.*>), копируем online логи с продуктивного сервера X61 (папки origlog* и mirrlog*), создаем нужное количество папок sapdata1,sapdata2,:. как на продуктивном сервере X61
 копируем /oracle/client с продуктивного сервера X61 на сервер системы XYZ
 копируем содержимое /usr/sap/X61 в /usr/sap/XYZ, /sapmnt/X61 в /sapmnt/XYZ, /export/home/x61adm в /export/home/xyzadm (включая все файлы с именами типа <.dbenv*>, <.sapenv*>, <.*>)
 меняем профили пользователя oraxyz
cp /oracle/XYZ/920_64/.dbenv_.csh /oracle/XYZ/920_64/.dbenv_.csh
аналогично для файлов .dbenv*.sh, .sapenv*.csh и .sapenv*.sh
правим все эти файлы - меняем все включения X61 на XYZ и меняем везде hostname продуктивного сервера на hostname данного сервера (на котором поднимаем систему XYZ)
задаем необходимые права:
chown -R oraxyz:dba /oracle/XYZ
перелогиниваемся и проверяем что переменные окружения пользователя oraxyz доступны
правим все профили базы в /oracle/XYZ/920_64/dbs, меняем X61 на XYZ и hostname старого сервера на hostname текущего сервера (заранее стоит проверить количество памяти на текущем сервере и если ее меньше - провести корректировку параметров запуска базы и Sap)
 меняем профили пользователя xyzadm, аналогично меняем все файлы .dbenv*.сsh, .dbenv*.sh, .sapenv*.csh и .sapenv*.sh в /export/home/xyzadm (копируем их с новым hostname и правим содержимое)
перелогиниваемся под пользователем и проверяем доступность переменных окружения
правим ссылки в /usr/sap/XYZ, там есть 4 ссылки которые нужно пересоздать под пользователем xyzadm :
rm /usr/sap/XYZ/SYS/profile
ln -s /sapmnt/XYZ/profile /usr/sap/XYZ/SYS/profile
rm /usr/sap/XYZ/SYS/global
ln -s /sapmnt/XYZ/global /usr/sap/XYZ/SYS/global
rm /usr/sap/XYZ/SYS/exe/dbg
ln -s /sapmnt/XYZ/exe /usr/sap/XYZ/SYS/exe/dbg
rm /usr/sap/XYZ/SYS/exe/run
ln -s /usr/sap/XYZ/SYS/exe/dbg /usr/sap/XYZ/SYS/exe/run
правим профили /sapmnt/XYZ/profile/*, там везде меняем X61 на XYZ и hostname старого сервера на текущий
Таким образом, все для работы Sap и Oracle готово.
Восстановление базы с backup.
 на продуктивной сервере X61 в sqlplus и считываем структуру базы
sqlplus "/as sysdba"
select name from v$datafile;
результат вывод например такой:
/oracle/X61/sapdata2/system_1/system.data1
/oracle/X61/sapdata7/btabd_1/btabd.data1
/oracle/X61/sapdata3/btabi_1/btabi.data1
::::::::::::::::::::::::и т.д.
копируем в текстовый файлик на своем компьютере, потом потребуется для создания вспомогательных скриптов
 монтируем группу /backup на текущий сервер (где будем поднимать систему XYZ), либо наоборот группу /oracle/XYZ на backup-host (смотря какой сервер помощнее и процедура восстановления будет идти быстрее)
 на основе файла со структурой БД на X61 делаем 2 скрипта, которые создадут нужные директории и скопируют туда заархивированные файлы с backup
скрипт 1 имеет вид например:
mkdir /oracle/X61/sapdata2/system_1 &
mkdir /oracle/X61/sapdata7/btabd_1 &
mkdir /oracle/X61/sapdata3/btabi_1 &
::::::::::::::::::::::::и т.д.
запускаем его, проверка что скрипт закончил работать
ps -ef | grep mkdir

скрипт 2 имеет вид например:
cp /backup/system.data1.Z /oracle/XYZ/sapdata1/system.data1.Z &
cp /backup/btabd.data1.Z /oracle/XYZ/sapdata7/btabd.data1.Z &
cp /backup/btabi.data1.Z /oracle/XYZ/sapdata3/btabi.data1.Z &
::::::::::::::::::::::::и т.д.
запускаем его, проверка что скрипт отработал
ps -ef | grep cp

разархивируем файлы:
gunzip /oracle/XYZ/sapdata1/*.Z &
gunzip /oracle/XYZ/sapdata2/*.Z &
::::::::::::::::::::::::и т.д.
запускаем в несколько потоков
проверка что все файлы разархивированы
ps -ef | grep gunzip

если монтировали группу /oracle/XYZ то возвращаем ее обратно на сервер, где будем поднимать систему XYZ
 раздаем нужные права
chmod -R oraxyz:dba /oracle/XYZ
chmod -R xyzadm:sapsys /sapmnt/XYZ
chmod -R xyzadm:sapsys /usr/sap/XYZ
chmod -R xyzadm:sapsys /export/home/xyzadm

Поднятие базы.
Скопировать все archive-логи в /oracle/XYZ/saparch/XYZarch, дать на них права oraxyz:dba.
Подготовить скрипт CONTROL.SQL, пересобирающий control-файлы, выглядит например следующим образом (можно сгенерировать R3trans или взять, если уже есть, с продуктива X61 и сменить X61 на XYZ). Как пример:
bash-2.05$ cat CONTROL.SQL
REM ====================================================================
REM CONTROL.SQL
REM
REM SAP AG Walldorf
REM Systeme, Anwendungen und Produkte in der Datenverarbeitung
REM
REM (C) Copyright SAP AG 1995
REM ====================================================================

REM Generated at:
REM Sat Aug 6 11:06:16 EEST 2005
REM on
REM for target system X61
REM SOURCE_OS= SunOS r3a.pvrr.mps 5.8 Generic_117350-22 sun4u sparc SUNW,Sun-Fire
CREATE CONTROLFILE REUSE
SET DATABASE X61
LOGFILE
GROUP 11 (
'/oracle/X61/mirrlogA/log_g11m2.dbf' ,
'/oracle/X61/origlogA/log_g11m1.dbf'
) SIZE 20 M,
GROUP 12 (
'/oracle/X61/mirrlogB/log_g12m2.dbf' ,
'/oracle/X61/origlogB/log_g12m1.dbf'
) SIZE 20 M,
GROUP 13 (
'/oracle/X61/mirrlogA/log_g13m2.dbf' ,
'/oracle/X61/origlogA/log_g13m1.dbf'
) SIZE 20 M,
GROUP 14 (
'/oracle/X61/mirrlogB/log_g14m2.dbf' ,
'/oracle/X61/origlogB/log_g14m1.dbf'
) SIZE 20 M
RESETLOGS
DATAFILE
'/oracle/X61/sapdata2/system_1/system.data1',
'/oracle/X61/sapdata7/btabd_1/btabd.data1',
'/oracle/X61/sapdata3/btabi_1/btabi.data1',
::::::::::::::::::::::::и т.д.
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1022
MAXINSTANCES 50
NOARCHIVELOG;
Удалить все старые control-файлы:
rm -rf /oracle/XYZ/sapdata1/cntrl/*
rm -rf /oracle/XYZ/sapdata2/cntrl/*
rm -rf /oracle/XYZ/sapdata3/cntrl/*
Удалить /oracle/XYZ/920_64/dbs/spfile*, чтобы база однозначно стартилась с исправленного профиля а не с spfile.
Затем под пользователем oraxyz из директории, где лежит файл CONTROL.SQL, сказать
sqlplus "/as sysdba"
startup nomount
@CONTROL.SQL;
alter database open; (результат - требуется восстановление)
recover database using backup controlfile until time "2007-08-14:16:00:00"; (это пример  )
задать auto и ждать пока база докатится логами до нужного состояния
alter database open;
Откорректировать listener, а точнее файлики /oracle/XYZ/920_64/network/admin/listener.ora и /oracle/XYZ/920_64/network/admin/tnsnames.ora, заменить X61 на XYZ, вхождение hostname на hostname текущего сервера. От пользователя oraxyz сказать:
lsnrctl
start
status (проверить что все работает нормально)
Залогинится под пользователем xyzadm, проверить доступность библиотек oracle
tnsping XYZ
если выдаются ошибки, что не доступна та или иная библиотека, при условии что все остальное настроено корректно (профили пользователя, полномочия на файлы базы и т.д.) возможно потребуется перелинковать oracle (пересобрать библиотеки), делается следующим образом:
под пользователем oraxyz
sqlplus "/as sysdba"
shutdown immediate
quit
cd /oracle/XYZ/920_64/rdbms/lib
/usr/ccs/bin/make -f ins_rdbms.mk install
после того как отработает
sqlplus "/as sysdba"
startup
можно сразу создать spfile:
create spfile="/oracle/XYZ/920_64/dbs/spfileXYZ.ora" from pfile;
После этого снова под xyzadm проверить работу tnsping.
Затем в домашнем каталоге переместить файлы старта и останова Sap, изменив имена в соответствии с новым hostname сервера, проверить что в файлах startsap*, stopsap*, /sapmnt/XYZ/profile/START*, /sapmnt/XYZ/profile/DEFAULT.PFL, /sapmnt/XYZ/profile/TEMU.PFL, /sapmnt/XYZ/profile/XYZ* включения hostname и sid системы стоит правильный: XYZ и hostname данного сервера.
Откорректировать файл /etc/services, добавить строки, необходимые для работы ms-сервера и инстанций Sap, например для системы только с центральной инстанцией прописать:
sapdp00 3200/tcp
sapdp00s 4700/tcp
sapgw00 3300/tcp
sapgw00s 4800/tcp
sapmsX61 3600/tcp
Запустить центральную инстанцию и диалоговые (если требуется).
Проверить коннект на систему, установить лицензию, залогинится в систему, проверить sm51 что все процессы работают, посмотреть системный журнал каждой инстанции, проверить rz10 что профили системы импортируются и доступны, удалить все ненужные задания в sm37 и db13.
Провести инсталяцию в se06.
Настроить транспортную систему в stms в 000-манданте под пользователем SAP*, для этого отказаться от предлагаемого транспортного домена, создать виртуальную систему для XYZ, создать уровень переноса между XYZ и виртуальной системой (путь переноса будет создан автоматически, достаточно задать его имя при настройки уровня переноса).
Прописать в /usr/sap/trans/bin/TPPARAM новую систему по аналогии с уде существующими, попробовать установить любой запрос.
Восстановление системы, смена SID, настройка транспортной системы завершены.
Комментарии:
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.