本章說明如何建立及管理目錄伺服器實例與尾碼。另有多項目錄管理作業也是在尾碼層級上進行配置,但其相關內容另載於本書的其他章節。
本章包含下列主題:
本章包含如何建立伺服器實例與尾碼的詳細資訊。如需快速建立目錄伺服器實例與尾碼以及匯入某些範例資料,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Installation Guide」中的「Server Instance Creation」。
本節說明如何建立及刪除目錄伺服器實例。
您必須使用指令行工具或瀏覽器介面目錄服務控制中心 (DSCC) 建立目錄伺服器實例,才能管理資料。在 DSCC 中,目錄伺服器實例通常簡稱為「目錄伺服器」。
當您建立目錄伺服器實例時,您目錄伺服器所需的檔案與目錄將會建立在所指定的 instance-path 中。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
若使用 DSCC 建立新的伺服器實例,則可選擇從現有的伺服器複製部分或全部的伺服器配置設定。
建立新的目錄伺服器實例,並設定實例路徑。
$ dsadm create instance-path |
系統會提示您為此伺服器設定目錄管理員的密碼。
若要為伺服器實例指定非預設的連接埠號碼或任何其他參數,請參閱 dsadm(1M) 線上手冊。
例如,若要在 /local/ds 目錄中建立新的實例,請使用此指令:
$ dsadm create /local/ds Choose the Directory Manager password: Confirm the Directory Manager password: Use 'dsadm start /local/ds' to start the instance |
檢查伺服器實例是否已正確建立。
$ dsadm info instance-path |
例如:
$ dsadm info /local/ds1 Instance Path: /local/ds1 Owner: user1(group1) Non-secure port: 1389 Secure port: 1636 Bit format: 64-bit State: Running Server PID: 22555 DSCC url: - SMF application name: - Start at boot: Disabled Instance version: D-A00 |
(可選擇) 如果目錄伺服器已使用 Java Enterprise System 安裝程式或本機套裝軟體安裝進行了安裝,且作業系統提供有一套服務管理解決方案,則可將伺服器視為服務加以管理,如下表所示。
作業系統 |
指令 |
---|---|
Solaris 10 |
若您在 Sun 叢集環境中進行作業,請使用此指令: dsadm enable-service --type CLUSTER instance-path resource-group 其他情況: dsadm enable-service --type SMF instance-path |
Solaris 9 |
若您在 Sun 叢集環境中進行作業,請使用此指令: dsadm enable-service --type CLUSTER instance-path resource_group 其他情況: dsadm autostart instance-path |
Linux、HP-UX |
dsadm autostart instance-path |
Windows |
dsadm enable-service --type WIN_SERVICE instance-path |
啟動目錄伺服器。
$ dsadm start instance-path |
伺服器正在執行中,但不含任何資料或尾碼。使用 dsconf 建立尾碼。
(可選擇) 使用下列其中一個方法註冊伺服器實例:
存取 URL https://host:6789,並透過 DSCC 註冊伺服器。
使用指令 dsccreg add-server。
如需詳細資訊,請參閱 dsccreg(1M) 線上手冊。
若要使用密碼策略,且目錄伺服器實例是獨立的,或屬於已遷移至 DS6-only 密碼策略模式的複寫拓樸,請將實例變更為該模式。
$ dsconf pwd-compat -h host -p port to-DS6-migration-mode ## Beginning password policy compatibility changes . ## Password policy compatibility changes finished. Task completed (slapd exit code: 0). $ dsconf pwd-compat -h host -p port to-DS6-mode ## Beginning password policy compatibility changes . ## Password policy compatibility changes finished. Task completed (slapd exit code: 0). |
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
停止目錄伺服器。
$ dsadm stop instance-path |
如果之前使用 DSCC 管理伺服器,請使用指令行取消註冊伺服器。
$ dsccreg remove-server /local/ds Enter DSCC administrator's password: /local/ds is an instance of DS Enter password of "cn=Directory Manager" for /local/ds: This operation will restart /local/ds. Do you want to continue ? (y/n) y Unregistering /local/ds from DSCC on localhost. Connecting to /local/ds Disabling DSCC access to /local/ds Restarting /local/ds |
如需詳細資訊,請參閱 dsccreg(1M) 線上手冊。
(可選擇) 如果之前是在服務管理解決方案中啟用伺服器實例,則需停止將伺服器視為服務進行管理。
作業系統 |
指令 |
---|---|
Solaris 10 |
若您在 Sun 叢集環境中進行作業,請使用此指令: dsadm disable-service --type CLUSTER instance-path 其他情況: dsadm disable-service --type SMF instance-path |
Solaris 9 |
若您在 Sun 叢集環境中進行作業,請使用此指令: dsadm disable-service --type CLUSTER instance-path 其他情況: dsadm autostart --off instance-path |
Linux、HP-UX |
dsadm autostart --off instance-path |
Windows |
dsadm disable-service --type WIN_SERVICE instance-path |
刪除伺服器實例。
$ dsadm delete instance-path |
此指令會移除所有內容,包含資料庫和資料。
如果實例已啟用為服務,或者若實例已在系統啟動時自動啟動,則 dsadm delete 需要超級使用者存取權。
若要從指令行啟動、停止或重新啟動伺服器,請分別使用 dsadm start、dsadm stop 與 dsadm restart 指令。
若所停止及重新啟動的目錄伺服器實例,在依配置保存項目的記憶體中含有大量快取,這些快取將需要一段時間進行回存。在快取回存時,實例的回應速度將會減緩。
這些指令必須由建立目錄伺服器的相同 UID 與 GID 執行,或由超級使用者執行。例如,若目錄伺服器以 user1 的身份執行,您即應以 user1 的身份執行 start、stop 與 restart 等公用程式。
在 Solaris 上,角色型存取控制可讓您以超級使用者以外的使用者身份執行目錄伺服器。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。但是,這不會套用至啟用與停用服務管理的步驟。在啟動及停止目錄伺服器時,必須在指令行上執行服務管理的啟用與停用作業。
若要啟動、停止或重新啟動目錄伺服器,請執行下列其中一項:
若要啟動伺服器,請鍵入:
$ dsadm start instance-path |
例如,若要以實例路徑 /local/ds 啟動伺服器,請使用此指令:
$ dsadm start /local/ds |
若要停止伺服器,請鍵入:
$ dsadm stop instance-path |
例如:
$ dsadm stop /local/ds |
若要重新啟動伺服器,請鍵入:
$ dsadm restart instance-path |
例如:
$ dsadm restart /local/ds |
在建立目錄伺服器實例後,必須為伺服器的目錄資訊樹狀結構 (DIT) 建立一或多個尾碼。DIT 包含伺服器中所有的項目,各個項目有其各自的辨別名稱 (DN)。DN 的階層式特性可建立分支與尾節點,以建構樹狀結構中的資料。管理員會以尾碼與子尾碼的形式定義及管理 DIT。DSCC 可對建立及管理這些元素的作業進行控制。此外,也可以使用指令行工具。
如需有關架構目錄資料的概念性資訊,以及有關尾碼的一般資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Deployment Planning Guide」。
如下列程序所述,您可以使用 dsconf create-suffix 指令在目錄中建立尾碼配置。由於根尾碼與子尾碼皆以相同的方式經由內部管理,因此從指令行建立這兩種尾碼的程序也幾乎是相同的。此程序說明僅適用於必要選項的 dsconf create-suffix 指令。如需有關此指令之其他選項的更多資訊,請參閱 dsconf(1M) 線上手冊或執行下列指令:
$ dsconf create-suffix --help |
配置項目可由任何管理使用者加以建立。但若是尾碼的頂端項目,則必須由目錄管理員建立,或以 cn=admin,cn=Administrators,cn=config 等目錄伺服器管理員的身份所建立。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
如果使用 DSCC 建立新的尾碼,可選擇複製現有尾碼的部分或所有尾碼配置設定。
建立根尾碼。
確定伺服器正在執行中,然後鍵入此指令:
$ dsconf create-suffix -h host -p port suffix-DN |
其中 suffix-DN 是新尾碼的完整 DN。就根尾碼而言,一般慣例是使用網域元件 (dc) 命名屬性。
例如,若要建立 DN dc=example,dc=com 的尾碼,請使用此指令:
$ dsconf create-suffix -h host1 -p 1389 dc=example,dc=com |
此指令會以下列方式建立新尾碼:
建立根尾碼的頂端 (或基底) 項目。
建立尾碼與資料庫在 cn=config 中的配置項目。
預設資料庫名稱取決於尾碼 DN。
如需有關所有尾碼的資訊 (包括已建立的新尾碼),請使用此指令:
$ dsconf list-suffixes -h host -p port -v |
-v 選項會顯示詳細模式,可列出尾碼上有多少項目,以及所有的複寫資訊。
若有多個目錄伺服器實例,請使用 -h host name 與 -p port number 選項,指定尾碼所屬的伺服器實例。
若要為資料庫檔案指定非預設路徑,請使用 -L 選項。您可以在後續的階段中變更尾碼資料庫路徑。若要執行此項作業,請使用 dsconf set-suffix-prop suffix-DN db-path:new-db-path 指令,然後停止伺服器,以手動方式移動資料庫檔案,再重新啟動伺服器。
若要檢視在建立尾碼時所能使用的所有選項,請參閱 dsconf(1M) 線上手冊。
請視需要建立子尾碼:
$ dsconf create-suffix -h host -p port subSuffix-DN |
接著將子尾碼附加到根尾碼中。
$ dsconf set-suffix-prop -h host -p port subSuffix-DN parent-suffix-dn:parentSuffix-DN |
其中,parentSuffix-DN 的值必須與前一個步驟中的 suffix-DN 值相同。子尾碼的 suffix-DN 中包含了子尾碼的相關辨別名稱 (RDN) 及其父系尾碼的 DN。
例如,若要建立子尾碼 ou=Contractors,dc=example,dc=com,並將子尾碼附加至根尾碼,請鍵入:
$ dsconf create-suffix -h host1 -p 1389 ou=Contractors,dc=example,dc=com $ dsconf set-suffix-prop -h host1 -p 1389 ou=Contractors,dc=example,dc=com \ parent-suffix-dn:dc=example,dc=com |
當此項目增加到目錄時,伺服器的資料庫模組會自動在下列目錄中建立資料庫檔案:
instance-path/db/database-name |
其中,database-name 是從部分尾碼自動建立的名稱。以前述範例為例,database-name 將是 Contractors
(可選擇) 以資料初始化尾碼。請參閱初始化尾碼。
您有時可能需要停用尾碼以進行維護,或基於安全性考量而停用其內容。若停用尾碼,將使伺服器無法讀取或寫入尾碼的內容,以回應任何用戶端作業。當您停用尾碼後,即不再具備該尾碼的存取權,而參照模式將自動設為停用。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
停用尾碼。
$ dsconf set-suffix-prop -h host -p port suffix-DN enabled:off |
您無法停用已啟用複寫的尾碼,因為在複寫的尾碼中,大部分的特性皆由複寫機制所決定。
啟用尾碼。
$ dsconf set-suffix-prop -h host -p port suffix-DN enabled:on |
若要限制尾碼的存取,但不完全停用尾碼,您可以修改存取權限以允許唯讀存取。在此情況下,必須定義其他伺服器的寫入作業參照。您也可以同時拒絕讀取與寫入存取,並定義所有作業對尾碼的參照。
參照也可用於將用戶端應用程式暫時指向不同的伺服器。例如,在備份尾碼的內容時,可以增加其他尾碼的參照。
若尾碼是複寫環境中的用戶,複寫機制將可決定參照設定的值。雖然可以手動修改參照設定,但參照仍將會在下次複寫更新時遭到覆寫。如需有關設定複寫參照的資訊,請參閱執行進階用戶配置。
參照屬於標籤式 URL,亦即可選擇性地在尾端加上空格字元與標籤的 LDAP URL。例如:
ldap://phonebook.example.com:389/ |
或是:
ldap://phonebook.example.com:389/ou=All%20People,dc=example,dc=com |
由於空格字元有其意義,因此在參照的 URL 部分中,任何空格字元均必須使用 %20 換碼。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
設定參照 URL。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-url:LDAP-URL |
其中,LDAP-URL 是含有目標之主機名稱、連接埠號與 DN 的有效 URL。
例如:
$ dsconf set-suffix-prop -h host1 -p 1389 dc=example,dc=com \ referral-url:ldap://phonebook.example.com:389/ |
您可以指定任何數量的 LDAP URL。
設定參照模式,使尾碼變成唯讀模式。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:only-on-write |
若要讓尾碼無法供讀取與寫入作業使用,並且對所有請求傳回參照,請將 referral-mode 設為 enabled。
此指令一旦成功執行,尾碼即會變成唯讀或無法存取,並可傳回參照的模式。
(可選擇) 當尾碼無法使用後,停用參照即可讓尾碼回復為可讀寫的狀態。
$ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:disabled |
參照停用時,尾碼即會自動變成可讀寫的狀態,除非您已將尾碼的 enabled 特性設為 off,而停用了尾碼本身。
當您刪除尾碼時,會將其所有資料項目從目錄中永久移除。如此也會移除所有尾碼配置資訊,包含其複寫配置。
您無法刪除了父系尾碼,但將其子尾碼保留在 DIT 中做為新的根尾碼。若要刪除整個含有子尾碼的分支,必須同時刪除已刪除之父系的子尾碼,及其可能的子尾碼。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
移除尾碼配置項目:
$ dsconf delete-suffix -h host -p port [subSuffix-DN] suffix-DN |
此指令會從 suffix-DN 上的基底項目開始,移除伺服器中的尾碼。尾碼在目錄中將不會再顯示出來或供存取。
Directory Server 6.2 支援離線壓縮尾碼。此發行版本不支援線上壓縮。如果有可用的儲存空間,壓縮尾碼可重新組織資料庫金鑰,而減少資料庫的大小。
停止伺服器並備份資料庫,再執行此作業。