db2set - Db2 設定檔登錄 指令
您也可以使用 ENV_GET_REG_VARIABLES 表格函數來擷取實例正在使用的登錄變數值,以及儲存在登錄中的值。
授權
SYSADM 及 (針對 -g 指令參數) Linux® 及 UNIX 作業系統上的 root 存取權,或 Windows 作業系統上的「本端管理者」權限。
必要連線
立即更新變數時需要本端實例連接,如果沒有實例連接,則會建立本端實例連接。 否則,不需要任何連線。 不支援遠端連接。
指令語法
指令參數
- variable=
- 顯示指定變數的值。
- value
- 將指定的變數設為指定的值。 如果值有空格,請務必用引號括住值。 如果您未在等號 (=) 之後指定值,則會刪除變數的現行值。 依預設,會有一組立即的登錄變數,如果您指定 -immediate 參數,則會有另一組立即的登錄變數。 這兩組登錄變數會在下次編譯 SQL 陳述式時生效。 否則,變更會在您重新啟動實例之後生效。
- -g
- 存取與特定 Db2 副本相關之所有實例的廣域設定檔登錄變數。 這可讓您在此層次檢視或變更這些變數的值。
- -i instance
- 指定要使用的實例設定檔。 如果您未指定實例設定檔,則會使用現行或預設實例設定檔。
- db-partition-number 或 member-number
- 指定 db2nodes.cfg 檔案中的數字。
如果您搭配使用 -immediate 參數與 member-number 選項,則只有特定成員會在下次編譯 SQL 陳述式時看到更新。
- -gl
- 存取儲存在 LDAP 中的廣域設定檔變數。 僅當您將 DB2_ENABLE_LDAP 登錄變數設為 YES時,此參數才有效。
- -all
- 顯示所有出現的區域環境變數,如下列位置中所定義:
- 作業系統環境,以表示[e]
- 節點層次登錄,以表示[n]
- 實例層次登錄,以[i]
- 廣域層次登錄,以表示[g]
- -gd agg-registry-variable
- 顯示聚集登錄變數的群組定義。
- -null
- 如果您未指定登錄層次,則在您指定的登錄層次或預設層次 (即實例層次) ,將變數值設為 NULL。 這表示 Db2 會將變數視為未設定,且不會搜尋下一個可用登錄層次中變數的值,如登錄層次的優先順序所定義。
- -r
- 重設特定實例的設定檔登錄。
- instance
- 指定您要重設設定檔的實例。 如果您未指定實例,且實例連接已存在,則此選項會重設現行實例的設定檔。 如果您未指定實例,且不存在任何連接,則此選項會重設 DB2INSTANCE 環境變數所指定實例的設定檔。
- db-partition-number 或 member-number
- 指定 db2nodes.cfg 檔案中的數字。
如果您搭配使用 -immediate 參數與 member-number 選項,則只會重設指定成員的值。
- -immediate | -im
- 指定更新會在下一次針對支援此特性的登錄變數編譯 SQL 陳述式時生效。對影響 SQL 編譯器的登錄變數所做的立即變更,會在您下次編譯 SQL 陳述式時生效。 SQL 陳述式有兩種類型:
- Dynamic SQL statements
- 如果動態 SQL 陳述式已存在於套件快取中,則陳述式不會失效,因此不會以新設定重新編譯陳述式。 為了讓 -immediate 參數生效,您必須發出 FLUSH PACKAGE CACHE 陳述式,以便從套件快取中移除先前的陳述式,以便可以重新編譯 SQL 陳述式,而無需重新啟動實例。
- Static SQL statements
- 如果靜態 SQL 陳述式已存在於套件中,則陳述式不會失效,因此不會以新設定重新編譯陳述式。 為了讓 -immediate 參數生效,您必須發出 BIND 指令或 REBIND 指令,以重新編譯套件,而不需要重新啟動實例。
您無法將此參數與 -g、 -gl或 -n 參數結合。
- -info variable
- 傳回所指定變數的內容。 內容會指出變數是否支援立即變更,以及依預設是否立即變更。
- -n DAS node
- 指定遠端 DAS 節點名稱。
- -u user
- 指定「管理伺服器」連線所需的使用者 ID。
- -p password
- 指定用於管理伺服器連接的密碼。
- -l
- 列出 Db2 產品安裝的所有實例設定檔。
- -lr
- 列出所有支援的登錄變數。
- -v
- 指定在指令執行時使用詳細輸出。
- -ul
- 存取使用者設定檔變數。 此參數僅在 Windows 作業系統上受支援。
- -ur
- 重新整理使用者設定檔變數。 這可讓多個使用者在相同實例或相同環境設定下具有不同的變數設定。 此參數僅在 Windows 作業系統上受支援。
- -h | -?
- 顯示說明資訊。 如果您指定此參數,則會忽略所有其他參數。
範例
下列範例顯示如何使用 db2set 指令發出各種參數:
- 顯示與特定安裝相關的所有已定義即時設定檔:
db2set -l - 顯示所有支援的登錄變數:
db2set -lr - 顯示與特定安裝相關的所有實例可見的所有已定義廣域變數:
db2set -g - 顯示現行實例的所有已定義變數:
db2set - 顯示現行實例的所有已定義值:
db2set -all - 顯示現行實例之 DB2COMM 登錄變數的所有已定義值:
db2set -all DB2COMM - 重設成員 3 上實例 INST 的所有已定義變數:
db2set -r -i INST 3 - 使用使用者 ID MYID 及密碼 MYPASSWD ,透過 DAS 節點 RMTDAS ,刪除遠端實例 RMTINST 上 DB2CHKPTR 登錄變數的值:
db2set -i RMTINST -n RMTDAS -u MYID -p MYPASSWD DB2CHKPTR= - 針對與特定安裝相關的所有實例,將 DB2COMM 登錄變數設為 TCPIP :
db2set -g DB2COMM=TCPIP - 僅針對實例 MYINST 將 DB2COMM 登錄變數設為 TCPIP :
db2set -i MYINST DB2COMM=TCPIP - 在預設層次將 DB2COMM 登錄變數設為空值。 預設層次是實例層次:
db2set -null DB2COMM - 刪除登錄變數 DB2_ANTIJOIN 的現行值,以便它在下次編譯 SQL 陳述式時生效:
db2set DB2_ANTIJOIN= -immediate - 將值含括在引號中,將登錄變數設為包含空格的值:
db2set DB2_LOAD_COPY_NO_OVERRIDE='COPY YES TO /var/db2/loadcopy/sales'附註: 上述指令會置換 LOAD 指令上指定的載入副本設定,使其一律為 YES ,並將副本檔放在 /var/db2/loadcopy/sales目錄中。 需要引號,因為 COPY 與 YES 之間的空間,而且在 /var/db2/loadcopy/sales之前也是如此。
使用注意事項
您可以在四個層次中的一或多個層次設定變數: 作業系統環境、節點實例、實例及廣域。 Db2 資料庫系統會使用此優先順序來存取及解析變數設定。 如果您已在作業系統環境層次設定變數值,則即使您使用 -immediate 參數,變數值的更新也不會立即生效,因為作業系統環境層次優先於登錄。
如果您未指定變數名稱,則會顯示所有已定義變數的值。 如果您指定變數名稱,則只會顯示該變數的值。 若要顯示變數的所有已定義值,請指定 變數 及 -all 參數。 如果要顯示所有登錄中所有已定義變數的值,請指定 -all 參數。
若要在 Windows 作業系統上對遠端登錄進行登錄變數變更,請使用 db2set 指令發出 db2_all 或 rah 指令。
雖然對於 Db2 產品的 root 及非 root 身分安裝,指令的行為方式相同,但並非所有參數都可用,例如指定 DAS 節點名稱的 -n 參數。
db2set 指令不得在 Script 中同時或連續執行。
