분류 전체보기

mkdocs 설치

2024. 7. 4. 09:18

1. 파이썬 설치

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

 

 

2. 파이썬 설치 폴더로 이동

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts

 

 

3. cmd 실행 

4. mkdocs 설치

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts>pip install mkdocs
Collecting mkdocs
  Downloading mkdocs-1.6.0-py3-none-any.whl.metadata (6.0 kB)
Collecting click>=7.0 (from mkdocs)
  Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting colorama>=0.4 (from mkdocs)
  Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
Collecting ghp-import>=1.0 (from mkdocs)
  Downloading ghp_import-2.1.0-py3-none-any.whl.metadata (7.2 kB)
Collecting jinja2>=2.11.1 (from mkdocs)
  Downloading jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting markdown>=3.3.6 (from mkdocs)
  Downloading Markdown-3.6-py3-none-any.whl.metadata (7.0 kB)
Collecting markupsafe>=2.0.1 (from mkdocs)
  Downloading MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl.metadata (3.1 kB)
Collecting mergedeep>=1.3.4 (from mkdocs)
  Downloading mergedeep-1.3.4-py3-none-any.whl.metadata (4.3 kB)
Collecting mkdocs-get-deps>=0.2.0 (from mkdocs)
  Downloading mkdocs_get_deps-0.2.0-py3-none-any.whl.metadata (4.0 kB)
Collecting packaging>=20.5 (from mkdocs)
  Downloading packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting pathspec>=0.11.1 (from mkdocs)
  Downloading pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting pyyaml-env-tag>=0.1 (from mkdocs)
  Downloading pyyaml_env_tag-0.1-py3-none-any.whl.metadata (4.1 kB)
Collecting pyyaml>=5.1 (from mkdocs)
  Downloading PyYAML-6.0.1-cp312-cp312-win_amd64.whl.metadata (2.1 kB)
Collecting watchdog>=2.0 (from mkdocs)
  Downloading watchdog-4.0.1-py3-none-win_amd64.whl.metadata (37 kB)
Collecting python-dateutil>=2.8.1 (from ghp-import>=1.0->mkdocs)
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting platformdirs>=2.2.0 (from mkdocs-get-deps>=0.2.0->mkdocs)
  Downloading platformdirs-4.2.2-py3-none-any.whl.metadata (11 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs)
  Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Downloading mkdocs-1.6.0-py3-none-any.whl (3.9 MB)
   ---------------------------------------- 3.9/3.9 MB 9.1 MB/s eta 0:00:00
Downloading click-8.1.7-py3-none-any.whl (97 kB)
   ---------------------------------------- 97.9/97.9 kB ? eta 0:00:00
Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Downloading ghp_import-2.1.0-py3-none-any.whl (11 kB)
Downloading jinja2-3.1.4-py3-none-any.whl (133 kB)
   ---------------------------------------- 133.3/133.3 kB 8.2 MB/s eta 0:00:00
Downloading Markdown-3.6-py3-none-any.whl (105 kB)
   ---------------------------------------- 105.4/105.4 kB ? eta 0:00:00
Downloading MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl (17 kB)
Downloading mergedeep-1.3.4-py3-none-any.whl (6.4 kB)
Downloading mkdocs_get_deps-0.2.0-py3-none-any.whl (9.5 kB)
Downloading packaging-24.1-py3-none-any.whl (53 kB)
   ---------------------------------------- 54.0/54.0 kB ? eta 0:00:00
Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
Downloading PyYAML-6.0.1-cp312-cp312-win_amd64.whl (138 kB)
   ---------------------------------------- 138.7/138.7 kB 8.0 MB/s eta 0:00:00
Downloading pyyaml_env_tag-0.1-py3-none-any.whl (3.9 kB)
Downloading watchdog-4.0.1-py3-none-win_amd64.whl (83 kB)
   ---------------------------------------- 83.0/83.0 kB 4.5 MB/s eta 0:00:00
