Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
Добрый день! просто совсем недавно занимаюсь Ораклом возникла необходимость создания standby.Перед тем как все начать сделал чтото типа инструкции на основе того что нашел.Используется Oracle 10.1.0.2 .Укажите что не так.заранее спасибо.

Термины Pr - основной сервер;( необходимо чтобы работал в режиме archivelog,создать если надо файл паролей (для DataGuard???))
St - резервный сервер;
Предполагаем что базы имеют одинаковые названия
1. Переводим Pr
ALTER DATABASE FORCE LOGGING;
(или просто останавливаем и поднимаем в mount)
На Pr базе создаем controlfile (база запущена, примонтирована ,но не открыта)

alter database create standby controlfile as '<path/file>';

полученный файл переписываем поверх controlfile-ов на St базе с такими же именами.

2. Остановить Pr сервер
shutdown immediate;

3. Добавить в tnsnames.ora запись
STB=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby_server)(PORT = 1512))
)
(CONNECT_DATA =
(SERVICE_NAME = STB.standby_server)
)
)

4. Отредактировать Init.ora
# Алиас St сервера должен быть прописан в tnsnames.ora на Pr сервере
log_archive_dest_2 = "service=Stb LGWR "
LOG_ARCHIVE_DEST_STATE_2=ENABLE (Если используется LGWR определить параметер NET_TIMEOUT)

5. Выполнить копирование файлов данных с Pr на St сервер

6. Выполнить настройку init.ora на St сервере
Все что меняется по сравнению с Pr : надо добавить standby log
(размеры журналов должны быть не меньше размеров журналов на основной базе,количество,количество standby логов =(??????))
Если пути к файлам данных и журналам в Pr и St не совпадают
db_file_name_convert = "c:\oracle\oradata","c:\stb.."
log_file_name_convert = "c:\oracle\oradata\archive","c:\stb.."
STANDBY_FILE_MANAGEMENT=AUTO(для отслеживания изменений датафайлов в структуре Pr базы и отсылки изменений на St)
7.Отредактировать listener.ora на St в
LISTENER добавить
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ntfm451)(PORT = 1512))
)

STANDBY_LISTENER = (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(PORT=1512)(HOST=myHost))
)
8. Создать файл паролей на St (????)
9. Создать группы standby redolog
ALTER DATABASE ADD STANDBY LOGFILE GROUP 1
('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500M;

10. Выполняем команду на St сервере
startup nomount pfile = ...;
alter database mount standby database;
или (????)
startup mount:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
USING CURRENT LOGFILE

12.Создать spfile на St
11.на Pr задаем режим работы со стендбай
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
Запускаем Pr .Все можно работать(или исправлять ошибки-))))))

Там где знаки вопросов ,не совсем понимаю надо ли это делать.Покритикуйте помогите пожалуйста.
12 дек 05, 12:27    [2162512]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
И заодно такой вопрос:
в режиме MAXIMIZE AVAILABILITY при потере стендбай примари база продолжает работать.стендбай можно восстановить когда угодно? или есть какието ограничения(гдето видел что пока все журнальные группы не заполнятся и не пойдет перезапись)?транзакции на примари коммиттся если стендбай умер?
12 дек 05, 13:28    [2162789]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Тынцц
Guest
Тынц
12 дек 05, 14:00    [2162942]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новенький в Оракл
Guest
да документацию читал.просто с английским не так хорошо как хотелось бы поэтому хочу уточнить все ньюансы.
12 дек 05, 15:03    [2163304]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
nata1111
Member

Откуда:
Сообщений: 1800
Новичок в Оракл
Добрый день! просто совсем недавно занимаюсь Ораклом возникла необходимость создания standby.Перед тем как все начать сделал чтото типа инструкции на основе того что нашел.Используется Oracle 10.1.0.2 .Укажите что не так.заранее спасибо.

Термины Pr - основной сервер;( необходимо чтобы работал в режиме archivelog,создать если надо файл паролей (для DataGuard???))
St - резервный сервер;
Предполагаем что базы имеют одинаковые названия это обязательно
1. Переводим Pr
ALTER DATABASE FORCE LOGGING;
(или просто останавливаем и поднимаем в mount) это из другой оперы
На Pr базе создаем controlfile (база запущена, примонтирована ,но не открыта)
можно и открыта, но тогда после копирования файлов
alter database create standby controlfile as '<path/file>';

полученный файл переписываем поверх controlfile-ов на St базе с такими же именами. на ST базы пока нет вообще - пока не перепишем файлы

