2015年3月25日 星期三

Oracle DBA Admin SQLs to check tablespace sizes and table sizes (Untested)

select
   srt.tablespace,
   srt.segfile#,
   srt.segblk#,
   srt.blocks,
   a.sid,
   a.serial#,
   a.username,
   a.osuser,
   a.status
from   
   v$session    a,
   v$sort_usage srt
where
   a.saddr = srt.session_addr
   order by
srt.tablespace, srt.segfile#, srt.segblk#,
 srt.blocks;


 select * from v$sort_usage;

 select * from v$sort_segment;



SELECT
   A.tablespace_name tablespace,
   D.mb_total,
   SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
   D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM
   v$sort_segment A,
(
SELECT
   B.name,
   C.block_size,
   SUM (C.bytes) / 1024 / 1024 mb_total
FROM
   v$tablespace B,
   v$tempfile C
WHERE
   B.ts#= C.ts#
GROUP BY
   B.name,
   C.block_size
) D
WHERE
   A.tablespace_name = D.name
GROUP by
   A.tablespace_name,
   D.mb_total
  
select * from v$tablespace;
select * from v$datafile;
select * from v$tempfile;
select * from v$sort_segment;
select * from dba_data_files where TABLESPACE_NAME like 'PULSE%';

select SEGMENT_NAME, bytes/(1024*1024) datasize from dba_segments where TABLESPACE_NAME ='PULSETABLESPACE' order by bytes desc;