Downloading platformdirs-4.2.2-py3-none-any.whl (18 kB)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
   ---------------------------------------- 229.9/229.9 kB 13.7 MB/s eta 0:00:00
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: watchdog, six, pyyaml, platformdirs, pathspec, packaging, mergedeep, markupsafe, markdown, colorama, pyyaml-env-tag, python-dateutil, mkdocs-get-deps, jinja2, click, ghp-import, mkdocs
Successfully installed click-8.1.7 colorama-0.4.6 ghp-import-2.1.0 jinja2-3.1.4 markdown-3.6 markupsafe-2.1.5 mergedeep-1.3.4 mkdocs-1.6.0 mkdocs-get-deps-0.2.0 packaging-24.1 pathspec-0.12.1 platformdirs-4.2.2 python-dateutil-2.9.0.post0 pyyaml-6.0.1 pyyaml-env-tag-0.1 six-1.16.0 watchdog-4.0.1

[notice] A new release of pip is available: 24.0 -> 24.1.1
[notice] To update, run: C:\Users\dbs\AppData\Local\Programs\Python\Python312\python.exe -m pip install --upgrade pip

 

 

5. awesome-pages-plugin 설치

문서 구조나 네비게이션을 좀 더 쉽게 표현하고 구성하게 해주는 플러그인

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts>pip install mkdocs-awesome-pages-plugin
Collecting mkdocs-awesome-pages-plugin
  Downloading mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: mkdocs>=1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs-awesome-pages-plugin) (1.6.0)
Collecting natsort>=8.1.0 (from mkdocs-awesome-pages-plugin)
  Downloading natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
Collecting wcmatch>=7 (from mkdocs-awesome-pages-plugin)
  Downloading wcmatch-8.5.2-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: click>=7.0 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (8.1.7)
Requirement already satisfied: colorama>=0.4 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (0.4.6)
Requirement already satisfied: ghp-import>=1.0 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (2.1.0)
Requirement already satisfied: jinja2>=2.11.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (3.1.4)
Requirement already satisfied: markdown>=3.3.6 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (3.6)
Requirement already satisfied: markupsafe>=2.0.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (2.1.5)
Requirement already satisfied: mergedeep>=1.3.4 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (1.3.4)
Requirement already satisfied: mkdocs-get-deps>=0.2.0 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (0.2.0)
Requirement already satisfied: packaging>=20.5 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (24.1)
Requirement already satisfied: pathspec>=0.11.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (0.12.1)
Requirement already satisfied: pyyaml-env-tag>=0.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (0.1)
Requirement already satisfied: pyyaml>=5.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (6.0.1)
Requirement already satisfied: watchdog>=2.0 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs>=1->mkdocs-awesome-pages-plugin) (4.0.1)
Collecting bracex>=2.1.1 (from wcmatch>=7->mkdocs-awesome-pages-plugin)
  Downloading bracex-2.4-py3-none-any.whl.metadata (3.6 kB)
Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from ghp-import>=1.0->mkdocs>=1->mkdocs-awesome-pages-plugin) (2.9.0.post0)
Requirement already satisfied: platformdirs>=2.2.0 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from mkdocs-get-deps>=0.2.0->mkdocs>=1->mkdocs-awesome-pages-plugin) (4.2.2)
Requirement already satisfied: six>=1.5 in c:\users\dbs\appdata\local\programs\python\python312\lib\site-packages (from python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs>=1->mkdocs-awesome-pages-plugin) (1.16.0)
Downloading mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl (14 kB)
Downloading natsort-8.4.0-py3-none-any.whl (38 kB)
Downloading wcmatch-8.5.2-py3-none-any.whl (39 kB)
Downloading bracex-2.4-py3-none-any.whl (11 kB)
Installing collected packages: natsort, bracex, wcmatch, mkdocs-awesome-pages-plugin
Successfully installed bracex-2.4 mkdocs-awesome-pages-plugin-2.9.2 natsort-8.4.0 wcmatch-8.5.2

[notice] A new release of pip is available: 24.0 -> 24.1.1
[notice] To update, run: C:\Users\dbs\AppData\Local\Programs\Python\Python312\python.exe -m pip install --upgrade pip

 

 

6. 블로그 문서 생성 및 실행

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts>mkdocs new blog-mkdocs
INFO    -  Creating project directory: blog-mkdocs
INFO    -  Writing config file: blog-mkdocs\mkdocs.yml
INFO    -  Writing initial docs: blog-mkdocs\docs\index.md

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts>cd blog-mkdocs

