Làm thế nào kiểm tra cơ sở dữ liệu Oracle lên?


13

Đối với ứng dụng của chúng tôi, chúng tôi có một tệp cấu hình để kết nối với cơ sở dữ liệu Oracle (URL, tên người dùng, mật khẩu).

Ứng dụng mất từ ​​2 đến 5 phút để bắt đầu. Nếu có gì đó không đúng với cơ sở dữ liệu, tôi thấy điều này trong nhật ký, nhưng tôi phải đợi từ 2 đến 5 phút. Đây là rất nhiều thời gian.

Vì vậy, tôi muốn tìm hiểu nhanh chóng và đơn giản là một cách để xác định rằng cơ sở dữ liệu đều ổn và trực tuyến.

Bạn có biết làm thế nào tôi có thể làm điều đó?

Câu trả lời:


16

Nếu bạn chạy truy vấn sau:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

Nó sẽ trở lại:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE

12

ps -ef | grep pmon

Quá trình PMON (giám sát quá trình) kiểm tra tất cả các quy trình nền khác. Sau đó, bạn phải kiểm tra nhật ký cảnh báo để điều tra thêm.


4

Điều đầu tiên trước tiên: bạn cần biết tên người dùng và mật khẩu để kết nối với cơ sở dữ liệu cho bước 2

  1. Kiểm tra quá trình orory chạy:

    Trên Un * x:

    ps -ef|grep pmon

    Trên Windows:

    tasklist|findstr /i oracle

    nếu lệnh trong mọi trường hợp trả về đầu ra tức là nếu quá trình pmon / oracle đang chạy trong môi trường của bạn thì cơ sở dữ liệu đang chạy.

  2. Đi ORACLE_HOME/binvà chạy:

     ./sqlplus /nolog

    Nếu sau khi đăng nhập bạn gặp lỗi, thì cơ sở dữ liệu không chạy:

    SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 31 21:61:61 2014
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Enter user-name: oracle
    Enter password: 
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0

1
trên cửa sổ bắt đầu của sqlplus sẽ là sqlplus / nolog
Igor Vuković

3

Bạn nên sử dụng / viết một tập lệnh sẽ kết nối với máy chủ và xem cơ sở dữ liệu của bạn có trực tuyến không. Ở đây các anh chàng Oracle sẽ giúp đỡ. Chỉ cần thực thi nó từ một tập lệnh bó / shell (xem Chạy tập lệnh từ dòng lệnh SQL ) và xem đầu ra của nó. Nếu mọi thứ đều ổn hơn bạn có câu trả lời của bạn.

Hoặc chỉ cần thử với máy khách SQL * Plus.


0

Có thể là khôn ngoan khi chạy một truy vấn thực tế đối với cơ sở dữ liệu. Điều này chỉ đảm bảo rằng bạn có thể kết nối và truy vấn. Tôi sẽ làm cho nó một cái gì đó rất đơn giản và nhanh chóng, chẳng hạn như:

SELECT pk_column 
  FROM sometable
WHERE rownum <= 1

0

PMON sẽ kiểm tra tất cả các quy trình bg

ps -ef|grep pmon

Ngoài ra, chúng ta có thể kiểm tra cơ sở dữ liệu có chạy hay không.

ps -ef|grep mydb

-1

Để kiểm tra trạng thái cơ sở dữ liệu chung, tôi khuyên bạn nên:

  1. Kiểm tra nếu các quy trình cơ sở dữ liệu đang chạy. Ví dụ: từ shell Unix, đang chạy:

    $ ps -ef | grep pmon

    sẽ hiển thị cơ sở dữ liệu đang chạy, thời gian khởi động và người dùng Oracle đã khởi động từng cơ sở dữ liệu.

  2. Kiểm tra xem người nghe có đang sử dụng không $ ps -ef | grep tns$ lsnrctl status LISTENER

  3. Việc chọn gv$resource_limitsẽ hiển thị nếu cơ sở dữ liệu đạt đến một số giới hạn được cấu hình.

  4. Để kiểm tra nếu có bất kỳ lỗi cơ sở dữ liệu, bạn nên kiểm tra alert.log.

Để biết thêm chi tiết xem bài viết trên blog của tôi .

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.