亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

PostgreSQL常用命令全解析:從連接到備份恢復與性能診斷

PostgreSQL常用命令全解析:從連接到備份恢復與性能診斷 最近連續(xù)有好幾個剛接觸PostgreSQL的朋友跑來問我同一個問題PG database相關命令到底該怎么記這東西和MySQL不一樣命令散落在shell、psql、系統(tǒng)視圖里查個東西不知道查哪。這篇就把我實際用下來最頻繁、最容易繞暈的PG命令完整梳理一遍覆蓋連接、日常操作、信息查詢、備份恢復、權限、性能診斷和維護不光給命令還把每類命令背后的設計邏輯和踩過的坑一并講清楚。1. 先把命令體系捋清楚PG的命令其實分三個入口很多人在PG上覺得命令又多又散根本原因不是命令量大而是沒有意識到PG的命令分布在三個完全不同的入口里。三個入口搞清楚了后面所有的記憶負擔都會小一大截。第一個入口是操作系統(tǒng)層面的命令行工具。PG安裝完以后bin目錄下會有一批以pg_開頭或者獨立命名的可執(zhí)行文件psql、createdb、dropdb、pg_dump、pg_restore、pg_basebackup、pg_ctl、pg_controldata這種。這一層命令的特點是你在Linux終端或者Windows的cmd里直接敲它們負責的是對數(shù)據(jù)庫實例整體做操作比如創(chuàng)建庫、連接庫、備份、初始化實例。寫自動化腳本的時候打交道的主要是這一層。第二個入口是psql交互終端里的元命令。當你已經(jīng)用psql連上數(shù)據(jù)庫輸入以反斜杠\開頭的指令比如\l、\dt、\d、\x、\timing。這些命令不是SQL是psql這個客戶端程序自己提供的快捷鍵本質上是幫你拼SQL查系統(tǒng)表。很多新手容易在這里迷路因為文檔里一提到命令就給你一堆反斜杠你以為這些是PG的SQL語法其實它們只活在psql里。第三個入口才是標準SQL包括CREATE TABLE、SELECT、INSERT、UPDATE、GRANT、VACUUM這類。這才是真正對數(shù)據(jù)庫內(nèi)容生效的東西在任何PG客戶端、任何語言驅動里都能執(zhí)行只是有些命令的名字會讓你誤以為它不是SQL比如VACUUM、ANALYZE、CHECKPOINT它們確實是SQL命令只是日常用得少。1.1 三個入口怎么配合使用我日常的工作流可以概括成一句話shell層做連接和備份psql層做快速瀏覽SQL層做真正的操作。舉個例子要排查一個線上庫為什么慢我會在shell里執(zhí)行psql連上去然后用psql的\x開啟縱向顯示再用SQL去查pg_stat_activity視圖。整個過程三個入口都會用到誰也不會替代誰。你如果只會其中一個入口就好比只會用手機上的計算器不會用電腦Excel活也能干但效率差很多。還有一件事容易被忽略psql元命令其實是可以傳參數(shù)的。比如\d requests表名后面可以跟上表名的模糊匹配\dt public.*這樣的寫法也支持通配符。你不需要精確記住表名單詞先用\d通過模糊查詢找到想看的表再按回車細化信息這個習慣比死記硬背命令高效得多。1.2 和MySQL的習慣差異端口、大小寫、幫助系統(tǒng)從MySQL轉過來的人第一個坑就是端口。MySQL默認3306PG默認5432用習慣MySQL的人寫連接命令端口經(jīng)常填錯報錯以后第一反應是服務沒起來實際上服務好好的只是你連錯了地方。第二個坑是密碼選項。MySQL的-p是指輸入密碼PG里的-p是指端口。PG里輸入密碼用的是-W選項或者等它提示。如果你照著MySQL的習慣敲psql -p xxxPG會把你輸入的內(nèi)容當成端口號解析要么報數(shù)字格式錯誤要么直接連接失敗。這個真的是高頻翻車點。第三個坑是大小寫敏感。PG對不帶雙引號的標識符會強制轉為小寫。你建表時寫CREATE TABLE Users實際存儲的名是users如果你真的想要一個大寫開頭的表名必須寫CREATE TABLE Users而且之后每次查詢都得帶雙引號寫Users。這個設計和MySQL的寬松策略完全相反SQL看起來一樣行為卻完全不同。至于幫助系統(tǒng)psql里輸入?可以看所有元命令的幫助輸入\help SELECT可以看某個SQL語句的語法輸入\h可以列出所有SQL命令。這套幫助系統(tǒng)比很多圖形化工具還好用強烈建議養(yǎng)成先help再動手的習慣。1.3 搭建自己的速查路徑在學習階段不需要把每個命令背下來但是腦子里要有一張索引表想創(chuàng)建數(shù)據(jù)庫去哪查、想改密碼去哪查、想備份去哪查、想殺會話去哪查。每類問題只需要記住一個入口和兩三個關鍵命令就夠了剩下的相信?、\h和系統(tǒng)視圖。我自己在服務器上長期保存著一個筆記文件里面分了四塊日常管理命令、診斷查詢SQL、備份恢復命令、權限模板。每個星期都會往里補充一條新學到的東西。半年下來這個文件幾乎成了我的PG速查手冊。你自己也完全可以用同樣的方式積累這篇文章里的所有命令都可以作為前一百條內(nèi)容。2. 連接、建庫與日常增刪改查先把活干起來2.1 psql連接命令的完整參數(shù)與常見報錯連接PG最基礎的一條命令長這樣psql -h 127.0.0.1 -p 5432 -U myuser -d mydb-h后面是數(shù)據(jù)庫地址-p是端口-U是用戶名-d是數(shù)據(jù)庫名。不加-d的話PG會用你當前的操作系統(tǒng)用戶名作為默認庫名去連接經(jīng)常報database xxx does not exist很多新手在這個報錯上卡了很久實際上就是因為沒指定庫名。如果想要密碼自動提示加一個-W參數(shù)。如果服務器配置了本地信任認證不需要密碼那個別糾結。還有一點要注意psql的參數(shù)順序是寬松的-d mydb -U myuser和-U myuser -d mydb完全等價這點比很多命令行工具友好。連接過程中常見的報錯我整理了一下報錯信息常見原因處理方向could not connect to server端口沒通、防火墻攔截、服務沒起來檢查pg_isready、netstat、防火墻database xxx does not exist沒指定-d或庫名拼錯確認庫名或用\l查看password authentication failed密碼錯誤、認證方式不是md5/scram檢查pg_hba.conf認證方法no pg_hba.conf entry客戶端IP不被允許在pg_hba.conf增加對應網(wǎng)段規(guī)則并reload以上這些報錯文本雖然不是完整的原文但特征基本一致。遇到問題先看最后一行PG的錯誤信息其實寫得很清楚只是很多人喜歡忽略英文直接抄日志問別人。連接成功以后psql提示符會變成mydb#或者mydb。前者代表你有超級用戶權限后者代表普通用戶。這個細微差別其實很重要看到你就該意識到很多管理命令會執(zhí)行失敗。連上以后第一時間做的事我建議執(zhí)行兩條SELECT version(); SELECT current_database(), current_user, inet_server_addr();這兩條可以確認你連到了哪個版本、哪個庫、哪個用戶、哪臺服務器。特別是多環(huán)境混用的時候這個操作能救你一條命。2.2 創(chuàng)建庫與表結構的常用SQL創(chuàng)建一個數(shù)據(jù)庫SQL方式CREATE DATABASE mydb ENCODING UTF8;也可以在shell里直接createdb -h 127.0.0.1 -U myuser mydb刪除數(shù)據(jù)庫DROP DATABASE mydb;刪除之前建議先確認沒有連接占用否則會報being accessed by other users。我遇到過好幾次開發(fā)環(huán)境里一堆IDEA的數(shù)據(jù)庫面板自動掛著連接DROP DATABASE怎么都執(zhí)行不了最后是把那些連接斷開才成功。建表就沒什么特異功能了CREATE TABLE requests ( id BIGSERIAL PRIMARY KEY, user_id INT NOT NULL, api_path TEXT NOT NULL, status_code INT DEFAULT 200, created_at TIMESTAMPTZ DEFAULT now() );BIGSERIAL是PG里常用的自增方式底層是一個序列。也可以直接用GENERATED AS IDENTITY這是SQL標準做法PG 12以后都支持得不錯。二者差別不是很大但新項目我個人更推薦GENERATED AS IDENTITY語義更清晰也更方便后續(xù)遷移。查看表結構psql里直接\d requests它會顯示每個字段的類型、默認值、約束還會列出索引、外鍵、觸發(fā)器等附屬結構比寫SQL查information_schema快得多。想看到更細的存儲屬性用\d requests2.3 psql里高頻元命令速查連接數(shù)據(jù)庫這個動作在psql里用\c\c otherdb切換用戶/庫/端口也可以一步到位\c mydb myuser 127.0.0.1 5432列出所有數(shù)據(jù)庫用\l列出當前庫所有表用\dt想帶上表注釋和大小用\dt??匆粋€查詢結果如果列太多被截斷先開啟擴展顯示\x on開啟后每一行字段會豎著排同一條SQL再執(zhí)行一遍就清爽很多。這個模式在排查問題時幾乎是必開的。日常寫SQL的時候我很依賴兩個元命令\timing on \e\timing會打印每次SQL的執(zhí)行耗時不用自己手動記秒表。\e會打開默認編輯器通常是vi適合寫多行SQL寫完退出自動執(zhí)行。在有臨時復雜查詢的場景下這個組合比一條條敲要舒服太多。執(zhí)行外部SQL腳本用\i\i /path/to/script.sql導出查詢結果到文件在psql里可以用\o或者直接在shell里重定向psql -U myuser -d mydb -c SELECT * FROM requests; output.csv3. 信息查詢命令排查問題時的救火地圖日常運維中你真正需要手寫SQL去查的地方集中在幾個系統(tǒng)視圖和統(tǒng)計視圖里。這一節(jié)的內(nèi)容可以說是PG數(shù)據(jù)庫相關命令里最有價值的部分因為大部分故障的第一現(xiàn)場都是從這里找到的。3.1 pg_catalog 與 information_schema 的選擇PG里有兩個元數(shù)據(jù)來源information_schema是SQL標準視圖跨數(shù)據(jù)庫通用pg_catalog是PG自身系統(tǒng)表視圖信息更全更底層。查詢表結構、列名、約束這類通用信息用information_schema比較穩(wěn)。但查詢物理存儲、膨脹情況、邏輯復制狀態(tài)這些PG特性信息必須用pg_catalog下的視圖比如pg_class、pg_namespace、pg_attribute、pg_stat_activity等。從使用頻率來看我80%的查詢都在pg_catalog體系里。information_schema更多是給報表系統(tǒng)或者圖形化工具用的標準化接口。查看一個庫下所有表和對應的注釋SELECT c.relname AS table_name, obj_description(c.oid) AS comment FROM pg_class c JOIN pg_namespace n ON n.oid c.relnamespace WHERE n.nspname public AND c.relkind IN (r, p) ORDER BY c.relname;這個查詢雖然啰嗦但理解了pg_class和pg_namespace之后PG的系統(tǒng)表結構就通了一半。3.2 當前連接、鎖等待與活動查詢排查數(shù)據(jù)庫突然變慢最常用的視圖絕對是pg_stat_activity。一條查詢跑遍所有問題SELECT pid, usename, datname, client_addr, state, wait_event_type, wait_event, query_start, now() - query_start AS runtime, query FROM pg_stat_activity WHERE state ! idle ORDER BY runtime DESC;看到state字段是active的進程結合query_start算一下運行時長基本就能判斷是正常慢查詢還是異常堵塞。如果大量會話卡在某個狀態(tài)且wait_event帶有Lock字眼說明存在鎖等待。鎖定位到具體是哪個進程堵了之后可以用這個函數(shù)查鏈條SELECT pg_blocking_pids(4567);把4567替換成你看到的被阻塞pid返回的結果就是堵住它的pid列表。然后再連查一層直到源頭。終止一個會話SELECT pg_cancel_backend(4567);取消不掉就用SELECT pg_terminate_backend(4567);兩者的區(qū)別是cancel是溫和取消當前查詢事務本身可以被應用捕獲錯誤后回滾比較適合對付慢查詢terminate是直接斷開進程會把整個客戶端連接殺掉適合對付僵死連接。生產(chǎn)環(huán)境用terminate之前最好先確認這個連接是誰的、能不能斷。3.3 表大小、膨脹與索引使用統(tǒng)計磁盤空間到底被哪些表吃掉了很多人第一反應是去看文件目錄其實一條SQL就出來了SELECT nspname || . || relname AS relation, pg_size_pretty(pg_total_relation_size(c.oid)) AS total_size, pg_size_pretty(pg_relation_size(c.oid)) AS table_size, pg_size_pretty(pg_total_relation_size(c.oid) - pg_relation_size(c.oid)) AS index_size FROM pg_class c JOIN pg_namespace n ON n.oid c.relnamespace WHERE c.relkind r AND n.nspname public ORDER BY pg_total_relation_size(c.oid) DESC LIMIT 20;pg_size_pretty會把字節(jié)數(shù)換算成人類的可讀格式這個函數(shù)在你處理空間問題時是高頻使用的。檢查表的膨脹情況看pg_stat_user_tablesSELECT relname, n_live_tup, n_dead_tup, CASE WHEN n_live_tup 0 THEN round(100.0 * n_dead_tup / n_live_tup, 1) ELSE 0 END AS dead_pct, last_vacuum, last_autovacuum FROM pg_stat_user_tables ORDER BY dead_pct DESC LIMIT 20;n_dead_tup代表死元組數(shù)量這個值長期偏高說明vacuum沒跟上表膨脹風險很高。索引命中率查詢SELECT schemaname, relname, indexrelname, idx_scan, idx_tup_read, pg_size_pretty(pg_relation_size(indexrelname)) AS index_size FROM pg_stat_user_indexes ORDER BY idx_scan ASC LIMIT 20;idx_scan長期為0的索引基本可以視為無效索引但注意先確認沒有唯一性約束不能只看使用率就刪。這類統(tǒng)計視圖是PG排查性能問題時最重要的地圖把它們當成常備工具勝過去背各種優(yōu)化口訣。4. 備份與恢復生產(chǎn)環(huán)境最常翻車的命令組合備份恢復這塊網(wǎng)上教程不少但大多數(shù)人只講了pg_dump一條命令。這里我重點講的是命令怎么組合、恢復到另一個環(huán)境時有哪些隱藏的坑這些才是生產(chǎn)環(huán)境真正要命的東西。4.1 pg_dump的格式選擇與并行參數(shù)pg_dump最基礎的用法pg_dump -h 127.0.0.1 -p 5432 -U myuser -d mydb -f mydb.sql這會生成一個純SQL文本文件里面是建表語句和數(shù)據(jù)插入語句。這種格式最大的好處是人眼可讀適合小庫、跨小版本遷移。但大庫用純SQL恢復特別慢并且中途出錯很難續(xù)跑。我更推薦custom格式pg_dump -h 127.0.0.1 -U myuser -d mydb -F c -f mydb.dump-F c 生成的是一種壓縮的二進制格式可以用pg_restore靈活控制恢復哪些對象。custom格式還支持并行恢復恢復大庫時速度快非常多。并行恢復pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump-j 4代表開4個并發(fā)任務恢復。任務數(shù)建議不超過CPU核心數(shù)兩倍不然反而會因為資源競爭變慢。只備份數(shù)據(jù)不帶表結構用pg_dump -a -F c -f data_only.dump只備份表結構不帶數(shù)據(jù)用pg_dump -s -F c -f schema_only.dump這兩種方式在給測試環(huán)境搭建、生成對照庫時特別實用。4.2 pg_restore與psql回放的核心邏輯說清楚一個問題custom格式不能用psql直接回放必須用pg_restore。這是很多新手卡住的點。拿個大半天研究為什么psql讀dump文件報錯其實只是格式選錯了。一個常規(guī)的恢復流程# 先建目標庫如果還不存在 createdb -U myuser -h 127.0.0.1 targetdb # 恢復custom格式備份 pg_restore -h 127.0.0.1 -U myuser -d targetdb -j 4 mydb.dump如果dump里包含了建庫語句你可以用--create選項讓它先建庫再連庫恢復但前提是執(zhí)行pg_restore的用戶必須有建庫權限。查看一個dump文件里都包含了什么對象不用恢復就能列出pg_restore -l mydb.dump這個列表輸出很長可以配合grep只看某類對象比如只看函數(shù)pg_restore -l mydb.dump | grep FUNCTION如果你只想恢復其中一張表pg_restore -t public.requests -d targetdb mydb.dump4.3 恢復翻車現(xiàn)場權限、擴展、版本三大坑我實際在恢復dump到測試環(huán)境時遇到最多的問題歸納成三個。第一個坑是owner不一致。原庫的對象owner是prod_user目標環(huán)境里根本沒有這個用戶恢復時直接報錯。解決辦法是加上--no-ownerpg_restore --no-owner -d targetdb mydb.dump這個選項讓恢復后的對象owner統(tǒng)一變成當前執(zhí)行用戶規(guī)避掉一大部分權限問題。第二個坑是擴展缺依賴。比如表里有jsonb字段或者用了citext類型恢復時目標庫沒安裝對應擴展就會報type does not exist。普通文本格式的dump里如果包含CREATE EXTENSION需要執(zhí)行者具有超級用戶權限否則也會被跳過?;謴椭跋劝言撗b的核心擴展裝上CREATE EXTENSION IF NOT EXISTS citext; CREATE EXTENSION IF NOT EXISTS uuid-ossp;第三個坑是版本跨度過大。PG大版本之間的二進制格式不兼容pg_dump出來的dump文件最好在大版本內(nèi)恢復??绱蟀姹具w移建議先用低版本自帶的pg_dump導出再到高版本用pg_restore導入方向不能反。高版本導出的文件去低版本恢復基本都會失敗。還有一個很實用的細節(jié)給備份文件做完整性校驗恢復完以后立刻跑一遍行數(shù)抽查SELECT COUNT(*) FROM public.requests;這個動作成本不高但能快速發(fā)現(xiàn)數(shù)據(jù)中途丟失。5. 權限與角色命令從能跑到管得住數(shù)據(jù)庫能在本地跑起來和能在生產(chǎn)環(huán)境管得住之間的分界線就是權限命令。PG的權限體系比MySQL更細致但也因此容易踩到一些給了權限卻還是報錯的坑。5.1 角色與用戶的本質區(qū)別在PG里角色ROLE和用戶USER本質上是同一個東西。CREATE USER只是CREATE ROLE的一個便捷寫法區(qū)別僅在CREATE USER會默認帶著LOGIN屬性而CREATE ROLE默認不帶。CREATE ROLE app_user LOGIN PASSWORD xxx;等價于CREATE USER app_user PASSWORD xxx;查看當前實例下所有角色\du這個命令會列出角色名、屬性列表和成員關系一屏看全好人壞人。改密碼ALTER ROLE app_user WITH PASSWORD newpassword;角色繼承關系CREATE ROLE read_only; GRANT read_only TO app_user;app_user登錄后默認繼承read_only的權限。PG的權限檢查加上繼承特性理解起來需要一點疊加思維但實際使用中用繼承方式管理是很優(yōu)雅的。5.2 一組可以直接照抄的授權模板我根據(jù)實際場景整理了三個常用模板你可以直接搬走用。給一個只讀賬號CREATE ROLE read_only LOGIN PASSWORD xxx; GRANT CONNECT ON DATABASE mydb TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO read_only;注意這里GRANT CONNECT是讓你能連上這個庫GRANT USAGE ON SCHEMA是讓你能看到并使用這個schema下的對象。很多人只記得給表授權忘了給schema授權結果用戶連上庫之后一執(zhí)行SELECT就報permission denied for schema public。給一個讀寫賬號CREATE ROLE read_write LOGIN PASSWORD xxx; GRANT CONNECT ON DATABASE mydb TO read_write; GRANT USAGE, CREATE ON SCHEMA public TO read_write; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO read_write; GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO read_write; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO read_write; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE ON SEQUENCES TO read_write;ALTER DEFAULT PRIVILEGES這段很多新手會忽略它的作用是以后在這個schema里新建的表默認自動授權給指定角色。不加這個今天你給用戶授了權明天業(yè)務方新加了一張表用戶又查不了看起來就是權限神秘失效。只讀賬號順便給序列的usage是因為如果查詢要走某些帶序列的視圖或函數(shù)可能會被卡住。實際場景中遇到這類報錯就明白了。查看某個表當前權限用\dp tablename或者SELECT grantee, privilege_type FROM information_schema.role_table_grants WHERE table_name tablename;5.3 權限問題上最容易忽略的三個場景第一個場景前面提到過的schema權限。很多團隊在給一個新賬號授權時列了一長串表自認為都覆蓋了結果用戶一登錄就報permission denied。問題不在表上而是USAGE ON SCHEMA沒給。這就像你給了別人一把房間鑰匙卻不讓對方進走廊。第二個場景函數(shù)執(zhí)行權限。PG里函數(shù)默認為PUBLIC可執(zhí)行但如果你在函數(shù)內(nèi)部訪問了其他表這個用戶必須同時擁有那些表的權限否則調用函數(shù)時依然會被拒絕。這個報錯藏得比較深往往不是在授權時發(fā)現(xiàn)而是應用跑到一半才炸。第三個場景REVOKE之后還有殘留。想徹底收回一個用戶對某張表的所有權限不能只REVOKE一次需要把SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER全部回收REVOKE ALL PRIVILEGES ON TABLE public.requests FROM app_user;REVOKE ALL這種寫法一次清干凈不要分開寫。6. 性能診斷命令EXPLAIN、慢SQL與鎖等待性能診斷這一塊是你把PG從能跑帶到跑得快的核心。我會先把EXPLAIN怎么讀講透再說慢SQL定位三板斧最后說鎖等待處置。6.1 EXPLAIN ANALYZE到底怎么讀寫SQL的時候如果懷疑查詢慢直接在SQL前面加EXPLAIN ANALYZE比如EXPLAIN ANALYZE SELECT u.name, count(*) FROM requests r JOIN users u ON u.id r.user_id WHERE r.created_at now() - interval 7 days GROUP BY u.name;輸出會是一棵執(zhí)行計劃樹從縮進最深的節(jié)點開始看每一行都有三個關鍵數(shù)字actual time、rows、actual loops。actual time字段的第一個數(shù)字是啟動時間獲得第一行前的耗時第二個數(shù)字是整個過程耗時單位毫秒rows是實際掃描的行數(shù)要和EXPLAIN里預估的行數(shù)對比rows大比例偏差說明統(tǒng)計信息失效需要ANALYZE或者檢查索引判斷執(zhí)行計劃好壞最簡單的方法是找兩個詞Seq Scan和Index Scan??吹絊eq Scan在表上掃了幾十萬行而你還期望它走索引那基本就是索引缺失、統(tǒng)計信息過期、或者SQL寫得讓優(yōu)化器沒法用索引??匆粋€例子上面SQL如果輸出里顯示requests表做了Seq Scan且掃描了50萬行user表也做了Seq Scan那這個查詢大概率會慢。解決辦法一般是在requests.user_id和requests.created_at上建復合索引并確保統(tǒng)計信息是最新的。加索引的命令CREATE INDEX CONCURRENTLY idx_requests_user_created ON public.requests (user_id, created_at DESC);CONCURRENTLY關鍵字表示不阻塞寫操作。生產(chǎn)環(huán)境建索引時我強烈建議不要省略它雖然它會讓索引創(chuàng)建更慢且不能在事務里執(zhí)行但換來的是不打斷應用寫入值得。6.2 慢SQL定位三板斧第一板斧是看pg_stat_activity找到正在跑的query和運行時長。這個前面已經(jīng)給過SQL區(qū)別是要記住它只看得到正在執(zhí)行的歷史慢SQL它不會記錄。第二板斧是安裝pg_stat_statements擴展。這個擴展是慢SQL統(tǒng)計的利器CREATE EXTENSION IF NOT EXISTS pg_stat_statements;安裝之后可能需要數(shù)據(jù)庫管理員在配置里先開啟shared_preload_libraries并重啟實例默認情況下有些環(huán)境已經(jīng)預加載了直接查詢即可。查詢執(zhí)行總次數(shù)多、總耗時長、平均耗時長的SQLSELECT queryid, calls, round(mean_exec_time::numeric, 2) AS avg_ms, round(total_exec_time::numeric, 2) AS total_ms, round(max_exec_time::numeric, 2) AS max_ms, query FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 20;這個查詢會告訴你過去這段時間里到底哪幾條SQL在燃燒你的數(shù)據(jù)庫CPU和IO。有幾次線上事故最終定位到源頭就是pg_stat_statements里某條應用生成的動態(tài)SQL沒有用上索引。第三板斧是開慢查詢?nèi)罩?。修改配置ALTER SYSTEM SET log_min_duration_statement 1000; SELECT pg_reload_conf();意思是執(zhí)行超過1000毫秒的SQL都會寫入日志文件。這個參數(shù)在生產(chǎn)環(huán)境非常有用改完后不用重啟reload即可生效。6.3 鎖等待的定位與處置命令鎖等待和慢查詢經(jīng)常伴生不是SQL本身慢而是卡在等鎖。定位步驟通常這樣走。第一步看pg_stat_activity里wait_event有沒有Lock字樣SELECT pid, state, wait_event_type, wait_event, query_start, query FROM pg_stat_activity WHERE wait_event_type Lock;第二步用pg_blocking_pids找到鎖源SELECT pid, pg_blocking_pids(pid), query FROM pg_stat_activity WHERE wait_event_type Lock;第三步定位到源頭會話后用前面說過的pg_cancel_backend或者pg_terminate_backend處理。這里想特別提醒一件事lock_timeout這個參數(shù)值得在設計表結構時就考慮。在長時間持鎖的DDL場景下給應用會話設置SET lock_timeout 5s;可以讓等待鎖的會話在5秒后自動放棄而不是無限期掛在那里。很多數(shù)據(jù)庫無響應事故就是被無限等鎖拖死的。7. 維護類命令避坑清單日常運維繞不開的幾件事最后這部分講幾個日常維護中繞不開的命令每個命令都有它典型的為什么和別亂動。7.1 VACUUM、ANALYZE與膨脹處理PG的并發(fā)控制靠MVCC刪除一行數(shù)據(jù)并不會立刻從物理文件里抹掉而是標記為死元組。這些死元組要靠VACUUM清理。VACUUM public.requests; VACUUM ANALYZE public.requests;普通VACUUM不鎖表可以在線跑。ANALYZE會更新統(tǒng)計信息優(yōu)化器等會兒執(zhí)行計劃就能更準確。兩者一起跑是常規(guī)操作。生產(chǎn)環(huán)境其實不必頻繁手動執(zhí)行因為PG默認開著autovacuum。但對一些超大表autovacuum可能來不及清理這時候可以在業(yè)務低谷手動跑一次。千萬注意不要輕易在生產(chǎn)環(huán)境用VACUUM FULLVACUUM FULL public.requests;VACUUM FULL會重寫整張表并且全程持鎖大表跑起來期間應用寫入全部阻塞。我見過有人因為一張幾億行的表膨脹嚴重直接在高峰時段執(zhí)行VACUUM FULL結果整個業(yè)務停擺。正確的思路是優(yōu)先確認autovacuum配置正常實在需要物理收縮時才考慮VACUUM FULL而且放在維護窗口執(zhí)行或者直接通過新表遷移來替代。7.2 配置修改與生效方式ALTER SYSTEM與reload修改PG配置不建議直接去編輯postgresql.conf因為容易出錯。PG 9.4以后支持ALTER SYSTEMALTER SYSTEM SET max_connections 500;修改完后一部分參數(shù)需要reload生效SELECT pg_reload_conf();還有一部分參數(shù)必須重啟實例才生效。重要參數(shù)大致可以分兩類參數(shù)是否需要重啟典型場景max_connections重啟連接數(shù)不足shared_buffers重啟內(nèi)存緩沖不足work_mem無需會話級生效排序/哈希操作慢log_min_duration_statement無需reload慢SQL追蹤effective_cache_size無需reload優(yōu)化器選錯計劃work_mem有個坑值得單獨說它表示單個排序或哈希操作能使用的內(nèi)存不是整個查詢。如果你把它設置成1GB而并發(fā)50個會話都在排序瞬間就能吃掉50GB內(nèi)存。所以修改這類參數(shù)要結合并發(fā)量不能只看單次操作。7.3 連接數(shù)打滿時的急救流程連接數(shù)打滿是一種特別常見的故障表現(xiàn)為新連接報too many connections。急救步驟一般是這樣第一步看當前連接分布SELECT datname, usename, count(*) FROM pg_stat_activity GROUP BY datname, usename ORDER BY count(*) DESC;第二步殺掉明顯異常的連接。如果是一些應用的重試連接堆積可以用pg_terminate_backend批量清理掉非關鍵連接。謹慎一點的做法是先把它們cancel了再看。第三步調整連接池的配置。生產(chǎn)環(huán)境應用不應該直連PG中間一定套一個連接池應用層控制連接池上限PG端用pgbouncer或者proxysql做集中池化。如果沒接連接池max_connections再大也只是慢性死亡。這個屬于架構問題但和命令使用的關聯(lián)很深。另一個維護命令是CHECKPOINTCHECKPOINT;它作用是把WAL緩沖區(qū)的內(nèi)容刷到數(shù)據(jù)文件讓崩潰恢復更快。平時不需要手動執(zhí)行但如果在做某些備份或要關閉實例之前執(zhí)行一次可以縮短恢復時間。這也算是我見過的命令存在但很少被正確使用的一類。最后說個經(jīng)驗這篇文章列的命令我在真實項目里都實際用過。如果你現(xiàn)在剛起步我的建議是先別急著把每條命令背下來動手執(zhí)行一遍然后按自己的使用場景把這個速查文檔沉淀下來。把五個場景練熟就夠了連接、查詢信息、備份恢復、權限、慢查詢排查。等這五塊熟了剩下的都是隨用隨查。另外想強調一個總的習慣凡是涉及生產(chǎn)環(huán)境的命令先在一個空庫里試一遍。特別是DROP、TRUNCATE、VACUUM FULL這類重量級操作試完你才會對它的輸出和影響有切身體感。數(shù)據(jù)庫命令的價值不在知道而在用對。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
男人天堂最新手机版在线青青草| 嗯嗯啊啊啊好舒服| 91黑人狂躁丰满熟妇| 天天综合网AV91| 国产原创自拍| 色天使亚洲综合在线观看| 久久伊人东京热| 欧美爆操91| 九九RE视频在线精品| 蜜臀久久99精品久久久久| 亚洲色图 综合| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 麻豆这里只有精品| 一级岛国大片| 91综合色| 尤物av网站免费在线播放| 情色五月天就去干| 成人精品水蜜桃久久久久久久| 精品久久久无码| 动漫爆乳3D奶水一区在线观看| 久久久久久99AV无码免费网站| 夜夜欧美 | 日韩国产不卡在线视频| 夜夜草我| 操国产逼| 777琪琪午夜免费A片| 欧美天天综合| 神马久久午夜| 日韩精品碰碰| 国产一区二区三三视频| 黄色免费一级在线毛片| 东京热男人的天堂| 操逼操2| 一级一性爱免费视频| 欧美se综合| 激情在线青青操| 久久久999国产精品| 日韩激情电影中文字幕| 91精品国产91久久青草| 蜜乳成人AV| 午夜成人爽爽爽爽A片李冰冰| 人人妻人人澡人人爽久久av| 精品国产Av无码久久久亚洲| 中文字幕日韩专区精品系列| 自拍偷拍草一草| 天天操夜夜嗨| 亚洲av影音先锋| 久久人人舔人人爽舔人人av片| 约操熟妇| 日韩高潮一区| 青木玲在线不卡| 国产一区二区三区久久精品太古里| 亚洲AO在线| 操九九九九九九| 大香伊人在线一区| 大香蕉草草| 久久97精品久久久久久久不卡| w w w.久久精品| 97碰| 伊人激情五月天一区二区 | 女人的天堂大香蕉网| 欧美国产有色电影| 国产97色在线 | 亚洲| 97超碰站| 激情综合五月| 久久久久密臀视频| 亚洲情色 欧美| 综合网天天| 国产乱伦性爱区| 久久精品国产亚洲AV片多多| 九九精品美女高溯喷水| 日逼逼免费看| 操逼日韩无码 | 天天操天天日天天干| 91艹| 国产操伦| 伊人久久88国产女| 丰满人妻-区二区三区免费看 | 插入综合网| 天天日日日射| 欧洲久久一二线| 欧美一级久久久久久久大片动画| 99久久久无码| 青青青青青手机视频| 免费av在线播放二区| 黄色一级视| 久久久久久久久久久六六| 日本97久久久精品| 91美女在线观看| 亚洲日韩精品一区视频在线| 伊人色综合超碰| 青青操在线视频| 午夜视频久久久久一区| 能看的av| 99精品综合久久久久五月天| 亚洲欧洲av影音| 欧美性视频二区三区| 久久久91| 五月综合久久| 亚洲人精品久久久| 婷婷九月色| 二对二中文字幕。| 精品一区二区三区国产| 久久久精品国产亚洲伊人| 色拍偷亚洲| 亚洲国产一级黄色视频| 中文字幕乱碼在线| se吧提供91精品国产91久久久久久 | 日本岛国黄色网址| 日韩二区三四区五区六区在线看| 黄色香蕉视频网站一区| 大香伊人在线一区| 国产精品婬乱一级毛片彝族| 天天综合网1| 人妻夜夜爽天天爽三区麻豆AV网站| 国产亲戚伦亲在线| 啪啪啪男女亚洲中文字幕99| 男人高清无码一区二区| 大香蕉青青9| 色翁荡息又大又硬又粗又爽| 天天内射| 欧美做爰无码A片视频| 九草九九九| 一本精品日本在线视频精品| 欧美熟妇亚洲版| 日韩精品一区二区高清| 日韩不卡码| 日韩精品资源专区二区| 欧美综合第一| 中文字幕AV乱伦| 夜夜嗷嗷一区二区| 屁屁影院一区二区三区国产| 春色91| 高凊专区人人操| 久久久久九九九| 人妻少妇一区二区| 日韩av性爱在线播放| 午夜久久一区二区无码中出| 国产成人无码a| 人人妻天天做天天爽| 温婉少妇玩3p| 亚洲高清欧美总合| 欧美久久毛片基地| 99热精品在线| 久久精品国产精品一区 | 激情抓乳插进去啪啪啪日韩| 久久人体一区二区| 美女的肌被草喷水视频| 萌白酱自拍视频| 精品女同一区二区三区| 黄色高清久久无码依人| 欧美特大黄一级片片免费| 天天操妹子| 超碰久久性爱| 国产精品免费视频不卡| 精品国产一区探花在线观看| 999色欧美中文字幕| 极品五月天噜噜| 蜜乳中文字幕a在线| 国产在线精品电影观看| 狠狠躁AV| 欧美十八禁在线看| 欧美性爱第一页久久| 亚洲AV不卡在线观看尤物| 日亚韩精品视频二区三| 大香蕉一级黄色片久久| 蜜臀Av一区二区三区| 狠狠久久四虎| 激情接吻视频久久久久久| 偷拍视频青青草在线视频| 久草毛片电影怡| 色色五月婷| www国产无码| 青青久日| 日韩美女高潮喷水视频| 婷婷五月影院| 99视频内射三四| 黑人精品XXX一区一二区| 超碰欧美97资源| AV丝袜少妇| 五月丁香啪啪啪| 一本久道在线综合视频| 亚洲最新Av| 啊啊啊操死我了| 九九九久久久久| 91肏屄网| 久久久蜜桃一区二区三区| 日本操大逼| 偷拍偷窥与盗摄视频专区| 清纯唯美综合亚洲| 亚洲AV人人澡人人爱| 日韩在线视频1234| 丁香五月激情啪啪| 免费簧片在线观看| 国产毛片久久久久久久| 91麻豆天美传媒HD| 91在线免费精品视频| 成人黑料社久久| 青青色在线观看| 女人18精品一区二区三区| 综合网~91综合网| 嗯嗯嗯啊啊啊在线免费观看| 成人精品在线观看| 久青草影院| 日韩AV熟女乱伦| 国产黄色在线播放观看| 日本性爱视频一级| 亚洲欧美国产中文视频| 欧美A片中文字幕| 青草成人免费视频一com| 欧美AB在线| 久热最新在线杭州| 日韩欧美女求操每天更新| 亚洲91射| 福利视频网站| 日日骚AV| 91碰超| 国产探花日韩援交| 高清国产无码av| 亚洲中字幕日本一区二区三区| 老妇女91| 欧美后入| 成人精品久久久午夜福利| 日韩欧美大片免费高清啪啪| 成人八戒网站| 婷婷大香蕉| 97超碰碰碰| 熟女日韩| 欧美色天堂网在线视频| 性性欧美| 97亚洲国产| 成人九九| 日韩性爱一级片| 新亚洲无码| 男女激烈网站最新| 开心五月深爱五月| 天堂麻豆天美| 国产乱不卡| 亚洲男人天堂av| 国内偷自视频区视频综合| 黄片免费久久久久久久| 福利五区| 岛国免费视频在线| 亚洲情色中文字幕一区| 亚洲日韩一区电影| 中文字幕免费观看| 亚洲情色 自拍| 亚洲熟女av中文字幕| 88xx成人精品视频| 免费看久久久性性| 91人妻视频在线| 久操在97| 日韩免费高清大片在线| 久久久国产成人一区二区三区在线 | 天天天做天天天爱天天天爽| 大肥女高潮bbwbbwhd视频| 91亚洲色人| 天天天天天干夜夜夜夜夜操| 欧美性色综合网| 久久久久久99999国产精品| 碰碰97| 在线无码操| 精品一区96| 日本免费一区二区不卡| 亚洲成人黄色在线观看| julia高潮后不停追击中出| 亚洲综合小视频小说在线观看| 国产精品色约约| 操逼视频国产无套| 婷婷五月丁香五月| 后入福利| 天堂中文资源在线bt| 天天操女人| 999色欧美中文字幕| 操操操五月天婷婷丁香影院| 久久9精品视频| 少妇九九九九| 激情久久久| 久久久91福利姬| 国产v片在线免费观看| 五月婷婷激情网| 婷婷九月国产| 国产熟女免费观看久久| 台湾大香蕉99热| 久久大黄片| 欧美成人精品A片免费一区99| 天美传媒AV国产在线| 成·人免费午夜在线观看| 国内毛片无码一级毛片| 人妻喷水| 91人妻Pr| juliaann欧美丝袜办公室| 女人高潮抽搐喷水视频网站| 一摸二插三插| 一起草精品人妻| 欧美激情亚洲情色| 欧美日本一区二区a人| 蜜桃一区二区三区| 色色香蕉| 97 国产精品| 久久婷综合| 久久久青青草| 情色AV电影| 97久久网| 成人热久久精品| 26uuu成人影片| 国产SV一线| 热久久国产| 91日产欧美| 免费簧片在线观看| 国产精品成人午夜福利| 欧美综合97www| 蜜乳视频网站| 国产丝袜高跟美女av免费观看| av绯色| 人妻喷水| 99青草| 香伊人在线| 99热 按摩 日韩| 欧美精品久久久久久久久88| 蜜臀久久99精品久久久久久婷婷| yirendaxiangjiashipin| 黄片免费视频2019| 久久99久久99精品天美传媒棢·纸:. | 久草婷婷| 日逼视频日本| 一二三区视频在线观看| 国产熟女| 亚洲中文字幕三级在线| 国产福利电影| 中出20p| 黄页18禁| 久久久国产三级黄色片| 香蕉欧美| 亚洲成人在线乱码色午夜| 日韩亚洲美女一区久久| 国内亚洲精彩视频在线| 亚洲性天堂| 乱老熟女一区二区三区| 开心激情站| 国产又黄又粗的视频| 人妻 欧美亚洲| 粉嫩国产精品久久粉嫩| 午夜影美女日鸡鸡天天视频国产| 97亚洲综合| 天天操天天看| 国产超碰在线一区| 91黑丝在线播放| 人妻一区视频| 亚洲中字幕日本一区二区三区| 日韩精品9区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 欧美成人都市人妻| 国产精品自在自拍视频| 一区二区三区美女超清| 中国熟妇| 日本不卡中文| 久草线上视频免费看| 大香蕉综合网| 91亚.色| 久久久久久91香蕉国产| 国产欧美精品日韩区二区麻豆天美| 思思热国产在线视频| 一区二区三区四区理论片| 天天超级碰碰碰| 天天综合网91入口| 熟女日韩| 久久手机好看网站| 亚洲人妻一区二区三区| 2020视频1区2区3区| 91精品伊人久久久大香线蕉91| 岛国1区2区3区在线观看| 综合第一页| 91高清欧美| 欧美久久人体| 五十路熟女,国产欧美精品区一区二区三区 | 操曰本熟女| 伊人网在线观看| 精品久久久久9999| 狠插 制服 自拍| 97干色天堂| 精品少妇后入一区二区三区四区人妻巨乳| 亚洲欧美中文日韩视频中国语| 两性色网| 天天色播亚洲综合网站| 免费的黄片wwwwww| 少妇滛荡视频| 性爱视频久久| 欧美综合骚| 日韩在线视频1234| 欧州激情视频在线一区二区| 看黑丝美女操逼青青网站| 国产无遮挡| 亚洲宗合电影| www被窝色com| 农村少妇久久久久久久| 欧美啪啪色吧在线| 97精品久久| 精品免费视频国产一区| 国产强奸乱伦xd| 奇米四色影视777久久久| 国产一区二区a毛片| 国产97视频免费观看| 国模少妇一区二区三区| 亚洲五月丁香花狠狠干一区二区三区 | 99这里有精品| 性性欧美| 亚洲精品乱码久久久久久蜜桃麻豆| 一卡二卡三卡| 黄色激情电影在线观看| 高跟丝袜AV专区国产| 久久激情综合| 亚洲另类色图片| 91麻豆一二三区| 色天天野狼综合社区| 久久久555| 欧美第一页| 欧美一级黄片视频在线| 国产精品久久久久av| 熟女精品一区二区三区| 亚洲www91| 欧美综合1性辶| 亚洲麻豆av一区二区| 欧美日韩日产免费网站看| 白嫩国模丰满一二三区| 97香焦色区| 国产女人9999| 亚洲av无码国产精品字幕| 最新啪啪视频| 91总综合网| 日日不卡av| 7777奇米影视久久| 亚州精品一区二区三区香中文字幕在线| 嗯嗯嗯,草死我| 久久超碰天天| 成 人片 黄色大片| 欧美|91色综合| 粉嫩久久久极品| 高清国产精品福利网站| 丁香婷婷啪啪| 亚洲女人毛茸茸91| 天天操人人操狠狠插| 一起草AV| 亚洲高潮影院| 97国产高清视频在线观看| 91青视频| 亚洲久9| 最新的亚洲无吗| 综合日韩激情另类图片| 熟女探花啪啪| 人人人人人人少妇| 97亚洲色图| 成人免费在线网站| 日韩中文9| 久久久久免费看少妇A片特黄| 久久久久久久久久久六六| 超碰 国产熟女精品一区| 美女操逼A A| 欧美黑人性猛交91| 精品久久久久久久| 日本天天操| 加勒比久久av| 手机在线人成免费视频| 国产精品久久久九九九| 日韩欧美tv一区二区在线观看| 蜜桃精品一区二区三区ww| 97超碰欧美精品| 亚洲AV永久无码一区仙野| 黄色十八禁| 国产A v无码专区| 75大香蕉| 国产精品久久久久久久黄无码| 爽爽爽免费视频| 色色色日本| 亚洲综合另类欧美久久久| 欧美日韩97| 最新加勒比丝袜在线| 超碰免费97| 人妻碰碰碰碰碰碰| 久久久精品电影| 伊人久久大香蕉线AV五月天| 精品国产一区二区三区四区在线看| 超碰在线人妻不卡| 美女尤物人人操| 破处bbq| 91麻豆va国产精品| 国产精品96| 人妻精品4K4K4K4K4| 99婷婷一区二区| 日本一区99| 国产精品极品美女视频| 99日视频在线免费| 久久五月份| 操逼网站网站| 久久久久久少妇| 色婷婷影院| 人人么人人操| 男人天堂网手机版婷婷| 偷拍伦理视频| 国产精品呦一区二区三区| 亚洲色图第一页| 91久久久久免| 激情小说成人日本无码一| 欧美美逼| 激情综合av| 久久艹逼视频| 手机午夜电影神马久久| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 日本精品成人无码| 熟女乱3伦999| 男人的天堂日韩| 床上啊啊啊一区二区三区| 亚洲黄片免费在线播放| 久久久久久人| 日韩精品9999| 麻豆天美国美国产| 老司机老司机午夜影院| 夜色91| 中文欧丝袜诱惑| 最新加勒比丝袜在线| 国产综合网站在线播放 | www.av在线观看| 中文操逼字幕| 97亚洲自在精品在线观看| 91最新综合| 国产精选三级在线观看| 欧美日韩国产另类综合| 国产三级片在线观看| 97精选久久| 91色黑人少妇| 大香蕉AV丝袜| 天天日少妇逼AV| 亚洲欧美国产成人综合不卡| 樱花蜜乳av| 久久午夜色播影院免费高清| 九九免费影片| 伦在线97| 热久日综合| 综合网,亚洲,欧美| 少妇二级| 色5月婷婷| 欧美黑人精品一区二区| 免费的很黄很污的全部视频| A一区片| 蜜臀一区二区三区在线| 欧色网址| 超碰97久| 日本2020一区二区| 新怡红院| 亚州黄站| 中国少妇啪啪视频| 啊啊啊啊嗯嗯在线久久久| 99热8| 久久精品人妻一区二区| 91路www| 日韩欧美资源| 亚州熟妇精品| 国产人妻精品一区二区三区秋霞| 亚州中文字幕超碰97| 色五月第四色| 天堂伊人久久| 60秒免费视频| 9ⅰ久久久天天| 亚洲涩图欧美| 女人天堂网| 日韩91网| 亚洲精品九九九| 曰韩中文人妻视频| 日韩成人精品| 秋霞无码av鲁丝片一区| 欧美顶级黄片AAAAA在线免费看| 国产福利影视| 日韩欧美视频青青| 中文字幕 一区二区 亚洲无码| 久草久热| 久久久禁| 天天综合网~91| 69麻豆天美| 欧美日韩国产一区二区小黄片大全| 无码直播久久久| 国产成人午夜视频网址| 久久AV无码网址| 涩五月婷婷| 成人精品电影| 久久综合久色欧美综合狠狠| 日本布卡一区二三区| 无码国产精品96久久久久孕妇| 亚洲国产成人精品久久久国产成人一区二区| 亚洲中文字幕精品一区| 国产日韩欧美亚洲精品95| 色官网在线| 热久久精品| 熟妇高潮精品一区二区三区下载| 麻豆熟妇乱妇熟色A片在线看| 日韩97| xxx0国产在线播放| 欧美乱色| 亚洲精品黑丝| 国产精品爆乳懂色蜜乳| 国产又大又硬又长又粗| 日韩在线女优天天干| 色天堂在线观看| 亚洲情欲| 国产日韩在线播放| 啊啊啊好湿久久| 蜜臀99久久精品| 日本一区二区三区免费观看| 伊人嫩草| 欧美一级AAAAAAA| 99视频自拍| 91五月天| 亚欧免费观看视频| 六月婷婷综合| 97日视频| 黄片www视频免费| 一区二区三区 日韩欧美| 91xingse| 欧美热图99| 黑人操一区二区| 丝袜内射| 精品少妇999| 国产激情在线| 国产精品久久久久久久免牛肉蒲团| 亚洲天堂欧美| 大香网伊人久久综合| 青青草久久| 亚洲第一免费视频| 99re95| 日本淫乱女一区二区三区视频| 成人性爱电影一区二区| 九9热伊人| 久久久久久日韩| 久久综合精品一区二区三区| 97干色| 艹我哪美一区无码| 精品久久97观看在线视频| AV无码久久久精品| 国产久久久久影院老熟女| 久久久国产av美女私房| 97综合日韩| 亚洲欧美色图| 国产自产91区13区| 国产精品点击进入在线影院高清| 国产后入精品| 97视频在线看| 亚洲AV无码| 中文字幕一区电影在线观看| 久久超碰日韩精品| 美女91网| 国产老女人久久毛| 久热最新在线杭州| 亚洲性天堂| 丝袜 中出 制服 人妻 美腿 中文字幕| 四虎884a| 91 丝袜在线观看| 国产久久男人天堂| 超碰久草| 国产精品熟女一区二区三区| 欧美色网| www..com操老师| 人人做人人妻人人夜视频| 伊人色综合网电影| 99热久| 亚洲免费精品一区| 日本九九久久99| 美女上床网站| 性天堂| 一本一道波多野毛片中文在线| 美女操逼福利视频| 国产丝袜视频| 偷拍五区| 久久久久人妻二区精品叶可怜| 国产AV无码AV| 精品人妻夜夜草| 午夜福利 成人 91| 亚洲国产精品99久久久| 综合色色婷婷| 五月开心久久AV官网| 超碰99re| 精品久久在线区一区| 欧美激情 日韩精品| 人人操人人摸人| 动漫爆乳3D奶水一区在线观看| 国产玖玖| 亚洲 日本 不卡| 91爆操视频| 亚洲精品天天影视综合网| 变态综合色| 黄片色区软件| 91日日| 精品国产91内射久久| 99啪啪| 大逼色网站| 国产精品制服丝袜清纯唯美| 少妇六月天| 国产精品午夜AV完会免费| 乱人伦 国语对白:视频直接看| 日韩综合97P| 另类 日韩 熟女| 日韩三级性| 99精品久久久久久久婷婷蜜桃| 亚洲男人天堂2016| 国产一级作爱毛片| 国产九九九九九九| 九久9精品| 91色夜| 97玖玖人妻| 国产精品一区二区亚洲人成毛片| 色九月综合| 国产乱伦亚洲| 69久久| 中文字幕啊啊啊在线观看视频| 91五十路| 欧美A√综合网 | 91操熟女视频 | 亚洲欧美一区二区网址| 97久久精品亚洲中六字幕| 精品人妻一区二区视频| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 久操综合在线| 操www| 999热这里只有精品| 人人爽天天爽| 国产精品探花视频| 亚洲精品一区二区日本| 欲女人妻性色av| 超碰三级秋霞| 伊人黄色视频免费观看| 日本人妻伦在线中文字幕| 日日妻色网| 蜜乳AV免费观看| 国产亚洲日韩欧| 啊啊啊不要好疼视频| 热热色AV| 日韩精品电影| 97视频网站在线观看| 午夜高清成人在线视频| 无码久久亚洲高清,| 亚州性9| 久久久久久中文| 9999久久久久| 欧美成人综合| 国产成人天堂| 中美日韩毛片| 久久草草欧美精品| 五十路六十路七十路熟婆| 久久久久久久久9| 蜜臀在线网站| 亚洲精品九九九九九九| 久久久性少妇| 欧美久久人体| 九九操久久国产免费视频| 亚洲熟女乱色一区二区三区久久久| 啊啊啊啊二区好大| 97欧美精品综合| 三级网站超变态精品| 欧美在线啊啊啊| 青青欧美| 亚洲蜜臀精品视频久久| 黑白配性爱AV成| 亚洲人妻爽爽爽| 搡老女人911熟妇老熟女| 超碰97人妻| 青青久久手机线视频| 国产福利av精彩对白| 99人人干| 婷婷情色综合网| 日本黄色裸日本黄色裸体| 97频视在线| 极品色综合| 中文字幕日韩专区精品系列| 欧美一级A片不卡视频。| 国产精品久久久久无码AV会牛| 色五月婷婷色| 91撸色网 玖玖网 欧美| 男人的天堂kva| 国产日本一区二区三区蜜臀在线观看| 波多野42部激情无码喷潮| 看一级特黄a大一片| 狼人综合婷婷激情四射 | 精品久久久久,69国产成人精| 肥臀熟女福利视频一区二区| 久草精品一区 | 免费国产视频| 国产一级αv免费看片| 91天天综合网,天天综合网| 91精品婷婷国产综合久久| 高清国产成人无码| 青青操97| 日日夜夜精品视频| 成年人免费观看网站| 五月天人妻综合| 久久东京热成人| 91九色丰满高潮| 看大黄色大片原件| 夜夜爽妓女| 秋霞怕怕片| 天天影视综合网欧美精品| 天天日美女的B| 欧美顶级黄色大片免费| 黄色不卡视频| 日韩Va亚洲va欧美Ⅴa久久| 第四色亚洲色图| 午夜视频黄| 97高清啪啪| 午夜福利无毒不卡| 亚洲自拍另类丝袜综合| 亚洲欧美在线观看无码| 啊啊啊啊二区好大| 精品国产91av一区二区三区 | 日韩激情无码影院| 日韩ab网 | 综合久久欧美| 蜜臀网 一区| 黑人中出21连凳花野真衣| 日本黄大片在线观看视频| 国产精品不卡一区二区三区| 你想操日本小逼吗| 欧美激情高清性猛交| 亚洲另类综合欧美| 成 人片 黄色大片| 亚洲图片 欧美电影| 亚洲欲色9532548967一区| 色哟哟综合| 一本大道久| 9久久美女首页| 色999;丁香五月| 波多野结衣一级视频| 蜜桃午夜视频一区二区 | 江都AV在线| 激情专区综合| 国内毛片无遮挡国产| 97爱爱官网| 日韩精品人妻中文字幕久久久| 最新国产精品久久精品| 东京热一区二区中文字幕| 中文字幕伊人| 九九英色视频| 偷拍欧美激情| 色噜噜综合在线| HEYZO高无码国产精品227| 日本不卡二区| 2017天天插| 人妻另类| 亚洲交换| 欧美色图在线视频少妇| 亚洲青色欧美| 欧美在线啊啊啊| 97色爱| 人妻密肉在线观看| 偷拍欧美综合| 久久人妻四季| 亚洲射综合网| 黄色不卡视频| #NAME?| 男人天堂久久精品不卡| 蜜臀无码一区二区| 久久精品国产96精品亚洲拳交| 男人的天堂.com| 黄色视频特级毛片| 色吧5亚洲| 一区二区免费电影久久| 久久综合资源一区二区| 国产高清MV操逼视频| 日韩乱插| 东北女人av| 久久久久ab| 久久久一区二区三区麻豆| 神马麻豆福利院| 色吧5亚洲| 人人摸人人添人人操| 激情小说五月天| 蜜桃精品一区二区三区ww| 亚洲最大的黄色电影网站。| 和协影院中文字幕三区| 91黄射| 26uuu最新| 久久五月视频| 欧洲与亚洲欧美精品中文字幕| 大香交| 蜜乳AV免费观看| 99爱精品| 久久国产999| 国产综合在线视频网站| 99久热| 懂色av中文字幕一区二区三区天美| 天美传媒婬乱在| 黄色免费网页无码| 久久精9| 中文字幕欧美丝袜07资源| 精品国产人成在线| 亚洲人妻熟妇三十三区| 日韩内| 五月丁香啪| 色综合 加勒比| 91人妻做a观看视频| 欧美日本久久精品一区| 九t超碰| 天天爽天天干| 亚洲成人在线乱码色午夜| 午夜精品久久久久久久99蜜桃一| 免费农村成人少妇人妻Aa一区二区视频 | 丝袜美腿91| 一区二区三区视频在线观看免费| 亚州综合AⅤ| 蜜桃视频成a人v在线| 久久999久| 中文字幕一区电影在线观看| 91高跟美女在线播放| 乱伦a片视频| 中文字幕视频免费| 男人的天堂在线2| 四虎影库国产精品免费| 九久精品| 东北女人的毛片| 日韩中文字幕人妻视频| 天天综合站| 中出91| 性久久| 97久操| 影音先锋一区二区在线资源| 不卡av在线中文字幕| 亚洲在线观看| 久久极品伊人| 夜夜影视四色| 天天噜| 999九九精品| 激情丁香五月| 亚洲成人日韩小说| 色九久| 综合性视频99| 日日天天久久啊啊aaa| 亚洲欧洲国产综合av| 百度百度日本操逼| 色97欧美| 精品美女久久一二三| 97午夜剧场日韩| 99精品成人免费看| 欧美夜夜狠| 天天综合网亚洲综合网| 亚洲在钱| 黑人无码一区二区| 免费a v| 日日嗷| 夜夜夜夜爽| 伊人国产视频| 混色激情av| 一区二区偷拍拍视频| 色噜噜精品一区二区三| 麻豆国产97在线| 97超碰美女| 午夜在线播放| 91成人精品| 人妻精品一区二区| 大香蕉中文网| 日韩9区| 亚洲天堂男| 久久专区| 日韩国产精品人妻无码久久久| 少妇天堂| 99婷婷一区二区| 老外又粗又长一晚做五次| 青青草久草| 蜜臀一区二区三区在线 | 中文字幕一区二区免费在线| 色综合国产在线观看| 欧美爱三级日韩久久| 伊人精品久久网站| 啪啪AV导航| 婷婷五月天色色| 天天影视色香色欲| 日韩ab网| 欧美综合亚洲| 久久av无码| 蜜乳AV一区二区三区四| 婷婷五月天激情网| 欧美另类自拍 | A久久| 国产1769在线| 大稥蕉免费视频这里只有精品| 日本三级小说中文字幕| 麻豆影音天美视频| 91精品人妻一品二品三品| 日本欧美中文字幕| 亚洲国产成人精品无码专区| 色五月激情网| 无码操逼天堂| 色97干| 手机在线观看不卡无码av| 好吊妞转入那个网| 大香交| 吖在线不卡一区二区国产剧情| 岛国精品视频在线观看| 九九拍拍精品视频在线播放| 91麻豆天美传媒在线| 狼狼色丁香久久婷婷综合五月| 又黄又爽在线观看视频 | 精品78| 九九久久99| 91亚洲狠狠色| 乱伦av麻豆| 亚欧中文字幕在线视频| 九色黄站| 人人爽天天爽| 成年无码动漫av片无尽在线 | 国产色图乱伦| 日韩精品一区二区三区四虎影视| 久久9精品网站| 91精品无码人妻系列| 热的中文 热的有码 热的国产| 操逼免费视频无码国产| 麻豆AV96熟妇人妻| 啪啪啪精品| 午夜AV污污污| 婷婷深爱五月| 78超碰| 少妇人妻精品| 中文字幕亚洲热播人妻| 夜夜无码| 视频二区美腿丝袜制服人妻欧美| 日日骚中文字幕| 熟妇最新先锋一二三区| 欧美一区二区三区四区综合| 伊人久久大香线综合无码| 亚州色图欧美| 狠狠操使劲操| 欧美亚洲se91| 国产精品制服丝袜清纯唯美| 成人性爱电影一区二区| 天天综合~91入口| 国产精品午夜福利视频| 九九热AV| 校园春色美腿丝袜 | 亚洲成人贴图| 超碰免费欧美7| 看看小穴| 国产18精品亚洲精品| 国产在线观看91精品一区| 爱丝福利| 亚州综合色图| 日韩乱码Av| 337p大胆噜噜噜噜噜91Av| 欧美色www亚洲国产阿娇要播| 亚洲极品| 麻豆伊人网| 熟女在线视频| 亚洲欧洲综合视频在线| 伊人影院综合是一个与深夜成人在线| 中国少妇XXXX做受| 国产一级αv免费看片| 学生妹天天看| 欧美视频边做饭边橾| 欧美 日韩第一性色| 开心婷婷五月| 婷婷久久五月综合激情| 青青草视频在线观看一区二区| 成人无遮挡毛片免费看| 综合视频91| 亚洲日韩精品在线播放| 黄页av| 大稥蕉免费视频这里只有精品| 亚洲精品久久久久毛片A片拉屎 | 成人一二三区| 国产精品青青草| 国产又黄又粗的视频| 日韩精品人妻中文字有码在线| 日本一区二区做爱的视频| 99色热| 嗯嗯嗯啊啊啊操的我好爽| 超碰在线观看av不卡| 天天在线91| 激情四射婷婷四五月天| 成人精品久久久午夜福利| 国产人妻精品一区二区三区秋霞| 超碰狠狠操| 人人做,人人操,人人摸| 久湿久久| 盗摄 精品 另类 一区| 欧美一区二区一级岛国大片| 欧美色图片欧美色图| 天天色悠悠激情| 国产极品美女高潮无套在线观看 | 亚洲天堂区| 亚洲色图尤物视频| 久久这里只精品| 欧美色图亚州激情| 久久人人爽人人爽人人片Ⅴ| 成人羞羞视频国产| 免费99精品国产自在在线| 天天干2019| 牛黄色久午久| 人人看人人插| 亚洲第一页色网| 日本男人插女人的逼黄色| 成功精品影院| 欧美人妻久久精品二区三区| 99999精品| 十八禁电影伊人网| 国产美脚女优尤物在线观看| 日本肉体xxxx裸交| 黄色操人| 国产精品剧情| 国产av色网| 日韩欧美被操黄免费观看| 资源在线观一 二| 亚洲精品亚洲人成在线麻豆| 免费A片三p视频| 97精品在线视频| 97在线观看免费| 亚洲人妖网| 色噜噜国产在线| 91 刺激在线| 午夜福利成人免费视频| 手机在线A片| 亚洲乱色熟女一区| 亚洲色图 欧美| 美女黄页网站| 狠狠97| 成人一级二级| 亚洲成人妻日韩在线| 天天干天天日天天射黄色大片 | 久夜操| 中出20p| 啊啊啊在线看| 久久久噜噜噜久久人妻| 美女主播色欲91抠b在线播放| 小草精彩毛片| 精品丰满人妻一区二区三区免费观| 亚洲一区二区三区欧美日韩| 色婷婷视频| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚洲的天堂网| 美女诱惑在线一区| 情色五月天久久久| 蜜臀亚洲中文| 欧美少妇一区二区三区| 天天射网| 亚洲最大黄网| 一二三啪啪专区| 77777亚洲蜜臀精品久久综合蜜臀| 97色婷婷| 久久久爆乳翘臀一线天伦理视频| 欧美在线视频99| 婷婷激情四射| 亚洲激情网一二三四区| 天美传媒国产原创中文字幕亚洲欧美另类| 五月丁香影院| 亚洲黑丝在线| 嗯啊啊啊轻点视频 | 60秒免费视频| 久久风骚城市| 狠狠爱夜夜| 家庭乱伦麻豆| 黑人美精品 A片| 激情网色| 91干熟女| 91N欧美| 欧美婷婷久久| 亚洲日韩欧美一区二区| com 首页 18岁 禁区 女优 免费 精选 同城|