2. Остановить Pr сервер
shutdown immediate;

3. Добавить в tnsnames.ora запись
STB=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby_server)(PORT = 1512))
)
(CONNECT_DATA =
(SERVICE_NAME = STB.standby_server) ???? откуда это
)
)

4. Отредактировать Init.ora
# Алиас St сервера должен быть прописан в tnsnames.ora на Pr сервере
log_archive_dest_2 = "service=Stb LGWR "
LOG_ARCHIVE_DEST_STATE_2=ENABLE (Если используется LGWR определить параметер NET_TIMEOUT)

5. Выполнить копирование файлов данных с Pr на St сервер

6. Выполнить настройку init.ora на St сервере
Все что меняется по сравнению с Pr : надо добавить standby log
(размеры журналов должны быть не меньше размеров журналов на основной базе,количество,количество standby логов =(??????)) любое
Если пути к файлам данных и журналам в Pr и St не совпадают
db_file_name_convert = "c:\oracle\oradata","c:\stb.."
log_file_name_convert = "c:\oracle\oradata\archive","c:\stb.." ваши редулоги лежат в archive?
STANDBY_FILE_MANAGEMENT=AUTO(для отслеживания изменений датафайлов в структуре Pr базы и отсылки изменений на St)
7.Отредактировать listener.ora на St в
LISTENER добавить
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ntfm451)(PORT = 1512))
)

STANDBY_LISTENER = (ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(PORT=1512)(HOST=myHost)) можно и недобавлять - сам зарегистрируется. ntfm451-myHost ???
)
8. Создать файл паролей на St (????)
9. Создать группы standby redolog
ALTER DATABASE ADD STANDBY LOGFILE GROUP 1
('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500M;

10. Выполняем команду на St сервере
startup nomount pfile = ...;
alter database mount standby database; только так
или (????)

startup mount: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
USING CURRENT LOGFILE

12.Создать spfile на St
11.на Pr задаем режим работы со стендбай
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
Запускаем Pr .Все можно работать это вряд ли :)
(или исправлять ошибки-)))))) - для начала попробуйте на тестовой базе

Там где знаки вопросов ,не совсем понимаю надо ли это делать.Покритикуйте помогите пожалуйста.
12 дек 05, 21:17    [2164822]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
Спасибо nata111! учту-)))
12 дек 05, 22:55    [2164958]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Siveron
Member

Откуда: Екатеринбург
Сообщений: 100
http://dsvolk.msk.ru/oracle/backup/install_standby.php
13 дек 05, 13:33    [2166679]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
ктоегознает
Guest
сделал, проверил-работает, залогировал , может кто найдёт косяки:


Creating a Physical Standby Database on the Same System


preface :

primary database - db92prod.mdc
standby database - db92stby.mdc


1. primary database initdb92prod.mdc:

*.BACKGROUND_DUMP_DEST='C:\oracle\ora92\admin\db92prod\bdump'
*.COMPATIBLE='9.2.0'
*.CONTROL_FILES='C:\oracle\ora92\oradata\db92prod\control_01.ctl','C:\oracle\ora92\oradata\db92prod\control_02.ctl'
*.DB_BLOCK_SIZE=8192
*.DB_CACHE_SIZE=16m
*.DB_DOMAIN='mdc'
*.DB_NAME='db92prod'
*.INSTANCE_NAME='db92prod'
*.JAVA_POOL_SIZE=0m
*.LARGE_POOL_SIZE=0m
*.LOG_ARCHIVE_DEST_1='LOCATION=C:\oracle\ora92\oradata\db92prod\archivelogs'
*.LOG_ARCHIVE_FORMAT='%t_%s.dbf'
*.LOG_ARCHIVE_START=TRUE
*.OPEN_CURSORS=100
*.PROCESSES=50
*.REMOTE_LOGIN_PASSWORDFILE='none'
*.SHARED_POOL_SIZE=80m
*.TIMED_STATISTICS=TRUE
*.UNDO_MANAGEMENT='AUTO'
*.UNDO_TABLESPACE='SYS_UNDOTS'
*.USER_DUMP_DEST='C:\oracle\ora92\admin\db92prod\udump'


C:\oracle\ora92\oradata\db92prod\archivelogs\
C:\oracle\ora92\oradata\db92prod\CONTROL_01.CTL
C:\oracle\ora92\oradata\db92prod\SYS_UNDOTS_01.DBF
C:\oracle\ora92\oradata\db92prod\SYSTEM_01.DBF
C:\oracle\ora92\oradata\db92prod\USERS01_01.DBF

