----------ps -ewf顯示全部進程,ps -a|grep ss指的是顯示ss關鍵字的全部進程。top是動態顯示進程。php
---------cat直接將文件內容顯示在終端上。html
---------查看linux系統版本信息cat /etc/*release。
linux
---------從一臺Linux機子拷貝recovery.conf.sample到192.168.59.128機子:scp recovery.conf.sample root@192.168.59.128:/home/pg93/test_repgit
---------ll 列出文件權限d表示是文件夾r表示可讀w表示可行x表示可執行。(ll -t。是按照時間降序)web
---------netstat -anp|grep ss指的是顯示包括ss關鍵字的全部服務端口。sql
----------文件重命名:mv aaa bbb。(mv就是這個意思)。chrome
----------解壓tar -jxvf aaa.tar數據庫
-----------查看文件abc.txt大小單位MB:du -sh /home/abc.txtubuntu
--------------快速搜索文本grep -r xxx /usr/local/yyy 。搜索目錄yyy下的全部文件內容中含有關鍵字xxx的文件,並列出來。
centos
-----------查找文件或者文件夾的名字中含有recovery.conf關鍵字的:find -name recovery.conf。
-----------查看軟件是否被安裝:rpm -qa|grep readl。查看含有關鍵字readl的包是否被安裝。
-----------在網上搜索含有readl的包yum search readl
----------查看一個包的路徑:which psql
-----------顯示當前路徑:pwd
-----------改變pg93用戶的環境變量:cd /home/pg93 vi .bash_profile 修改便可,完了以後須要執行source /home/pg93/.bash_profile,例如:
export PGPORT=1921
export PGDATA=/pgdata/pg_root
export LANG=en_US.utf8
export PGHOME=/home/pg93/pgsql
export
LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
export PGHOST=$PGDATA
alias rm='rm -i'
alias ll='ls -lh'
export PGDATABASE=digoal
-----------修改防火牆ipstables:vi /etc/sysconfig/iptables,容許或限制端口。
登錄postgresql數據庫後若是想:
--------------查看數據庫全部參數:show all;
--------------查看錶/視圖等的詳細信息:\d+ pg_stat_activity。(查看pg_stat_activity視圖的詳細信息,包括SQL語句的組成)
--------------切換查看SQL輸出內容的方式(水平/垂直):\x
--------------查看有哪些表空間:\db
--------------請求一個checkpoint點:checkpoint;(將髒數據flush一下文件)
---------------強行將一個xlog:select pg_switch_xlog();(歸檔日誌切換到下一個日誌能夠)
--------------查看錶空間大小: select pg_size_pretty(pg_tablespace_size('pg_default')); 。pg_default是表空間名
--------------查看所的狀態:select relation::regclass,* from pg_locks;(relation::regclass爲table/index...)
--------------查看索引:\di
---------------查看當期那數據庫鏈接的pid:select pg_backend_pid();
---------------查看數據庫有安裝有哪些中間件。\dx
---------------查看數據庫有關鍵字page的全部函數。\df *page*
---------------查看當前的事務ID(XID):select txid_current();
---------------查看role:\du
---------------查看pg進程所佔內存大小:ps -eo pid,user,pmem,rssize,cmd --sort rssize|grep 172.0.0.1
---------------查看錶bb的大小:select pg_relation_size('bb');
---------------查看relation的行鎖:select * from pgrowlocks('a');(查看a表的行級鎖,須要create extension pgrowlocks;)
---------------查看鎖: select * from pg_locks ;
---------------查看類型:select pg_typeof(234);--integer
---------------查看錶foo所對應的的文件位置:select pg_relation_filepath('foo') ;
---------------查看所欲系統表:http://www.php100.com/manual/PostgreSQL8/(中文)http://www.postgresql.org/docs/9.3/interactive/catalogs.html(英文)
---------------查看一個表的全部tuple(行)在PAGE(頁)中的位置:select ctid, xmin, xmax, * from testtb;(可使用create extension pageinspect;查看PAGE的內容http://blog.163.com/digoal@126/blog/static/16387704020114273265960/)
ctid:內容是(哪個PAGE,屬於此PAGE下的第幾個)
xmin:插入此tuple的XID(事務ID)
xmax:更新(UPDATE/DELETE)此tuple的XID(事務ID)
--------------兩個普通會話間事務等待
事務1:update testtb set info='aaaa' where id=1; 事務2:update testtb set info='bbbb' where id=1; 此時事務2會等待被事務1的提交,而後事務2纔會提交,而後覆蓋事務1提交的容。 |
-------------兩個會話間使用repeatable read
事務1:update testtb set info='aaaa' where id=1; 事務2:update testtb set info='bbbb' where id=1; 此時事務2會等待事務1提交,而後會報錯 ERROR: could not serialize access due to concurrent update |
-------------兩個會話間使用repeatable read,一個使用read committed
事務1:update testtb set info='aaaa' where id=1;(repeatable read) 事務2:update testtb set info='bbbb' where id=1; (read committed) 此時事務2會等待事務1提交,而後用事務2提交後結果覆蓋事務1。 |
事務1:update testtb set info='bbbb' where id=1; (read committed) 事務2:update testtb set info='aaaa' where id=1;(repeatable read) 此時事務2會等待事務1提交,而後會報錯 ERROR: could not serialize access due to concurrent update |
-------------兩個會話間都使用read committed
事務1:update testtb set info='aaaa' where id=1;(read committed) 事務2:update testtb set info='bbbb' where id=1; (read committed) 此時事務2會等待事務1提交,而後用事務2提交後結果覆蓋事務1。 |
-------------Serializable(串行隔離)
事務1:update testtb set info='777777777' where id=1;(Serializable)
事務2:update testtb set info='888888888' where id=2;(Serializable)
此時事務2會等待事務1提交,而後會報錯ERROR: could not serialize access due to read/write dependencies among transactions
雖然更新表testtb的是兩個不一樣的tuple到那時也會報錯的緣由是尚未給表testtb創建索引。串行隔離會鎖住與之相關SQL語句相關執行計劃的內容。
參看:http://pan.baidu.com/disk/home#dir/path=%2F%E6%95%B0%E6%8D%AE%E5%BA%93%2Fpostgresql%2FPostgreSQL%209.3%20%E5%9F%B9%E8%AE%AD%E8%A7%86%E9%A2%91 下的PostgreSQL 9.3 培訓 - D3.pdf,而後全部‘Serializable’便可。
事務1:update a set id=id+2 where id=55;
事務2:update b set id=id+2 where id=55;
事務1:update b set id=id+2 where id=55;------此時會等待事務2結束
事務2:update a set id=id+2 where id=55;------此時會等待事務1結束
而後等待1毫秒(在postgresql.conf設置deadlock_timeout參數)後會報錯 DETAIL: Process 2847 waits for ShareLock on transaction 1897; blocked by process 2845.
Process 2845 waits for ShareLock on transaction 1899; blocked by process 2847.
HINT: See server log for query details.
--------------在安裝postgresql的時候可使用gmake word,gmake install-world這樣會將postgresql全部的contrib下的包編譯並安裝。
--------------postgresql各個中間件project下載http://git.postgresql.org/gitweb/
--------------pgfincore使用說明http://francs3.blog.163.com/blog/static/4057672720107541611270/ http://villemain.org/projects/pgfincore http://blog.163.com/digoal@126/blog/static/1638770402011630102117658/ http://blog.csdn.net/wanghai__/article/details/6547786
--------------postgresql.conf配置文件參數說明:
tcp_keepalives_count==>tcp_keepcnt關閉一個非活躍鏈接以前進行探測的最大次數,默認爲 8 次(0表示系統默認值)
tcp_keepalives_idle==>tcp_keepidle對一個鏈接進行有效性探測以前運行的最大非活躍時間間隔,默認值爲 14400(即 2 個小時)(0表示系統默認值)
tcp_keepalives_interval==>tcp_keepintvl兩個探測的時間間隔,默認值爲 150 即 75 秒(0表示系統默認值)
authentication_timeout==>客戶端鏈接數據庫時的認證時長
max_prepared_transactions==>一個數據庫能夠同時開啓幾個事務停留在磁盤上。(0表示數據庫將關閉此特性)
work_mem==>排序操做內存大小(DISTINCT,ORDER BY,MERGE會用到排序)
temp_buffers==>每一個數據庫的私有內存,臨時表使用。
maintenance_work_mem==>每一個數據庫的私有內存,VACUUM,CREATE INDEX,ALTER TABLE等操做所用內存
max_stack_depth==>一個鏈接數據庫的進程鎖使用的棧大小。
max_fsm_relations==>FSM跟蹤的表和索引的個數的上限,每一個表和索引在FSM中佔7個字節的存儲空間
max_fsm_pages==>FSM中跟蹤的數據塊的個數的上限(FSM指的是數據塊剩餘的可用空間存放到一個MAP中,能夠內存碎片的VACUUM)
max_files_per_process==>每一個數據庫進程可以打開的文件的數目
vacuum_cost_delay==>VACUUM進程的睡眠時間
log_destination = 'csvlog' logging_collector = on log_directory = '/home/postgres/pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' |
----------------------啓動數據庫pg_ctl start -D $PGDATA
----------------------登錄數據庫psql -h localhost -p 1999 -U postgres postgres
----------------------中止數據庫pg_ctl stop -m fast|
----------------------重啓數據庫pg_ctl restart
下載vmware,能夠安裝多種操做系統(linux,unix,window等)
MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A 5A6F6-88247-XZH59-HL0Q6-8CD2V HF6QX-20187-2Z391-522NH-9AELT 5F29M-48312-8ZDF9-A8A5K-2AM0Z |
下載centos系統地址:
http://isoredirect.centos.org/centos/6.5/isos/ (CentOS系統鏡像有兩個,安裝系統只用到第一個鏡像即CentOS-6.x-i386-bin-DVD1.iso(32位)或者CentOS-6.x-x86_64-bin-DVD1.iso(64位),第二個鏡像是系統自帶軟件安裝包)
BinDVD版——就是普通安裝版,需安裝到計算機硬盤才能用,bin通常都比較大,並且包含大量的經常使用軟件,安裝時無需再在線下載(大部分狀況)。
LiveDVD版——就是一個光盤CentOS系統,可經過光盤啓動電腦,啓動出CentOS系統,也有圖形界面,也有終端。也能夠安裝到計算機,可是有些內容可能還須要再次到網站下載(自動)。
LiveCD版——相比LiveDVD是個精簡的光盤CentOS系統。體積更小,便於維護使用。
----------------外網訪問VMware的linux虛擬機
http://blog.csdn.net/hpwzd/article/details/7363694
VMware虛擬機的端口映射
使用NAT上網的linux虛擬機是和主機共享一個ip的,此時外網訪問這個ip是訪問你的主機,而不是你的linux虛擬機!所以此時須要對VMware虛擬機作一個端口映射!
具體方法以下:
a、VMware下Edit->Virtual Network Editor->VMnet8->NAT Setting->Add開始設置端口映射。
b、Host port 爲要映射到主機的主機端口
Type 依狀況而定
Virtual machine IP Address 爲linux虛擬機的IP地址(超級權限,ifconfig可查看)
Virtual machine port 爲要映射到主機的虛擬機端口
c、舉例:將linux虛擬機的ssh端口22映射到主機的6000端口,外界訪問時直接訪問主機地址的6000端口即訪問linux虛擬機的22端口。其餘的依樣畫葫蘆便可!
注意須要開放防火牆對相應端口。好比端口22和5432:
less /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
window下cmd測試鏈接ssh/ssh2:ssh honglianglu@192.168.59.128。(其中192.168.59.128是vmware的虛擬機中一個ubuntu的ip)。
在使用securecrt登錄linux的時候會報password authentication failed. please verify that the username and password are correct錯誤。無需更改配置須要從新啓動一下window主機便可。
對於ubuntu來講默認沒有安裝ssh,須要sudo apt-get install openssh-server安裝一下。而後sudo /etc/init.d/ssh start(或者service ssh start)啓動。查看啓動是否成功ps -e |grep ssh。
背景顏色設置:Options->Global Options...->Terminal->Appearance->Advanced->Monochrome->Edit->而後參見下圖:
中文亂碼解決方案:Options->Session Options->Appearance->Font->新宋體 字符集:中文GB2312 ->Character encoding 爲UTF-8。
複製黏貼快捷鍵的設置:Options->Global Options...->Terminal,而後選中Mouse那一欄中的Paste on right button,而後肯定便可。在使用的時候使用鼠標在securecrt中鼠標左鍵選中一部份內容,而後點擊鼠標右鍵,便可直接黏貼到secureCRT中。
-------------securecrt上傳下載:
安裝lrzsz:yum -y install lrzsz。rz:上傳;sz:下載。
-----------home鍵和end鍵將光標移至行首/行尾: