powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / DB migration (IQ)
15 сообщений из 15, страница 1 из 1
DB migration (IQ)
    #34067910
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Я по поводу перетаскивания базы на другую версию и на другую платформу. В связи с этим вопрос номер раз. Как бы вы это делали? Наиболее простым и эффективным способом, естественно. И вопрос номер два. Если избрать метод "Inserting from a different database", так по-правильному сварганить такой скриптец? Ведь не руками же писать - там около 1000 таблиц...
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34067943
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Просьба посмотреть на первую тему форума.
2) Просьба более четко сформулировать задачу. Что, куда перетаскиваем?

Скрипт уже написан и называется он: UNLOAD database
А дальше все в зависимости куда перетаскиваем.
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34067949
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про UNLOAD это конечно если "перетаскивания базы на другую версию и на другую платформу"
А если просто только данные нужно перегнать в другую(готовую!) базу, то организуем из этой базы доступ к таблицам старой базы и перегоняем.
Организовать такой доступ можно разными способами
См. руководство по ASA:
Importing and Exporting Data и Accessing Remote Data
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34070025
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> 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?
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34070166
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините. Сразу IQ не заметил.И еще раз извините, но.. с IQ не разу не работал, хотя знаком с принципами.
Я все больше по ASA.
Но раз уж вам никто не пишет, кроме меня попробую дать направление поиска.

1) Неужели нет способа в IQ перенести существующую базу на другую платформу? Не верится. Без всяких ручных скриптов по созданию базы и т.д., Вам же нужно просто перенести. Т.е. разворачиваете сервер IQ на другом сервере, останавливаете базу на старом(или берете резервную копию, дамп и т.д.) переносите на новый сервер файлы, на новом настраиваете запуск базы. Конечно там должны быть ньюансы, но структура таблиц и данные должны сохраниться.
У вас в примере Вы пытаетесь закачать данные из ASE? А зачам их качать, если они в базе IQ уже есть. Вы наверно будете качать из ASE потом, когда обновлять данные в IQ будете.

2) Если первого пути нет, то должен быть путь выгрузки/загрузки базы. Выгружаем базу со структурой, на новом сервере загружаем. При этом Вам не надо заботиться о правильной последовательности загрузки. Скрипт загрузки который создаст процедура выгрузки все сделает корректно.

3) Ну и наверно последний путь это воссоздать структуру самому. А потом приконнектиться к старой базе и залить данные. При таком подходе можно конечно индексы и целостность создать после заливки данных. Вот это Вы и пытаетесь сделать.

Это все я написал с точки зрения ASA, я думаю в IQ подходы аналогичные.
Хотя может я не прав.
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34071151
Andrejs Pasnevs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из мануала к 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
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34071418
antand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrejs PasnevsИз мануала к IQ:

Спасибо.
Ну вот, все оказывется несложно, да еще и по руководству, как и предполагалось.
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34108705
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Из мануала к 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"). Так как же всё-таки это делать?
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34109753
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;
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34109757
just_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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=' Два пробела';
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34123289
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Проще всего использовать 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... Что-то мне подсказывает, что эти таблицы всё-таки системные, и селект со своей задачей не справился. Поэтому спрашиваю ещё раз, может быть кто-то точно знает, как селектом получить список несистемных таблиц?
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34124397
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он показал то что и должен бул показать.... System tables are owned by the SYS user ID. Если посмотрите, то увидите, что у всех перечисленных Вами таблиц юзер ид скорее всего ДБА.
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34124951
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> у всех перечисленных Вами таблиц юзер ид скорее всего ДБА
И что из этого следует?
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34126805
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> set temporary option ISQL_Quote=' Два пробела';
Похоже, эта опция на "output redirect" не влияет - что ни ставь, всё равно в одиночных кавычках получается...
...
Рейтинг: 0 / 0
DB migration (IQ)
    #34128417
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> set temporary option Disable_RI_Check='On';
А что будет с данными, если RI всё-таки будет нарушено? Так и будут кривые строчки в базе стоять? И как об этом узнать, что непорядок?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / DB migration (IQ)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]