2015年6月7日 星期日

[Tips]如何在CentOS 7切換Linux runlevel?

新的CentOS7採用了systemctl來取代很多舊有的指令,現在我們也要使用這個來進行runlevel(target)的切換。

1)切換到純文字介面(類似以前的runlevel3)
[root@centOS7 ~]# systemctl isolate multi-user.target

2)切換到圖形化介面(類似以前的runlevel5)
[root@centOS7 ~]# systemctl isolate graphical.target

3)顯示目前預設target
[root@centOS7 ~]# systemctl get-default
multi-user.target

4)變更預設target
[root@centOS7 ~]# systemctl set-default graphical.target

2015年4月28日 星期二

SQL語法_Select

話說前陣子才剛通過了Oracle Database 11g: SQL Fundamentals I,趁記憶猶新的時候趕快來整理一下Oracle的SQL語法吧。



SELECT   *│{[DISTINCT columnexpression [alias],‧‧‧}
FROM       table;


  • SELECT    *
    FROM       departments;
DEPARTMENT_IDDEPARTMENT_NAMELOCATION_ID
10Marketing170
20Administration180
50IT150
80Sales170
  • SELECT    department_id, department_name FROM       departments;
DEPARTMENT_IDDEPARTMENT_NAME
10Marketing
20Administration
50IT
80Sales


  • SELECT    department_name, salary, salary + 500FROM       departments;

DEPARTMENT_NAMESALARYSALARY + 500
Marketing200700
Administration5001000
IT300800
Sales400900

2014年11月7日 星期五

[Tips}利用ssh-keygen讓SSH自動登入~免輸入密碼

SSHSecure SHell protocol的縮寫,它可以透過加密的技術,將等待傳送的封包加密後再進行傳輸。因此,在資料傳輸上當然就比較安全。但是每次連線都要輸入密碼相當麻煩。

以下將介紹透過ssh-keygen來建立免輸入密碼的機制

1)source端利用ssh-keygen指令產生public/private key
[root@source ~]$ ssh-keygen [–t rsa / dsa]
#建立rsapublic keyprivate keey

[Tips]Linux 指令小抄 - ls, cd, pwd

為了方便自己查詢, 寫一下常用到的 Linux 指令


1)ls - 列出目錄與檔案
[root@www ~]# ls
參數
-a:列出全部的檔案,包括隱藏檔(開頭為點「.」的檔案)也列出
-d:列出目錄,而不是列出目錄下的檔案
-i:搭配-l使用,列出每個檔案的inode數量
-l:使用長資料的格式呈現,包含檔案的權限(rwx)及屬性
-t:依照檔案修改日期排序
-r:將排序結果反向輸出

2014年2月23日 星期日

[Tips]Linux上安裝MariaDB

本篇要介紹的MariaDB,是出自於 MySQL 創辦人 Michael Widenius "Monty" 的另一套Open Source資料庫,名稱來自於他的小女兒Maria。目前最新版本是MariaDB 5.5 (2014/02/23)。

MariaDB 5.5相容於MySQL 5.5的版本,甚至連指令都大同小異,就讓我們來研究看看吧。

以下是安裝環境:
作業系統:CentOS 5.9
軟體版本:MariaDB 5.5
Java版本:1.6.0_30

2014年2月15日 星期六

[Tips]Linux上安裝JBoss 7.1

本篇要介紹的JBoss,是J2EE應用程式伺服器(AP Server),最早是由JBoss公司開發出來,在2006年由RedHat收購至今。目前最新版本是JBoss 7.1(2014/02/15),支援到J2SE 7J2EE 6

以下是安裝環境:
作業系統:CentOS 5.9
軟體版本:JBoss 7.1.1
Java版本:1.6.0_30

2013年12月8日 星期日

[Tips]深入了解V$ - V$session

V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。


根據Oracle Documentation的說明:
This view lists session information for each current session.

--說明了Server process建立與Oracle Server之間的Session連線,而V$session儲存了連線時的相關資訊。

2013年12月5日 星期四

[Tips]深入了解V$ - V$sysstat

V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。


