国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PG安裝部署

IT那活兒 / 862人閱讀
PG安裝部署
點擊上方“IT那活兒”,關注后了解更多精彩內容!!!

PostgreSQL 是一個免費的對象-關系數據庫服務器(ORDBMS),在靈活的BSD許可證下發行。

PostgreSQL 開發者把它念作 post-gress-Q-L。

PostgreSQL 的 Slogan 是 "世界上最先進的開源關系型數據庫"。



PostgreSQL 特征

函數:通過函數,可以在數據庫服務器端執行指令程序。
索引:用戶可以自定義索引方法,或使用內置的 B 樹,哈希表與 GiST 索引。
觸發器:觸發器是由SQL語句查詢所觸發的事件。如:一個INSERT語句可能觸發一個檢查數據完整性的觸發器。觸發器通常由INSERT或UPDATE語句觸發。多版本并發控制:PostgreSQL使用多版本并發控制(MVCC,Multiversion concurrency control)系統進行并發控制,該系統向每個用戶提供了一個數據庫的"快照",用戶在事務內所作的每個修改,對于其他的用戶都不可見,直到該事務成功提交。
規則:規則(RULE)允許一個查詢能被重寫,通常用來實現對視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。
數據類型:包括文本、任意精度的數值數組、JSON 數據、枚舉類型、XML 數據等。
全文檢索:通過 Tsearch2 或 OpenFTS,8.3版本中內嵌 Tsearch2。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 數據庫的外部數據包裝器。
數據倉庫:能平滑遷移至同屬 PostgreSQL 生態的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 進行 ETL。

Linux 上安裝 PostgreSQL

打開 PostgreSQL 官網:
 https://www.postgresql.org/,點擊菜單欄上的 Download ,可以看到這里包含了很多平臺的安裝包,包括 Linux、Windows、Mac OS等 。
Linux 我們可以看到支持 Ubuntu 和 Red Hat 等各個平臺,點擊具體的平臺鏈接,即可查看安裝方法:
點擊上圖中的 file browser,我們還能下載 PostgreSQL 最新的源碼。


基礎環境配置

1、關閉selinux

vim /etc/sysconfig/seliunx
selinux=disabled


2、調整用戶限制


vim /etc/security/limit.conf
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft memlock unlimited
* hard memlock unlimited
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited

3、關閉防火墻

systemctl stop firewalld.service
systemctl disable firewalld.service


4、關閉NUMA和透明大頁以及設置磁盤預讀大小

NUMA架構會優先在請求線程所在的CPU的local內存上分配空間,如果local內存不足,優先淘汰local內存中無用的頁面,會導致每個CPU上的內存分配不均。因此建議關閉NUMA。
vi /etc/default/grub的GRUB_CMDLINE_LINUX行最后添加 numa=off
GRUB_CMDLINE_LINUX=”crashkernel=auto …… rhgb quiet numa=off
#執行grub2-mkconfig命令
grub2-mkconfig -o /boot/grub2/grub.cfg


透明大頁(transparent_hugepage)在運行時動態分配內存,而運行時的內存分配會有延誤,對于數據庫管理系統來說并不友好,所以建議關閉透明大頁


  • 臨時關閉:

[root@localhost ~]# echo never >
/sys/kernel/mm/transparent_hugepage/enabled
[root@localhost ~]# echo never >
/sys/kernel/mm/transparent_hugepage/defrag


  • 永久關閉:


[root@localhost ~]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
/sbin/blockdev --setra 16384 /dev/sdb /dev/sdc
授予執行權限
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
source /etc/rc.local命令生效

5、關閉RemoveIPC,CentOS默認為關閉

vi /etc/systemd/logind.conf
RemoveIPC=no


6、調整內核參數