select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace))
"Pct. Free"
from
(select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace, tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name ;

Best  regards,

Kelvin Lo


2015年3月23日 星期一

Install GitLab on Linux 超簡單,用 gitlab 自架一個像 github 的平台



1. Uninstall Https because of future nginx

$ sudo yum erase httpd httpd-tools apr apr-util

2.

http://www.pigo.idv.tw/archives/2779



超簡單,用 gitlab 自架一個像 github 的平台


Share on Facebook0Share on Google+6Tweet about this on Twitter0Share on LinkedIn0
gitlab 是一套開放原始碼專案,使用 ruby on rails 開發的 git 管理平台,簡單來說,就如大家常見的 github 那樣,可以由 web 介面管理 git server ,寫 issue, wiki , milestone , web hooks 都有,而且不用做太繁雜的設定就可以自動架起一個具備 https 及 ssh 傳輸的 git server。如果再搭配 gitlab ci 還可以做到自動化測試呢。
不多說,直接來。

安裝環境說明

gitlab 有兩個版本, GitLab Community Edition (CE) 及 GitLab Enterprise Edition (EE),CE 版就是 Free 的,我們這裡就介紹 gitlab-ce 架設的方式,官方網站已經提供了 CentOS/Debian/Ubuntu 的直接安裝套件,我就介紹我比較熟的 CentOS 6 環境了。
我是使用 openvz 的虛擬化技術建議至少配置 2G ,因為官方是這麼建議的,我個人裝完之後也發現至少會吃掉 800MB RAM,也挺恐怖的。

安裝步驟

官方網站已經提供了下載 rpm 的安裝方式 , 基本上照上面網址下載對應的 OS 版本就會顯示出安裝方法,我這邊就是以 CentOS 6 為範例,最好弄個乾淨的 CentOS 專門做原始碼控管伺服器,中途不需安裝 git , ruby 或 web server 了,因為官方提供的有整合了大部分的套件(nginx,ruby & rails , git , redis , postgresql …)。
前置工作我會先把 httpd 移除,因為 gitlab 已經有內建 nginx,而且預設 port 是 80,為了能順利安裝就先移掉了,然後依照官方提供的安裝方式繼續安裝。

下載 gitlab 並用以下方式安裝

修改設定檔

這個設定檔的內容,裡面有一行 external_url 的設定改成要對外開放 web 的 url ,例如我只想內部使用也許改成  http://192.168.0.10 這樣子。

安裝並執行 gitliab

如果上述命令沒有 lokkit,可以自己用 yum install lokkit 安裝。事實上 lokkit 也只是設定 iptables 把 http 和 ssh 打開,如果原本就有開了也不用執行或手動自己設定 iptables 也可以。
如果一切順利,以上述我設定的 external_url 的網址,由流覽器打開 http://192.168.0.10 應該就如下圖的網站畫面出現了。

gitlab
這時候輸入預設的帳號及密碼就可以登入
  • 帳號 : root
  • 密碼 : 5iveL!fe
恭喜,這樣就安裝完畢了,完全不用自己搞 git server 和 web server 超簡單的。
而且 github 有的功能,gitlab 幾乎都有,在網站介面中可以自己創建 user 多人使用,可以 ssh or http 傳輸,可以寫 issue , 寫 markdown 語法的 wiki,簡直就和 github 一樣嘛。

補充

  1. 若要停止 gitlab,可以輸入 gitlab-ctl stop,若要啟動就執行 gitlab-ctl start
  2. gitlab 存放所有資料的地方是 /var/opt/gitlab,若要備份可以針對此目錄備,不過官方網站有介紹正規的方法來備份比較保險,否則就要先停止 gitlab 然後再備份。




3.

2015年3月20日 星期五

Git Usage Example in Linux



[root@development-ricky git]# git init
Initialized empty Git repository in /home/ricky/NetBeansProjects/git/.git/
[root@development-ricky git]# git remote add eras git@10.32.26.205:eras/eras.git
[root@development-ricky git]# git pull eras development
remote: Counting objects: 6136, done.
remote: Compressing objects: 100% (3306/3306), done.
remote: Total 6136 (delta 3091), reused 5395 (delta 2529)
Receiving objects: 100% (6136/6136), 16.17 MiB | 30.23 MiB/s, done.
Resolving deltas: 100% (3091/3091), done.
From 10.32.26.205:eras/eras
 * branch            development -> FETCH_HEAD
[root@development-ricky git]# git branch
* master
[root@development-ricky git]# git checkout -b development
Switched to a new branch 'development'
[root@development-ricky git]# git branch
* development
  master

git commit -m 'temp commit'
git rebase -i HEAD~2

git push -f origin DEVELOPMENT


http://blog.gogojimmy.net/2012/02/29/git-scenario/


Git 情境劇

 | COMMENTS

Git 情境劇

這篇主要是給自己做個記錄,因為 Git 指令實在太多了…
  1. Git 教學(1):Git的基本使用
  2. Git 教學(2):Git Branch 的操作與基本工作流程
  3. 如何安裝 Git
    • Mac : 安裝 Homebrew
        brew install git
      
    • Linux(Debian) : apt-get install git-core
    • Linux(Fedora) : yum install git-core
    • Windows : 下載安裝 msysGit
  4. 如何設定 Git
  5. 如何開始一個 Git Respository
    • 在專案底下使用 git init 開始一個新的 Git repo.
    • 使用 git clone 複製一個專案
  6. 如何將檔案加入 Stage
    • 使用 git add 將想要的檔案加入 Stage.
    • git add . 會將所有編修過的檔案加入 Stage (新增但還沒 Commit 過的檔案並不會加入)
  7. 如何將檔案從 Stage 中移除(取消add)
    • git reset HEAD 檔案名稱
  8. 如何將檔案提交(commit)
    • 使用 git commit會將 Stage 狀態的檔案做 Commit 動作
    • git commit -m "commit訊息" 可以略過編輯器直接輸入 commit 訊息完成提交。
    • git commit -am "commit訊息" 等同於先git add .後略過編輯器提交 commit。
  9. 如何修改/取消上一次的 commit
    • git commit --amend 修改上一次的 commit 訊息。
    • git commit --amend 檔案1 檔案2... 將檔案1、檔案2加入上一次的 commit。
    • git reset HEAD^ --soft 取消剛剛的 commit,但保留修改過的檔案。
    • git reset HEAD^ --hard 取消剛剛的 commit,回到再上一次 commit的 乾淨狀態。
  10. 分支基本操作(branch)
    • git branch 列出所有本地端的 branch。
    • git branch -r 列出所有遠端的 branch。
    • git branch -a 列出所有本地及遠端的 branch。
    • git branch "branch名稱" 建立一個新的 branch。
    • git checkout -b "branch名稱" 建立一個新的 branch 並切換到該 branch。
    • git branch branch名稱 起始點 以起始點作為基準建立一個新的 branch,起始點可以是一個 tag,branch 或是 commit。
    • git branch --track branch名稱 遠端branch 建立一個 tracking 遠端 branch 的 branch,這樣以後 push/pull都會直接對應到該遠端的branch。
    • git branch --set-upstream branch 遠端branch 將一個已存在的 branch 設定成 tracking 遠端的branch。
    • git branch -d "branch 名稱" 刪除 branch。
    • git -r -d 遠端branch 刪除一個 tracking 的遠端 branch,例如git branch -r -d wycats/master
    • git push repository名稱 :遠端branch 刪除一個 repository 的 branch,通常用在刪除遠端的 branch,例如git push origin :old_branch_to_be_deleted
    • git checkout branch名稱 切換到另一個 branch(所有修改過程會被保留)。
  11. 遠端操作(remote)
    • git remote add remote名稱 remote網址 加入一個 remote repository,例如 git remote add github git://github.com/gogojimmy/test.git
    • git push remote名稱 :branch名稱 刪除遠端 branch,例如 git push origin :somebranch
    • git pull remote名稱 branch名稱 下載一個遠端的 branch 並合併(注意是下載遠端的 branch 合併到目前本地端所在的 branch)。
    • git push 類似於 pull 操作,將本地端的 branch 上傳到遠端。
  12. 合併操作(merge)
    • git merge branch名稱 合併指定的 branch 到目前的 branch。
    • git merge branch名稱 --no-commit 合併指定的 branch 到目前的 branch 但是不會產生合併的 commit。
    • git cherry-pick SHA 將某一個 commit 的內容合併到目前 branch,指定 commit 是使用該 commit 的 SHA 值,例如 git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544
  13. 暫存操作(stash)
    • git stash 將目前所做的修改都暫存起來。
    • git stash apply 取出最新一次的暫存。
    • git stash pop 取出最新一次的暫存並將他從暫存清單中移除。
    • git stash list 顯示出所有的暫存清單。
    • git stash clear 清除所有暫存。
  14. 常見問題:
    • 我的 code 改爛了我想全部重來,我要如何快速回到乾淨的目錄?
      • git reset --hard 這指令會清除所有與最近一次 commit 不同的修改。
    • merge 過程中發生 confict 我想放棄 merge,要如何取消 merge?
      • 一樣使用 git reset --hard 可以取消這次的 merge。
    • 如何取消這次的 merge 回到 merge 前的狀態?
      • git reset --hard ORIG_HEAD 這指令會取消最近一次成功的 merge 以及所有你在這次 merge 後所做的修改。
    • 如何回復單獨檔案到原本 commit 的狀態?
      • git checkout 檔案名稱 這指令會將已經被修改過的檔案回復到最近一次 commit 的樣子。
  15. 其他連結:
  16. Git 教學(2):Git Branch 的操作與基本工作流程
  17. Git 情境劇:告訴你使用 Git 時什麼情況該下什麼指令

   git

2007 to 2023 HP and Dell Servers Comparison

  HP Gen5 to Gen11  using ChatGPT HP ProLiant Gen Active Years CPU Socket Popular HP CPUs Cores Base Clock Max RAM Capacity Comparable Dell ...