根據Oracle Documentation的說明:
V$sysstat displays system statistics. To find the name of the statistic associated with each statistic number (STATISTIC#), query the V$STATNAME view.


--說明了V$sysstat儲存了資源使用的統計結果,從Instance啟動就開始累計。

2013年11月24日 星期日

[Tips]Oracle 11g Architecture 資料庫架構(下) - Oracle database files

讓我們先回想一下:當提及Oracle Server的時候,它同時包含了Oracle InstanceOracle database files,本篇將探討Oracle database files,如果忘了Oracle Instance可以利用下面連結閱讀^_^
Oracle database files就是存放資料的地方,可以分為實體(Physical)結構和邏輯(Logical)結構,實體結構就是實際儲存在OS上的datafiles或是OS Block;而一般我們透過軟體工具看到的都是邏輯結構,包括Tablespaces、Segments、Extents、Block。

2013年11月23日 星期六

[Tips]Oracle 11g Architecture 資料庫架構(上) - Oracle Instance

從下圖我們可以發現,其資料庫架構看起來相當複雜呢!

大致可以先簡單分為Oracle InstanceOracle database files,當我們提及Oracle Server的時候,它同時包含了上述兩個東西。以下將分為兩篇針對其進行個別探討:
Oracle的架構裡包含了許多複雜的元件,也是Oracle對於初學者相當不好學習的地方,而理解這些對於了解Oracle運作有相當大的幫助,讓我們一起來看看吧^_^

2013年11月21日 星期四

[Tips]運用PL/SQL撰寫procedure/function/package

運用PL/SQL,我們可以撰寫成procedure/function/package,便可以重複呼叫利用,或是放到DBMS_JOB中去例行執行。
  • procedure:沒有回傳值
  • function:要有回傳值
  • package:類似Java的com package概念,利用來打包一至多個procedure/function,更方便管理。

2013年11月13日 星期三

[Tips]如何建立Tablespaces

在Oracle Database中,Tablespaces包含一至多個Datafiles。而Datafiles用來儲存資料,一個Datafile只能存在一個Tablespace中。

CREATE TABLESPACE Tablespace_Name

DATAFILE 'file_specification' SIZE volume
AUTOEXTEND [ON/OFF] NEXT volume MAXSIZE volume;

2013年11月12日 星期二

[Tips]基本介紹Oracle PL/SQL

PL/SQL(Procedural Language/Structured Query Language)是Oracle推出的程序語言(Procedural Language),用來擴充SQL的的功能。PL/SQL中會運用到一些程式裡面變數設定、條件判斷(if..then)、迴圈(for)等概念。

首先我們先來看一個簡單的PL/SQL,主要分為兩個部分,Declare為定義變數的地方,Begin...End為程式邏輯的地方,也是主要撰寫著墨的部分。


DECLARE
  v1 number(5);
  v2 varchar2(10);
  v3 date;
BEGIN
  --to do
END;

2013年11月10日 星期日

[Tips]常用的DBA/USER_、V$的表格和視圖

在Oracle Database中,我們可以用DBA_、USER_和V$的表格和視圖來獲取一些資訊,幫助我們進行資料庫的管理,現在就讓我們來看看吧。
  • DBA_:代表能夠看到所有的資訊。
  • USER_:代表只能看到當前USER的資訊。
  • V$:Dynamic Performance View,又稱為動態視圖,它是儲存在SGA之中。可以透過SELECT * FROM dba_objects WHERE object_name like 'V_$%'來查詢。

2013年11月9日 星期六

[Tips]關於DBA_JOBS及DBMS_JOBS.

在Oracle Database中,我們可以利用DBA/ALL/USER_JOBS來觀看我們排定的工作行程,然後利用DBMS_JOBS.來進行工作的安排和管理。

SELECT * FROM [dba_jobs/all_jobs/user_jobs];

  • DBA_JOBS:代表可以看到所有的Jobs,包含一些只有DBA才能看。
  • ALL_JOBS代表可以看到所有的連線到資料庫的USER的Jobs。
  • USER_JOBS:代表只能看到當前USER的Jobs。
  • DBA_JOBS_RUNNING:代表目前正在運作的Jobs。

2013年11月8日 星期五

[Tips]如何建立Database Link

Oracle Database中,當我們想要查詢其它資料庫的時候,可以利用Database Link來達成目的。

CREATE DATABASE LINK 
DBlink_Name
CONNECT TO user IDENTIFIED BY "password"
using 'Service_Name';

2013年11月7日 星期四

[Tips]如何建立Oracle Materialized View (snapshot)

Materialized View中文翻譯成「實體化視圖」或「物化視圖」。其實就是以前比較熟悉的snapshot,將本機/遠端的資料庫上面一個/多個表格的查詢結果,快照儲存在本機/遠端的表格中。

如果要備份的表格是在遠端資料庫的時候,則必須先建立Database Link,可以參考我寫的另外一篇文章,以下只針對Materialized View的部分進行著墨。

CREATE MATERIALIZED VIEW/SNAPSHOT Material_View_Name
[TABLESPACE Tablespaces_Name]
REFRESH [complete/fast/force(default)] [WITH primary key(default)/rowid/object id]
[START WITH sysdate NEXT (sysdate+1/24)]
AS Sql_Query;

2013年9月21日 星期六

[Tips]當Oracle 11g 忘記帳號密碼或鎖定時

通常可能有以下幾種原因會需要用到此方法。
  1. 嘗試多次失敗造成帳號被鎖住(可能是密碼錯誤),可能會出現「ora-28000 the account is locked」的錯誤訊。
  2. 此帳戶被管理員權限鎖定時,可能會出現同上的錯誤訊號。
  3. 該帳戶密碼到期被鎖定,可能會出現同上的錯誤訊號。
  4. 忘記密碼。

1) 進入cmd
2) sqlplus/nolog
3) conn sys/sys as sysdba
4) alter user system identified by 新密碼
5) conn system/新密碼

當步驟5完成後可以連結表示成功,就可以使用該帳戶登入。

註解:
  • 進入cmd之後,輸入sqlplus會開啟SQL PLUS並帶出登入提示。利用sqlplus/nolog則可以不出現登入提示。
  • conn是connect的縮寫,可以用來連結資料庫。conn 帳戶/密碼

2013年9月5日 星期四

[Tips]Markdown語法

2013年8月17日 星期六

三層式綱要架構(Three-schema Architecture)

三層式(3-tier)架構好像很有名也很常聽到,諸如網路服務的三層式架構,程式設計的MVC架構等。

那麼在資料庫的三層式架構又是甚麼呢?
首先要先了解資料庫的三層式架構可是著名的ANSI/SPARC架構(Tsichritzis and Klug, 1978),是由ANSI(American National Standards Institute)和SPARC(Standards Planning And Requirements Committee)所制訂的資料庫架構,可以定義分為以下三層: