centos2

----------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’便可。


----------通常事務的互鎖,SERIALIZABLE事務的互鎖,repeatable read,read committed事務的互鎖都是同樣,以下:參考 http://blog.163.com/digoal@126/blog/static/16387704020113811711716/

 

 

事務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的時候須要依賴一個flex,readline-devl: yum -y install flex , yum -y install readline-devel, yum -y install zlib-devel

--------------在安裝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進程的睡眠時間

--------------postgres除了wal日誌覺得ia,若是還須要輸出csv日誌,則postgresql.conf的配置須要修改一下幾個地方:

 

 

log_destination = 'csvlog'
logging_collector = on
log_directory = '/home/postgres/pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
----------------------初始化數據庫initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W

 

----------------------啓動數據庫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等)

 

vmware workstation10的許可證密鑰

 

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


------------------------下載securecrt7而後鏈接linux系統

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鍵將光標移至行首/行尾:

相關文章
相關標籤/搜索