사전 준비
2022.10.09 - [2. 기본 인프라 IaaS] - 클라우드 쉘과 Bastion 서비스 사용한 Private 인스턴스 연결
(만약 Public IP가 부여된 인스턴스에서는 바로 Public IP로 접근하여 셋업 후 테스트하면 됩니다.)
구성 순서
1. ADB 생성
2. DB 연결 정보 획득
3. 컴퓨트 리눅스 인스턴스 생성 (사전 준비)
4. 닷넷 코어 SDK 설치
5. 애플리케이션에서 DB 연결 설정 후 실행
1. ADB 생성
내부 Private 인스턴스들만 연결할 수 있도록 제한
2. DB 연결 정보 획득
1) 기존 Wallet을 이용한 방식도 있지만 2) 최근에는 Wallet 없이도 연결할 수 있는 방식이 있어 Wallect 없는 방법으로 진행
Connections to your Autonomous Database are secured,
and can be authorized using TLS or mTLS authentication options.
TLS authentication is easier to use, provides better connection latency,
and does not require you to download client credentials (wallet) if any of these is true for your connections:
a. You are using JDBC Thin Client (version 12.2.0.1 or higher) with JDK 8(u163+) or higher.
b. You are using the Python python-oracledb driver.
c. You are using ODP.NET version 19.14 (or higher), or 21.5 (or higher).
d. You are using an Oracle Call Interface based driver with Oracle Client libraries version 19.14 (or higher), or 21.5 (or higher).
- TLS Authentication : TLS
- Port : 1521
- security=(ssl_server_dn_match=yes)
(description=
(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)
(host=adb.ap-seoul-1.oraclecloud.com))
(connect_data=(service_name=xjdxzlusmfxg39e_dotnetadb_high.adb.oraclecloud.com))
(security=(ssl_server_dn_match=yes)))
3. 컴퓨트 리눅스 인스턴스 생성 (사전 준비)
4. 닷넷 코어 SDK 설치
sudo yum update -y
sudo yum install -y dotnet-sdk-6.0
ODP.NET Core versions 19.13 or 21.4 (or above)
임의로 정해놓은 경로에 tnsnames.ora 파일 생성
cd /tmp
vi /tmp/tnsnames.ora
dotnetadb_high =
(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1521)
(host=adb.ap-seoul-1.oraclecloud.com))
(connect_data=(service_name=xjdxzlusmfxg39e_dotnetadb_high.adb.oraclecloud.com))
(security=(ssl_server_dn_match=yes)))
닷넷 프로젝트를 생성 후 ODP.NET Core를 추가
dotnet new console
dotnet add package Oracle.ManagedDataAccess.Core --version 3.21.70
5. 애플리케이션에서 DB 연결 설정 후 실행
ADB연결 실행 코드 작성
vi Program.cs
using System;
using Oracle.ManagedDataAccess.Client;
namespace ODP.NET_Core_Autonomous
{
class Program
{
static void Main()
{
//Enter your ADB's user id, password, and net service name
string conString = "User Id=ADMIN;Password=bs3JoYw6rfKZY4hsocZK;Data Source=dotnetadb_high;Connection Timeout=30;";
//Enter directory where you unzipped your cloud credentials
OracleConfiguration.TnsAdmin = @"/tmp";
using (OracleConnection con = new OracleConnection(conString))
{
using (OracleCommand cmd = con.CreateCommand())
{
try
{
con.Open();
Console.WriteLine("Successfully connected to Oracle Autonomous Database");
Console.WriteLine();
cmd.CommandText = "select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
Console.WriteLine(reader.GetString(0) );
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
}
Build 후 실행
dotnet run
참고
https://www.oracle.com/database/technologies/appdev/dotnet/adbdotnetquickstarts.html
Connect Microsoft .NET, Visual Studio Code, and Visual Studio without a Wallet
Connect Microsoft .NET, Visual Studio Code, and Visual Studio with a Wallet (mTLS)
https://dotnet.microsoft.com/en-us/download
https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu
'9. 실습 Hands-on Lab' 카테고리의 다른 글
OCI Super Delete 스크립트로 Compartment와 자원 삭제 (0) | 2023.08.11 |
---|---|
Java SDK로 Object Storage Copy하기 (0) | 2022.11.16 |
Tomcat을 설치하고 DBCS와 연동하기 (0) | 2022.09.26 |
Object Storage 활용 2. S3 Browser를 OCI에 연결하기 (0) | 2022.09.15 |
Object Storage 활용 1. Cloud Berry Explorer를 OCI에 연결하기 (0) | 2022.09.14 |
댓글