현재 운영 중인 블로그는 Jekyll을 이용하여 Gaohaoyang님의 테마를 적용하였습니다.
Jekyll 설치 관련하여서는 많은 글들이 있지만, 나중에 다시 환경을 구성해야 할 경우에 참고하기 위한 기록입니다.
OS : Ubuntu18.04LTS on Windows10
> sudo apt install ruby
> sudo apt install ruby-dev
> sudo gem install jekyll
> sudo gem install jekyll-paginate
> jekyll s
데이터가 모든 디스크에 분산되어 저장된다.
데이터가 2개의 디스크에 중복으로 저장된다.
데이터가 모든 디스크에 분산되어 저장되고, ECC(Error Correction COde)는 별도의 디스크에 저장된다. 현재 거의 사용 하지 않음
바이트 단위의 데이터를 모든 디스크에 분산하여 저장하고 패리티 정보는 별도의 디스크에 저장된다. (= RAID-0 + 패러티(바이트) 디스크)
블럭 단위의 데이터를 모든 디스크에 부산하여 저장하고 패리티 정보는 별도의 디스크에 저장된다. (= RAID-0 + 패러티(블럭) 디스크)
블럭 단위의 데이터와 패러티 정보가 모든 디스크에 분산되어 저장된다. 데이터를 블럭 단위로 모든 디스크에 나뉘어 저장하고 패리티 정보도 모든 디스크에 분산되어 저장된다. (= RAID-4 - 패러티(블럭) 디스크)
블럭 단위의 데이터와 패리티 정보(2회)가 모든 디스크에 분산되어 저장된다. (= RAID-5 + 2차 패러티)
RAID-0을 구성한 후 RAID-1으로 구성 RAID-10과 차이점은 RAID-0을 먼저 구성하느냐 RAID-1을 먼저 구성하느냐의 차이임 (RAID-0 + RAID-1)
RAID-1을 구성한 후 RAID-0으로 구성 RAID-01보다 유리 (RAID-0 + RAID-1)
C# 프로젝트 생성
참조에 OracleManagedDataAccess 추가
using Oracle.ManagedDataAccess.Client;
string serverAddress = "localhost";
string serviceName = "ORCL";
string userId = "scott";
string userPw = "000000";
string connectStr = string.Format("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={1})));User Id={2};Password={3};", serverAddress, serviceName, userId, userPw);
using (OracleConnection cnn = new OracleConnection(connectStr))
{
cnn.Open();
/*************************** Create *************************************/
OracleCommand insertCmd = new OracleCommand();
insertCmd.Connection = cnn;
insertCmd.CommandText = "INSERT INTO USERS(ID, USERNAME) VALUES (:id, :NAME)";
insertCmd.Parameters.Add("ID", OracleDbType.Int32);
insertCmd.Parameters.Add("USERNAME", OracleDbType.Varchar2, 50);
insertCmd.Parameters[0].Value = 1;
insertCmd.Parameters[1].Value = "test";
int affected = insertCmd.ExecuteNonQuery();
Console.WriteLine("# Result : " + affected);
/*************************** Read *************************************/
// Select - ExecuteScalar
OracleCommand selectCmd = new OracleCommand();
selectCmd.Connection = cnn;
selectCmd.CommandText = "SELECT USERNAME FROM USERS WHERE ID=1";
object result = selectCmd.ExecuteScalar();
Console.WriteLine("# Result : " + result);
// Select - DataTable
DataSet ds = new DataSet();
OracleDataAdapter da = new OracleDataAdapter("SELECT * FROM USERS", cnn);
da.Fill(ds, "USERS");
DataTable dt = ds.Tables["USERS"];
foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(string.Format("ID = {0}, USERNAME = {1}", dr["ID"], dr["USERNAME"]));
}
/*************************** Update *************************************/
OracleCommand updateCmd = new OracleCommand();
updateCmd.Connection = cnn;
updateCmd.CommandText = "UPDATE USERS SET USERNAME = :USERNAME WHERE ID = :ID";
updateCmd.Parameters.Add("USERNAME", OracleDbType.Varchar2, 150);
updateCmd.Parameters.Add("ID", OracleDbType.Int32);
updateCmd.Parameters[0].Value = "test2";
updateCmd.Parameters[1].Value = 1;
affected = updateCmd.ExecuteNonQuery();
Console.WriteLine("# Result : " + affected);
/*************************** Delete *************************************/
OracleCommand deleteCmd = new OracleCommand();
deleteCmd.Connection = cnn;
deleteCmd.CommandText = "DELETE FROM USERS WHERE ID = :ID";
deleteCmd.Parameters.Add("ID", OracleDbType.Int32);
deleteCmd.Parameters[0].Value = 1;
affected = deleteCmd.ExecuteNonQuery();
Console.WriteLine("# Result : " + affected);
}
서버 탐색기 - 연결 추가 클릭
데이터 소스 변경 - Oracle 데이터베이스 - ODP.NET, 관리되는 드라이버 선택
연결 정보 입력
데이터 연결 확인
ODP.NET을 사용하기 위해서는 OracleManagedDataAccess.dll을 참조에 추가하면 된다.
관련 라이브러리들을 직접 다운로드 받아 추가하여도 되지만, Nuget을 이용하거나 ODT(Oracle Developer Tools) for Visual Studio를 설치하는 것을 권장한다.
(ODAC로는 테스트를 해보지 않았음)
솔루션 탐색기에서 참조 또는 프로젝트를 선택 -> 오른쪽 단추 클릭 하고 NuGet 패키지 관리..클릭
찾아보기 - ODP.NET 검색하여 설치 클릭
라이센스 동의 버튼 클릭
설치 완료
.NET Framework 데이터 공급자는 Database에 연결하고 명령을 실행하며 그 결과를 검색하는데 사용됩니다.
ODBC(Open DataBase Connectivity)는 Database에 접근하기 위해 Microsoft가 만든 소프트웨어 표준 규격입니다.
네이티브 ODBC DM(드라이버 관리자)을 사용하여 Oracle 데이터 소스에 연결합니다.
OLE DB(Object Linking and Embedding, Database)는 여러 종류의 저장된 데이터에 접근하기 위해 Microsoft가 만든 API입니다.
스프레드시트와 같이 더 다양한 범위의 비관계형 Database를 지원하기 위해 기능을 확장하였습니다.
Oracle 클라이언트 연결 소프트웨어를 통해 Oracle 데이터 소스에 연결합니다.
Oracle Data Provider for .NET(ODP.NET)은 Oracle Database에 최적화 된 ADO.NET 데이터 연결 기능을 제공합니다.
OpenJDK는 Sun이 Oracle에 합병되기 전에 JDK를 오픈소스화하기 위해 2007년에 시작된 프로젝트입니다.
Sun이 Thrid-party 라이브러리 저작권자에 오픈 소스로 공개할 수 있도록 설득하였으나, 잘되지 않았고 저작권자가 오픈소스화를 거부한 일부 컴포넌트를 제외한 나머지 JDK 소스코드를 기반으로 OpenJDK 프로젝트가 수행 되었습니다.
이 후 Oracle이 Sun을 합병하면서 OpenJDK에 몇 가지 기능들을 더 추가하여 OracleJDK를 제공하고있습니다.
JDK6에서는 OpenJDK와 OracleJDK의 성능 차이 및 이슈들이 좀 많다고 합니다.
하지만 JDK7부터는 거의 동일하다고 하네요.
(Oracle은 OpenJDK 프로젝트를 주도하는 주체이며, OracleJDK는 OpenJDK를 기반으로 구현)
[root@localhost /] rpm -qa | grep
java-1.6.0-openjdk-devel-1.6.0.0-11.1.13.4.el6.x86_64
java-1.8.0-openjdk-1.8.0.20-3.b26.el6.x86_64
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
java-1.8.0-openjdk-headless-1.8.0.20-3.b26.el6.x86_64
[root@localhost /] yum remove java-1.6.0-openjdk-devel-1.6.0.0-11.1.13.4.el6.x86_64
[root@localhost /] yum remove java-1.8.0-openjdk-1.8.0.20-3.b26.el6.x86_64
[root@localhost /] yum remove java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
[root@localhost /] yum remove java-1.8.0-openjdk-headless-1.8.0.20-3.b26.el6.x86_64
JDK 다운로드
Oracle 홈페이지에서 설치하고자하는 JDK를 다운로드
[root@localhost /]mv jdk-8u111-linux-x64.tar.gz /usr/local/
[root@localhost /]cd /usr/local
[root@localhost /]gunzip jdk-8u111-linux-x64.tar.gz
[root@localhost /]tar -xvf jdk-8u111-linux-x64.tar.gz
[root@localhost /]ln -s jdk1.8.0_111 java
[root@localhost /]vi /etc/profile
…. 생략 …
#가장 아래에 다음 내용 추가
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HAME/bin
export CLASSPATH=”.”
[root@localhost /]source /etc/profile
[root@localhost /]java -version
OracleJDK 설치.
[root@localhost /]which java
/usr/bin/java
[root@localhost /]ls -al /usr/bin/java
lrwxrwxrwx 1 root root 22 Apr 13 18:52 /usr/bin/java -> /etc/alternatives/java
[root@localhost /]ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 35 Apr 13 18:52 /etc/alternatives/java -> /usr/lib/jvm/jre-1.5.0-gcj/bin/java
[root@localhost /]rm /etc/alternatives/java
[root@localhost /]ln -s /usr/local/java /etc/alternatives/java
[root@localhost /]java -version