ORA-12505, TNS: người nghe hiện không biết về SID được đưa ra trong mô tả kết nối


154

Tôi đã cài đặt Oracle 11g Express Edition Release 2 trong hệ điều hành Windows 7 64 bit của mình và đã thử thực thi chương trình JDBC, sau đó tôi gặp lỗi sau:

java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28)
    at Lab3O.main(Lab3O.java:15)
Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 8 more

1
Bắt đầu OracleServiceXE theo cách thủ công từ các dịch vụ làm việc cho tôi.
Sen

Câu trả lời:


184

Tôi đã sửa vấn đề này bằng cách sửa chuỗi jdbc của mình.

Ví dụ: chuỗi jdbc chính xác phải là ...

jdbc:oracle:thin:@myserver:1521/XE

Nhưng chuỗi jdbs tôi đang sử dụng là ...

jdbc:oracle:thin:@myserver:1521:XE

(Lưu ý: giữa 1521XEnên là một/ )

Chuỗi jdbc xấu này cũng cung cấp cho tôi lỗi ORA-12505.


53
Nếu bạn sử dụng a / nó là tên dịch vụ mạng, nếu bạn sử dụng dấu hai chấm thì đó là SID.
eckes 13/07/2015

89

Có một vài điều có thể gây ra vấn đề này, nhưng trước khi bạn bắt đầu với JDBC, bạn cần chắc chắn rằng bạn có thể kết nối với cơ sở dữ liệu bằng SQL * Plus. Nếu bạn không quen thuộc với SQL * Plus, thì đây là công cụ dòng lệnh để kết nối với cơ sở dữ liệu Oracle đã là một phần tiêu chuẩn của Oracle trong một thời gian dài và nó được bao gồm trong Oracle XE.

Khi kết nối với cơ sở dữ liệu Oracle bằng JDBC, bạn không kết nối trực tiếp với cơ sở dữ liệu. Thay vào đó, bạn kết nối với trình nghe TNS, sau đó kết nối bạn với cơ sở dữ liệu. Lỗi ORA-12505có nghĩa là người nghe đã khởi động và bạn có thể kết nối với nó, nhưng nó không thể kết nối bạn với cơ sở dữ liệu vì không biết rằng cơ sở dữ liệu đó đã hoạt động. Có hai lý do cho việc này:

  • cơ sở dữ liệu chưa được khởi động,
  • cơ sở dữ liệu chưa được đăng ký với người nghe, ví dụ vì cơ sở dữ liệu đã được khởi động trước người nghe. (Khi cơ sở dữ liệu khởi động, nó sẽ tự đăng ký với người nghe nếu nó đang chạy. Nếu người nghe không chạy, cơ sở dữ liệu sẽ không tự đăng ký và nếu người nghe khởi động, nó sẽ không tìm kiếm cơ sở dữ liệu có thể đăng ký với nó.)

ORA-12505 có nghĩa là người nghe biết về cơ sở dữ liệu đó, nhưng người nghe chưa nhận được thông báo từ cơ sở dữ liệu rằng cơ sở dữ liệu đã hoạt động. (Nếu bạn đang cố kết nối với cơ sở dữ liệu sai, sử dụng SID sai, bạn sẽ gặp lỗi ORA-12154 "TNS: không thể giải quyết định danh kết nối được chỉ định".)

Những dịch vụ nào của Oracle đang chạy trong phần đính vào Dịch vụ? (Mở phần này từ Bảng điều khiển> Công cụ quản trị> Dịch vụ hoặc chỉ Bắt đầu> Chạy>services.msc .) Bạn cần các dịch vụ OracleServiceXE và OracleXETNSListener để chạy.

Nếu cả hai dịch vụ đều được khởi động, bạn có thể kết nối với cơ sở dữ liệu trong SQL * Plus bằng cách sử dụng bất kỳ thao tác nào sau đây tại dấu nhắc lệnh không? (Tôi cho rằng bạn đang chạy những thứ này trên máy bạn đã cài đặt Oracle XE.)

hệ thống sqlplus / mật khẩu hệ thống @XE
hệ thống sqlplus /mật khẩu hệ thống
sqlplus / như sysdba

(Thay thế system-password bằng mật khẩu bạn đã đặt cho người dùng SYS và HỆ THỐNG trong quá trình cài đặt Oracle XE.)

