<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 15.7\. 特定平臺注意事項 這部分提供額外的關于PostgreSQL的安裝和設置的特定平臺的問題。 一定要閱讀安裝說明,尤其是[Section 15.2](#calibre_link-1220)。 另外,檢查 [Chapter 30](#calibre_link-116)有關回歸測試結果的說明。 此處未覆蓋的平臺沒有已知的特定平臺安裝問題。 ## 15.7.1\. AIX PostgreSQL工作在AIX上,但正確安裝它具有挑戰性。 支持AIX 4.3.3到6.1版本。 您可以使用GCC或本機IBM編譯器`xlc`。 一般情況下,采用近期的AIX版本和PostgreSQL有所幫助。 檢查bulid farm獲得最新的信息,其中AIX版本是眾所周知的。 推薦的最小修復水平支持的AIX版本是: AIX 4.3.3 Maintenance Level 11 + post ML11 bundle AIX 5.1 Maintenance Level 9 + post ML9 bundle AIX 5.2 Technology Level 10 Service Pack 3 AIX 5.3 Technology Level 7 AIX 6.1 Base Level 查看當前補丁級別,使用AIX 4.3.3到AIX 5.2 ML7中的 `oslevel -r`,或者更高版本的 `oslevel -s`。 除你自己之外請使用以下的`configure`標志, 如果你在`/usr/local`: `--with-includes=/usr/local/include --with-libraries=/usr/local/lib`中已經安裝了Readline或者libz: ### 15.7.1.1\. GCC問題 在AIX 5.3上,PostgreSQL的編譯以及使用GCC運行有一些問題。 您將要使用GCC隨后到3.3.2的版本,特別是如果你使用一個預先包裝的版本。 我們在4.0.1時有很大成功。比起GCC的實際問題來說,早期版本問題似乎與IBM包裝GCC有更大關系, 因此,如果你自己編譯GCC,關于GCC早期版本你很可能成功。 ### 15.7.1.2\. Unix-域套接字中斷 AIX 5.3有問題,其中`sockaddr_storage`沒有被定義為足夠大。 在5.3版本中,IBM增加`sockaddr_un`的大小, Unix域套接字地址結構,但并沒有相應地增加`sockaddr_storage`的大小。 這一結果是嘗試使用Unix域套接字與PostgreSQL導致libpq溢出的數據結構。 TCP/IP連接工作正常,但不是Unix域套接字,以防止工作著的回歸測試。 這個問題報道給IBM,并且作為bug報告PMR29657進行記錄。 如果您升級到維護級別5300-03或更高版本,這將包括此修復程序。 一個快速解決方法是改變`/usr/include/sys/socket.h`中的 `_SS_MAXSIZE`到1025。在這兩種情況下, 一旦你有修正的頭文件,則要重新編譯PostgreSQL。 ### 15.7.1.3\. 網絡地址問題 PostgreSQL依賴于系統的`getaddrinfo`函數解析`listen_addresses`,`pg_hba.conf`中的IP地址, 較舊版本的AIX已經劃分出這個函數中的bug。 如果您有關于這些設置的問題, 更新到上面顯示的相應的AIX補丁級別應特別注意。 一個用戶報告: 當在AIX 5.3上實現PostgreSQL版本8.1的時候, 我們周期性地遇到了問題, 其中統計收集器可能"詭秘的"不會成功。 這似乎是IPv6實行中意外行為的結果。 它看起來像PostgreSQL和IPv6在AIX 5.3中不能很好地結合。 任何下面操作"修復"這個問題。 * 刪除本地主機的IPv6地址: ``` (as root) # ifconfig lo0 inet6 ::1/0 delete ``` * 從網絡服務中刪除IPv6。在AIX上的文件`/etc/netsvc.conf`大致 等同于Solaris/Linux上的`/etc/nsswitch.conf`。 默認情況下,AIX上是這樣的: ``` hosts=local,bind ``` 替換為: ``` hosts=local4,bind4 ``` 解除搜索IPv6地址。 | **Warning** | |:--- | | 這的確是有關IPv6支持不成熟問題的解決方法, 這在AIX 5.3版本發布期間有明顯改善。 它在AIX 5.3版本進行工作,但并不代表優雅的解決問題的辦法。 報道稱這種解決方法不僅是不必要的,而且會在AIX 6.1上導致問題, 其中IPv6的支持也日漸成熟。 | ### 15.7.1.4\. 內存管理 AIX關于內存管理方式上有些特別。 你可以有很多倍的千兆字節RAM免費的服務器, 但是當運行應用程序時,仍然有內存或地址空間不足的錯誤。 `createlang`導致不尋常錯誤的例子。 比如,作為PostgreSQL安裝的所有者運行: ``` -bash-3.00$ createlang plperl template1 createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": A memory address is not in the address space for the process. ``` 作為PostgreSQL安裝的非擁有者進行運行: ``` -bash-3.00$ createlang plperl template1 createlang: language installation failed: ERROR: could not load library "/opt/dbs/pgsql748/lib/plperl.so": Bad address ``` 另一個例子是在PostgreSQL服務器日志中內存不足的錯誤, 與每個內存分配接近或者大于256 MB。 所有這些問題的總體原因是默認bittedness并且使用服務器進程的內存模型。 默認情況下,所有的在AIX上編譯的二進制文件是32位。 這不依賴于使用的硬件類型或內核。 這些32位進程是使用一些模型之一將4 GB內存限制為256 MB的段大小。 默認允許堆內小于256 MB,因為它共享單獨的段與堆棧。 在支持`createlang`的情況下, 上面檢查你的PostgreSQL安裝中的umask和二進制文件的權限。 參與該示例中的二進制文件分別為32位和安裝模式是750而不是755。 因為權限被以這種方式設置, 只有進程組中的所有者或成員才可以加載庫。 因為它不是被所有人可讀的, 加載器將對象置入過程堆而不是共享庫段,它放置在那里。 此問題的"理想"解決方案是使用64位PostgreSQL編譯, 但事實并非總是可行的,因為32位處理器系統可以進行, 但不能運行64位二進制文件。 如果需要32位二進制, 設置`LDR_CNTRL`到`MAXDATA=0x``_n_`0000000, 其中1 &lt;= n &lt;= 8,啟動PostgreSQL服務器之前,嘗試不同的值并且設置`postgresql.conf`以找到合理運行的配置。 `LDR_CNTRL`的使用告訴AIX你想要服務器有`MAXDATA`字節空閑給堆,分配256 MB的段。 當你找到一個可行的配置,`ldedit`可以用來修改二進制文件, 他們默認使用所需的堆大小。 PostgreSQL可以也被重新編譯, 通過配置`configure LDFLAGS="-Wl,-bmaxdata:0x``_n_`0000000"達到同樣的效果。 對于64位版本,設置`OBJECT_MODE`為64 并且傳遞`CC="gcc -maix64"`和`LDFLAGS="-Wl,-bbigtoc"`到`configure`。 (`xlc`選項可能有所不同。) 如果省略`OBJECT_MODE`的輸出, 您可能產生鏈接器錯誤。當設置`OBJECT_MODE`的時候, 它告訴AIX編譯工具如`ar`, `as`和`ld` 默認處理對象的類型。 默認情況下,可能發生分頁空間過量使用。 雖然我們沒見過這種情況發生,當它用完內存并且產生過量訪問時,AIX將殺死進程, 最接近這一點的是我們所看到的是交叉失敗,因為系統決定沒有足夠的內存用于另一個進程。 像許多其他的AIX部分,如果這產生問題,那么 分頁空間分配方法及內存不足殺進程在系統或進程范圍基礎上是可配置。 ### 參考文獻和資源 "[Large Program Support](http://publib.boulder.ibm.com/infocenter/pseries/topic/com.ibm.aix.doc/aixprggd/genprogc/lrg_prg_support.htm)", _AIX Documentation: General Programming Concepts: Writing and Debugging Programs_. "[Program Address Space Overview](http://publib.boulder.ibm.com/infocenter/pseries/topic/com.ibm.aix.doc/aixprggd/genprogc/address_space.htm)", _AIX Documentation: General Programming Concepts: Writing and Debugging Programs_. "[Performance Overview of the Virtual Memory Manager (VMM)](http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.doc/aixbman/prftungd/resmgmt2.htm)", _AIX Documentation: Performance Management Guide_. "[Page Space Allocation](http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.doc/aixbman/prftungd/memperf7.htm)", _AIX Documentation: Performance Management Guide_. "[Paging-space thresholds tuning](http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.doc/aixbman/prftungd/memperf6.htm)", _AIX Documentation: Performance Management Guide_. _[Developing and Porting C and C++ Applications on AIX](http://www.redbooks.ibm.com/abstracts/sg245674.html?Open)_, IBM Redbook. ## 15.7.2\. Cygwin PostgreSQL可以使用Cygwin,Windows的類Linux環境進行編譯, 但該方法不如本地Windows編譯(參閱[Chapter 16](#calibre_link-1035)), 并且不再推薦在Cygwin下運行服務器。 當從源碼進行編譯時,按照正常的安裝程序進行(也就是`./configure;make`), 注意下面的Cygwin特殊差異: * 在Windows功能之前使用Cygwin bin目錄設置你的路徑。這有助于避免編譯問題。 * GNU make命令稱為`make`而不是`gmake`。 * 不支持`adduser`命令;在Windows NT,2000或者XP上使用適當的用戶管理應用。否則,忽略這一步。 * 不支持`su`命令;在Windows NT,2000或者XP上使用ssh模擬su。否則,忽略這一步。 * 不支持OpenSSL。 * 為了共享內存支持開啟`cygserver`。 要做到這一點,輸入命令`/usr/sbin/cygserver&`。 這個程序需要運行于任何時候, 你啟動PostgreSQL服務器或初始化一個數據庫集群 (`initdb`)。 可能需要改變默認`cygserver`配置(例如,增加`SEMMNS`)以避免 由于缺乏系統資源而導致的PostgreSQL失敗。 * 在某些系統上編譯可能會失敗,它使用的語言環境不是C。 為了解決這個問題,在編譯之前通過執行`export LANG=C.utf8`設置區域到C, 并且,你已經安裝完PostgreSQL之后,設置它返回到以前的設置。 * 平行回歸測試(`make check`)可以產生偽回歸測試失敗, 由于`listen()`積壓隊列溢出,這會導致連接拒絕錯誤或掛起。 你可以使用make變量`MAX_CONNECTIONS`限制連接數,因此: ``` make MAX_CONNECTIONS=5 check ``` 在某些系統上你最多可以有10個并發連接。 可能安裝`cygserver`和作為Windows NT服務的PostgreSQL服務器。 關于如何做的信息,請參閱包含Cygwin上的PostgreSQL二進制包的`README`文檔。 它被安裝在目錄`/usr/share/doc/Cygwin`中。 ## 15.7.3\. HP-UX PostgreSQL 7.3+應該在運行HP-UX 10.X或者11.X的系列700/800 PA-RISC機器上工作, 給予相應的系統補丁級別和編譯工具。 至少有一個開發者經常在HP-UX 10.20上測試。 并且,我們在HP-UX 11.00和11.11上有成功安裝的報道。 除了PostgreSQL源代碼發布外,您將需要GNU make(HP make不能執行), 以及GCC或HP的完整ANSI C 編譯器。 如果你打算從Git 源代碼而不是發布包編譯,你還需要Flex(GNU lex)和Bison (GNU yacc)。我們建議確保你是最新的HP補丁。至少,如果你正在HP-UX 11.11上編譯64位二進制文件,您可能需要PHSS_30966 (11.11)或 者后繼補丁,否則`initdb`可能會掛起: PHSS_30966??s700_800?ld(1)?and?linker?tools?cumulative?patch 一般原則,你應該使用當前的libc和ld/dld補丁程序,以及編譯器補丁, 如果你正在使用HP C編譯器。 請參閱HP支持網站,比如[http://itrc.hp.com](http://itrc.hp.com)和 [ftp://us-ffs.external.hp.com/](ftp://us-ffs.external.hp.com/)免費的最新補丁副本。 如果你正在PA-RISC 2.0的機器上編譯,并希望 使用GCC的64位二進制文件,你必須使用GCC的64位版本。HP-UX PA-RISC的GCC二進制和Itanium可以從 [http://www.hp.com/go/gcc](http://www.hp.com/go/gcc)獲得。不要忘了在同一時間安裝binutils。 如果你想在PA-RISC 2.0機器上編譯,并且在PA-RISC 1.1機器上編譯二進制,你需要聲明`CFLAGS` 中的`+DAportable`。 如果你在HP-UX Itanium機器上進行編譯,你將需要帶有依賴包或者繼承補丁的最新HP ANSI C編譯器。 PHSS_30848??s700_800?HP?C?Compiler?(A.05.57) PHSS_30849??s700_800?u2comp/be/plugin?library?Patch 如果你有HP的C編譯器和GCC,那么當你運行`configure`時,可能想要明確選擇使用的編譯器。 ``` ./configure CC=cc ``` 對于HP的C編譯器,或者 ``` ./configure CC=gcc ``` GCC。如果你忽略這些設置,那么如果它有選擇的話,configure將選擇`gcc`。 缺省安裝目標位置是`/usr/local/pgsql`,你可能想要在`/opt`下改變一些內容。 如果這樣,使用`--prefix`切換`configure`。 在回歸測試中,可能有一些幾何測試中的低階位數差異,這取決于您使用的編譯器和數學庫版本的不同而不同。 任何其他錯誤都是令人懷疑的。 ## 15.7.4\. IRIX PostgreSQL已在MIPS r8000,r10000 (ip25和ip27)以及r12000(ip35)處理器成功運行, 運行在IRIX 6.5.5m, 6.5.12, 6.5.13和6.5.26與MIPSPro編譯器版本7.30, 7.3.1.2m, 7.3和7.4.4m。 您將需要MIPSPro完整ANSI C編譯器。嘗試與GCC編譯存在問題。 這是關于使用函數返回某種結構的眾所周知的GCC bug(不固定為3.0版本)。 此錯誤會影響功能,如`inet_ntoa`, `inet_lnaof`, `inet_netof`, `inet_makeaddr`, 和`semctl`。它被認為是固定的,迫使代碼鏈接使用libgcc的那些函數,但是這并沒有被測試過。 MIPSPro編譯器的7.4.1m版本產生錯誤代碼是已知的。當嘗試啟動數據庫時,現象是"無效主節點記錄"。 版本7.4.4m可行;中間版本的狀態是不確定的。 有可能是編譯問題,如下: ``` cc-1020 cc: ERROR File = pqcomm.c, Line = 427 The identifier "TCP_NODELAY" is undefined. if (setsockopt(port->sock, IPPROTO_TCP, TCP_NODELAY, ``` 一些版本包括在`sys/xti.h`中的TCP定義, 因此在`src/backend/libpq/pqcomm.c`和 `src/interfaces/libpq/fe-connect.c`中添加`#include &lt;sys/xti.h&gt;` 是必要的。如果你遇到這類問題,請讓我們知道,以便于我們可以制定合適的修復。 在回歸測試中,可能有一些幾何測試中的低階位數的差異,依賴于你使用的FPU。 任何其他的錯誤都值得懷疑。 ## 15.7.5\. MinGW/Native Windows Windows下的PostgreSQL可以使用MinGW,微軟操作系統的類Unix編譯環境,或者使用 微軟的Visual C++編譯器套件編譯。 MinGW的編譯版本采用本章中描述的正常編譯系統; Visual C++編譯工作完全不同,并且在[Chapter 16](#calibre_link-1035)中描述。 它完全是一種本地編譯,并且沒有使用像MinGW的額外軟件。 現成的安裝程序可以從PostgreSQL的網站上獲得。 本地Windows端口需要Windows 2000或更高的32或64位版本。早期操作系統 沒有足夠的基礎設施(但Cygwin可以使用這些信息)。 MinGW,類Unix編譯工具,以及MSYS,Unix工具集合 需要運行類似于`configure`的shell腳本, 可以從[http://www.mingw.org/](http://www.mingw.org/)下載。 兩者都不需要運行生成的二進制文件; 他們只需要創建二進制文件。 要使用MinGW編譯64位二進制文件,安裝來自[http://mingw-w64.sourceforge.net/](http://mingw-w64.sourceforge.net/)的64位工具集, 將其bin目錄放在`PATH`中, 并運行`--host=x86_64-w64-mingw`選項的`configure`命令。 您已經安裝了一切之后,建議您在`CMD.EXE`下運行psql, 作為MSYS控制臺有緩沖問題。 ### 15.7.5.1\. Windows上搜索崩潰轉儲 如果PostgreSQL在Windows崩潰,有可能產生minidumps可用于跟蹤崩潰的原因, 類似于在Unix上的核心轉儲。這些轉儲可以使用Windows調試器工具或者Visual Studio讀取。 為了啟動Windows上的轉儲, 創建名為集群數據目錄里的`crashdumps`的子目錄。 轉儲將被寫入到該目錄,連同基于崩潰進程識別符和崩潰當前時間的唯一名稱。 ## 15.7.6\. SCO OpenServer和SCO UnixWare PostgreSQL可以在SCO UnixWare 7和SCO OpenServer 5上編譯。在OpenServer上, 你可以使用OpenServer Development Kit或者Universal Development Kit。 然而,可能需要一些調整,正如下面描述的。 ### 15.7.6.1\. Skunkware 你應該找到你的SCO Skunkware CD的副本。 Skunkware CD附帶UnixWare 7和OpenServer 5當前版本。 Skunkware包括可從互聯網獲得的許多流行程序的準備安裝版本。 例如,gzip, gunzip, GNU Make, Flex和Bison。 對于UnixWare 7.1,這個光盤現在標有"開放式許可軟件補充",如果你沒有這個光盤, 可以從[http://www.sco.com/skunkware/](http://www.sco.com/skunkware/)獲得。 Skunkware有UnixWare和OpenServer的不同版本。 請確保您安裝了您的操作系統的正確版本,除非另有說明如下。 在UnixWare 7.1.3及以上,包含在UDK CD上的GCC編譯器作為GNU Make。 ### 15.7.6.2\. GNU Make 您需要使用GNU make程序,位于Skunkware CD。默認情況下,它作為`/usr/local/bin/make`安裝。 為了避免混淆SCO `make`程序,你可能需要重命名GNU`make`為`gmake`。 由于UnixWare 7.1.3及以上,GNU Make程序是UDK CD的OSTK部分, 并且位于`/usr/gnu/bin/gmake`。 ### 15.7.6.3\. Readline Readline庫在Skunkware CD上。但它不包括在UnixWare 7.1 Skunkware CD上。如果你有UnixWare 7.0.0或者7.0.1 Skunkware CD,您可以從那里安裝。 否則,嘗試[http://www.sco.com/skunkware/](http://www.sco.com/skunkware/)。 缺省情況下,Readline安裝在`/usr/local/lib`和 `/usr/local/include`。 然而,沒有幫助的情況下PostgreSQL `configure`程序不能找到, 如果你安裝Readline,那么使用`configure`的下列選項: ``` ./configure --with-libraries=/usr/local/lib --with-includes=/usr/local/include ``` ### 15.7.6.4\. 在OpenServer使用UDK 如果你正在OpenServer上使用新的通用開發Kit (UDK)編譯器,你需要聲明UDK庫的位置: ``` ./configure --with-libraries=/udk/usr/lib --with-includes=/udk/usr/include ``` 將上面這些與Readline選項放在一起: ``` ./configure --with-libraries="/udk/usr/lib /usr/local/lib" --with-includes="/udk/usr/include /usr/local/include" ``` ### 15.7.6.5\. 閱讀PostgreSQL手冊頁 缺省情況下,PostgreSQL手冊頁安裝在`/usr/local/pgsql/man`。 缺省UnixWare不能查閱手冊頁,為了可用查看你需要修改`/etc/default/man`中的`MANPATH` 變量,比如: ``` MANPATH=/usr/lib/scohelp/%L/man:/usr/dt/man:/usr/man:/usr/share/man:scohelp:/usr/local/man:/usr/local/pgsql/man ``` 在OpenServer上,需要投入一些額外研究形成可用手冊頁,因為它不同于其他的平臺。 目前,PostgreSQL根本不安裝。 ### 15.7.6.6\. 7.1.1b功能補充的C99問題 對于先于發布OpenUnix 8.0.0(UnixWare 7.1.2)的編譯器,包括7.1.1b功能補充, 你可能需要在`CFLAGS`或者`CC`環境變量中指定`-Xb`。 這個指示是編譯`tuplesort.c`中引用內聯功能的一個錯誤。 顯然,有7.1.2(8.0.0)編譯器及以上的變化。 ### 15.7.6.7\. UnixWare上的線程 對于線程,你_必須_在_所有_使用libpq的程序上使用`-Kpthread`。 libpq使用`pthread_*`調用, 其中只有`-Kpthread`/`-Kthread`標志可用。 ## 15.7.7\. Solaris PostgreSQL在Solaris上有很好的支持。更新操作系統越多,您將遇到越少的問題; 詳細信息請參見下面。 ### 15.7.7.1\. 所需工具 您可以使用GCC或Sun的編譯器套件進行編譯。為更好的代碼優化, 在SPARC架構上強烈推薦Sun的編譯器。當推薦使用GCC 2.95.1; GCC 2.95.3或更高版本的時候,我們已經聽到問題報告。 如果您正在使用Sun的編譯器,請注意不要選擇`/usr/ucb/cc`;而使用 `/opt/SUNWspro/bin/cc`。 您可以從[http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/](http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/)下載Sun Studio。 許多GNU工具都集成到Solaris 10上,或者它們目前在Solaris companion CD上。 如果你喜歡Solaris舊版本的包,你可以從[http://www.sunfreeware.com](http://www.sunfreeware.com)中找到這些工具。 如果你喜歡源碼,可以參閱[http://www.gnu.org/order/ftp.html](http://www.gnu.org/order/ftp.html)。 ### 15.7.7.2\. OpenSSL問題 當您使用OpenSSL編譯PostgreSQL的時候,你可能會得到以下文件中的編譯錯誤: * `src/backend/libpq/crypt.c` * `src/backend/libpq/password.c` * `src/interfaces/libpq/fe-auth.c` * `src/interfaces/libpq/fe-connect.c` 這是因為在標準的`/usr/include/crypt.h`頭部以及OpenSSL所提供的頭文件之間有命名空間沖突。 升級您的OpenSSL安裝到版本0.9.6a修復了這個問題。Solaris 9和上面有OpenSSL的較新版本。 ### 15.7.7.3\. configure抱怨失敗測試程序 如果`configure`抱怨失敗的測試程序, 這可能是運行時鏈接程序無法找到一些庫的情況, 可能libz, libreadline或一些其他非標準庫如libssl。 為了指向正確的位置,在`configure`命令行上設置`LDFLAGS`環境變量。 比如: ``` configure ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib" ``` 參閱ld手冊頁獲取更多詳情。 ### 15.7.7.4\. 64位編譯有時崩潰 在Solaris 7以及更高版本,64位版本的libc中有一個`vsnprintf`程序, 從而導致PostgreSQL中不穩定的核心轉儲。 最簡單的已知的解決方法是強制PostgreSQL使用`vsnprintf`自己的版本,而不是庫副本。 要做到這一點,運行`configure`之后 編輯`configure`產生的文件: `src/Makefile.global`中, 更改行 ``` LIBOBJS = ``` 讀取 ``` LIBOBJS = snprintf.o ``` (可能還有其他在這個變量中已經列出的文件。順序無關緊要。)然后編譯照常。 ### 15.7.7.5\. 編譯以獲得最佳性能 SPARC架構上,強烈推薦Sun Studio編譯。嘗試使用`-xO5`優化 標志產生顯著快速的二進制文件。不要使用 任何的標志修改浮點運算的行為以及`errno`處理(例如, `-fast`)。這些標志可以提高一些日期/時間計算中的PostgreSQL不規范行為。 如果您沒有理由在SPARC上使用64位二進制文件,更喜歡32位版本。64位運算速度較慢, 并且64位二進制比32位更慢。另一方面,在AMD64 CPU族中的32位代碼不是本地的, 這就是為什么32位代碼在這個CPU族中顯著慢的原因。 ### 15.7.7.6\. 使用DTrace追蹤PostgreSQL 是的,有可能使用DTrace。參閱 [Section 27.4](#calibre_link-1290)獲取更多信息。 你也可以通過文章[https://blogs.oracle.com/robertlor/entry/user_level_dtrace_probes_in](https://blogs.oracle.com/robertlor/entry/user_level_dtrace_probes_in) 查找更多的信息。 如果您看到`postgres`執行中斷與錯誤信息的連接,如: ``` Undefined first referenced symbol in file AbortTransaction utils/probes.o CommitTransaction utils/probes.o ld: fatal: Symbol referencing errors. No output written to postgres collect2: ld returned 1 exit status gmake: *** [postgres] Error 1 ``` 您的DTrace安裝太舊而不能處理靜態函數的探測。你需要Solaris 10u4或更高版本。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看