IBM DB2 9.7, вызовите все соединения определенной базы данных

У меня есть экземпляр DB2 9.7 LUW с несколькими базами данных. Я пытаюсь взять резервное копирование определенной базы данных, но клиент Data Studio сообщает, что существует все еще активное соединение, таким образом, это перестало работать.

Как я могу вынудить базу данных удалить все активные соединения к той определенной базе данных?Спасибо!

3
задан 28 July 2014 в 12:16
4 ответа

Это невозможно сделать одной командой; сначала необходимо перечислить соединения:

LIST APPLICATIONS FOR DB <databasename>

Затем, используя все числовые дескрипторы приложений, возвращаемые вышеприведенным списком, выдать оператор FORCE APPLICATION:

FORCE APPLICATION (1, 2, 3, 4, ...)
0
ответ дан 3 December 2019 в 07:29

Полагаю, вы пытаетесь создать автономную резервную копию. Вы можете использовать db2 FORCE APPLICATION ALL . Как указано в руководстве :

ALL - All applications will be disconnected from the database server.

Хотя, прежде чем вы выберете форсированный путь, я предлагаю взглянуть на QUIESCE вместо правильной остановки приложения. Ваш процесс резервного копирования будет выглядеть примерно так:

# Stop your application

su - db2inst1 # Or whatever instance you have
timestamp=$(date +%Y-%m-%d-%H-%M)
mkdir backup-mydb-$timestamp

# Connect to your database and check existing connections
db2 CONNECT TO MYDB;
db2 list applications for database MYDB show detail

# QUISCE the database
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
db2 CONNECT RESET

# Perform the backup
db2 BACKUP DATABASE MYDB TO "/home/db2i2/backup-mydb-$timestamp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

# UNQUISCE the database
db2 CONNECT TO MYDB
db2 UNQUIESCE DATABASE;
db2 CONNECT RESET;

# Test the backup
db2ckbkp -h backup-mydb-$timestamp/*

# Start your application

Вы также можете использовать db2top , чтобы отслеживать соединения с базой данных и определять, какие приложения необходимо остановить.

0
ответ дан 3 December 2019 в 07:29

Предположив, что это резервная копия OFFLINE, это можно сделать либо с помощью DEACTIVATE в базе данных, либо с помощью QUISCE в базе данных.

Для ДЕАКТИВАТА в базе данных выполните следующие шаги:-

  • Подтвердите, что приложения не работают, используя СПИСОКИЗМЕННЫХ ПРИЛОЖЕНИЙ ДЛЯ
    DB_NAME
    , и, если они найдены, отключите их, используя ПРИЛОЖЕНИЯ ДЛЯ ЗАЯВКИ ВСЕ
  • Деактивируйте базу данных, используя DEACTIVATE DB DB_NAME

Для QUISCE базы данных, выполните следующие шаги: -

  • ПОДКЛЮЧЕНИЕ К БД

  • QUIESCE DATABASE IMMEDIATE FORCE CONNECT CONNECT RESET

0
ответ дан 3 December 2019 в 07:29

Я использую следующие шаги, и это работает:

db2 connect to TFBDW
db2 list application for database TFBDW
db2 QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
db2 "force application (39)"
db2 CONNECT RESET
db2 backup database TFBDW_U to "/tmp/dbbackup/"
1
ответ дан 3 December 2019 в 07:29

Теги

Похожие вопросы