2008-11-20 28 views
8

Tôi đã tự hỏi liệu có cách nào để nói liệu một thể hiện của Oracle trên một hệ thống có cài đặt cơ sở dữ liệu hay không?Phát hiện nếu một Cơ sở dữ liệu Oracle được cài đặt

Đây là tập lệnh cài đặt và tôi cần phải xác minh rằng có một cơ sở dữ liệu thực tế được đặt trước khi tiếp tục tải vùng bảng của riêng tôi lên cơ sở dữ liệu đó. Có ai đã giải quyết vấn đề này trước đây không?

Cheers

Trả lời

5

Kiểm tra sự tồn tại của ORACLE_HOME. Nó cũng hợp lý để mong đợi rằng môi trường này nên được cấu hình để cài đặt, vì vậy kiểm tra các biến môi trường và thoát với một chẩn đoán hợp lý (có thể cho thấy chúng chạy oraenv) là một khởi đầu tốt. Nếu bạn có một ORACLE_HOME, ORACLE_SID hoặc biến môi trường thích hợp khác được thiết lập, bạn có thể kiểm tra sự tồn tại của một oracle home và kiểm tra kết nối cơ sở dữ liệu và các điều khoản.

+0

Tôi vừa kiểm tra, tôi không có ORACLE_HOME hoặc và ORACLE_SID và tôi có thể kết nối với cơ sở dữ liệu Oracle mà không gặp bất kỳ vấn đề gì. – ninesided

+0

Nếu bạn có khách hàng ngay lập tức, sau đó bạn không cần một nhà oracle ... chuỗi kết nối có thể được xây dựng ngay vào ứng dụng và không cần oracle nhà hoặc tsnames.ora – jle

+0

Tôi nghĩ rằng OP đã nói về một máy chủ - bạn có thể có máy khách ngay lập tức trên PC nhưng máy chủ vẫn sẽ có một oracle home cho cá thể cơ sở dữ liệu. – ConcernedOfTunbridgeWells

4

Bạn có thể sử dụng tnsping để kiểm tra xem người nghe cơ sở dữ liệu đang hoạt động, đó sẽ là một dấu hiệu tốt. Khác hơn thế, tại sao không chỉ đơn giản là làm một kết nối thử nghiệm? Nếu đó là một phần của quá trình cài đặt, bạn có thể nhắc người dùng nhập thông tin đăng nhập kết nối phù hợp nếu bạn không biết họ sẽ làm gì trước.

5

Đối với Oracle 10g, trên Windows:

  • Kiểm tra registry:
    • Chìa khóa HKLM\SOFTWARE\ORACLE phải tồn tại.
    • Một khóa phải tồn tại rằng:
      • Có một tên bắt đầu với KEY_ (như KEY_OraDb10g_home1, chuỗi cuối là một tên nhà Oracle).
      • Có giá trị có tên bắt đầu bằng ORA_ và kết thúc bằng _AUTOSTART. (như ORA_XE_AUTOSTART, chuỗi giữa là một tên dụ).

Hãy coi chừng, cài đặt một ứng dụng Oracle (không có một trường hợp cơ sở dữ liệu sau đó), tạo ra vào trong registry và có thể thiết lập các biến môi trường (như ORACLE_HOME). Đây là lý do tại sao các mô hình trên là một chút phức tạp.

Mẫu này rất có khả năng hoạt động với Oracle 9i, và có thể là Oracle 8i.

+0

+1 cho Lộ trình. Phần mềm Win32 Oracle client tạo ra một lượng lớn rác trong registry khi cài đặt. – ConcernedOfTunbridgeWells

+0

@Mac Tôi đã thử kiểm tra sổ đăng ký bằng cách sử dụng câu lệnh sau (C#): ** var swSubkeys = (Registry.LocalMachine.OpenSubKey ("Phần mềm")). GetSubKeyNames(); ** nhưng không có mục nhập ORACLE trong swSubKeys (một mảng chuỗi). Vì vậy, tôi kiểm tra bằng cách sử dụng Regedit bằng tay, rõ ràng là ORACLE subkey tồn tại trong HKLM \ SOFTWARE ... Nó rất bối rối. – MagB

0

Tra cứu tệp/etc/oratab cho nhà oracle .Nhà này có phần mềm cơ sở dữ liệu được cài đặt cũng như tên cơ sở dữ liệu từ trang chủ đó. Sau đó, bạn có thể kiểm tra xem cơ sở dữ liệu có âm thanh hay không bằng cách khởi động nó.

0

Tôi không chắc chắn về Oracle, nhưng đối với MySQL và PostgreSQL tôi làm như sau:

$yum grouplist | grep SQL 

này trả về:

MySQL Database client 
MySQL Database server 
PostgreSQL Database client 
PostgreSQL Database server 

Vì vậy, tôi cho rằng bạn nên thử:

$yum grouplist | grep Orac 
Các vấn đề liên quan