분류 전체보기
-
mkdocs 설치2024.07.04
-
마크다운 모음.zip2024.04.16
-
Shell script2024.02.29
-
[Oracle] Compress2024.02.29
-
Rocky Linux2024.02.21
-
[Oracle] Transaction과 Record2024.02.21
-
RMAN2023.11.12
-
[Oracle] 자주 쓰는 명령어2023.11.10
-
[Linux] 기본 명령어2023.04.13
-
[SQL] 명령어2023.03.17
mkdocs 설치
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
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
Shell script
맨 처음의 행에 시스템에 지금부터 셸 스크립트를 쓴다는 사실을 알려주기 위하여 아래 문장 명시
#!/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
● 서버 스토리지 부족 시 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
CentOS 8의 종료를 발표하면서 만든 무료 리눅스 배포판
Rocky Linux, Alma Linux, CentOS Stream
- CentOS 개발자들이 만든 배포판으로, CentOS와 매우 유사
- 기업용 서버에서 사용하기에 적합 (안정성, 보안성, RHEL과 동일한 업데이트 및 지원 정책 제공)
다운로드 페이지
'Linux' 카테고리의 다른 글
Shell script (0) | 2024.02.29 |
---|---|
[Linux] 기본 명령어 (0) | 2023.04.13 |
[Linux] Setup (0) | 2023.03.09 |
[Oracle] Transaction과 Record
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
-- 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"
'Database > Oracle' 카테고리의 다른 글
[Oracle] Compress (0) | 2024.02.29 |
---|---|
[Oracle] Transaction과 Record (0) | 2024.02.21 |
[Oracle] 자주 쓰는 명령어 (0) | 2023.11.10 |
[Oracle] 관리자 계정(system, sys) 비밀번호 변경 (0) | 2023.03.16 |
[Oracle] 이전 명령어 방향키로 출력 (0) | 2023.03.15 |
[Oracle] 자주 쓰는 명령어
현재 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] 기본 명령어
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] 명령어
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 |