가장 널리 알려진 상업용 RelationalDatabase Management System 관련정보 * [[http://www.puschitz.com/InstallingOracle9i.shtml|installing 9i on redhat7]] * [[http://www.oracleclub.com/profile/OracleFirst.jsp|오라클공부를 처음 시작하시는 분들께...]] * [[http://www.oracle.com/technology/software/products/database/xe/index.html|Expression edition download]] 언어별 확장 * [[Python]]으로 연동하여 쓸 경우, [[cx_Oracle]] 사용 * DjangoAndOracle * PhpAndOracle == 특징 == 1. WikiPedia:Tablespace == 설치 == 1. [[http://www.zimbio.com/Linux/articles/ymnL2olfqXD/How+Install+Oracle+Database+Express+Edition|On Ubuntu]] == 원격 접속방법 == 참고 : [[http://www.iplus.co.kr/community/blog.asp?seq=118123433158522&code=101012|Oracle 접속문제]] 1. Oracle client 프로그램을 설치한다. 1. $ORACLE_HOME/network/admin 디렉토리에 tnsnames.ora 파일을 생성한다. tnsnames.ora 예제 {{{ SidExample = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ipaddress )(PORT = 1521)) (CONNECT_DATA = (SID = SidExample) ) ) }}} sqlplus를 이용한 접속 {{{ sqlplus id/password@sid }}} == 사용 팁 == 사용자생성 {{{ SQL>CONN SYSTEM/MANAGER -- DBA Role이 있는 유저로 접속합니다. SQL>CREATE USER yong IDENTIFIED BY 1111; -- USER를 다시 생성합니다. 사용자가 생성되었습니다. SQL>GRANT CREATE USER, ALTER USER, DROP USER TO yong WITH ADMIN OPTION; -- 권한부여 SQL>GRANT SELECT, INSERT ON some_object TO yong WITH GRANT OPTION; -- 객체(테이블,뷰,시퀀스,프로시저)에 권한부여 }}} 자주쓰이는 쿼리문 {{{ SQL>select table_name from user_tables; # 유저가 소유한 모든 테이블 보기 SQL>select sequence_name from user_sequences; # 유저가 소유한 모든 시퀀스 보기 }}} Oracle 시작과 종료 {{{ # su - oracle $ export ORACLE_SID=ORANLRI $ sqlplus "/as sysdba" > startup > shutdown immediate > exit }}} 백업과 복구 {{{ exp id/password@sid file=my.dump #해당 사용자의 모든 테이블 exp id/password@sid file=my.dump tables=kmaregs,lifekind #모든 테이블 imp id/password@sid file=my.dump }}} CharacterSet변경문제, 혹은 [[http://database.sarang.net/?inc=read&aid=18388&criteria=oracle&subcrit=&id=&limit=20&keyword=character&page=3|관련질답]] {{{ # su - oracle $ export ORACLE_SID=sid $ echo $ORACLE_SID sid $ sqlplus /nolog > connect / as sysdba > shutdown > startup mount exclusive > alter database enable restricted session; > alter database set job_queue_processes = 0; > alter database open; > alter database character set internal_use utf8; > alter database national character set internal_use utf8; > select * from nls_database_parameters where parameter like '%CHARACTERSET%'; > update sys.props$ set value$='UTF-8' where name='NLS_CHARACTERSET'; > update sys.props$ set value$='UTF-8' where name='NLS_NCHAR_CHARACTERSET'; > update sys.props$ set value$='UTF-8' where name='NLS_LANGUAGE'; > commit; > shutdown immediate > startup > exit }}} 테이블스페이스 용량확인 {{{ # su - oracle $ sqlplus "as sysdba" > SELECT u.tablespace_name "TMS_DAT01", u.bytes / 1048576 "크기(MB)", (u.bytes - sum(nvl(f.bytes,0))) / 1048576 "사용됨(MB)", (sum(nvl(f.bytes,0))) / 1048576 "남음(MB)", trunc((sum(nvl(f.bytes,0)) / u.bytes) * 100,2) "남은 %" FROM DBA_FREE_SPACE f, DBA_DATA_FILES u WHERE f.file_id(+) = u.file_id GROUP BY u.tablespace_name, u.file_name, u.bytes ORDER BY u.tablespace_name; }}} DBA권한 주거나 뺐기 {{{ grant sysdba to user; revoke sysdba from user; }}} 테이블 수 체크 후, 파일에 쓰기 {{{ SET VERIFY OFF SET LINESIZE 200 SET PAGESIZE 500 SET FEEDBACK OFF COL SPOOL_NAME FORMAT A30 COL SPOOL_NAME NEW_VALUE S COL NAME1 NEW_VALUE YYYYMM COL NAME2 NEW_VALUE THREAD SET TERMOUT OFF SELECT host_name||'_count_tab_'||to_char( sysdate, 'yyyymmdd')||'.txt' spool_name, t o_char(sysdate, 'yyyymm') name1, thread# name2 FROM v$instance; SET TERMOUT ON SPOOL &S select count(segment_type) "COUNT_TABLE", TABLESPACE_NAME from dba_segments where segment_type = 'TABLE' group by tablespace_name; SELECT u.tablespace_name "TMS_DAT01", u.bytes / 1048576 "Size(MB)", (u.bytes - sum(nvl(f.bytes,0))) / 1048576 "Used(MB)", (sum(nvl(f.bytes,0))) / 1048576 "Free(MB)", trunc((sum(nvl(f.bytes,0)) / u.bytes) * 100,2) "Free %" FROM DBA_FREE_SPACE f, DBA_DATA_FILES u WHERE f.file_id(+) = u.file_id GROUP BY u.tablespace_name, u.file_name, u.bytes ORDER BY u.tablespace_name; SPOOL OFF }}} 테이블스페이스가 꽉 찼을 때 * ORA-01653: THE_TABLE_NAME 테이블을 4(으)로 PF_DAT 테이블스페이스에서 확장할 수 없습니다 해결 방법 3가지 1. TableSpace를 resize를 통해서 늘여준다 1. TableSpace에 Datafile을 추가한다. 1. TableSpace의 AutoExtend를 off일 경우 on을 변경한다. {{{ select file_name, tablespace_name, bytes, autoextensible from dba_data_files where tablespace_name='MY_TABLESPACE'; #filename 확인 후, #1 alter database datafile 'c:\oracle\oradata\ora92\test_02.dbf' resize 5M; #2 alter tablespace app_data add datafile '/disk1/app04.dbf' size 200M autoextend on next 10M maxsize 500M; #3 alter database datafile 'c:\oracle\oradata\ora92\test_02.dbf' autoextend on next 1M }}} 유닉스환경에서의 환경설정 {{{ SQL> define _editor=vim SQL> ed --> to the vim editor SQL> / --> latest sql query }}} 테이블 변경 {{{ SQL> create table test ( 2 name varchar(10) 3 ); SQL> alter table test add(osy number(10)); SQL> alter table test rename column osy to osy79; SQL> alter table test modify(osy79 varchar(10)); SQL> alter table test drop(osy79); }}} ---- CategoryProgram