it-swarm-vi.tech

Sự khác biệt của Oracle giữa SID, Tên DB, Tên miền DB, Tên cơ sở dữ liệu toàn cầu, Tên dịch vụ, Bí danh dịch vụ và Tên trường hợp

Ai đó có thể giải thích cho tôi sự khác biệt của SID, Tên DB, Tên miền DB, Tên cơ sở dữ liệu toàn cầu, Tên dịch vụ, Bí danh dịch vụ và Tên trường hợp trong Oracle không?

Cảm ơn Michael

14
Michael Ellick Ang

SID = xác định thể hiện cơ sở dữ liệu (tên cơ sở dữ liệu + số hiệu). Vì vậy, nếu tên cơ sở dữ liệu của bạn là somedb và số hiệu của bạn là 3, thì SID của bạn là somedb3.

Tên DB = Tên của cơ sở dữ liệu (cơ sở dữ liệu có thể được chia sẻ b/t nhiều trường hợp)

Tên miền DB = Thường giống như tên miền công ty của bạn (somecompany.com)

Tên cơ sở dữ liệu toàn cầu = Tên cơ sở dữ liệu + tên miền cơ sở dữ liệu (somedb.somecompany.com)

Tên dịch vụ = Một "trình kết nối" với một hoặc nhiều trường hợp. Việc tạo các tên dịch vụ bổ sung trong môi trường RAC thường rất hữu ích vì dịch vụ có thể được sửa đổi để sử dụng các SID cụ thể làm kết nối chính hoặc phụ hoặc hoàn toàn không sử dụng một số SID nhất định.

Bí danh dịch vụ = Bí danh cho tên dịch vụ (giống như CNAME, v.v.). Giả sử bạn đặt tên dịch vụ của mình một cái gì đó có ý nghĩa với dba, nhưng có lẽ đó là một chút bí truyền. Tạo một bí danh dịch vụ và đặt tên cho nó một cái gì đó sẽ có ý nghĩa với người dùng.

Tên sơ thẩm = giống như SID

11
jswoods7

Cách bạn mô tả SID chỉ là hành vi DEFAULT trong cấu hình RAC. SID (== instance_name) chỉ là: Tên ví dụ của bạn.

Tôi luôn nhìn vào nó như thế này: Một Instance, là một Instance của phần mềm RDBMS. Một thể hiện MOUNTS một controlfile, (thay đổi cơ sở dữ liệu) Trong phần tương tác này được ghi vị trí của các tệp dữ liệu. bộ sưu tập các tệp dữ liệu (okay và controlfile (s)) == cơ sở dữ liệu.

Cơ sở dữ liệu có tên, db_name và (tùy chọn) một tên miền (db_domain) -> cùng với global_db_name. Bây giờ hãy tưởng tượng bạn đang sao chép (DataGuard) cơ sở dữ liệu của bạn. Bạn muốn giữ DB_name giống nhau, phải không? (Ý tôi là: khôn ngoan dữ liệu, đó là cơ sở dữ liệu CÙNG) Nhưng sau đó, làm thế nào để xác định hai 'phiên bản' cơ sở dữ liệu của bạn? Nhập 'DB_UNIQUE_NAME' ... Vâng, nó đang bị lẫn lộn ...

Thực tiễn cá nhân của tôi là đặt tên INSTANCE giống như db_unique_name trong thiết lập DataGuard và gắn với tên RAC (db_name + Instance_Number) trong thiết lập RAC. Sau đó, db_unique_names tôi tạo nên, thường giống như db_name + hậu tố 1 chữ cái (MYDBa MYDBb, v.v.)

Chúc mừng, Paul

4
paul

SID là ví dụ. Tốt hơn nên tránh sử dụng thuật ngữ 'thể hiện cơ sở dữ liệu', chỉ là ví dụ.

"SID = xác định thể hiện cơ sở dữ liệu (tên cơ sở dữ liệu + số hiệu)" là sai. "Một Instance, là một Instance của phần mềm RDBMS" là sai. DBMS được gỡ cài đặt hoặc cài đặt chỉ là DBMS.

"Tên miền DB = Thường giống như tên miền công ty của bạn" nên tránh. Tôi gặp vấn đề khi sử dụng tên miền và các vấn đề biến mất khi không sử dụng tên miền.

"Tên cơ sở dữ liệu toàn cầu = Tên cơ sở dữ liệu + miền cơ sở dữ liệu" cũng sai. Tên cơ sở dữ liệu toàn cầu là Tên dịch vụ. Nó đơn giản mà.

"SID = xác định thể hiện cơ sở dữ liệu (tên cơ sở dữ liệu + số hiệu). Vì vậy, nếu tên cơ sở dữ liệu của bạn là somedb và số hiệu của bạn là 3, thì SID của bạn là somedb3." sai. Không có catenation như vậy của danh tính hoặc tên.

0
Bernaridho