Đầu tiên trong ba kết nối này thông qua trình nghe TNS, nhưng hai thứ hai kết nối trực tiếp với cơ sở dữ liệu mà không thông qua trình nghe và chỉ hoạt động nếu bạn ở trên cùng một máy với cơ sở dữ liệu. Nếu cái đầu tiên thất bại nhưng hai cái kia thành công, thì các kết nối JDBC cũng sẽ thất bại. Nếu vậy, hãy kết nối với cơ sở dữ liệu bằng cách sử dụng một trong hai cái kia và chạyALTER SYSTEM REGISTER . Sau đó thoát khỏi SQL * Plus và thử lại mẫu đầu tiên.

Nếu cái thứ ba không thành công nhưng cái thứ hai hoạt động, hãy thêm tài khoản người dùng của bạn vào nhóm ora_dba. Thực hiện việc này trong Bảng điều khiển> Quản lý máy tính> Người dùng và nhóm cục bộ.

Khi bạn có thể nhận được kết nối của biểu mẫu

hệ thống sqlplus / mật khẩu hệ thống @XE

để hoạt động, bạn phải có khả năng kết nối với Oracle XE thông qua JDBC. (Ngẫu nhiên, bạn đã không cho chúng tôi xem mã JDBC mà bạn đang sử dụng để kết nối với cơ sở dữ liệu, nhưng tôi nghi ngờ rằng nó hoàn toàn có thể đúng; sẽ có nhiều lỗi khác nếu các phần của chuỗi kết nối bị sai.)


3
@Raj: Tôi không thấy chỉnh sửa của bạn mang lại câu trả lời, vì vậy tôi đã xóa nó. Nếu bạn muốn đóng góp một lượng đáng kể cho một câu hỏi, xin vui lòng gửi câu trả lời của riêng bạn thay vì chỉnh sửa của người khác.
Luke Woodward

@LukeWoodward Tôi nhận được lỗi này SP2-0734: unknown command beginning "system/ora..." - rest of line ignored. trên cả 3
vaibhavcool20

1
@qtpseleniumSupport: thông báo đó nói rằng bạn đã ở trong SQL * Plus và bạn đã nhập dòng system/ora...(hoặc SQL * Plus đọc dòng đó từ một tệp mà bạn đã bảo nó đọc). Các dòng lệnh tôi đưa ra ở trên dự định sẽ được sử dụng từ cửa sổ nhắc lệnh / shell / Terminal. Nếu bạn đang chạy SQL * Plus, hãy thay thế sqlplusbằng connect.
Luke Woodward

"cơ sở dữ liệu chưa được đăng ký với người nghe, ví dụ vì cơ sở dữ liệu đã được khởi động trước người nghe." - đây là nó, cảm ơn bạn!
Ursache

47

Tôi cũng có lỗi tương tự nhưng khi thử cả ba đều thất bại. Nếu ba trạng thái trên không thành công. Hãy thử trạng thái LSNRCTL nếu bạn thấy dịch vụ (XE trong trường hợp của tôi) bị thiếu hãy thử điều này

sqlplus /nolog
conn  system
alter system register;  
exit  
lsnrctl status  

Bây giờ bạn có thể thấy dịch vụ
Ngay cả khi không thấy hãy thử dịch vụ này

sqlplus /nolog  
conn system  
alter system set local_listener = '(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope = both;  
alter system register;  
exit  
lsnrctl status

Điều này có lẽ nên hoạt động ...


2
Bạn đã làm nó, người đàn ông! Sau khi thiết lập local_listener, trình nghe orcl hiện đang được hiển thị lsnrctl. Cảm ơn rất nhiều!
vào

Điều này làm cho hệ thống của tôi hoạt động, nhưng lưu ý rằng tôi đã chạy như sau: ALTER HỆ THỐNG đặt local-listener = XE;
Daniel Williams

khi tôi gõ: 'thay đổi hệ thống đặt local_listener =' (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521)) 'scope = cả hai;' Nó trả về một lỗi: ORA-65040: operation not allowed from within a pluggable databasenó có nghĩa là gì? Không thể định cấu hình JDBC: /
Alg_D 3/2/2016

1
cả hai câu trả lời được bình chọn hàng đầu đều có ích, nhưng câu trả lời này giúp nhiều hơn. Có vẻ như tôi không có 127.0.0.1 làm địa chỉ người nghe (tôi có một địa chỉ với tên địa phương của PC). Vì vậy, bằng cách thêm cái mới này, nó bắt đầu hoạt động
johnbr