HugePages配置:
Linux內存頁默認為4K,當內存很大時,如果頁很小,整體性能就會變差。啟用了huge_pages后,相應的內存頁表就會變小,進而提高內存管理的性能。
cat /proc/meminfo | grep -i huge 查看是否啟動了huge_pages
[postgres@PG-1 ~]$ cat /proc/meminfo | grep Huge
AnonHugePages: 2048 kB
HugePages_Total: 4000 #設置的大頁個數
HugePages_Free: 3687 ##當前剩余的大頁數量,但實際上真正可用的并沒有這么多,因為PG鎖定了3129個大頁
HugePages_Rsvd: 3129 ##啟動PostgreSQL數據庫使用的大頁數量
HugePages_Surp: 0
Hugepagesize: 2048 kB
計算nr_hugepages的配置:
安裝完成后,啟動數據庫。
pid = `cat $PGDATA/postmaster.pid`
pg_mem = `cat /proc/${pid}/status | greo VmPeak`
huge_size = `cat /proc/meminfo| grep -i Hugepagesize`
result = $((pg_mem / huge_size))
sysctl -w vm.nr_hugepages=${result}
或者 shared_buffers/huge_size
fs.aio-max-nr=1048576
fs.file-max=76724600
fs.nr_open=20480000
kernel.sem=4096 2147483647 2147483646 512000
kernel.shmall=5033164 #Total_MEM [按頁計算]#建設設置內存的80%,以頁為單位4K
kernel.shmmax=20615843030 #Total_mem * 80% #單個共享內存段的大小
kernel.shmmax=20615843030 #Total_mem * 80% #單個共享內存段的大小
kernel.shmmni=819200 #一共能生成多個共享內存段,每個PG數據庫集群至少2個共享內存段
net.core.netdev_max_backlog=10000
net.core.wmem_max = 21299200
net.core.rmem_max = 21299200
net.core.wmem_default = 21299200
net.core.rmem_default = 21299200
net.core.somaxconn=65535
net.ipv4.tcp_max_tw_buckets=262144
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_retries1=5
net.ipv4.tcp_syn_retries=5
net.ipv4.tcp_synack_retries=5
net.ipv4.tcp_retries2=12
net.ipv4.tcp_rmem = 8192 250000 16777216
net.ipv4.tcp_wmem = 8192 250000 16777216
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range=40000 65535
net.ipv4.tcp_fin_timeout=10
net.ipv4.tcp_max_syn_backlog=65535
net.ipv4.tcp_mem=8388608 12582912 16777216
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_sack=1
vm.swappiness=0
vm.zone_reclaim_mode=0
vm.numa_balancing=0
vm.extfrag_threshold = 500
vm.mim_free_kbytes=1048576 #建議每32GB保留1GB;指定強制Linux VM保留的內存
最新值,單位Kb
vm.overcommit_memory = 2
vm.overcommit_ratio=90
vm.dirty_ratio=10 #指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如10%),系統不得不開始處理緩存臟頁
vm.dirty_background_ratio=5 #指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如5%)就會觸發
pdflush/flush/kdmflush等后臺回寫進程運行,將一定緩存的臟頁異步地刷入外存
vm.dirty_writeback_centisecs=80
vm.mmap_min_addr=65536 #指定用戶進程通過mmap可使用的最小虛擬內存地址,以
避免其在低地址空間產生映射導致安全問題
vm.nr_hugepages=0 #設置大頁的個數

7、調整磁盤IO調度

CentOS7:
grubby --update-kernel=ALL --args="elevator=defaline"
CentOS6:
vim /boot/grub/menu.lst
更改到如下內容: ## 在 rhgb quiet 前添加 elevator=deadline
kernel /boot/vmlinuz-2632-504.el6 ro root=LABEL=/ elevator=deadline
rhgb quiet

8、調整磁盤參數 noatime,nodirtime等參數,數據盤目錄

/dev/mapper/vg_data-lv_data /data xfs defaults
noatime,nodiratime,barrier=0 0 0

9、安裝依賴包

  • 9.1安裝依賴包

yum install -y rsync sysstat glib2 glib2-devel gcc gcc-c++ icu
libicu libicu-devel flex flex-devel python python-devel tcl tcldevel perl perl-devel bison bison-devel perl-ExtUtils* readline
readline-devel zlib zlib-devel openssl openssl-devel pam pam-devel
libxml2 libxml2-devel libxslt libxslt-devel openldap openldap-devel
ldapjdk ldapjdk-devel uuid uuid-devel systemd* bzip2 bzip2-devel
bzip2-libs libevent libevent-devel libcurl libcurl-devel libyml
libyml-devel libyaml libyaml-devel libaio libaio-devel uuid uuiddevel logrotate lz4 lz4-devel perl-Time-HiRes perl-DBI perl-DBD-Pg
  • 9.2 安裝CMAKE,3.5版本以上

./configure && gmake -j 7 && gmake install
  • 9.3 安裝LLVM

LLVM 不支持在源目錄中構建LLVM,需要創建一個目錄。
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER=/usr
/local/bin/c++ -DCMAKE_C_COMPILER=/usr/local/bin/gcc
gmake -j 7 && gmake install
  • 9.4 安裝CLANG

不允許在源碼目錄中進行CMAKE。
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER=/usr
/local/bin/c++ -DCMAKE_C_COMPILER=/usr/local/bin/gcc
gmake -j 7 && gmake install




數據庫軟件安裝及初始化

1、源碼編譯安裝

