Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Приветствую! Я по поводу перетаскивания базы на другую версию и на другую платформу. В связи с этим вопрос номер раз. Как бы вы это делали? Наиболее простым и эффективным способом, естественно. И вопрос номер два. Если избрать метод "Inserting from a different database", так по-правильному сварганить такой скриптец? Ведь не руками же писать - там около 1000 таблиц... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 19:10 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
1) Просьба посмотреть на первую тему форума. 2) Просьба более четко сформулировать задачу. Что, куда перетаскиваем? Скрипт уже написан и называется он: UNLOAD database А дальше все в зависимости куда перетаскиваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 19:22 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Про UNLOAD это конечно если "перетаскивания базы на другую версию и на другую платформу" А если просто только данные нужно перегнать в другую(готовую!) базу, то организуем из этой базы доступ к таблицам старой базы и перегоняем. Организовать такой доступ можно разными способами См. руководство по ASA: Importing and Exporting Data и Accessing Remote Data ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2006, 19:28 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
> 1) Просьба посмотреть на первую тему форума. Посмотрел... > 2) Просьба более четко сформулировать задачу. Что, куда перетаскиваем? Попробую... Есть продукционная база под управлением IQ 12.5 на AIX, покупается новое железо с HP-UX и на него ставится IQ 12.7, так вот задача - перенести базу на новый сервер. Разве я непонятно написал в первом посте - "новая версия, новая платформа"? > Скрипт уже написан и называется он: UNLOAD database Ткните поточнее, пожалуйста. Я нашёл только UNLOAD TABLE. > если просто только данные нужно перегнать в другую(готовую!) базу Предположим, что так. Выполнил я скрипт по созданию базы, в которjм только CREATE TABLE, CREATE INDEX и ADD FOREIGN KEY. Тогда можно использовать: INSERT INTO asiq_table LOCATION 'ase_servername.ase_dbname' { SELECT col1, col2, col3,... FROM owner.ase_table } Правильно? Но для этого нужен скрипт, в котором упоминаются все таблицы и все колонки этих таблиц. И, если я правильно понимаю, вставка данных должна осуществляться ещё и в правильном порядке, иначе данные просто не загрузятся из-за нарушений ссылочной целостности. Если я не прав, поправляйте, пожалуйста. Так вот вопрос, собственно, заключается в том, как такой скрипт сгенерить? Потому что писать руками получится очень долго - там порядка 1000 таблиц. Ну, или наоборот, подскажите, как бы вы это делали? Наиболее эффективно и с наименьшими затратами, естественно. P.S. Просто я до этого работал с другим (OLTP) сервером, и там я бы делал по-другому - сначала бы создал таблицы, потом загрузил бы данные, и только после этого строил бы индексы и внешние ключи - так было бы и быстрее, и порядок загрузки не важен. Да даже если и были бы referencial constraints, их можно было бы отключить на время загрузки. Есть такая возможность у IQ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 14:43 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Извините. Сразу IQ не заметил.И еще раз извините, но.. с IQ не разу не работал, хотя знаком с принципами. Я все больше по ASA. Но раз уж вам никто не пишет, кроме меня попробую дать направление поиска. 1) Неужели нет способа в IQ перенести существующую базу на другую платформу? Не верится. Без всяких ручных скриптов по созданию базы и т.д., Вам же нужно просто перенести. Т.е. разворачиваете сервер IQ на другом сервере, останавливаете базу на старом(или берете резервную копию, дамп и т.д.) переносите на новый сервер файлы, на новом настраиваете запуск базы. Конечно там должны быть ньюансы, но структура таблиц и данные должны сохраниться. У вас в примере Вы пытаетесь закачать данные из ASE? А зачам их качать, если они в базе IQ уже есть. Вы наверно будете качать из ASE потом, когда обновлять данные в IQ будете. 2) Если первого пути нет, то должен быть путь выгрузки/загрузки базы. Выгружаем базу со структурой, на новом сервере загружаем. При этом Вам не надо заботиться о правильной последовательности загрузки. Скрипт загрузки который создаст процедура выгрузки все сделает корректно. 3) Ну и наверно последний путь это воссоздать структуру самому. А потом приконнектиться к старой базе и залить данные. При таком подходе можно конечно индексы и целостность создать после заливки данных. Вот это Вы и пытаетесь сделать. Это все я написал с точки зрения ASA, я думаю в IQ подходы аналогичные. Хотя может я не прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 15:08 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Из мануала к IQ: 1 Back up the database. 2 Shut down the Sybase IQ server. 3 Install the Sybase IQ server on the new platform. Your migration can take place on the same or a different machine. 4 Start the Sybase IQ server on the new hardware platform. 5 Connect to the utility database, utility_db. 6 Restore the database from the backup you created in Step 1. 7 Shut down the server and restart it against the restored database. If the current version of Sybase IQ is higher than the version on which you were previously running, you need to upgrade databases, and therefore restart the server in a way that restricts user connections. Sybase recommends using two server start-up options: • Use -gd DBA so that only users with DBA authority can start and stop databases. • Use -gm 1 to allow a single connection plus one DBA connection above the limit so that a DBA can connect and drop others in an emergency. An alternate way to restrict connections is to specify sa_server_option('disable_connections', 'ON') on the connection where you intend to perform the upgrade and sa_server_option('disable_connections', 'OFF') on the same connection after upgrading. The disadvantage is that this method precludes emergency access from another DBA connection. 8 Start Interactive SQL and issue the database upgrade statement. For example: ALTER DATABASE UPGRADE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 19:04 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Andrejs PasnevsИз мануала к IQ: Спасибо. Ну вот, все оказывется несложно, да еще и по руководству, как и предполагалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 22:58 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
> Из мануала к IQ:... По ряду причин (не будем вдаваться в подробности) такой метод не подходит. Задача ставится таким образом: нужно выгрузить данные всех таблиц в текстовые файлы, да так, чтобы их потом (на другой базе) можно было бы загрузить. Каким командами это делается? Я попробовал выгружать командами: SET TEMPORARY OPTION Temp_Extract_Name1 = "e:\unl_data\f_apmd_lic.unl"; SELECT id_apatlauja, id_apaplic, id_apaparskats FROM f_apmd_lic; но как-то не очень получается (о чём и говорится в топике "Exporting data from a IQ database"). Так как же всё-таки это делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 12:19 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Про форейны: set temporary option Disable_RI_Check='On'; Про перегрузку. Проще всего использовать insert ... location. Ну а скрипт сгенерить что сложно? Типа так: set temporary option ISQL_Quote=' '; select 'insert into ' + su.user_name + '.' + st.table_name + ' location ''iqserver.iqdb'' {select * from ' + su.user_name + '.' + st.table_name + '}; commit;' from SYSTABLE st, SYS.SYSUSERPERMS su where st.creator = su.user_id and st.table_type='BASE' and su.user_name not in('dbo','SYS','rs_systabgroup') >#c:\\insert.txt; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 16:51 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
just_meПро форейны: set temporary option Disable_RI_Check='On'; Про перегрузку. Проще всего использовать insert ... location. Ну а скрипт сгенерить что сложно? Типа так: set temporary option ISQL_Quote=' '; select 'insert into ' + su.user_name + '.' + st.table_name + ' location ''iqserver.iqdb'' {select * from ' + su.user_name + '.' + st.table_name + '}; commit;' from SYSTABLE st, SYS.SYSUSERPERMS su where st.creator = su.user_id and st.table_type='BASE' and su.user_name not in('dbo','SYS','rs_systabgroup') >#c:\\insert.txt; set temporary option ISQL_Quote=' Два пробела'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2006, 16:54 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
> Проще всего использовать insert ... location. "Барон любит, чтоб потруднее." На самом деле задача стоит, выгрузить все данные из одной базы в текстовые файлы, а потом эти файлы в другую базу загрузить. Как это сделать? В смысле, какими командами? > select... > from SYSTABLE st, SYS.SYSUSERPERMS su > where st.creator = su.user_id > and st.table_type='BASE' > and su.user_name not in('dbo','SYS','rs_systabgroup') Я так понимаю, этот селект должен был вернуть список несистемных таблиц? На моей базе в результат попадают такие таблицы, как: turbo, AggSalesProductPeriod, IQ_MPX_INFO, IQ_MPX_STATUS, IQ_SYSTEM_LOGIN_INFO_TABLE, SYSOPTIONSDEFAULTS... Что-то мне подсказывает, что эти таблицы всё-таки системные, и селект со своей задачей не справился. Поэтому спрашиваю ещё раз, может быть кто-то точно знает, как селектом получить список несистемных таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 11:45 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
Он показал то что и должен бул показать.... System tables are owned by the SYS user ID. Если посмотрите, то увидите, что у всех перечисленных Вами таблиц юзер ид скорее всего ДБА. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 16:07 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
> у всех перечисленных Вами таблиц юзер ид скорее всего ДБА И что из этого следует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2006, 18:16 |
|
||
|
DB migration (IQ)
|
|||
|---|---|---|---|
|
#18+
> set temporary option ISQL_Quote=' Два пробела'; Похоже, эта опция на "output redirect" не влияет - что ни ставь, всё равно в одиночных кавычках получается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 13:06 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=73&tid=2012426]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 393ms |

| 0 / 0 |