alter system set local_listener = ... đã làm cho tôi.
Ben Asmussen

31

Khi bạn gặp lỗi này "ORA-12505, TNS: người nghe hiện không biết về SID được cung cấp trong mô tả kết nối"

Giải pháp: Mở Dịch vụ và bắt đầu OracleServiceXE, sau đó thử kết nối ...


Tôi gặp vấn đề tương tự nhưng với việc chạy OracleServiceXE. Do đó, việc khởi động lại dịch vụ OracleServiceXE đã giúp tôi. Không biết tại sao?!
Hamedz

Khi tìm kiếm OracleServiceXE, hãy nhớ rằng XE tương ứng với cơ sở dữ liệu SID, vì vậy hãy đảm bảo rằng bạn đang tìm kiếm dịch vụ phù hợp, OracleService [SID]
Sandoval0992

10

Tôi tìm thấy một số lý do cho ngoại lệ này. Họ là

1) Tên của cơ sở dữ liệu XE theo mặc định. Vì vậy, url sẽ là " jdbc: oracle: thin: @localhost: 1521: XE ".

2) Đảm bảo rằng OracleServiceXE, OracleXETNSListener đang chạy. Nó sẽ nằm trong Bảng điều khiển \ Tất cả các mục trong Bảng điều khiển \ Công cụ quản trị \ Dịch vụ


8

Tôi đã giải quyết vấn đề này bằng cách sửa mã JDBC của mình.

chuỗi JDBC chính xác phải là ...

conection = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","system","ishantyagi");

Nhưng chuỗi JDBC tôi đang sử dụng là ...

conection = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");

Vì vậy, lỗi chỉ định orcl thay vì xe cho thấy lỗi này vì tên SID là sai.


Trong trường hợp của tôi conection = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:orcl","system","ishantyagi");làm việc.
Pran Kumar Sarkar

8

Vấn đề của tôi được giải quyết khi tôi sử dụng mã dưới đây:

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@IPAddress:1521/servicename","userName","Password");

7

Đối mặt với lỗi tương tự, bất kỳ giải pháp nào ở trên đều không có ích. Có một vấn đề trong tập tin listner.ora. Do nhầm lẫn tôi đã thêm vào SIDra khỏi SID_LISTxem dưới đây (phần giữa các vì sao *).

 SID_LIST_LISTENER =
      (SID_LIST =

        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
          (PROGRAM = extproc)
        )
        )

 *(SID_DESC =
           (SID_NAME = XE)
           (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
         )*
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
      )


    DEFAULT_SERVICE_LISTENER = (XE)

Đã sửa lỗi này như sau:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
       (SID_NAME = XE)
       (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
     )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )


DEFAULT_SERVICE_LISTENER = (XE)

Đã dừng và cơ sở dữ liệu nhập mô tả hình ảnh ở đây

Đã dừng trình nghe OracleServiceXE và OracleXETNSListener theo cách thủ công vì nó không tự động dừng bằng cách đi tới Bảng điều khiển \ Tất cả các mục trong Bảng điều khiển \ Công cụ quản trị \ Dịch vụ. Khởi động lại cơ sở dữ liệu và nó hoạt động như một cơ duyên.


4

tôi ban đầu đến đây với cùng một vấn đề. Tôi đã cài đặt Oracle 12c trên Windows 8 (64-bit), nhưng tôi đã giải quyết nó bằng 'TNSPING xe' trên dòng lệnh ... Nếu kết nối không được thiết lập hoặc không tìm thấy tên, hãy thử tên cơ sở dữ liệu, trong trường hợp của tôi, đó là 'orcl' ... 'TNSPING orcl' một lần nữa và nếu nó thành công thì bạn cần thay đổi SID thành 'orcl' trong trường hợp này (hoặc bất kỳ tên cơ sở dữ liệu nào bạn sử dụng) ...


4

Một khả năng mà tôi chưa từng thấy được thảo luận rộng rãi là có thể có một vấn đề khi giải quyết tên máy chủ trên chính máy chủ. Nếu không có mục nhập cho $ (tên máy chủ) trong / etc / hosts, trình nghe của Oracle sẽ bị lẫn lộn và sẽ không xuất hiện.

Điều đó hóa ra là vấn đề của tôi và việc thêm tên máy chủ và địa chỉ IP trong / etc / hosts đã giải quyết vấn đề.



4

