가장 널리 알려진 상업용 RelationalDatabase Management System

관련정보

[Python]으로 연동하여 쓸 경우, [cx_Oracle] 사용.

특징

  1. Tablespace

원격 접속방법

참고 : [http://www.iplus.co.kr/community/blog.asp?seq=118123433158522&code=101012 Oracle 접속문제]

  1. Oracle client 프로그램을 설치한다.
  2. $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;


CategoryProgram

web biohackers.net