../configure --prefix=/opt/pgsql/pg132 --exec-prefix=/opt/pgsql/pg132 --
enable-thread-safety --with-pgport=5432 
--with-blocksize=8 --with-segsize=1 --with-wal-blocksize=8 --with-llvm -
-with-icu --with-tcl --with-perl --with-python
--with-gssapi --with-pam --with-ldap --with-selinux --with-systemd --
with-readline --with-libedit-preferred --with-ossp-uuid
--with-libxml --with-libxslt --with-zlib --with-lz4 --with-gnu-ld --withopenssl
make
make world
make install
make install-world
make install-docs
PG14.0
../configure --prefix=/opt/pg140 --exec-prefix=/opt/pg140 --enablethread-safety --with-pgport=5432 --with-blocksize=32 --with-segsize=1 --
with-wal-blocksize=32 --with-llvm --with-icu --with-tcl --with-perl --
with-python --with-gssapi --with-pam --with-ldap --with-selinux --withsystemd --with-readline --with-libedit-preferred --with-ossp-uuid --withlibxml --with-libxslt --with-zlib --with-lz4 --with-gun-ld --with-openssl
AIO:
--with-liburing --with-posix-aio

2、數據庫初始化

initdb -D $PGDATA -E UTF8 -A MD5 -U postgres -W --wal-
segsize=256 -k 10020836730533


3、PG連接數據庫

  • 數據庫的命令窗口

PostgreSQL 命令窗口中,我們可以命令提示符后面輸入 SQL 語句:
postgres=#
使用 l 用于查看已經存在的數據庫:
postgres=# l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres |
 postgres | UTF8 | C | C |
runoobdb | postgres | UTF8 | C | C |
template0 |
 postgres | UTF8 | C | C | =c/postgres +
| |          | |       | postgres=CTc/postgres
template1 |
 postgres | UTF8 | C | C | =c/postgres +
| |          | |       | postgres=CTc/postgres
(4 rows)
接下來我們可以使用 c + 數據庫名 來進入數據庫:
postgres=# c runoobdb
You are now connected to database "runoobdb" as user "postgres".
runoobdb=#
  • 系統命令行窗口

在系統的命令行查看,我們可以在連接數據庫后面添加數據庫名來選擇數據庫:
$ psql -h localhost -p 5432 -U postgress runoobdb
Password for user postgress: ****
psql (11.3)
Type "help" for help.
You are now connected to database "runoobdb" as user "postgres".
runoobdb=#





END




更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129731.html

相關文章

  • Docker 部署 Kong 網關

    摘要:自定義配置文件鏡像的配置文件路徑為如需自定義配置文件,自行掛載即可。配置項手冊管理網關的的使用教程這里就不寫了,自行覓食吧簡單的看看下面這篇可以的集成插件服務網關 Kong 鏡像: https://hub.docker.com/_/kong 官網給定的用戶安裝手冊上并沒有設置 PG 的密碼,導致如下問題無法啟動 nginx: [error] init_by_lua error: /us...

    zhouzhou 評論0 收藏0
  • 初識Postgres-XL

    摘要:所有節點中分為三種角色全局事務管理器協調器和數據節點。一旦故障,整個集群立刻無法訪問,此時可以切換到節點上。 第一節 簡介Postgres-XL是一款開源的PG集群軟件,XL代表eXtensible Lattice,即可擴展的PG格子之意,以下簡稱PGXL。官方稱其既適合寫操作壓力較大的OLTP應用,又適合讀操作為主的大數據應用。它的前身是Postgres-XC(簡稱PGXC),...

    JasinYip 評論0 收藏0
  • Kong網關部署

    摘要:是一個成熟的網關解決方案。網關的下一層,是內部服務,內部服務只需開發和關注具體業務相關的實現。網關可以提供發布管理維護等主要功能。 ??Kong是一個使用了lua-nginx-module運行在Nginx之上的Lua應用。Kong是一個成熟的API網關解決方案。API 網關,即API Gateway,是大型分布式系統中,為了保護內部服務而設計的一道屏障,可以提供高性能、高可用的 API...

    hiyang 評論0 收藏0
  • Kong網關部署

    摘要:是一個成熟的網關解決方案。網關的下一層,是內部服務,內部服務只需開發和關注具體業務相關的實現。網關可以提供發布管理維護等主要功能。 ??Kong是一個使用了lua-nginx-module運行在Nginx之上的Lua應用。Kong是一個成熟的API網關解決方案。API 網關,即API Gateway,是大型分布式系統中,為了保護內部服務而設計的一道屏障,可以提供高性能、高可用的 API...

    XiNGRZ 評論0 收藏0
  • PostgreSQL對接SequoiaDB

    摘要:是一款開源的數據庫,支持標準,用戶可以通過驅動連接進行應用程序開發。本文就針對如何擴展功能,實現對接進行介紹。直接在中修改配置文件,只能在當前中生效,重新登錄需要重新設置。 PostgreSQL是一款開源的SQL數據庫,支持標準SQL,用戶可以通過JDBC驅動連接PostgreSQL進行應用程序開發。用戶通過擴展PostgreSQL功能,讓開發者可以使用SQL語句訪問SequoiaDB...

    TZLLOG 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<