Nếu bạn có kết nối hoạt động trong Oracle SQL Developer, hãy sử dụng thông tin trên menu kết nối để tạo url của bạn, như được mô tả trong hình ảnh sau:

nhập mô tả hình ảnh ở đây

Trong ví dụ trên, url sẽ là: jdbc:oracle:thin:@ORADEV.myserver.com:1521/myservice

Lưu ý rằng nếu bạn đang sử dụng SID, thì có dấu hai chấm (":") thay vì dấu gạch chéo ("/") sau tên máy chủ.


2

Tôi cũng phải đối mặt với cùng một vấn đề. Tôi đã cài đặt Oracle Express phiên bản 10g trong Windows XP OS bằng VMware và nó vẫn hoạt động tốt. Vì việc nhập các truy vấn SQL rất khó khăn trong tiện ích SQL được cung cấp bởi 10g và vì tôi đã quen làm việc với nhà phát triển SQL, tôi đã cài đặt nhà phát triển SQL 32 bit trong XP và thử kết nối với DB SID "XE" của tôi. Nhưng kết nối không thành công với trình nghe TNS lỗi ORA-12505 hiện không biết về SID được đưa ra trong mô tả kết nối. Tôi đã ở trên biển về vấn đề này xảy ra như thế nào vì nó hoạt động tốt với tiện ích SQL và tôi cũng đã tạo ra một vài ánh xạ Informatica sử dụng tương tự. Tôi đã duyệt rất nhiều thứ này và cũng đã áp dụng các đề xuất được cung cấp cho tôi sau khi đưa ra trạng thái "lsnrctl" trên các diễn đàn công cộng nhưng không có kết quả. Tuy nhiên, sáng nay tôi đã thử tạo một kết nối mới một lần nữa, và Voila, nó không hoạt động. Tôi đoán sau khi đọc một vài bài đăng mà đôi khi người nghe lắng nghe trước khi DB kết nối hoặc một cái gì đó (xin lỗi vì tôi đã tham khảo thô vì tôi là người mới ở đây) nhưng tôi đề nghị chỉ cần khởi động lại máy và kiểm tra lại.


2

Tôi có cùng một vấn đề vì vậy để giải quyết vấn đề này, trước tiên tôi cấu hình lại trình nghe của mình bằng cách sử dụng netcasau đó tôi đã xóa cơ sở dữ liệu cũ của mình bằng ORCL bằng cách sử dụng dbcavà sau đó tôi tạo lại cơ sở dữ liệu mới bằng cách sử dụngdbca


2

Tôi đã đối mặt với cùng một vấn đề và giải quyết bằng cách khởi động lại dịch vụ OracleServiceXE. Goto Services.msc và sau đó xác minh dịch vụ 'OracleServiceXE' đang TĂNG và đang chạy


2

Tôi đã khắc phục sự cố này bằng cách thay đổi " SID " thành " SERVICE_NAME " trong tệp TNSNAMES.ora của mình.

Vui lòng xem nếu DB của bạn yêu cầu SID hoặc SERVICE_NAME.

Chúc mừng


2

Nếu bạn sử dụng Oracle Express Edition, bạn nên có url này

jdbc: oracle: thin: @localhost: 1521: xe hoặc jdbc: oracle: thin: @localhost: 1521 / XE

Tôi gặp vấn đề tương tự với plugin cấu hình liquidibase trong pom.xml. Và tôi đã thay đổi cấu hình của mình:

`<configuration>
   <driver>oracle.jdbc.OracleDriver</driver>
   <url>jdbc:oracle:thin:@localhost:1521:xe</url>
   <defaultSchemaName></defaultSchemaName>
   <username>****</username>
   <password>****</password>
</configuration>`

2

Kết nối con = DriverManager.getConnection ("jdbc: oracle: thin: @localhost: 1521: xe", "scott", "tiger");

Lỗi tôi nhận được:

java.sql.SQLException: Listener đã từ chối kết nối với lỗi sau: ORA-12505, TNS: listener hiện không biết về SID được cung cấp trong mô tả kết nối Trình mô tả kết nối được khách hàng sử dụng là: localhost: 1521: xe

Làm thế nào tôi giải quyết nó:

Kết nối con = DriverManager.getConnection ("jdbc: oracle: thin: localhost: 1521: xe", "scott", "tiger");

(Tẩy @)

Không biết tại sao, nhưng nó đang hoạt động ...


1

Kiểm tra bằng cách thực hiện tnsping và tên dụ trong máy chủ. Nó sẽ cung cấp cho bạn phần giải mã tns và hầu hết tên máy chủ thời gian khác nhau không phù hợp.

