Kết nối với sql plus từ dòng lệnh bằng chuỗi kết nối


41

Hãy nói rằng tôi có một cơ sở dữ liệu Oracle. Tôi có tên người dùng = x, mật khẩu = y, cơ sở dữ liệu = z. Ngoài ra tôi biết cổng = a, SID = b, Tên máy chủ = c.

Vậy làm thế nào để tôi cần kết nối chính xác? Tôi đã sử dụng nhiều tùy chọn như:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))

Gửi các dòng lệnh này thường mang lại cho tôi các thông báo lỗi như:

ORA-12560: TNS: lỗi bộ điều hợp giao thức
ORA-12514: TNS: người nghe hiện không biết về dịch vụ

Rất cám ơn trước!!


3
Giả sử bạn có máy chủ / cổng phù hợp, đối với tôi có vẻ như thể hiện không chạy hoặc không được đăng ký với người nghe.
Colin 't Hart

1
sử dụng ezconnect:sqlplus x/y@c:a/b
Dieter DHoker

1
đối với bản ghi, ví dụ thứ hai của bạn (ít nhất) hoạt động với tôi nếu tôi bao quanh nó bằng dấu ngoặc kép. như x @ "(MÔ TẢ = (ĐỊA CHỈ = (PROTOCOL = TCP) (HOST = c) (PORT = a)) (CONNECT_DATA = (SID = b)))"
rogerdpack 18/215

Mở -> dịch vụ trong cửa sổ Bắt đầu-> orialservicexe Nó hoạt động với tôi.
Prakash

Câu trả lời:


74

bạn đã thử chưa

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

các phiên bản hiện đại của sqlplus (phiên bản 11 trở lên) hiểu cú pháp này và bạn không cần tệp tnsnames.ora.


2
Nó hoạt động hoàn hảo
Gajotres

4
phiên bản nào? Không hoạt động với tôi trên CentOS ERROR: ORA-12154: TNS: không thể giải quyết định danh kết nối được chỉ định
Edmondo1984

Số cổng mặc định: 1521
Ivan Chau

4
Tôi có SID thay vì dịch vụ nên sử dụng ":" thay vì "/" làm việc cho tôi tên người dùng / mật khẩu sqlplus @ host: port: sid
Pratik Goenka

1
sqlplus đi kèm với cú pháp v11.2.0.1.0không hỗ trợ host:port. Có vẻ như 11.2.0.4.0đã hỗ trợ ...
gavenkoa

12

Đơn giản nhất là sử dụng tệp tnsnames.ora để kết nối với cơ sở dữ liệu. Để chỉnh sửa nó và thêm một mục mới: Tệp này thường nằm trong thư mục $ ORACLE HOME \ NETWORK \ ADMIN.

myDb  =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
   )
 (CONNECT_DATA =
   (SERVICE_NAME =b)
 )
)

và sau đó bạn có thể kết nối với db:

sqlplus x / y @ myDb


Để tránh có mật khẩu trên dòng lệnh, hãy xem các liên kết trong các bình luận tại đây: serverfault.com/a/87038/27813
rogerdpack 18/02/2015

7

Đến poster gốc ... trong tùy chọn đầu tiên, bạn đã bỏ lỡ dấu ngoặc đơn đóng

Không chính xác: (Chuỗi của bạn)

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'

Chính xác:

sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'

2

Dòng sqlplus của bạn trông chính xác, xác minh như sau:

  1. Bạn có thể kết nối như sysdba trên chính máy chủ cơ sở dữ liệu.
  2. Bạn có thể kết nối với tư cách là người dùng mà bạn đang cố gắng trên chính máy chủ cơ sở dữ liệu.
  3. Bạn có thể ping máy chủ cơ sở dữ liệu từ máy tính mà bạn đang cố gắng kết nối.
  4. Bạn có thể nghe nhạc từ máy tính mà bạn đang cố gắng kết nối.

Nếu tất cả những điều này kiểm tra bạn có thể muốn tạo một đường kết nối mới để đảm bảo bạn không mắc lỗi đánh máy.


1

Có thể cơ sở dữ liệu của bạn không hoạt động. Nếu máy đã được khởi động lại và phiên bản không được đặt thành tự động khởi động (và nó không được khởi động thủ công), bạn có thể cần phải tự khởi động dịch vụ.

Nếu bạn có quyền truy cập vào màn hình Dịch vụ, bạn có thể làm điều đó từ đó; hoặc, bạn có thể làm điều đó từ dòng lệnh.

Đi đến Dấu nhắc lệnh và nhập các lệnh sau:

set oracle_sid=ORCL

net start oracleserviceORCL

Bộ đầu tiên đặt Oracle SID; thứ hai thực sự bắt đầu dịch vụ.


0

trích xuất từ ​​sqlplus giúp:

có thể ở dạng Tên dịch vụ mạng hoặc Kết nối dễ dàng.

  @[<net_service_name> | [//]Host[:Port]/<service_name>]

-2

Tôi thấy rằng thật dễ dàng để thực hiện kết nối máy tính từ xa và mở Command Prompt sau đó kết nối bằng cách:

sqlplus sys/YourPassword as sysdba


-3

Bạn nên bắt đầu các dịch vụ của cơ sở dữ liệu của bạn. Đối với điều này, đi đến menu Bắt đầu -> Chạy và bắt đầu services.mscSau đó tìm kiếm ở đó cho các dịch vụ cơ sở dữ liệu và bắt đầu nó. Sau đó nó sẽ bắt đầu làm việc.


-4

Điều này làm việc cho tôi trên Oracle 11G

sqlplus orcl_usr/orcl_usr_pass@host/sid
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.