C:\Users\dbs\AppData\Local\Programs\Python\Python312\Scripts\blog-mkdocs>mkdocs serve
INFO    -  Building documentation...
INFO    -  Cleaning site directory
INFO    -  Documentation built in 0.11 seconds
INFO    -  [19:31:00] Watching paths for changes: 'docs', 'mkdocs.yml'
INFO    -  [19:31:00] Serving on http://127.0.0.1:8000/
INFO    -  [19:31:09] Browser connected: http://127.0.0.1:8000/

 

 

7. 브라우저 접속

http://127.0.0.1:8000

'기타' 카테고리의 다른 글

마크다운 모음.zip  (0) 2024.04.16

마크다운 모음.zip

2024. 4. 16. 17:44

1. 제목

  • 1~6까지만 지원
# 제목 1
## 제목 2
### 제목 3
#### 제목 4
##### 제목 5
###### 제목 6
  • =, - 사용 가능
h1
==
h2
--

하이픈을 여러 개 사용
----------

 

2. 구분선

  • *, -, _ 등을 3개 이상 입력
***
---
-----------

 

 

3. 줄바꿈

  • 문장 뒤에 띄어쓰기를 2번 이상 하거나 <br>, </br> 사용
줄바꿈<br>
줄바꿈  
줄바꿈<br/>
줄바꿈</br>

 

이건 설명하는 사람마다 말이 다 다름 ,,, 

 

 

4. 폰트 스타일

__Bold__
**Bold**
_Italic_
*Italic*
~~Cancelline~~
<U>Underscore</U>

# 형광펜
==강조할 텍스트==
<mark>강조할 텍스트<mark/>

 

 

5. 인용문

  • >의 갯수에 따라 중첩인용 가능
> 첫번째 인용문
>> 두번째 인용문
>>> 세번째 인용문

 

6. 목록

6.1 순서있는 목록

1. 첫 번째
2. 두 번째
3. 세 번째

6.2 순서없는 목록

  • -, *, + 사용
  • Tab, space bar를 통해 들여쓰기
* 목록1
  * 목록1.1
    * 목록1.2

- 목록2
		
        Tab 두번 하면 코드 블럭을 만들 수 있다.

+ 목록3
  + 목록3.1
    + 목록3.2

 

 

7. 한줄코드

`console.log('한줄코드')`

 

8. 코드블록

```(언어 종류 소문자)
console.log('여러줄로')
console.log('이루어진')
console.log('코드블럭')
```

```sql
console.log('여러줄로')
console.log('이루어진')
console.log('코드블럭')
```
  • <pre><code>{code}</code></pre> 로도 사용 가능
<pre>
<code>
public class MarkDownTest {
  public static void main(String[] args) {
    System.out.println("Hello, MarkDown");
  }
}
</code>
</pre>

 

9. 테이블

| Table Header1 | Table Header2 | Table Header3 |
|:----------|:----------:|----------:|
| **Cell** | Cell | ~~Cell~~ |
| Cell | Cell | Cell |
| Cell | Cell | Cell |

 

9.1 테이블 내에서 줄바꿈

  • <br> 
  • </br>
|제목 셀1|제목 셀2|제목 셀3|제목 셀4|
|---|---|---|---|
|내용 1|내용 2|내용 3|내용 4|
|내용 5|내용 6|내용 7|내용 8|
|내용 9|내용 10|내용 11|내용 12 <br> 내용 13|

 

10. 이미지

![이미지 설명](이미지 링크)

 

11. 체크박스

- [x] 청소하기
- [ ] 공부하기

 

 

12. 기호

역방향 슬래시를 앞에 입력

\\
\*
\+
\-

 

13. 이모지

# window
윈도우 키  + 마침표 (.)

# mac
Command + Control + Space Bar

'기타' 카테고리의 다른 글

mkdocs 설치  (0) 2024.07.04

Shell script

2024. 2. 29. 20:09

맨 처음의 행에 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주기 위하여 아래 문장 명시

#!/bin/sh

 

문법

  • 주석 #
  • 입력 read 
  • 출력 echo
$ vi test.sh
#!/bin/sh

read NAME
echo "Hello, $NAME!"
$ chmod 755 test.sh
$ ./test.sh
kim				# 입력

Hello, kim!			# 출력

 

  • 변수에 값을 전달할 때는 = 의 앞,뒤에 공백 없이 작성
  • 문자열인 경우 "쌍따옴표"로 묶음
  • 변수에 액세스할 때 변수명의 앞에 $를 넣는다. 혹은 $넣어서 변수를 {}로 감싼다

$변수

${변수}

변수 기능
$0 실행된 스크립트명
$1 ~ $9 Argument, 첫 번째의 인자는 $1, 2번째 인자는 $2로 액세스
$# 스크립트에 전달된 인자의 수
$* 모든 인자를 모아 하나로 처리
$@ 모든 인자를 각각 처리
$? 직전에 실행한 커맨드의 종료 값(0은 성공, 1은 실패)
$$ 해당 쉘 스크립트의 PID
$! 마지막으로 실행한 백그라운드 PID

 

 


DB 접속

sqlplus -s 계정명/비밀번호@SID<<EOF
exit
EOF                                 # 접속 해제

 

SQL에서 스크립트 실행

SQL> @경로\\[파일이름]
# @c:\\temp\\test_data.sql

 

연습

1. linux 콘솔에서 sql 파일 작성

[oracle@kim temp]$ cat cre.sql
CREATE TABLE TEST (A NUMBER);

[oracle@kim temp]$ cat ins.sql
INSERT INTO TEST VALUES (1);
INSERT INTO TEST VALUES (2);
COMMIT;

[oracle@kim temp]$ cat sel.sql
SELECT * FROM TEST;



[oracle@kim temp]$ ll
합계 12
-rw-r--r--. 1 oracle oinstall 30  2월 29 18:35 cre.sql
-rw-r--r--. 1 oracle oinstall 66  2월 29 18:36 ins.sql
-rw-r--r--. 1 oracle oinstall 20  2월 29 18:36 sel.sql

2. sql 접속

3. sql 실행

18:36:27 TEST@cdb1>@cre.sql
Table created.
Elapsed: 00:00:00.35


18:36:36 TEST@cdb1>@sel.sql
no rows selected
Elapsed: 00:00:00.00


18:36:42 TEST@cdb1>@ins.sql
1 row created.
Elapsed: 00:00:00.34
1 row created.
Elapsed: 00:00:00.00
Commit complete.
Elapsed: 00:00:00.00


18:36:47 TEST@cdb1>@sel.sql

         A
----------
         1
         2

 

'Linux' 카테고리의 다른 글

Rocky Linux  (0) 2024.02.21
[Linux] 기본 명령어  (0) 2023.04.13
[Linux] Setup  (0) 2023.03.09

[Oracle] Compress

2024. 2. 29. 17:37

● 서버 스토리지 부족 시 TBL 압축을 위해 Compress 옵션 사용 (단, DML이 잦으면 역효과일 수 있음)

  Relation Data 처리를 위한 알고리즘으로 DB Block 내 다수의 column의 중복된 값을 제거하여 compression을 수행

  새로운 data를 bulk insert, bulk load 또는 insert, update 시 compression 사용 가능

 

  Compress된 block은 compression과 관련된 meta data를 symbol table에 저장

                 ㄴ uncompressed table과 가장 큰 차이

                                                                       ㄴ symbol table : block의 상단에 위치

 

 

※ 사용 전 테이블의 속성을 파악하여 DML 이력 확인 권고

SQL> SELECT INSERTS, UPDATES, DELETES FROM DBA_TAB_MODIFICATIONS WHERE TABLE_NAME = 'TEST';

   INSERTS    UPDATES    DELETES
---------- ---------- ----------
         0      12657          0

 

 

 

Basic Compression

Direct path I/O 로 생성된 block만 압축함

하나의 segment에 여러 형태의 block이 혼재할 수 있음

                                 ㄴ Compressed block (Direct Path I/O)

                                      Uncompressed block (Conventional Path I/O)

 

Command

ALTER TABLE TEST_NOCOMP MOVE NOCOMPRESS;
ALTER TABLE TEST_BASIC MOVE COMPRESS BASIC;
ALTER TABLE TEST_OLTP MOVE COMPRESS FOR OLTP;

MOVE : 이전에 저장되어 있던 DATA들도 압축

MOVE 생략 시 이후에 들어오는 DATA들에 한하여 압축

SQL> INSERT /*+append*/ INTO ... VALUES ...
SQL> COMMIT;

 

 

 

 

OLTP Compression

Online Transaction Processing

 = 그냥 트랜잭션

'Database > Oracle' 카테고리의 다른 글

[Oracle] Transaction과 Record  (0) 2024.02.21
RMAN  (0) 2023.11.12
[Oracle] 자주 쓰는 명령어  (0) 2023.11.10
[Oracle] 관리자 계정(system, sys) 비밀번호 변경  (0) 2023.03.16
[Oracle] 이전 명령어 방향키로 출력  (0) 2023.03.15

Rocky Linux

2024. 2. 21. 23:19

CentOS 8의 종료를 발표하면서 만든 무료 리눅스 배포판

Rocky Linux, Alma Linux, CentOS Stream

 

  •  CentOS 개발자들이 만든 배포판으로, CentOS와 매우 유사
  • 기업용 서버에서 사용하기에 적합 (안정성, 보안성, RHEL과 동일한 업데이트 및 지원 정책 제공)

 

 

다운로드 페이지

https://rockylinux.org/ko/download

'Linux' 카테고리의 다른 글

Shell script  (0) 2024.02.29
[Linux] 기본 명령어  (0) 2023.04.13
[Linux] Setup  (0) 2023.03.09

[Oracle] Transaction과 Record

2024. 2. 21. 22:02

 

Transaction

: DB의 데이터를 조작하는 작업의 단위

병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위

사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위

Commit or Not

 

트랜잭션 상태

  • Active : 트랜잭션 실행 중
  • Failed : 트랜잭션 실행에 오류가 발생하여 중단
  • Aborted : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
  • Partially Committed : 트랜잭션의 마지막 연산까지 실패했지만, Commit 실행 직전의 상태
  • Committed : 트랜잭션이 성공적으로 종료되어 Commit 실행 후의 상태

ACID 원칙을 보장해야 함

 ㄴ 지킬수록 동시성은 떨어짐

 ㄴ ∴ 각 Level별 Transaction Lock Level 존재

 

Lock

Row Lock

: Table이 row에 lock을 거는 것

  • Shared Lock : select 시 잠금
  • Exclusive Lock : write 시 잠금

1. 동시에 여러 Tx가 한 row에 Shared Lock을 걸 수 없음

  = 여러 Tx가 동시에 row를 읽을 수 없음

2. Shared Lock이 걸려있는 row에 다른 Tx가 Exclusive Lock을 걸 수 없음

  = 다른 Tx가 row를 읽는 동안 다른 Tx는 수정 및 삭제 불가능

3. Exclusive Lock이 걸려있는 동안 다른 Tx는 Shared/Exclusive 즉 모든 Lock을 걸 수 없음

 

Record Lock

: DB의 Index Record에 걸리는 Lock

  • Shared Lock : select 시 잠금
  • Exclusive Lock : write 시 잠금

Gap Lock

Index Record의 Gap 사이에 걸리는 Lock

record Table에서 인덱스와 인덱스 사이에 존재

 = record가 없는 부분에 걸리는 Lock

 

 

             ┌ 새로운 row의 추가 방지

Record Lock Vs. Gap Lock

 ㄴ이미 있는 row가 변경되지 않게 

 

*Index

Data의 Record에 빠르게 접근하기 위해 <키, 값, 주소> 로 구성된 데이터 구조

 

 

 

Record

  • Table 형태의 데이터 타입
  • 여러 개의 Data Type을 갖는 변수들의 집합
  • 논리적 단위
  • 필드 집합 처리
  • ( ≒ C언어의 Struct)

 

  • 테이블과 다르게 개별 필드 이름 부여 가능
  • 선언 시 초기화 가능
  • 레코드가 가질 수 있는 row의 수는 1개

선언 방식에 따라 커서형, 사용자 정의형, 테이블형 레코드로 나뉨

 

1. 사용자 정의형 레코드

: 선언한 레코드 변수를 통해 내부의 속성들에 접근

테이블의 컬럼에 해당하는 것을 필드라고 한다.

TYPE 레코드명 IS RECORD (
	필드명1 필드1 타입[ [NOT NULL] := 디폴트값 ],
    필드명2 필드2 타입[ [NOT NULL] := 디폴트값 ]
	...
);
레코드변수명 레코드명;

 