2. shutdown primary database;

SQL> create spfile from pfile='C:\oracle\ora92\admin\db92prod\pfile\initdb92prod.ora';
SQL> SHUTDOWN IMMEDIATE

3. a.create directories for standby db

C:\oracle\ora92\admin\db92stby\bdump\
C:\oracle\ora92\admin\db92stby\create\
C:\oracle\ora92\admin\db92stby\pfile\
C:\oracle\ora92\admin\db92stby\udump\

C:\oracle\ora92\oradata\db92stby\db92prod_archivelogs\
C:\oracle\ora92\oradata\db92stby\CONTROL_01.CTL
C:\oracle\ora92\oradata\db92stby\SYS_UNDOTS_01.DBF
C:\oracle\ora92\oradata\db92stby\SYSTEM_01.DBF
C:\oracle\ora92\oradata\db92stby\USERS01_01.DBF

b.copy datafiles from Primary to Standby location (except TEMPORARY datafiles)

4. startup db92prod and create standby controlfile :

SQL> conn /@db92prod as sysdba
connected.
SQL> startup
ORACLE instance started.

Total System Global Area 114368320 bytes
Fixed Size 454464 bytes
Variable Size 96468992 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'c:\oracle\ora92\oradata\db92stby\control_01.ctl';
Database altered.

5. configure NET environment:

a. using NET:

1. TNSNAMES.ORA :

DB92STBY.MDC =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = DB92STBY.MDC) )
)

2. LISTENER.ORA:

(SID_DESC=
(GLOBAL_DBNAME=db92stby.mdc)
(SID_NAME=db92stby)
(ORACLE_HOME=c:\oracle\ora92)
)

b.using IPC:

1. TNSNAMES.ORA:

DB92STBY.MDC =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY=local_stby)) )
(CONNECT_DATA = (SERVER = DEDICATED)(SID=DB92STBY) )
)

2. LISTENER.ORA:

LISTENER =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
(ADDRESS=(PROTOCOL=ipc)(KEY=local_stby))
)

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC= (SID_NAME=rpst)
(ORACLE_HOME=c:\oracle\ora92)
(GLOBAL_DBNAME=rpst.mdc) )

(SID_DESC= (SID_NAME=db92prod)
(ORACLE_HOME=c:\oracle\ora92)
(GLOBAL_DBNAME=db92prod.mdc) )

(SID_DESC= (SID_NAME=db92stby)
(ORACLE_HOME=c:\oracle\ora92) )
)

6. reload LISTENER:

>lsnrctl
LSNRCTL>reload
LSNRCTL>quit

7. edit init.ora for standby db :

*.BACKGROUND_DUMP_DEST='C:\oracle\ora92\admin\db92stby\bdump' #edited
*.COMPATIBLE='9.2.0'
*.CONTROL_FILES='C:\oracle\ora92\oradata\db92stby\control_01.ctl' #edited
*.DB_BLOCK_SIZE=8192
*.DB_CACHE_SIZE=16m
*.DB_DOMAIN='mdc'
*.DB_NAME='db92prod'
*.INSTANCE_NAME='db92stby' #edited
*.JAVA_POOL_SIZE=0m
*.LARGE_POOL_SIZE=0m
*.LOG_ARCHIVE_FORMAT='%t_%s.dbf'
*.OPEN_CURSORS=100
*.PROCESSES=50
*.REMOTE_LOGIN_PASSWORDFILE='none'
*.SHARED_POOL_SIZE=80m
*.TIMED_STATISTICS=TRUE
*.UNDO_MANAGEMENT='AUTO'
*.UNDO_TABLESPACE='SYS_UNDOTS'
*.USER_DUMP_DEST='C:\oracle\ora92\admin\db92stby\udump' #edited

# added

*.db_file_name_convert = "C:\oracle\ora92\oradata\db92prod", "C:\oracle\ora92\oradata\db92stby"
*.log_file_name_convert = "C:\oracle\ora92\oradata\db92prod", "C:\oracle\ora92\oradata\db92stby"
*.standby_archive_dest = "C:\oracle\ora92\oradata\db92stby\db92prod_archivelogs"
*.lock_name_space = db92stby
*.fal_server = "db92prod.mdc"


7. create NT service for standby db:

oradim -new -sid db92stby -startmode m -pfile c:\oracle\ora92\database\initdb92stby.ora

8. startup standby db

