- Today
- 0
- Total
- 229,869
목록Oracle/Oracle Study (38)
개발은 너무해
현재 서버shmmax=1gshmseg=120SGA = 48G 신규서버shmmax=1gshmseg=120SGA = 110G 위로 올라가지 않음. 왜 그런 것인지를 찾아봄. shmmax 할당 : SGA 보다 크거나 같게 설정하는 것을 권장한다고 함. 현재 알아본 바로는,1. sga 값보다 shmmax를 낮게 설정하면, 여러개의 shared memory가 뜨는 것을 볼 수 있다. - ipcs -ma 명령어로 SEGSZ 값을 합산하면 대략적으로 sga값과 동일하게 나온다.2. sga 값보다 shmmax를 높게 설정하면, 한개의 shared memory가 뜨는 것을 볼 수 있다. 의문. sga 값보다 shmmax를 낮게 설정하였는데, 에러가 발생하였다. - ORA-27123: unable to attach to ..
drop table temp_pgheo_external;drop directory TEST; create directory TESTas '/data16/tmp'; create table temp_pgheo_external(server_date varchar2(14),code1 varchar2(20),code2 varchar2(20),code3 varchar2(20),code4 varchar2(20),code5 varchar2(20) )organization external( type oracle_loader default directory BDUMP access parameters( --recodrds fixed 63 records delimited by newline fields terminated b..
v$log 가 처리되는 순서(?)를 보고자 함.. 현재 대량 데이터를 삭제중에 있다. select a.group#, member, bytes/1024/1024, a.status, archivedfrom(select * from v$log) a,(select * From v$logfile) bwhere a.group#=b.group#order by group#, member; 위 쿼리를 지속적으로 모니터링을 해보았다. log switch가 발생하면 alert 파일에 기록이 남고 status는 active 상태로 변환. status가 inactive 로 변경되면, archive 파일로 떨구는 작업을 진행하게 된다.이후 archived 컬럼은 NO에서 YES로 변경되면서 다음 log switch가 발생할 때 ..
현재 데이터의 rowid가 dml 작업시 변화가 있을까하여 몇가지 테스트를 해보았다. * TEMP 테이블 생성create table temp_rid_test tablespace users nologging asselect 1 no,'aaaaa' depth from dual union allselect 2,'bbbb' from dual union allselect 3,'xxxxx' from dual union allselect 4,'ddddd' from dual union allselect 5,'hhhha' from dual union allselect 6,'agghha' from dual; * 현재 rowidselect rowid, no, depth from temp_rid_test; ROWID NO D..
문득 생각났던 부분을 테스트 해본 결과이다. 중요하지는 않지만 궁금해서...어이없는 궁금증이였던가? ㅋㅋ 1. archive mode 가 아니면 hot backup을 할 수가 없다.SQL> alter tablespace system begin backup;alter tablespace system begin backup*ERROR at line 1:ORA-01123: cannot start online backup; media recovery not enabled SQL> 2. 핫백업시 다시 begin backup 명령어 먹는가?SQL> alter tablespace system begin backup; Tablespace altered. SQL> alter tablespace system begin b..
몇 년전 오라클 교육을 받은 이후로 처음 윈도우에 오라클을 설치해보았다.DB 설치 시 윈도우와 리눅스가 초기 설정이 다소 다르다는 것을 잠시 잊고 있었다. 윈도우에 생성 시 초기 해야할 작업.1. 서비스 등록 (oradim) D:\PROD\script>oradim -new -sid PROD -startmode A인스턴스가 생성되었습니다. D:\PROD\script>set oroacle_sid=PROD D:\PROD\script>sqlplus "/as sysdba" cf. oradim -new -sid PROD : 서비스 등록 oradim -delete -sid PROD : 서비스 해제 startmode A : 자동모드로 변환 2. shutdown 또는 startup 시 별도의 인증없이 DB 관리자 역할을..
SQL> !lsnrctl stop listener...... SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started. Total System Global Area 2550136832 bytesFixed Size 2022920 bytesVariable Size 536871416 bytesDatabase Buffers 1996488704 bytesRedo Buffers 14753792 bytesDatabase mounted.SQL> alter system enable restricted session; System altered. SQ..
union 과 union all 의 차이점을 말하라하면 중복이 제거가 되느냐 되지 않느냐의 차이로 알고 있었다.그러나 minus는????? 단순히 로우에 대한 빼기로만 알고 있었기에 무심코 사용했다.반전...결론은 minus를 하면 중복이 제거가 된 값들이 출력된다. with car as( select 'car' flag from dual union all select 'car' flag from dual union all select 'air' flag from dual union all select 'air' flag from dual union all select 'air' flag from dual union all select 'air' flag from dual union all select ..
용량이 부족할 때 데이터 파일을 추가 해주는 형식으로 주로 하였기에, resize 할 때 문제를 생각해 보지 않았다. autoextensible 되고 있는 데이터 파일을 resize를 하면 resize 한 만큼의 용량으로 자동 증가가 되는 줄 알았다. 하지만 아래 결과를 보게 된다면 생각이 달라질 것이다. 테이블 스페이스를 생성하고 상태 변경까지 각각의 size를 확인해 볼 것이다. 1. 테이블 스페이스 생성 ### create tablespace tbs_auto ### datafile '/oracle/oradata/orcl/Disk3/tbs_auto.bdf' size 1m ### autoextend on next 8k maxsize 3m; TABLESPACE AUT current(MB) Max exte..
$ORACLE_HOME/demo/sales_history/sql_main.sql 실행. 해당파일이 생성되지 않았으면 개별적으로 다운받아서 실행. 파일 용량이 큰 관계로 올리지 못하였다. 대략 17M 정도되며, 분할하여 올리려고 하였지만 회사 컴퓨터라 분할 할 여유가 되질 못하였다. specify password for SH as parameter 1: --> sh 계정에 대한 password 지정 Enter value for 1: ****** specify default tablespace for SH as parameter 2: --> default tablespace 지정 Enter value for 2: users specify temporary tablespace for SH as paramete..
create table temp_nation as select 'Seoul' city, 'Korea' country from dual union all select 'Busan' city, 'Korea' country from dual union all select 'Inchon' city, 'Korea' country from dual union all select 'LA' city, 'America' country from dual union all select 'Newyork' city, 'America' country from dual union all select 'Mexicocity' city, 'Mexico' country from dual ; select country, substr(max..
sqlnet.ora에 설정한다. tcp.validnode_checking = yes tcp.invited_nodes=(127.0.0.1,127.0.0.2) tcp.NODELAY=yes listener 재시작..
현재 버젼은 10.2.0.1 이다. metalink 에서 패치 및 업데이트를 클릭하여 10.2.0.4 를 조회하여 다운 받는다. patch number : 6810189 파일명 : p6810189_10204_Linux-x86.zip 1. lsnrctl stop listener 2. shutdown immediate; 3. unzip p6810189_10204_Linux-x86.zip 4. ./runInstaller. - 허가거부라고 하여 실행이 되지 않을 때가 있는데 runInstaller 파일에 권한을 더 추가한다.(chmod 775 runInstaller) - .oui 등 다른 파일들도 권한 문제로 실행이 안되는 경우가 생김. 5. 인스톨 화면에서 10.2.0.1 설치 했을 때와 같은 경로들을 준다...
1. startup nomount - pfile 또는 spfile을 읽어서 SGA 까지 올라옴. - pfile 또는 spfile들에 구성된 내용들을 볼 수 있다. 2. startup mount - Database의 정보를 가지고 있는Control file 까지 올라옴. - Oracle Dynamic Performance Views 까지 조회할 수 있음. 3. startup - Database open - 정상구동. 4. startup restrict - restrict 권한을 가진 계정만 DB에 접속할 수 있다. - 다른 session들을 막고 open된 상태에서 DB를 조작하여야 할 때 사용.(패치 또는 백업)
1. shutdown (normal) : dml 작업을 한 다른 session 들이 commit이나 rollback을 하지 않는 이상 절대 shutdown 불가능 2. shutdown transactional - dml 작업을 한 session들은 그대로 냅두고, 다른 session 들만 끊는다. - 어쨌든 normal 과 같은 경우. 3. shutdown immediate - shutdown을 할때 가장 많이 쓰이는 명령어. - dml 작업을 한 다른 session 들을 자동 rollback 시키고 shutdown 을 가능하게 함. 4. shutdown abort - 강제로 shutdown 함. - system에 무리를 줄 수가 있음.
오라클에는 URL 을 Encoding 및 Decoding 하는 함수가 있다. 유용하게 사용 할 수 있을 것 같다. http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_url.htm#i996850 Encoding : select utl_url.escape('함수') from dual; Decoding : select utl_url.unescape('%EC%97%89%EB%98%A5%ED%8F%AD%ED%8F%AC','UTF-8') from dual; Encoding 은 왤케 안되는지 모르겠다. 아무래도 한글로 Encoding 할려니 안되는 것 같다. 근데 Decoding은 왤케 잘되는지.. 열심히 찾고 있는 중이다. ㅋㅋ
1. 또 다른 undo tablespace를 생성한다. create undo tablespace undotbs2 datafile '/data4/oradata/undotbs2.dbf' size 1G autoextend on next 64M maxsize unlimited; 2. 새로 생성한 undo를 임시로 default 로 설정한다. alter system set undo_tablespace = UNDOTBS2; 3. 기존 undo tablespace를 삭제한다. drop tablespace undotbs1 including contents and datafiles cascade constraints; 4. 새로 적용할 undo tablespace를 생성한다. create undo tablespace u..
디비 생성시 초기 설정 해줄수 있는 MAXDATAFILES와 구동되고 있는 디비에서 spfile or pfile에서 수정해 줄수 있는 db_files 파라미터가 있다. 1. MAXDATAFILES에 값이 부족하여 데이터 파일을 만들 수 없을 때 ORA-01118 에러를 뿌려주게 되어있는데 controlfile에 있는 MAXDATAFILES가 자동 증가 하는 것을 확인 하였다. (MAXDATAFILES 4000 -> 8000으로 증가됨) 언제 이 에러가 발생되는지 찾지 못했다. ORA-01118: cannot add any more database files: limit of string exceeded 2.. db_files의 값을 초과하여 데이터 파일을 만들 수 없을때 ORA-00059 에 대한 에러 ..
현재 캐릭터셋은 KO16MSWIN949 이다.그래서 뷁 또는 맗 같은 멀티바이트가 insert 할 수가 있다. C:\Windows\System32>sqlplus system/******@prodSQL*Plus: Release 10.2.0.1.0 - Production on 목 1월 6 17:09:02 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options SQL> select * from sys.props$ wher..
얼마전(?) 부터 서버의 이상증상이 보였고 이제는 부팅도 안되고 복구도 불가능한 지경까지 이르게 되었습니다.귀차니즘에 빠졌던 저라 컴퓨터를 꺼버리고 두달정도 그냥 방치해두었다가 이제야 우분투를 다시 설치하게 되었습니다. 우분투는 예전에 설치 한 것보다 좀 더 수월하게 진행이 되었던것 같습니다. 접속 문제 빼고요.내부/외부에서 접속이 전혀 되질 않아서 고생 좀 했습니다. 이제 오라클 설치에 대해서 또 한번 적어보고자 합니다. 예전 글은 정리가 잘 되지 않아서 이번에는 제가 한 순서대로 나름 깔끔하게 적어볼려고합니다.(참고 URL) 1. 오라클 설치하는데 필요한 패키지 설치pgheo@pgheo-desktop:/home$ sudo apt-get install gcc binutils libaio1 lesstif..
제가 구독하고 있는 블로그에서 본 것을 테스트 해본 것 입니다. 다들 아시는 유명한 블로그죠. 매번 좋은 정보를 주어서 감사 할 따름입니다. 테스트 할 자료도 있고, 설명도 잘 되어져 있어서 공부를 하면서 분석함수에 대해서 조금이나마 가까이 갈수 있었던 기회 같습니다. 조금만 생각하면 응용쿼리 생성 및 튜닝도 가능할 것으로 보입니다. 아직 미흡합니다.ㅎㅎㅎ 관련 파일에는 간단한 설명이 있으며, 이해 안가는 부분도 있지만 나름 이해할려고 노력해봤습니다.
테스트 디비를 백업을 할려고 보니 redo logfile 그룹이 3개라서 불필요한 것 같아 한개 그룹을 삭제하기로 하였습니다.테스트 디비라고 하여 좀 안일하게 써온터라 데이터파일 용량도 커지고 로그 파일등 정리가 안되어있네요.테스트 디비라고 무시말고 메인디비 쓰듯이 써야 할 것 같습니다. 소중하게..ㅎㅎ날 잡아서 정리 좀 해야할 것 같네요.(메인디비 쓰듯이 써야할텐데..ㅡㅡ;;) SQL> select a.group#, a.member, b.members, b.status 2 from v$logfile a, v$log b 3* where a.group#=b.group#SQL> / GROUP# MEMBER MEMBERS STATUS---------- --------------------------------..
SQL> show serveroutputserveroutput OFFSQL> begin 2 dbms_output.put_line('serveroutput이 실행 중입니다.'); 3 end; 4 / PL/SQL procedure successfully completed. SQL> set serveroutput onSQL> show serveroutputserveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPEDSQL> r 1 begin 2 dbms_output.put_line('serveroutput이 실행 중입니다.'); 3* end;serveroutput이 실행 중입니다. --결과물이 출력되었습니다. PL/SQL procedure successfully completed...
library cache miss 비율을 보고 shared_pool_size를 수정하고 좀 고생을 했습니다.구글에 찾다가가 SGA에 관한 글을 보고 많은 도움이 되었습니다. 사고경위(?)는 이렇습니다. ㅋㅋshared_pool은 자동관리가 되고 있다는 것을 잠시 잊고 있었습니다.library cache miss 비율이 4%가 넘어서 shared_pool_size를 늘려주어서 0.2%로 떨어트렸습니다.문뜩 shared_pool_size를 직접적으로 올려주는 것보다 sga_max_size 이나 sga_target 값을 올려서 자동으로 shared_pool_size를 올려주는게 나을 것 같아서수정하기로 했습니다. SQL> select name, value, isdefault from v$parameter --..
ubuntu:~/oracle/Script$ vi test.sql alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'; alter session set nls_language = 'AMERICAN'; select * from dept; ubuntu:~/oracle/Script$ lstest.sqlubuntu:~/oracle/Script$ sqlplus scott/tiger SQL*Plus: Release 10.2.0.1.0 - Production on 화 2월 16 17:26:22 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to:Oracle Database 10g Ent..
구글링을 하다보면 같은 내용으로 Data Dictionary object 에 대한 설명을 올려놓은 글들이 많이 있었습니다. 개인적으로 정렬도 잘 안되고 보기가 많이 불편하여 엑셀파일로 정리를 하였습니다. (단순히 긁어다가 넣었을 뿐입니다.ㅋㅋㅋ) 보기에는 충분한 자료와 내용들이지만, 오래전에 올린 것들이라 좀 더 업그레이드 된 글들을 찾아 볼수가 없어서 아쉽네요!! 제가 만들기에는 턱없이 부족한 스킬이라...^^;;; 글재주도 없고요.ㅎㅎ 그냥 가지고 있다가 필요할때마다 찾아보면 많은 도움이 될 것입니다. DBA가 기본적(?)으로 알아야하는 것이기 때문에 필히 숙지를 하시는 것도 좋은 방법이 아닐까요?^^
[참고문헌 : export one-on-one ORACLE] * 전역 임시 테이블임시테이블을 생성하는 동작은 공간 할당까지 포함하지 않으며, 다른 종류의 테이블들과는 다르게 initial 익스텐트가 할당되지 않는다. 런타임에 세션이 처음으로 임시 테이블에 데이터를 삽입하면 그 세션을 위한 임시 세그먼트가 생설될 것이다. 각 세션은 자신만의 임시 세그먼트(존재하는 세그먼트의 익스텐트가 아니다)를 가지기 때문에 모든 사용자들은 임시 테이블을 위한 공간을 서로 다른 테이블 영역에서 할당할 수 있을 것이다. *임시 테이블은 트리거, 체크 제약조건, 인덱스 등과 같은 영구 테이블의 많은 속성들을 갈질 수 있다.임시 테이블에서 지원되지 않는 영구 테이블의 특성은 다음과 같다. 1. 참조 무결성 제약조건을 가질 수 ..
출처 : [http://ukja.tistory.com/240 욱짜님 블로그] 평소 자주 찾아보는 욱짜님 블로그에 있는 설명 그대로를 테스트 해본 결과 입니다. 1. bdump의 경로를 알아보고 지정. SQL> col value new_value back_dumpSQL> select value from v$parameter where name = 'background_dump_dest'; VALUE--------------------------------------------------------------------------------/oracle/oradata/PROD/admin/bdump SQL> create or replace directory back_dump_dir as '&back_dump'..
number(p,s) : 전체 p자리 중 소수점 이하 s자리(p:1~38, s:-84~127) number 형식 컬럼에 대한 length를 지정하지 않고 사용되는 경우가 있습니다.예를 들자면 create table num_test (num1 number); 라고 지정을 해놓는데,데이터가 일정치 않을 경우 엄청난 값의 길이가 들어갈 수 있는 상황이 발생하겠죠. 그래서 흔히들 number(10) 같이 길이를 지정해 주고 사용되고 있습니다.소수점을 넣을려고 한다면 number(10,2) 이런 식으로 format을 설정해 줍니다. 제가 하고 싶은 말은 얼마전 우연히 number(3,8) 에 대해서 의문을 가지게 되었습니다.즉, p가 s보다 작을 경우 어떻게 되는가 입니다.아직까지도 정확하게 잘 모르겠습니다. 테..
오라클을 설치할 때 기본적으로 깔리는 DB를 수정해 보았습니다. 데이터 파일 이동, 리두로그파일 추가, 아카이브 모드 변경, 풀백업 등등 예전에 배웠던 것들을 조금씩 조금씩 기억해 나가면서..변환을 하였습니다. 좀 길긴하지만 차근차근히 보시면 금방 눈에 쏘옥 들어올겁니다. 참고로 울트라에디트에서 편집을 하였습니다.(그냥 단순히 긁어다가 복사한 것 뿐이지만요~) 파일을 참조 해 주세요. ※ 작업한 내역 1. 데이터 파일 이동 2. temporary temp tablespace 생성 및 삭제. 3. redo logfile 이동 및 member 추가 4. control file 경로 수정 및 폴더 생성, admin 경로에 대한 pfile 수정 - 예전 alert file, trace file 등 전부 이동. ..