Для primary-standby миграция на MAX_STRING_SIZE=EXTENDED происходит в следующем порядке :
Делаем
миграцию на primary в MAX_STRING_SIZE=EXTENDED. Стендбай в этот период
не трогаем, в нём еще MAX_STRING_SIZE=STANDARD, при этом журналы будут накатываться на стендбай сколь угодно долго.
Дожидаемся того момента, чтобы журналы после миграции на primary на
max_string_size='EXTENDED' накатились на стендбай (можно один, лучше
несколько штук). Т.е. на стедбай должны доехать изменения словаря с
primary.
После этого на стендбае выполняем
ALTER SYSTEM SET max_string_size='EXTENDED' SCOPE=SPFILE;
и перестартовываем стендбай.
После этого на стендбае выполняем
ALTER SYSTEM SET max_string_size='EXTENDED' SCOPE=SPFILE;
и перестартовываем стендбай.
На этом миграция стендбая закончена.
Для проверки можно создать на primary табличку с varchar=32K и записать туда длинную строку, открыть стендбай в режиме ReadOnly, дождаться когда накатятся соответстующие журналы и убедиться, что длинные строки читаются на стендбае.
------------Для проверки можно создать на primary табличку с varchar=32K и записать туда длинную строку, открыть стендбай в режиме ReadOnly, дождаться когда накатятся соответстующие журналы и убедиться, что длинные строки читаются на стендбае.
Начало в MAX_STRING_SIZE=EXTENDED, ORA-00910, ORA-14694
https://exadata-dba.blogspot.com/2022/12/maxstringsizeextended-ora-00910-ora.html
https://exadata-dba.blogspot.com/2022/12/maxstringsizeextended-ora-00910-ora.html
------------
The migration of primary-standby env to MAX_STRING_SIZE=EXTENDED occurs in the following order:
1) Migrate the primary to MAX_STRING_SIZE=EXTENDED.
Do not touch the standby during this period. The log files will apply to the standby for as long as desired.
Apply some amount of archived logs in order to apply all max_string_size='EXTENDED' changes from primary to the standby's dictionary.
After the standby's dictionary have applied the max_string_size='EXTENDED' changes from primary you could perform
SQL> ALTER SYSTEM SET max_string_size='EXTENDED' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET max_string_size='EXTENDED' SCOPE=SPFILE;
and restart the standby.
The migration of the standby completed!
To check, that standby is 32K you can create a table with varchar=32K on the primary and write a long string. Then open the standby in ReadOnly mode, wait for the corresponding logs to be applied and check if the standby is now 32K-aware.