一. linux常用命令
查看linux系統版本
方式一: lsb_release -a 如果顯示未找到命令使用命令安裝:yum install -y redhat-lsb 方式二:cat /etc/redhat-release (適用于RedHat、CentOS) 方式三:cat /etc/issue備注:顯示以下資訊即為CentOS
防火墻相關
備注:CentOS7 的防火墻配置跟以前版本有很大區別,默認使用的是firewall,與之前的版本使用iptables不一樣CentOS7
查看防火墻狀態 :firewall-cmd --state
注:running——開啟,not running ——關閉
開啟防火墻:systemctl start firewalld.service
關閉防火墻:systemctl stop firewalld.service
關閉開機啟動:systemctl disable firewalld.service
開啟開機啟動:systemctl enable firewalld.service
CentOS6
service方式: 查看防火墻狀態:service iptables status 開啟防火墻:service iptables start 關閉防火墻: service iptables stop iptables方式: 先進入init.d目錄,命令如下: [root@centos6 ~]# cd /etc/init.d/ [root@centos6 init.d]# 查看防火墻狀態: [root@centos6 init.d]# /etc/init.d/iptables status 暫時關閉防火墻: [root@centos6 init.d]# /etc/init.d/iptables stop 重啟iptables: [root@centos6 init.d]# /etc/init.d/iptables restart
釋放linux快取
sync && echo '1' > /proc/sys/vm/drop_caches sync && echo '2' > /proc/sys/vm/drop_caches sync && echo '3' > /proc/sys/vm/drop_caches sync: 將所有未寫的系統緩沖區寫到磁盤中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射檔案,否則在釋放快取的程序中,可能會丟失未保存的檔案 0 – 不釋放 1 – 釋放頁快取 2 – 釋放dentries和inodes 3 – 釋放所有快取
Linux日志查看
將日志檔案中的某個時間段的日志輸出到新的檔案 sed -n '/2019-04-22 16:10:/,/2019-04-22 16:20:/p' log.log > bbb.txt 查找某個日志檔案中關鍵字的前后多少行 cat filename | grep 關鍵字 -C10 -C:顯示前后多少行 -A:顯示后多少行 -B:顯示前多少行
查看埠使用情況
-- 查看埠情況 netstat -tnulp | grep 26379 -- linux 查看埠占用情況 netstat -anp | grep 80 -- 當前環境已經使用了的埠資訊 netstat -nultp -- 未找到該命令使用下面的安裝 yum -y install net-tools
Linux定時任務
#linux定時任務: service crond start //啟動服務 service crond stop //關閉服務 service crond restart //重啟服務 service crond reload //重新載入配置 service crond status //查看crontab服務狀態 #安裝crond yum -y install vixie-cron yum -y install crontabs #加入開機啟動 chkconfig –level 345 crond on #重啟rsyslog #重啟cronlog(沒有日志輸出用這個) sudo service rsyslog restart 日志位置: /var/log/cronXXX
#查看任務
crontab -l
#編輯任務
crontab -e
命令時間格式 : * * * * * command 分 時 日 月 周
第1串列示分鐘1~59 每分鐘用*或者 */1表示
第2串列示小時1~23(0表示0點) 第3串列示日期1~31 第4串列示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要運行的命令
一些Crontab定時任務例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每晚的21:30 重啟apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重啟apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重啟apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之間每隔30分鐘重啟apache
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重啟apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11點到早上7點之間,每隔一小時重啟apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小時重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4號與每周一到周三的11點重啟apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一號的4點重啟apache
*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org #每半小時同步一下時間
0 */2 * * * /sbin/service httpd restart #每兩個小時重啟一次apache
50 7 * * * /sbin/service sshd start #每天7:50開啟ssh服務
50 22 * * * /sbin/service sshd stop #每天22:50關閉ssh服務
0 0 1,15 * * fsck /home #每月1號和15號檢查/home 磁盤
1 * * * * /home/bruce/backup #每小時的第一分執行/home/bruce/backup這個檔案
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; #每周一至周五3點鐘,在目錄/home中,查找檔案名為*.xxx的檔案,并洗掉4天前的檔案,
30 6 */10 * * ls #每月的1、11、21、31日是的6:30執行一次ls命令
nfs掛載
# 查看掛載盤 cat /etc/fstab # 重新掛載 mount -a
二 . Docker 常用命令
查看docker容器串列 :
docker ps
查看日志
日志查看語法: docker logs [OPTIONS] CONTAINER OPTIONS說明: -f : 跟蹤日志輸出 --since :顯示某個開始時間的所有日志 -t : 顯示時間戳 --tail :僅列出最新N條容器日志 查看日志命令:docker logs -f 容器ID 實時查看最后500條日志:docker logs -f --tail=500 容器ID 查看最近30分鐘的日志:docker logs --since 30m 容器ID 查看某時間之后的日志的最新500條日志:docker logs --since="2021-11-30" --tail=500 容器ID 查看某時間之后的日志:docker logs -t --since="2021-11-30T00:00:00" 容器ID 查看某時間段日志:docker logs -t --since="2021-11-30T00:00:00" --until "2021-12-30T00:00:00" 容器ID
鏡像匯出匯入
# 匯出鏡像到檔案中 $ docker save -o nginx-alpine.tar nginx:alpine # 匯入鏡像 $ docker load -i nginx-alpine.tar
鏡像洗掉
-- 洗掉指定鏡像 docker rmi --force [-f] $(docker images | grep tarzan-mes | grep "7 months"| awk '{print $3}') -- 洗掉沒有打標簽的鏡像 docker rmi [-f] $(docker images -q | awk '/^<none>/ { print $3 }') --洗掉所有鏡像 docker rmi [-f] $(docker images -qa) 這類無標簽鏡像也被稱為 虛懸鏡像(dangling image) ,可以用下面的命令專門顯示這類鏡像: docker image ls -f dangling=true 一般來說,虛懸鏡像已經失去了存在的價值,是可以隨意洗掉的,可以用下面的命令洗掉, docker rmi $(docker images -q -f dangling=true)
鏡像操作
docker build . -t hzero-register:v200 -f ./../src/main/docker/Dockerfile docker tag hzero-register:v200 k8s1.cluster.local:5000/hzero-register:v200 docker push k8s1.cluster.local:5000/hzero-register:v200
三. K8s命令
備注:uat 指的是namspase ,mes-interface-7bbf6d64c9-88dhw 指的是pod名稱 進入pod內部執行命令: kubectl exec -it uat -n mes-interface-7bbf6d64c9-88dhw -- /bin/bash[root@mes-prd-k8s1~]#kubectl -n mes-pro cp./jdk-8u291-linux-x64.tar.gz tarzan-mes-69994cdfdb-kfg96:/jdk.tar.gz [root@mes-prd-k8s1 ~]kubectl -n mes-pro exec -it tarzan-mes-69994cdfdb-kfg96 -/bin/bash
日志相關
查看某個pod上一個版本日志:kubectl logs -p -n mes-pro tarzan-mes-6bd4bf5b79-xmkgk 查看pod上次退出詳細:kubectl describe pod tarzan-mes-864bcbcd46-gw5zm -n mes-pro k8s節點安裝arthas : kubectl -n uat exec mes-interface-7bbf6d64c9-88dhw -- wget https://arthas.aliyun.com/arthas-boot.jar && java -jar arthas-boot.jar 1 備注:最后的1是行程號
將pod中的日志復制到宿主機
kubectl exec -n service tarzan-mes-c75587bfc-jpjp9 -- tar cf - data/tarzan/mes/tarzan-mes-2022-05-15.0.log | tar xf - -C /tmp
pod 里面裝telnet
apt update
apt install telnet
其它常用命令
kubectl get po -A kubectl get nodes
kubectl get pod -A -o wide kubectl describe nodes wmsdevelapp kubectl taint node wmsdevelapp node.kubernetes.io/unschedulable:NoSchedule- kubectl top pod -n mesuat journalctl -u kubelet.service -- kubectl taint nodes 192.168.0.137 key1=value1:NoSchedule-
四、Mysql
查看正在鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
查看等待鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
查詢 正在執行的事務
SELECT * FROM information_schema.INNODB_TRX;
查詢mysql資料庫中存在的行程
select * from information_schema.`PROCESSLIST`(show processlist;)
殺掉執行緒
kill 執行緒id
通過檢查InnoDB_row_lock狀態變數來分析系統上的行鎖的爭奪情況
show status like 'innodb_row_lock%'; 對于各個狀態說明如下: Innodb_row_lock_current_waits:當前正在等待鎖的數量; Innodb_row_lock_time:從系統啟動到現在鎖定總時間長度; Innodb_row_lock_time_avg:每次等待所花平均時間; Innodb_row_lock_time_max:從系統啟動到現在等待最長的一次所花的時間長度; Innodb_row_lock_waits:系統啟動到現在總共等待的次數; 對于這5個狀態變數,比較重要的是: Innodb_row_lock_time_avg,Innodb_row_lock_waits,Innodb_row_lock_time, 尤其是當等待次數很高,而且每次等待時長也很大的時候,我們就要分析系統中為什么有這么多的等待,然后根據分析結果來制定優化,
select @a1:=VARIABLE_VALUE as a1 from information_schema.GLOBAL_STATUS where VARIABLE_NAME='innodb_os_log_written' union all select sleep(60) union all select @a2:=VARIABLE_VALUE as a2 from information_schema.GLOBAL_STATUS where VARIABLE_NAME='innodb_os_log_written'; select round((@a2-@a1)/1024/1024/@@innodb_log_files_in_group) as MB; -------------------- SELECT p2.`HOST` Blockedhost, p2.`USER` BlockedUser, r.trx_id BlockedTrxId, r.trx_mysql_thread_id BlockedThreadId, TIMESTAMPDIFF( SECOND, r.trx_wait_started, CURRENT_TIMESTAMP ) WaitTime, r.trx_query BlockedQuery, l.lock_table BlockedTable, m.`lock_mode` BlockedLockMode, m.`lock_type` BlockedLockType, m.`lock_index` BlockedLockIndex, m.`lock_space` BlockedLockSpace, m.lock_page BlockedLockPage, m.lock_rec BlockedLockRec, m.lock_data BlockedLockData, p.`HOST` blocking_host, p.`USER` blocking_user, b.trx_id BlockingTrxid, b.trx_mysql_thread_id BlockingThreadId, b.trx_query BlockingQuery, l.`lock_mode` BlockingLockMode, l.`lock_type` BlockingLockType, l.`lock_index` BlockingLockIndex, l.`lock_space` BlockingLockSpace, l.lock_page BlockingLockPage, l.lock_rec BlockingLockRec, l.lock_data BlockingLockData, IF (p.COMMAND = 'Sleep', CONCAT(p.TIME,' seconds'), 0) idel_in_trx FROM information_schema.INNODB_LOCK_WAITS w INNER JOIN information_schema.INNODB_TRX b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.INNODB_TRX r ON r.trx_id = w.requesting_trx_id INNER JOIN information_schema.INNODB_LOCKS l ON w.blocking_lock_id = l.lock_id AND l.`lock_trx_id`=b.`trx_id` INNER JOIN information_schema.INNODB_LOCKS m ON m.`lock_id`=w.`requested_lock_id` AND m.`lock_trx_id`=r.`trx_id` INNER JOIN information_schema. PROCESSLIST p ON p.ID = b.trx_mysql_thread_id INNER JOIN information_schema. PROCESSLIST p2 ON p2.ID = r.trx_mysql_thread_id ORDER BY WaitTime DESC; -------------- 00:0c:29:b3:b7:36 brd ff:ff:ff:ff:ff:ff SELECT p2.`HOST` 被阻塞方host, p2.`USER` 被阻塞方用戶, r.trx_id 被阻塞方事務id, r.trx_mysql_thread_id 被阻塞方執行緒號, TIMESTAMPDIFF( SECOND, r.trx_wait_started, CURRENT_TIMESTAMP ) 等待時間, r.trx_query 被阻塞的查詢, l.lock_table 阻塞方鎖住的表, m.`lock_mode` 被阻塞方的鎖模式, m.`lock_type` "被阻塞方的鎖型別(表鎖還是行鎖)", m.`lock_index` 被阻塞方鎖住的索引, m.`lock_space` 被阻塞方鎖物件的space_id, m.lock_page 被阻塞方事務鎖定頁的數量, m.lock_rec 被阻塞方事務鎖定行的數量, m.lock_data 被阻塞方事務鎖定記錄的主鍵值, p.`HOST` 阻塞方主機, p.`USER` 阻塞方用戶, b.trx_id 阻塞方事務id, b.trx_mysql_thread_id 阻塞方執行緒號, b.trx_query 阻塞方查詢, l.`lock_mode` 阻塞方的鎖模式, l.`lock_type` "阻塞方的鎖型別(表鎖還是行鎖)", l.`lock_index` 阻塞方鎖住的索引, l.`lock_space` 阻塞方鎖物件的space_id, l.lock_page 阻塞方事務鎖定頁的數量, l.lock_rec 阻塞方事務鎖定行的數量, l.lock_data 阻塞方事務鎖定記錄的主鍵值, IF (p.COMMAND = 'Sleep', CONCAT(p.TIME,' 秒'), 0) 阻塞方事務空閑的時間 FROM information_schema.INNODB_LOCK_WAITS w INNER JOIN information_schema.INNODB_TRX b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.INNODB_TRX r ON r.trx_id = w.requesting_trx_id INNER JOIN information_schema.INNODB_LOCKS l ON w.blocking_lock_id = l.lock_id AND l.`lock_trx_id`=b.`trx_id` INNER JOIN information_schema.INNODB_LOCKS m ON m.`lock_id`=w.`requested_lock_id` AND m.`lock_trx_id`=r.`trx_id` INNER JOIN information_schema. PROCESSLIST p ON p.ID = b.trx_mysql_thread_id INNER JOIN information_schema. PROCESSLIST p2 ON p2.ID = r.trx_mysql_thread_id ORDER BY 等待時間 DESC; -------------------------------------------------------------------View Code
查看事務等待狀況
select r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query from information_schema.innodb_lock_waits w inner join information_schema.innodb_trx b on b.trx_id = w.blocking_trx_id inner join information_schema.innodb_trx r on r.trx_id = w.requesting_trx_id;View Code
查看更具體的事務等待狀況
select b.trx_state, e.state, e.time, d.state as block_state, d.time as block_time, a.requesting_trx_id, a.requested_lock_id, b.trx_query, b.trx_mysql_thread_id, a.blocking_trx_id, a.blocking_lock_id, c.trx_query as block_trx_query, c.trx_mysql_thread_id as block_trx_mysql_tread_id from information_schema.innodb_lock_waits a left join information_schema.innodb_trx b on a.requesting_trx_id = b.trx_id left join information_schema.innodb_trx c on a.blocking_trx_id = c.trx_id left join information_schema.processlist d on c.trx_mysql_thread_id = d.id left join information_schema.processlist e on b.trx_mysql_thread_id = e.id order by a.requesting_trx_id;View Code
查看未關閉的事務
–mysql 5.6 select a.trx_id, a.trx_state, a.trx_started, a.trx_query, b.id, b.user, b.db, b.command, b.time, b.state, b.info, c.processlist_user, c.processlist_host, c.processlist_db, d.sql_text from information_schema.innodb_trx a left join information_schema.processlist b on a.trx_mysql_thread_id = b.id and b.command = 'sleep' left join performance_schema.threads c on b.id = c.processlist_id left join performance_schema.events_statements_current d on d.thread_id = c.thread_id; –mysql 5.5 select a.trx_id, a.trx_state, a.trx_started, a.trx_query, b.id, b. user, b. host, b.db, b.command, b.time, b.state, b.info from information_schema.innodb_trx a left join information_schema.processlist b on a.trx_mysql_thread_id = b.id where b.command = 'sleep';View Code
查看某段時間以來未關閉事務
select trx_id, trx_started, trx_mysql_thread_id from information_schema.innodb_trx where trx_started < date_sub(now(), interval 1 minute) and trx_operation_state is null and trx_query is null;
mysql 查詢正在執行的sql
select * from information_schema.`PROCESSLIST` where info is not null ORDER BY time desc;
mysql 查詢慢日志檔案位置
show variables like "%slow_query_log%";
查找有碎片的表
方法一: select table_schema db, table_name, data_free, engine from information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free > 0; 方法二: SELECT TABLE_NAME,(DATA_LENGTH+INDEX_LENGTH)/1024/1024 size_mb,data_free/1024/1024 free_mb,TABLE_ROWS FROM information_schema.tables where table_schema not in ('information_schema', 'mysql') and data_free/1024/1024>=1 order by free_mb desc;View Code
清理表碎片
方法1
alter table 表名 engine=InnoDB alter table tableName engine=InnoDB; #方法2
optimize table 表名 optimize table tableName;
找出沒有主鍵的表
Select t.table_schema,t.table_name,t.engine,t.table_rows From information_schema.tables as t Left join information_schema.table_constraints as tc On tc.table_schema=t.table_schema And tc.table_name=t.table_name And tc.constraint_type='PRIMARY KEY' Where t.table_type='BASE TABLE' And tc.constraint_type is null And t.table_schema not in ('mysql','performance_schema','information_schema');View Code
慢日志相關設定
more /etc/my.cnf show variables like '%slow%'; show variables like '%long%'; set global slow_query_log=off; set global slow_query_log=on; set @@long_query_time=10;
五、ORACLE
oralce 監聽
查看監聽狀態
lsnrctl status
啟動監聽
lsnrctl start
關閉監聽
lsnrctl stop
手動注冊監聽
alter system register;
oracle密碼過期處理
查詢默認的密碼保存時間: SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 修改為不限期,若有定期更換密碼的需求,則可以設定為每個密碼更換周期所需的天數(如:30:,表示每過30天就需要重置一次密碼) 不限期:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 30天的密碼有效期:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 30;
切換到PDB執行:
alter session set container=orcl1;
修改密碼:
alter user 密碼已過期的USERNAME identified by 密碼;
歸檔日志相關
洗掉指定時間前的檔案 find ./ -name *.log -mtime +7| xargs rm -rf crosscheck archivelog all; 洗掉過期日志 delete noprompt expired archivelog all; 洗掉所有日志 DELETE EXPIRED archivelog all; 洗掉三天以前日志 delete archivelog until time 'sysdate -3';
可用性狀態
select INSTANCE_NUMBER,INSTANCE_NAME,STARTUP_TIME,STATUS from gv$instance;
表空間利用狀態
SELECT d.tablespace_name "Name", d.status "Status", TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)", TO_CHAR (NVL (a.BYTES - NVL (f.BYTES, 0), 0) / 1024 / 1024, '99999999.99' ) USE, TO_CHAR (NVL ((a.BYTES - NVL (f.BYTES, 0)) / a.BYTES * 100, 0), '990.00' ) "Used %" FROM SYS.dba_tablespaces d, (SELECT tablespace_name, SUM (BYTES) BYTES FROM dba_data_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM (BYTES) BYTES FROM dba_free_space GROUP BY tablespace_name) f WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) AND NOT (d.extent_management LIKE 'LOCAL' AND d.CONTENTS LIKE 'TEMPORARY') UNION ALL SELECT d.tablespace_name "Name", d.status "Status", TO_CHAR (NVL (a.BYTES / 1024 / 1024, 0), '99,999,990.90') "Size (M)", TO_CHAR (NVL (t.BYTES, 0) / 1024 / 1024, '99999999.99') USE, TO_CHAR (NVL (t.BYTES / a.BYTES * 100, 0), '990.00') "Used %" FROM SYS.dba_tablespaces d, (SELECT tablespace_name, SUM (BYTES) BYTES FROM dba_temp_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM (bytes_cached) BYTES FROM v$temp_extent_pool GROUP BY tablespace_name) t WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND d.extent_management LIKE 'LOCAL' AND d.CONTENTS LIKE 'TEMPORARY';View Code 復制
緩沖區命中率
select(1-(sum(decode(name,'physical reads',value,0))/(sum(decode(name,'db block gets',value,0)) +sum(decode(name,'consistent gets',value,0)))))*100"Hit Ratio" from gv$sysstat;
資料字典快取命中率
select(1-(sum(getmisses)/sum(gets)))*100"Hit Ratio"from gv$rowcache;
庫快取命中率
selectSum(Pins)/(Sum(Pins)+Sum(Reloads))*100"Hit Ratio"from gV$LibraryCache;
PGA記憶體排序命中率
select a.INST_ID,a.NAME,a.value "Disk Sorts", b.value "Memory Sorts",round((100*b.value)/decode((a.value+b.value),0,1,(a.value+b.value)),2)"Pct Memory Sorts"from gv$sysstat a, gv$sysstat b where a.name ='sorts (disk)'and b.name ='sorts (memory)';
備注:這些值在98% 以上比較好
資料碎片狀態
USED_MB:表示物件已使用大小 FRAG_MB:表示碎片所占大小 FRAGMENT_PER:表示碎片率百分比 alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; /*set lines 220 pages 300 col owner for a30 col TABLE_NAME for a50 col SEGMENT_TYPE for a20*/ SELECT /*+ parallel(b 4)*/ OWNER, TABLE_NAME, tablespace_name, SEGMENT_TYPE, segment_space_management MANAGEMENT, TABLE_MB USED_MB, ROUND(WASTE_PER * TABLE_MB /100,2) FRAG_MB, WASTE_PER fragment_per, LAST_ANALYZED FROM (SELECT OWNER, SEGMENT_NAME TABLE_NAME, LAST_ANALYZED, SEGMENT_TYPE, GREATEST(ROUND(100*(NVL(HWM - AVG_USED_BLOCKS,0)/ GREATEST(NVL(HWM,1),1)),2),0) WASTE_PER, ROUND(BYTES / POWER(1024,2),2) TABLE_MB, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, HWM HIGHWATER_MARK, AVG_USED_BLOCKS, CHAIN_PER, EXTENTS, MAX_EXTENTS, ALLO_EXTENT_PER, DECODE(GREATEST(MAX_FREE_SPACE - NEXT_EXTENT,0),0,'N','Y') CAN_EXTEND_SPACE, NEXT_EXTENT, MAX_FREE_SPACE, O_TABLESPACE_NAME TABLESPACE_NAME, block_size, segment_space_management FROM (SELECT A.OWNER OWNER, A.SEGMENT_NAME, A.SEGMENT_TYPE, A.BYTES, B.NUM_ROWS, A.BLOCKS BLOCKS, B.EMPTY_BLOCKS EMPTY_BLOCKS, A.BLOCKS - B.EMPTY_BLOCKS -1 HWM, DECODE(ROUND((B.AVG_ROW_LEN * NUM_ROWS *(1+(PCT_FREE /100)))/ dt.block_size,0),0,1, ROUND((B.AVG_ROW_LEN * NUM_ROWS *(1+(PCT_FREE /100)))/ dt.block_size,0))+2 AVG_USED_BLOCKS, ROUND(100*(NVL(B.CHAIN_CNT,0)/ GREATEST(NVL(B.NUM_ROWS,1),1)), 2) CHAIN_PER, ROUND(100*(A.EXTENTS / A.MAX_EXTENTS),2) ALLO_EXTENT_PER, A.EXTENTS EXTENTS, A.MAX_EXTENTS MAX_EXTENTS, B.NEXT_EXTENT NEXT_EXTENT, B.TABLESPACE_NAME O_TABLESPACE_NAME, B.LAST_ANALYZED, dt.block_size, DT.segment_space_management FROM SYS.DBA_SEGMENTS A, SYS.DBA_TABLES B, dba_tablespaces dt WHERE A.OWNER = B.OWNER and SEGMENT_NAME = TABLE_NAME and dt.segment_space_management ='AUTO' and B.tablespace_name in('TS_RPT_DATA','IX_RPT_DATA','PERFSTAT') and dt.tablespace_name = a.tablespace_name and b.last_analyzed > to_date('20210501','yyyymmdd') union all SELECT A.OWNER OWNER, SEGMENT_NAME ||'.'|| B.PARTITION_NAME, SEGMENT_TYPE, BYTES, B.NUM_ROWS, A.BLOCKS BLOCKS, B.EMPTY_BLOCKS EMPTY_BLOCKS, A.BLOCKS - B.EMPTY_BLOCKS -1 HWM, DECODE(ROUND((B.AVG_ROW_LEN * B.NUM_ROWS *(1+(B.PCT_FREE /100)))/ dt.block_size,0),0,1, ROUND((B.AVG_ROW_LEN * B.NUM_ROWS *(1+(B.PCT_FREE /100)))/ dt.block_size,0))+2 AVG_USED_BLOCKS, ROUND(100*(NVL(B.CHAIN_CNT,0)/ GREATEST(NVL(B.NUM_ROWS,1),1)),2) CHAIN_PER, ROUND(100*(A.EXTENTS / A.MAX_EXTENTS),2) ALLO_EXTENT_PER, A.EXTENTS EXTENTS, A.MAX_EXTENTS MAX_EXTENTS, B.NEXT_EXTENT, B.TABLESPACE_NAME O_TABLESPACE_NAME, d.last_analyzed, dt.block_size, DT.segment_space_management FROM SYS.DBA_SEGMENTS A, SYS.DBA_TAB_PARTITIONS B, SYS.DBA_TABLES D, dba_tablespaces dt WHERE A.OWNER = B.TABLE_OWNER and SEGMENT_NAME = B.TABLE_NAME and SEGMENT_TYPE ='TABLE PARTITION' and dt.segment_space_management ='AUTO' and B.tablespace_name in('TS_RPT_DATA','IX_RPT_DATA','PERFSTAT') and dt.tablespace_name = a.tablespace_name AND D.OWNER = B.TABLE_OWNER AND D.TABLE_NAME = B.TABLE_NAME AND A.PARTITION_NAME = B.PARTITION_NAME AND D.last_analyzed > to_date('20210501','yyyymmdd')), (SELECT TABLESPACE_NAME F_TABLESPACE_NAME, MAX(BYTES) MAX_FREE_SPACE FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) WHERE F_TABLESPACE_NAME = O_TABLESPACE_NAME AND GREATEST(ROUND(100*(NVL(HWM - AVG_USED_BLOCKS,0)/GREATEST(NVL(HWM,1),1)),2),0)>12 AND OWNER notin('SYS','SYSMAN') AND BLOCKS > POWER(1024,2)/ block_size) b where ROUND(WASTE_PER * TABLE_MB /100,2)>100 ORDER BY 7 DESC;View Code
資料庫行程及死鎖行程狀態
SELECT distinct SESS.SID, SESS.SERIAL#, LO.ORACLE_USERNAME, LO.OS_USER_NAME, AO.OBJECT_NAME, LO.LOCKED_MODE, 'ALTER SYSTEM KILL SESSION '''|| SESS.SID ||','|| SESS.SERIAL# || ''' immediate;', SESS.STATUS FROM GV$LOCKED_OBJECT LO, DBA_OBJECTS AO, GV$SESSION SESS, Gv$process p WHERE AO.OBJECT_ID = LO.OBJECT_ID AND LO.SESSION_ID = SESS.SID and SESS.paddr = p.addr;View Code
Oralce配置引數見檢查
/*set linesize 200
col name format a40
col value format a40
set pagesize 2000*/
select name,value from v$parameter where isdefault='FALSE' order by 1;
六、 HTTP狀態碼詳解
2XX 成功
· 200 OK,表示從客戶端發來的請求在服務器端被正確處理 · 204 No content,表示請求成功,但回應報文不含物體的主體部分 · 206 Partial Content,進行范圍請求
3XX 重定向
· 301 moved permanently,永久性重定向,表示資源已被分配了新的 URL · 302 found,臨時性重定向,表示資源臨時被分配了新的 URL · 303 see other,表示資源存在著另一個 URL,應使用 GET 方法丁香獲取資源 · 304 not modified,表示服務器允許訪問資源,但因發生請求未滿足條件的情況 · 307 temporary redirect,臨時重定向,和302含義相同
4XX 客戶端錯誤
· 400 bad request,請求報文存在語法錯誤 · 401 unauthorized,表示發送的請求需要有通過 HTTP 認證的認證資訊 · 403 forbidden,表示對請求資源的訪問被服務器拒絕 · 404 not found,表示在服務器上沒有找到請求的資源
5XX 服務器錯誤
· 500 internal sever error,表示服務器端在執行請求時發生了錯誤 · 503 service unavailable,表明服務器暫時處于超負載或正在停機維護,無法處理請求
403 詳解
總體來說,回傳403狀態碼就是,拒絕或者禁止訪問,但是,服務器雖然拒絕或者禁止訪問,但是它已經理解了你的請求,具體原因有以下多種: 錯誤代碼:403.1 HTTP 403.1 禁止訪問:禁止可執行訪問 Internet 資訊服務 原因是執行權限不夠,解決的方法是: 打開“管理工具”的“Internet 資訊服務”,右鍵選擇“WEB站點屬性”的“主目錄”選項卡,把“執行許可”的選項從“無”改為“純腳本”就好了, 錯誤代碼:403.2 403.2錯誤是由于"讀取"訪問被禁止而造成的,導致此錯誤是由于沒有可用的默認網頁并且沒有對目錄啟用目錄瀏覽,或者要顯示的 HTML 網頁所駐留的目錄僅標記為"可執行"或"腳本"權限, 錯誤代碼:403.3 403.3錯誤是由于"寫入"訪問被禁止而造成的,當試圖將檔案上載到目錄或在目錄中修改檔案,但該目錄不允許"寫"訪問時就會出現此種錯誤, 錯誤代碼:403.4 403.4錯誤是由于要求SSL而造成的,您必須在要查看的網頁的地址中使用"https", 錯誤代碼:403.5 403.5錯誤是由于要求使用128位加密演算法的Web瀏覽器而造成的,如果您的瀏覽器不支持128位加密演算法就會出現這個錯誤,您可以連接微軟網站進行瀏覽器升級, 錯誤代碼:403.6 403.6錯誤是由于IP 地址被拒絕而造成的,如果服務器中有不能訪問該站點的IP地址串列,并且您使用的IP地址在該串列中時您就會回傳這條錯誤資訊, 錯誤代碼:403.7 403.7錯誤是因為要求客戶證書,當需要訪問的資源要求瀏覽器擁有服務器能夠識別的安全套接字層 (SSL)客戶證書時會回傳此種錯誤, 錯誤代碼:403.8 403.8錯誤是由于禁止站點訪問而造成的,若服務器中有不能訪問該站點的DNS名稱串列,而您使用的 DNS名稱在串列中時就會回傳此種資訊,請注意區別403.6與403.8錯誤, 錯誤代碼:403.9 403.9錯誤是由于連接的用戶過多而造成的,由于Web服務器很忙,因通訊量過多而無法處理請求時便會回傳這條錯誤, 錯誤代碼:403.10 403.10錯誤是由于無效配置而導致的錯誤,當您試圖從目錄中執行CGI、ISAPI或其他可執行程式,但該目錄不允許執行程式時便會回傳這條錯誤, 錯誤代碼:403.11 403.11錯誤是由于密碼更改而導致無權查看頁面, 錯誤代碼:403.12 403.12錯誤是由于映射器拒絕訪問而造成的,若要查看的網頁要求使用有效的客戶證書,而您的客戶證書映射沒有權限訪問該Web站點時就會回傳映射器拒絕訪問的錯誤, 錯誤代碼:403.13 403.13錯誤是由于需要查看的網頁要求使用有效的客戶證書而使用的客戶證書已經被吊銷,或者無法確定證書是否已吊銷造成的, 錯誤代碼:403.15 403.15錯誤是由于客戶訪問許可過多而造成的,當服務器超出其客戶訪問許可限制時會回傳此條錯誤, 錯誤代碼:403.16 403.16錯誤是由于客戶證書不可信或者無效而造成的, 錯誤代碼:403.17 403.17錯誤是由于客戶證書已經到期或者尚未生效而造成的, 以下三個是IIS6.0專用: 403.18-在當前的應用程式池中不能執行所請求的URL, 403.19-不能為這個應用程式池中的客戶端執行CGI, 403.20-Passport登錄失敗View Code
本文來自博客園,作者:風光小磊,轉載請注明原文鏈接:https://www.cnblogs.com/lei-z/p/16440010.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/498142.html
標籤:Linux