Tôi cũng giải quyết vấn đề của mình

Trong máy Unix $ tnsping (Enter)

Nó cung cấp cho tôi mô tả tns đầy đủ nơi tôi thấy rằng tên máy chủ là khác nhau .. :)


1

Vui lòng kiểm tra cả hai OracleServiceXEOracleXETNSListenercó trạng thái bắt đầu khi bạn điều hướng qua start->run->services.msc.

Đối với trường hợp của tôi chỉ OracleXETNSListenerđược bắt đầu nhưng OracleServiceXEchưa được bắt đầu, khi tôi bắt đầu right clicking -> startvà kiểm tra kết nối thì nó hoạt động với tôi


1

Tôi đã có vấn đề tương tự trong SQL Workbench.

URL:

jdbc: oracle: thin: @ 111.111.111.111: 1111: xe

không hoạt động.

URL:

jdbc: oracle: thin: @ 111.111.111.111: 1111: asdb

làm.

Điều này giúp tôi trong tình hình cụ thể của tôi. Tôi sợ, điều đó có thể tồn tại nhiều lý do khác với các giải pháp khác nhau.


0

Có một vấn đề tương tự. Vấn đề bắt đầu xảy ra đột ngột - chúng tôi đang tải URL kết nối cơ sở dữ liệu cân bằng, nhưng trong các kết nối jdbc tôi đã chỉ trực tiếp đến một db.

Đã thay đổi để tải url db cân bằng và nó đã hoạt động.


2
Chúng tôi khuyên bạn nên sử dụng URL chuỗi kết nối đủ điều kiện như được hiển thị jdbc: oracle: thin: @ (DESCRIPTION = (ADDRESS = (HOST = myhost) (PORT = 1521) (PROTOCOL = tcp)) (CONNECT_DATA = (SERVICE_NAME = myorcldbs)
Nirmala

0

Trong trường hợp của tôi không được giải quyết, cuối cùng tôi đã khởi động lại lời tiên tri của mình và người nghe TNS và mọi thứ đã hoạt động. Đã vật lộn được 2 ngày.


0

Tôi đã gặp lỗi này ORA-12505, TNS: người nghe hiện không biết về SID được đưa ra trong mô tả kết nối khi tôi cố gắng kết nối với DB tiên phong bằng cách sử dụng nhà phát triển SQL.

Chuỗi JDBC được sử dụng là jdbc: oracle: thin: @myserver: 1521 / XE , rõ ràng là một chuỗi chính xác và hai dịch vụ orory bắt buộc OracleServiceXE, OracleXETNSListener đã hoạt động .

Cách tôi giải quyết vấn đề này (Trong Windows 10)

 1. Open run command.
 2. Type services.msc 
 3. Find services with name OracleServiceXE and OracleXETNSListener in the list.
 4. Restart OracleServiceXE service first. After completing the restart try restarting OracleXETNSListener service.

0

Ngoài các dịch vụ đang chạy (OracleServiceXE, OracleXETNSListener), có khả năng phần mềm / tường lửa chống vi-rút của bạn vẫn có thể chặn chúng. Chỉ cần chắc chắn rằng chúng không bị chặn.nhập mô tả hình ảnh ở đây



0

Lời tiên tri của tôi đã ngừng hoạt động và tôi đã nhận được lỗi này. Tôi khởi động lại máy của tôi và cũng đã thử các giải pháp trên. Cuối cùng, tôi đã mở các dịch vụ thành phần và khởi động lại các dịch vụ tiên tri và tất cả bắt đầu hoạt động. Hy vọng điều này sẽ giúp được ai đó.


0

Tôi chỉ tạo liên kết cơ sở dữ liệu không chính xác.

Cách khắc phục đơn giản đối với tôi là chỉ cần thay đổi 'SID' thành SERVICE_NAME

CREATE DATABASE LINK my_db_link
CONNECT TO myUser IDENTIFIED BY myPassword
USING
'
(
    DESCRIPTION=
    (
        ADDRESS=
        (PROTOCOL=TCP)
        (HOST=host-name-heren)
        (PORT=1521)
    )
    (CONNECT_DATA=(SID=theNameOfTheDatabase))
)';

Thay đổi

SID=theNameOfTheDatabase

đến

SERVICE_NAME=theNameOfTheDatabase 

giải quyết vấn đề 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.