C:\oracle\ora92\bin>set oracle_sid=db92stby
C:\oracle\ora92\bin>sqlplus

SQL*Plus: Release 9.2.0.5.0 - Production on Mon Aug 22 15:41:17 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Enter user-name: /as sysdba
Connected to an idle instance.

SQL> startup nomount pfile='c:\oracle\ora92\database\initdb92stby.ora'
ORACLE instance started.

Total System Global Area 114368320 bytes
Fixed Size 454464 bytes
Variable Size 96468992 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes

SQL> alter database mount standby database;

Database altered.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SQL>

9. finally setup primary db:


SQL> alter system set log_archive_dest_2 = "service=db92stby.mdc";
System altered.

SQL> alter system set log_archive_dest_state_1=enable;
System altered.

SQL> alter system set fal_client="db92stby.mdc";
System altered.

SQL> alter database force logging;
Database altered.

10. switching STANDBY to READ ONLY and vice versa:

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

SQL> ALTER DATABASE OPEN READ ONLY; -- open in read only mode
Database altered.

SQL> alter database recover managed standby database disconnect from session; -- put database back to MANAGED STANDBY
Database altered.

11. adding TEMP temp file to STANDBY DATABASE( remember that you don`t need copy TEMP datafiles from PRIMARY to STANDBY on standby creation):

SQL>ALTER TABLESPACE temp ADD TEMPFILE 'C:\oracle\ora92\oradata\db92stby\temp_01.dbf' SIZE 20M REUSE AUTOEXTEND ON;
Tablespace created.
13 дек 05, 13:58    [2166847]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
те. файлы временных пространств на стендбай копировать не надо,а просто их заново там создать?
13 дек 05, 18:29    [2168442]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Vadim_Maximov
Member

Откуда: Москва
Сообщений: 3571
Новичок в Оракл
те. файлы временных пространств на стендбай копировать не надо,а просто их заново там создать?
Да. Как и в случае восстановления - быстрее создать заново, чем восстанавливать. И резервировать их кстати тоже не нужно.
13 дек 05, 22:57    [2168950]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
Спасибо! еще бы на мой вопрос про режим MAXIMIZE AVAILABILITY ответполучить и все тему можно закрывать-)))))
14 дек 05, 09:42    [2169435]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
ктоегознает
Guest
Новичок в Оракл
И заодно такой вопрос:
в режиме MAXIMIZE AVAILABILITY при потере стендбай примари база продолжает работать.стендбай можно восстановить когда угодно? или есть какието ограничения(гдето видел что пока все журнальные группы не заполнятся и не пойдет перезапись)?транзакции на примари коммиттся если стендбай умер?


транзакции комитятся конечно, а стэндбай по идее можно восстановить когда угодно , главное штоб были архивные логи
14 дек 05, 12:04    [2170162]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Новичок в Оракл
Guest
Да просто есть в документации такая фраза которая меня смущает.хотя может неправильно перевожу
Like maximum protection mode, a transaction will not commit until the redo needed to recover that transaction is written to the local online redo log and to at least one remote standby redo log

Я так понимаю транзакции некомитятся пока не будут записаны в журналы на примари и хотя бы в один стендбай лог.
14 дек 05, 12:33    [2170323]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Biz©
Member

Откуда: Snezhinsk
Сообщений: 5687
Новичок в Оракл
И заодно такой вопрос:
в режиме MAXIMIZE AVAILABILITY при потере стендбай примари база продолжает работать.стендбай можно восстановить когда угодно? или есть какието ограничения(гдето видел что пока все журнальные группы не заполнятся и не пойдет перезапись)?транзакции на примари коммиттся если стендбай умер?

подобно maximize protection, данные не комитятся, но в отличии от него праймери не останавливается при потере коннекта с стэндбаем, а продолжает работать ... все коммиты будут сделаны после восстановления коннекта со стэндбаем ... предполагаю плохую доступность праймэри в режиме максимальной доступности :) в момент восстановления стэндбая после длительной отключки ... или мобыть режим выхода из файловера стэндбая асинхронен ?
14 дек 05, 13:49    [2170771]     Ответить | Цитировать Сообщить модератору
 Re: Оцените можно ли по такой инструкции создать standby  [new]
Biz©
Member

Откуда: Snezhinsk
Сообщений: 5687
впрочем явные лаги ожидаемы и в момент падения канала до стэндбая ... в зависимости от установки таймаута на сетевом протоколе канала ...
14 дек 05, 13:53    [2170791]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить