Можно и так!
Инструкция по смене 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, настройка транспортной системы завершены.
|
|