Bỏ cơ sở dữ liệu trên DB2 9.5 - SQL1035N Cơ sở dữ liệu hiện đang được sử dụng


8

Tôi chưa bao giờ làm việc này lần đầu tiên, nhưng bây giờ tôi dường như không thể làm gì được.

Có một nhóm kết nối ở đâu đó bằng cơ sở dữ liệu, vì vậy cố gắng bỏ cơ sở dữ liệu khi một ứng dụng đang sử dụng cơ sở dữ liệu sẽ đưa ra lỗi này. Vấn đề là không có kết nối đến cơ sở dữ liệu khi tôi ban hành các lệnh này:

db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase

Điều này luôn luôn đưa ra:

SQL1035N  The database is currently in use.  SQLSTATE=57019

chạy lệnh này cho thấy không có kết nối / ứng dụng

DB2 list applications

Tôi thậm chí có thể hủy kích hoạt cơ sở dữ liệu, nhưng vẫn không thể xóa nó.

db2 => deactivate database mydatabase
DB20000I  The DEACTIVATE DATABASE command completed successfully.
db2 => drop database mydatabase
SQL1035N  The database is currently in use.  SQLSTATE=57019
db2 =>

Bất cứ ai cũng có bất kỳ manh mối? Tôi đang chạy cmd-windows với tư cách là quản trị viên cục bộ (windows 2008) và đây cũng là quản trị viên cho DB2. Người dùng kết nối có thể kết nối trong trạng thái không hoạt động.

Câu trả lời:


9

Cũng giống như một mẹo nếu mẹo của Arun không hoạt động, bởi vì một ứng dụng từ xa đang ngay lập tức kết nối lại với db.

db2 force applications all 
db2 terminate 

db2set DB2COMM= 
db2stop 
db2start 

db2 force applications all 
db2 terminate 

... do your stuff here ...

db2set DB2COMM=TCPIP 
db2stop 
db2start 

Không chắc chắn nếu db2 forcedb2 terminatelà cần thiết, mặc dù. Đó chỉ là thực hành tốt nhất của chúng tôi.


Tôi không hiểu tại sao các kết nối từ xa được cho phép khi cơ sở dữ liệu "không hoạt động" và người dùng từ xa không có quyền đó ...
Tommy

Từ tài liệu của IBM: publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/, - RESET - Tương đương với một kết nối rõ ràng với cơ sở dữ liệu mặc định nếu có. Nếu cơ sở dữ liệu mặc định không có sẵn, trạng thái kết nối của quá trình ứng dụng và trạng thái kết nối của nó là không thay đổi. - Có vẻ như bạn đã kết nối với cơ sở dữ liệu bằng cách gọiDB2 connect reset
Peter Schuetze

Đặt DB2COMM = là cách duy nhất để loại bỏ tất cả các nhóm kết nối kết nối với cơ sở dữ liệu. Tôi chỉ yêu thích DB2 ...
Tommy

2

Tôi chỉ sử dụng 'db2stop lực', sau đó 'db2start', sau đó thả db. Cách này tốt hơn so với lệnh quiesce không đồng bộ về bản chất.


Tôi phải sửa câu trả lời được chấp nhận của tôi. Điều này làm việc một lần, nhưng nó đã được may mắn. Phải chuyển sang "mánh khóe" của Peter
Tommy

2

Vấn đề của bạn có thể xảy ra do sự khác biệt của connect resetterminate. Có một cái nhìn vào cuộc thảo luận này . Bạn cũng có thể xem tài liệu của IBM. Vì vậy, nó có thể làm việc cho bạn nếu bạn chạy db2 terminate insteada db2 connect reset.


1

Các quiesce sẽ ngăn chặn thả từ làm việc. Chúng tôi đã tham gia vào một nỗ lực dọn dẹp lớn và sau khi chạy thu hồi / kết nối và dập tắt cơ sở dữ liệu, chúng tôi đã đợi vài tháng để bỏ các bài kiểm tra. Lệnh drop của chúng tôi sẽ không hoạt động trừ khi chúng tôi bỏ qua db rồi bỏ.


0

Thực hiện các bước này từ dòng lệnh. Điều này sẽ bỏ db:

Buộc tất cả các ứng dụng;

hủy kích hoạt db;

thả db;


0

Khi một db được kiểm tra, nó vẫn nằm trong chuỗi cơ sở dữ liệu với trình quản lý db, mặc dù được đánh dấu là không hoạt động. Khi bạn cố gắng thả nó, chúng tôi sẽ kiểm tra xem nó có nằm trong chuỗi này không; nếu vậy, thì nó vẫn còn được sử dụng ==> Bạn không thể bỏ nó.

Bạn phải đưa ra một db unquiesce hoặc phát hành db2stop và db2start và sau đó thử thả nó. Nó nên hoạt động.


0

Tôi có vấn đề tương tự nhưng cho dù tôi buộc ứng dụng dừng như thế nào, nó sẽ tự động quay trở lại.

Trong trường hợp của tôi, đó là một Dịch vụ khóa cơ sở dữ liệu.

Tôi đã có thể giải quyết vấn đề này bằng cách chấm dứt dịch vụ PID từ Trình quản lý tác vụ Windows với PID được tìm thấy trong Danh sách ứng dụng DB2.

Để tìm PID, hãy mở Trung tâm điều khiển DB2, Tất cả cơ sở dữ liệu, Cơ sở dữ liệu (cơ sở dữ liệu bạn đang cố gắng bỏ), Danh sách ứng dụng, Chuỗi khóa hiển thị, Hiển thị chi tiết khóa và cuộn xuống để tìm ID tiến trình khách hàng và chấm dứt PID này và thử lại.

Hy vọng điều này sẽ giúp mọi người trong tương lai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.