예시 1)

DECLARE
    TYPE dept_rect IS RECORD(			-- dep 레코드 타입 선언
      department_id NUMBER := 1,		--혹은 departments.department_id%TYPE
      department_name VARCHAR2(80),		--혹은 departments.department_name%TYPE
      parent_id NUMBER(6),
      manager_id NUMBER(6));
      
    vr_dept_rect dept_rect;				-- 위에서 선언된 타입으로 레코드 변수 선언
    
 BEGIN    
    DBMS_OUTPUT.PUT_LINE(vr_dept_rect.department_id);    
 END;

 

예시 2)

DECLARE
    TYPE emp_type IS RECORD(			-- emp_type 레코드 타입 선언
      emp_no NUMBER(4) NOT NULL := 0,
      ename emp.ename%TYPE,
      JOB VARCHAR2(9)
   	);
    v_emp	emp_type;					-- 위에서 선언된 타입으로 레코드 변수 선언
    
 BEGIN
    v_emp.empno := 9000;
    v_emp.ename :='hong';
    v_emp.job := 'dr';
    
    DBMS_OUTPUT.PUT_LINE('empno' = ' || v_emp.empno);
    DBMS_OUTPUT.PUT_LINE('ename' = ' || v_emp.ename);
    DBMS_OUTPUT.PUT_LINE('job' = ' || v_emp.job);
 END;
 
 
/**************************** 실행 결과
 EMPNO = 9000
 ENAME = HONG
 JOB = DR
 *************************************/

 

 

2. 테이블형 레코드

: 특정 테이블의 모든 컬럼을 받을때 사용하는 레코드 타입이다. %TYPE 대신 %ROWTYPE으로 선언

레코드 변수명 테이블명.%ROWTYPE;

예시 1)

DECLARE
    vr_dept_rect departments%ROWTYPE;
    
    BEGIN
      SELECT * into vr_dept_rect from departments where department_id = 10;
      DBMS_OUTPUT.PUT_LINE(vr_dept_rect.department_id);    

END;

 

 

3. 커서형 레코드

: Cursor를 레코드 변수로 받는 것

커서명%ROWTYPE;
DECLARE
    CURSOR cur_dep IS
        SELECT * from departments;
    vr_dep cur_dep%ROWTYPE;
    
    BEGIN
    OPEN cur_dep;
   	 LOOP
      FETCH cur_dep INTO vr_dep;
      EXIT WHEN cur_dep%NOTFOUND;

      DBMS_OUTPUT.PUT_LINE(vr_dep.department_id);
      DBMS_OUTPUT.PUT_LINE(vr_dep.department_name);

  	  END LOOP;
    
      DBMS_OUTPUT.PUT_LINE(cur_dep%ROWCOUNT);
      --DBMS_OUTPUT.PUT_LINE(vr_dep%ROWCOUNT);
END;

'Database > Oracle' 카테고리의 다른 글

[Oracle] Compress  (0) 2024.02.29
RMAN  (0) 2023.11.12
[Oracle] 자주 쓰는 명령어  (0) 2023.11.10
[Oracle] 관리자 계정(system, sys) 비밀번호 변경  (0) 2023.03.16
[Oracle] 이전 명령어 방향키로 출력  (0) 2023.03.15

RMAN

2023. 11. 12. 20:29
-- sqlplus 접속
sqlplus / as sysdba

ALTER SYSTEM SET log_archive_dest='/ARC_STR' SCOPE=SPFILE;
ALTER SYSTEM SET log_archive_format='ARCH_STR_%r_%t_%s.ARC' SCOPE=SPFILE;


-- 아카이브 로그 모드 변경
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
alter database open

 

 

-- rman 접속
rman target /

-- DB 전체 정보
report schema;

-- DB 파일 상태 점검
validate database;


-- FRA 설정으로 인한 오류
-- ORA-19625: error identifying file /FRA/STR/archivelog/2022_12_16/o1_mf_1_22_ksrogsbd_.arc
-- ORA-27037: unable to obtain file status

rman target /
change archivelog all crosscheck;
-- rman 설정 변경
-- 2일 전의 백업까지 

rman target /

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/RMANBKP/control/control_%F';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/RMANBKP/control/snapcontrol_STR.f';

-- rman 설정 원복
CONFIGURE RETENTION POLICY CLEAR;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
CONFIGURE SNAPSHOT CONTROLFILE NAME CLEAR;

-- rman 설정 확인
show all;
 rman 백업
  oracle 계정
********************************************************/

rman target /


-- %T (YYYYMMDD) 년월일 포멧
-- %U 시스템 생성 고유 파일 이름 8자리

-- 전체 백업
backup database;
backup database format '/RMANBKP/STRDB2_full_n_bkp_%T_%U';

-- 전체 백업 + 압축
backup as compressed backupset database format '/RMANBKP/STRDB2_full_c_bkp_%T_%U';



-- 백업 상태 확인
list backup;
list backup summary;

host 'ls -lh /RMANBKP';
export NLS_DATE_FORMAT="YYYY/MM/DD(DY) HH24:MM:SS"

[Oracle] 자주 쓰는 명령어

2023. 11. 10. 17:00

현재 DB 상태 확인

-- STARTED (NO MOUNT) -> MOUNTED (MOUNT) -> OPEN (OPEN)

SQL > SELECT STATUS FROM V$INSTANCE;
STATUS
------------------------------------
STARTED


SQL > SELECT STATUS FROM V$INSTANCE;
STATUS
------------------------------------
MOUNTED


SQL > SELECT STATUS FROM V$INSTANCE;
STATUS
------------------------------------
OPEN

 

 

SID 확인

SQL> SELECT INSTANCE FROM v$thread;

 

 

Database read only mode

SQL> shutdown immediate;
SQL> alter database open read only;

 


Database status 확인

SQL> select name, open_mode from v$database;

 


Database Primary/Standby 확인

SQL> select database_role from v$database;

 


Control file 상태 확인

  SQL> SELECT controlfile_type FROM V$database;

 


redo group 확인

SQL> select * from v$logfile;



'Database > Oracle' 카테고리의 다른 글

[Oracle] Transaction과 Record  (0) 2024.02.21
RMAN  (0) 2023.11.12
[Oracle] 관리자 계정(system, sys) 비밀번호 변경  (0) 2023.03.16
[Oracle] 이전 명령어 방향키로 출력  (0) 2023.03.15
[Oracle] Sequence  (0) 2023.03.13

[Linux] 기본 명령어

2023. 4. 13. 15:56

1. 유저 생성

$ useradd [username]
$ passwd [username]

 

2. 유저 조회

# 현재 유저 조회
$ whoami
$ echo $USER
 
# 유저 정보 조회
$ cat /etc/passwd
 
# 유저명만 조회
$ cut -f1 -d: /etc/passwd

 

3. 유저명 변경

$ usermod -l [new_username] [old_username]

 

4. 유저 삭제

# 유저의 홈 디렉터리까지 삭제
$ userdel -r [username]

# 유저만 삭제
$ userdel [username]

 

 5. 홈 디렉터리명 변경

$ usermod -d /home/[new_username] -m [old_username]

'Linux' 카테고리의 다른 글

Shell script  (0) 2024.02.29
Rocky Linux  (0) 2024.02.21
[Linux] Setup  (0) 2023.03.09

[SQL] 명령어

2023. 3. 17. 15:37

1. 유저 조회

더보기

1. 현재 유저 조회

SQL> SHOW USER;

 

2. DBA 권한으로 현재 유저들의 리스트를 확인

SQL> select username from dba_users;

 

3. 생성 된 계정 확인

> select * from dba_users;
> select * from all_users;

 

1.1 Role 조회

select role from dba_roles;

 

1.2 유저 생성 및 테이블스페이스 지정

create user 유저명 identified by 패스워드 default tablespace 테이블스페이스명;
GRANT 권한명 TO 유저명;

ex) grant DBA, RESOURCE, CONNECT to test2;

 

2. 테이블스페이스

더보기

1. 유저의 테이블스페이스 변경

ALTER USER 유저 DEFAULT TABLESPACE 변경할 테이블스페이스;

 

2. 생성 된 테이블 리스트 조회

> select table_name from tabs;

 

 

'Database > SQL' 카테고리의 다른 글

[SQL] SQL문 실행 원리  (0) 2023.03.13
[SQL] DDL / DML / DCL  (0) 2023.03.10

+ Recent posts