Làm cách nào để tạo tệp tnsnames.ora để kết nối với Cơ sở dữ liệu Oracle?


22

Tôi đã cài đặt Oracle 11g và tôi có thể kết nối sysmanvới cơ sở dữ liệu Oracle, nhưng không có tnsnames.oratệp nào tôi có thể tìm thấy.

Tôi có cần tự tạo tệp tnsnames.ora không? Nếu vậy, tôi đặt nó ở đâu? Nếu không, làm thế nào để Oracle tạo ra nó cho tôi? Nếu tôi cần phải tạo nó, cú pháp thích hợp cho tập tin là gì?

Câu trả lời:


15

Bạn có thể dễ dàng tạo tệp tnsnames.ora [text]. Nó phải ở $ ORACLE_HOME / network / admin / và sẽ trông giống như thế này:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)

Câu trả lời tốt, mặc dù tôi thấy rằng tôi phải đặt tên cho tập tin của mình $HOME/.tnsnames.ora; đường dẫn được đề xuất trong câu trả lời dường như bị bỏ qua bởi sqlplus.
DuffJ

@DuffJ thì có gì đó không ổn với môi trường của bạn.
phép lạ173

11

Thư mục mặc định cho tệp tnsnames.ora là

/u01/app/oracle/product/<version>/<dbname>/network/admin/tnsnames.ora

Nội dung:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: bạn có thể chọn cái này và sử dụng nó làm chuỗi kết nối sau này.
  • port: mặc định là 1521

Thêm thông tin ở đây: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htmlm


6
Thư mục mặc định là không có gì sắp xếp. Nó liên quan đến $ORACLE_HOMEvà do đó sẽ là $ORACLE_HOME/network/admin(nơi $ORACLE_HOMEcó thể có nhiều thư mục khác nhau trong đó có nhiều hơn một cấp độ cài đặt / bản vá của Oracle) hoặc có thể bị ghi đè bởi $TNS_ADMINbiến môi trường. Nó hoàn toàn phụ thuộc vào người dùng nơi phần mềm cư trú.
Philᵀᴹ

4
Thành thật mà nói, nó là mặc định trên hệ thống linux ... Nếu bạn không chạm vào một thứ thì nó sẽ được đặt ở đó ... do đó là mặc định. Nhưng $ ORACLE_HOME nếu không bị can thiệp thì thực sự là một giải pháp tốt hơn.
Munchi

Tôi đã chạy Oracle trên hàng trăm hệ thống Linux và đó không phải là mặc định, cũng không phải là một thứ như vậy. Có lẽ bạn muốn nói đó là ví dụ trong tài liệu, họ phải chọn thứ gì đó. Không có bản phân phối Linux nào mà tôi biết có hệ thống tập tin / u01 "theo mặc định", bạn phải tạo nó và bảo Oracle sử dụng nó!
Gaius

2

$ORACLE_HOME/network/adminlà thư mục nơi tnsnames.oratệp được tạo bởi DBCA và / hoặc NetCA.

$ORACLE_HOMElà một đường dẫn giống như /u01/app ..., đó là một đường dẫn tuân thủ OFA mà trình cài đặt sử dụng làm mặc định nếu không bị ghi đè bởi trình cài đặt.


2

Nếu HĐH của bạn là Windows 10 , bạn có thể tìm thấy tnsnames.oratệp trong đường dẫn không phải sau:

C:\app\myAccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

myAccountTên tài khoản Windows của bạn ở đâu .


1
Nói cách khác, đó là %ORACLE_HOME%\NETWORK\ADMIN, phải không?
Andriy M

Vâng, đó là đúng. Hãy nhớ Oracle theo mặc định lưu trữ tnsnames.ora trong thư mục $ ORACLE_HOME / network / admin trên các hệ điều hành UNIX và trong thư mục% ORACLE_HOME% \ network \ admin trên các hệ điều hành Windows.
S. Mayol

$ ORACLE_HOME không hoạt động cho tôi trên môi trường của tôi, vì vậy việc biết đường dẫn đầy đủ thực sự có ích ... chỉ cần biết nó có trong C: \ app \ ... đã cho tôi sự khởi đầu tôi cần và tôi có thể theo dõi nó từ ở đó Tiết kiệm cho tôi hàng giờ tìm kiếm!
Gallus

1

Theo như tôi biết thì tnsnames.oracần phải đặt vào <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\thư mục

Tài liệu có thể được tìm thấy ở đây

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.