Восстановление оперативной резервной копии DB2 с перенаправлением не может быть перенесено - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь восстановить базу данных DB2 на новом сервере / в другом месте. Ниже приведены команды, которые запускаются отдельно в командной строке:

create db MYDBNAME

restore db MYDBNAME from D:\ on C: dbpath on C: NEWLOGPATH 'C:\DB2\NODE0000\MYDBNAME\LOGS\' REDIRECT 

SET TABLESPACE CONTAINERS FOR 9 USING (PATH 'TBSP32K0000')
SET TABLESPACE CONTAINERS FOR 11 USING (PATH 'TBSP32K0001')
SET TABLESPACE CONTAINERS FOR 13 USING (PATH 'TBSP32K0002')

SET STOGROUP PATHS FOR IBMSTOGROUP ON 'C:\'

restore db MYDBNAME continue

rollforward db MYDBNAME to end of logs and complete

Резервная информация:

        MEDIA HEADER REACHED:
    =====================
    Server Database Name           -- MYDBNAME
    Server Database Alias          -- MYDBNAME
    Client Database Alias          -- MYDBNAME
    Timestamp                      -- 20180430230002
    Database Partition Number      -- 0
    Instance                       -- CTGINST2
    Database Configuration Type    -- 0 (Non-shared data)
    Sequence Number                -- 1
    Database Member ID             -- 0
    Release ID                     -- 0x1000 (DB2 v10.5)
    AL version                     -- V:10 R:5 M:0 F:9 I:0 SB:0
    Database Seed                  -- 0x4F18E7E4
    DB Comment's Codepage (Volume) -- 0
    DB Comment (Volume)            --
    DB Comment's Codepage (System) -- 0
    DB Comment (System)            --
    Authentication Value           -- 255 (Not specified)
    Backup Mode                    -- 1 (Online)
    Includes Logs                  -- 1 (Yes)
    Compression                    -- 1 (Compressed)
    Backup Type                    -- 0 (Database-level)
    Backup Granularity             -- 0 (Non-incremental)
    Merged Backup Image            -- 0 (No)
    Status Flags                   -- 0x60
                                      LOGARCHMETH1 is set
                                      LOGARCHMETH2 is set
    System Catalogs in this image  -- 1 (Yes)
    Catalog Partition Number       -- 0
    DB Codeset                     -- UTF-8
    DB Territory                   -- GB
    LogID                          -- 1323886033
    LogPath                        -- X:\DBLOGS\NODE0000\LOGSTREAM0000\
    Backup Buffer Size             -- 4194304 (1024 4K pages)
    Number of Sessions             -- 1
    Platform                       -- 0x17 (NT-64)

Когда я запускаю последнюю команду rollforward, я получаю следующую ошибку:

SQL0752N  Connecting to a database is not permitted within a logical unit of work when the CONNECT type 1 setting is in use.  SQLSTATE=0A001

dbdiag.log показывает:

Rollforward failed to connect to database. sqlcode -752.

После запуска 'list tablespace show details' я увидел, что все мои табличные пространства показали 'ожидание восстановления, хранилище может быть определено'

Когда я запускаю «список утилит, показывающих детали», я получаю этот результат (который никогда не двигается)

ID                               = 1
Type                             = RESTORE
Database Name                    = MYDBNAME
Member Number                    = 0
Description                      = db
Start Time                       = 12/05/2018 14:33:15.516532
State                            = Executing
Invocation Type                  = User
Progress Monitoring:
      Completed Work             = 67112960 bytes
      Start Time                 = 12/05/2018 14:33:15.516546

Примечания:

  • DB2 версия 10.5 (windows 2008R2)
  • Резервная копия находится в d: \ (root)
  • Установка DB2 в C: \ DB2 \ NODE0000

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Действительно ли ваша база данных называется MYDBNAME или вы используете общее имя здесь?SQL0752N означает, что вы пытаетесь подключиться к другой базе данных, в то же время подключившись к первой, поэтому я подозреваю, что в вашем скрипте есть опечатка, и вы не используете одно и то же имя базы данных в двух командах RESTORE.

0 голосов
/ 12 мая 2018

Вам необходимо показать точный результат шага restore ... continue.

Я подозреваю, что хотя бы одно табличное пространство или группа хранения не упоминается в ваших инструкциях, или в противном случае есть некоторые проблемы с указанными контейнерами.

Для проверки: попросите Db2 сгенерировать сценарий восстановления (чтобы сравнить его содержимое с вашими командными строками).

например:

db2 -v restore db MYDBNAME from D:\ REDIRECT generate script %temp%\myrestore.txt

В полученном файле (myrestore.txt) сравните строки «установить контейнеры табличного пространства» и «установить пути для группы» с вашими командными строками, чтобы увидеть, не указано ли какое-либо табличное пространство / группа хранения в ваших командных строках.

Настройте свои инструкции для всех отсутствующих табличных пространств или групп хранения и повторите попытку.Вы можете прервать неудачное восстановление, при необходимости отбросить базу данных перед повторной попыткой.

Если база данных была создана с другого имени хоста, убедитесь, что у текущего имени хоста достаточно свободного пространства на C: для размещения как восстановленной базы данных, так ифайлы журнала транзакций.Похоже, что ваша исходная база данных имела свои файлы журналов на X:, но вы хотите, чтобы новая база данных сохраняла их на C :.Обычно вы хотите, чтобы активные журналы транзакций находились на другом устройстве, нежели контейнеры.

Обычно в db2diag есть дополнительная информация, поэтому необходимо прочитать все сообщения в db2diag между началом действия RESTOREи возможный SQL0752N.Проверьте все такие сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...