▶ 10g이상부터는 테이블삭제 시 휴지통기능이 있는데 휴지통 기능없이 바로 삭제시 사용

DROP TABLE 테이블명 CASCADE CONSTRAINTS PURGE


▶ 오라클 10g 부터 추가된 테이블 삭제시 휴지통기능 사용시엔 기존 DROP TABLE 명령어를 사용

DROP TABLE 테이블명 CASCADE CONSTRAINTS;

- 테이블 삭제시 BIN$로 시작하는 테이블이 저절로 생긴다.
- 휴지통에 있는 것이므로 drop table 명령어로 절대 안지워진다.

▶ 휴지통 비우기 명령어로 삭제한다.

PURGE RECYCLEBIN;


▶ 테이블삭제 후 휴지통 보는 쿼리
SELECT OBJECT_NAME,ORIGINAL_NAME,DROPTIME,DROPSCN FROM RECYCLEBIN;

 

▶ 휴지통에 있는 테이블 복원하는 명령어
FLASHBACK TABLE 테이블명 TO BEFORE DROP


http://blog.naver.com/jamesblue/20048086004   내용

테이블명 변경    8i 이상

RENAME 변경전 테이블명 TO 변경후 테이블 명;


컬럼명 변경   9i 이상

ALTER TABLE 테이블명 RENAME COLUMN 변경전 컬럼명 TO 변경후 컬럼명;


컬럼 생성

ALTER TABLE 테이블명 ADD(컬럼명 VARCHAR2(10));

 

컬럼 삭제

ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

 

컬럼 수정

ALTER TABLE 테이블명 MODIFY(컬럼명 VARCHAR2(10));

 

Primary key로 추가하는 방법

1. 변경 하고자 하는 컬럼을 NOT NULL로 변경

ALTER TABLE 테이블명 MODIFY(컬럼명 VARCHAR2(10) NOT NULL);

 

2. Primary key로 지정 돼 있는 것들을 삭제한다.

ALTER TABLE 테이블명 DROP PRIMARY KEY;

 

3. Primary key로 추가합니다.

ALTER TABLE 테이블명 ADD PRIMARY KEY("필드명1","필드명2","필드명3");  

2010/12/17 13:20 2010/12/17 13:20
1. V$VERSION : 오라클 버전에 대한 정보를 볼수 있습니다.
 
SQL>COL banner  FORMAT A70 HEADING "Oracle Versions"

SQL>SELECT banner FROM  V$VERSION;
 
Oracle Versions
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
PL/SQL Release 8.1.6.0.0 - Production
CORE    8.1.6.0.0       Production
TNS for 32-bit Windows: Version 8.1.6.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
  
2. PRODUCT_COMPONENT_VERSION : 제품 인스톨에 대한 정보를 볼 수 있습니다.
 
 SQL>COL PRODUCT FORMAT A30 HEADING "Products Installed"
 SQL>COL VERSION FORMAT A15
 SQL>COL STATUS  FORMAT A15
 
 SQL>SELECT product, version, status FROM  PRODUCT_COMPONENT_VERSION;

Products Installed                    VERSION           STATUS
------------------------------ --------------- ---------------
NLSRTL                                      3.4.1.0.0         Production
Oracle8i Enterprise Edition            8.1.6.0.0         Production
PL/SQL                                      8.1.6.0.0         Production
TNS for 32-bit Windows:               8.1.6.0.0         Production

 3. V$OPTION : 옵션 인스톨에 대한 정보를 볼 수 있습니다.

SQL>COL PARAMETER   FORMAT A50 HEADING "Options Installed"    
SQL>COL VALUE       FORMAT A10 HEADING "True/False"           

SQL>SELECT parameter, value FROM   V$OPTION;


출처 : http://blog.naver.com/idearman/120007487130

2010/12/17 11:04 2010/12/17 11:04

sqlplus / as sysdba
alter user aaa identified by 바꾸려는패스워드;

2010/12/16 13:48 2010/12/16 13:48
grant privilege
on object
to [user,role,PUBLC]
[with grant option] - 권한 부여 권한을 줄것인지 여부 설정

사용자 생성
create user testuser
identified by ora;

세션생성권한부여 - 권한을 줘야 접속이 가능해진다. 아직 테이블을 생성할 권한이 없다.
conn system;
grant create session to testuser;

권한 박탈
revoke create session from testuser;

롤 : 권한의 집합
create role select_table; 롤 생성
grant create session, select any table to select_table; 롤에게 권한지정
grant select_table to testuser;  사용자에게 롤 부여

quota 설정
alter user testuser
quata 10M on users;

저장영역 추가
grant create any table to select_table;select_table라는 롤에 테이블 생성권한 부여
grant select_table to testuser; testuser에 테이블 생성권한 부여


프로파일 설정

프로파일 정보 확인
select profile, resource_name, limit
from dba_profiles
where profile='profile_name';

show parameter resource_limit 로 자원제한사항을 볼수 있다.
alter system set resource_limit = ture --system계정이 자원에 대한 제약을 할 수 있도록 변경

제한 걸기
create profile app_profile limit
sessions_per_users 2
connect time 60
idle_time 1

현재 사용자의 프로파일 확인
select user_name, profile
from dba_users
where username='testuser';

프로파일 사용자에게 적용하기
alter user testuser
profile app_profile;



2010/12/15 10:50 2010/12/15 10:50
DBA_ #해당 데이터베이스에 존재하는 모든 내용 조회 가능
ALL_ # 해당 유저에게 권한이 존재하는 모든 내용 조회 가능
USER_ #해당 유저가 소유자로 되어 있는 모든 내용 조회 가능

1. 오브젝트 관련 데이터 딕셔너리 뷰
DBA_OBJECTS
2010/12/13 20:08 2010/12/13 20:08
출처 : http://blog.naver.com/minis24/80115393571

오라클의 인스턴스로 접속을 가능하게 해주는 다음과 같은 세가지 영역이 존재한다.

 

 

  • 사용자 프로세스
  • 오라클 리스너 (Oracle Listener)
  • 오라클 넷클라이언트(Oracle Net Client)

 

 

사용자 프로세스는 데이터 베이스로의 접속을 시도하는 일종의 소프트웨어로서,

데이터 베이스와의 통신에 오라클 넷 서비스 를 이용한다.


    

   ※ 오라클 넷 서비스

 

       다양한 네트워크 와이어-레벨 프로토콜을 통한 통신을 지원하는 컴포넌트의 집합이며, 개발자나 데이터베이스 운영자가

       여러가지   다른 하드웨어 플랫폼에서의 환경을 설정하는 복잡한 작업을 대신한다.

       예를 들어 윈도우 2000서버에서 레지스트리를 편집하거나  리눅스 서버에서 환경설정 파일을 편집하는 대신에

       오라클에서는 몇가지 간단한 설정파일(오라클의 설치된 경로에 특정영역에 있는)을 이용해서 오라클 넷을 관리한다.

 

      오라클은 오라클 넷 서비스를 설정하는 작업을 위해 Oracle Net Manager 와 Oracle Net Configuration Assistant 와 같은

      툴을 제공한다.  

 

 

 

오라클 리스너 (Oracle Listener)는 오라클 데이터베이스 서버에서 실행되는 프로세스이며, 클라이언트 어플리케이션에서 보내는 접속 요청을 청취하는 역할을 한다.

 

클라이언트는 청취자로 보내는 초기 접속요청에 서비스의 이름을 지정해야 한다.

이 서비스의 이름은 클라이언트가 접속하려는 데이터베이스의 인스턴스를 구별해주는 식별자이다.

 

 

※ 오라클 리스너 설정

 

오라클 리스너의 설정을 수동으로 변경하고자 한다면 listener.ora 파일을 찾아서 설정정보를 변경하면 된다.

Unix 의 경우 $ORACLE_HOME/network/admin 에서 찾을 수 있고,

윈도우의 경우 %ORACLE_HOME%\network\admin 에서 찾을 수 있다.

 

두 운영체제에서 모두 TNS_ADMIN 이란 환경변수를 만들고 오라클 넷 서비스 파일이 위치한 디렉토리를 가리키도록 할 수 있다.


  === >> 리눅스에서의 listener.ora 예 << ===


 TCP/IP 프로토콜로 slaphappy.us.oracle.com 의 1521 포트를 청취할 리스너 프로세스 이다.

 LISTENER 는 데이터베이스를 설치할 때 지정되는 오라클 리스너의 표준 이름이지만, 다른 포트들을 청취하는 

 여러개의 리스너를 다른 이름으로 만들 수 있다.

 LISTENER =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=slaphappy.us.oracle.com)(PORT=1521))

)

 SID_LIST_LISTENER는 LISTENER 에 연결하는 클라이언트에 제공할 수 있는 서비스들을 지정한다.

 SID는 시스템 식별자 이며,

 SLAPDB는 전역 데이터 베이스 이름,

 US.ORACLE.COM은 설치시에 데이터베이스에 할당된 전역 데이터베이스 도메인,

 SLAPDB는 설치시에 데이터베이스에 할당된 인스턴스 이름,

 ORACLE_HOME은 오라클 데이터베이스가 설치된 경로 이다.

   SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=slapdb.us.oracle.com)

(SID_NAME=slapdb)

(ORACLE_HOME=/u01/app/oracle/oracle10g)

)

)

   lsnrctl라는 유틸을 이용하면 리스너가 실행되는 동안 리스너의 설정을 변경할 수 있는데

   STOP,START,RELOAD,STATUS,SHOW(파라미터),SET(파라미터)등과 같은 작업을 제공하는 명령어라인 어플리케이션이다.


   리스너의 세팅을 listener.ora에 기록할지를 오라클 넷 서비스에게 알려주는 역할을 한다.

   SAVE_CONFIG_ON_STOP_LISTENER = ON


   리스너의 로그파일의 위치를 지정한다.

   LOG_FILE_LISTENER=lsnr.log

   LOG_DIRECTORY_LISTENER = /u01/app/oracle/oracle 10g/network/log


   오라클의 넷 컴포넌트들에 대한 부가적인 정보를 제공한다.

   TRACE_FILE_LISTENER = lsnr

   TRACE_DIRECTORY_LISTENER = /u01/app/oracle/oracle 10g/network/log


   이 항목이 OFF이면 리스너에 어떤 일이 일어나도 추적파일에 정보를 기록하지 않는다.

   USER - 사용자 접속에 의해 발생한 오류에 대한 정보를 기록한다.

   ADMIN - 리스너의 설치와 설정에 관련된 문제만을 보여줄 수 있도록 추적정보를 기록한다.

   SUPPORT - 이척적은 오라클 서비스지원(OSS:ORACLE SERVICE SUPPORT)을 호출할 때 이용된다.

                    이때 생성된 추적정보는 OSS로 전달되어 문제 해결에 이용될 수 있다.

   TRACE_LEVEL_LISTENER = OFF 

 

 


 



서버와 마찬가지로 오라클 클라이언트 툴 역시 네트워크 상의 데이터 베이스와 통신 할 수 있도록 하는 설정이 필요하다.

클라이언트를 위한 설정파일은 tnsnames.ora 이다.

 

이 설정 파일의 내부에는 오라클의 툴이 데이터베이스에 접속하는 데 이용되는 접속 설정 리스트가 포함되며, 접속 설정은

서버의 호스트 이름과 서버와의 통신에 이용된 프로토콜 리스너와의 통신에 이용된 포트 등을 지정한다.

 

 

 === >> tnsnames.ora << ===

 

 SLAPDB.US.ORACLE.COM =

(DESCRIPTION =

(ADDRESS_LIST =

( ADDRESS = (PROTOCOL = TCP)

                    (HOST = slaphappy.us.oracle.com)

                    (PORT = 121)

)

)

)

 

 

2010/12/09 13:59 2010/12/09 13:59

원문 : http://zepinos.springnote.com/pages/1595048

오라클 시작과 종료


기본적인 오라클 시작과 종료는 SQL*Plus 로 접속한 뒤 SQL 명령창에서 아래와 같은 명령으로 진행한다.


  • 시작 : startup;
  • 종료 : shutdown immediate;

시작과 종료 모두 몇 가지 옵션을 가지고 있다. 하지만 일반적인 경우에는 종료시 immediate 옵션을 사용하는 것만 알고 있어도 된다.


오라클 시작 옵션


시작시 사용할 수 있는 옵션은 아래와 같다.


startup [force] [restrict] [pfile=파일명] [open [recover] [데이터베이스명] | mount | nomount];


force : 오라클 DB가 시작된 상태에서 다시 재시작할 때만 사용
restrict : DBA 권한을 가진 사용자만이 접속하여 이용 가능하도록 함
pfile : 오라클이 기본으로 제공하는 파라미터 파일인 init.ora 파일이 아닌 관리자가 생성한 파라미터 파일을 사용하여 오라클 서버를 시작할 때 사용
nomount : 인스턴스만 시작된 상태, 주로 오라클 DB 를 생성할 때 사용
mount : 인스턴스에 대한 Control File 을 열기
open : 인스턴스에 대한 모든 파일을 오픈하고 모든 유저가 데이터 베이스 사용 가능
recover : 오라클 복구시 사용


오라클 종료 옵션


종료시 사용할 수 있는 옵션은 아래와 같다.


shutdown [normal | transactional | immediate | aboart];


normal : 기본값,새 연결을 허용하지 않고 현재 사용자들이 접속 종료할 때까지 대기하며, 처리중인 트랜젝션이 종료할 때까지 대기한 후 종료, 다음 startup 시 인스턴스 복구가 필요하지 않음

transactional : 모든 사용자가 특정 인스턴스에서 새로운 트랜잭션을 시작 할 수 없고, 처리중인 트랜젝션이 모두 종료할 때까지 대기한 후 종료, 다음 startup 시 인스턴스 복구가 필요하지 않음

immediate : 현재 처리중인 SQL 을 모두 정지하고 모든 진행중인 트랜젝션을 롤백시킴, 모든 사용자의 DB 닫기 및 인스턴스 연결 종료

aboart : -현재 처리중인 SQL 을 모두 취소하고 모든 진행중인 트랜젝션을 강제 종료시킴(롤백 하지 않음), 모든 사용자의 연결을 종료하고 DB 닫기 및 DB 인스턴스와의 연결을 강제종료, 다음 startup 시 인스턴스 자동 복구


리스너 시작과 종료


리스너는 오라클의 접속을 관리하는 서비스이다. 리스너가 실행되어 있지 않으면 외부에서 오라클을 접속할 수 없다.

리스너의 시작과 종료는 쉘 혹은 도스 프롬프트에서 아래의 명령을 실행한다.


  • 시작 : lsnctl start
  • 종료 : lsnctl stop

엔터프라이즈 매니져 시작과 종료


오라클 10g 부터는 기존의 엔터프라이즈 매니져(Enterprise Manager, 이하 EM)가 웹서비스 형태로 변경되었다.

새로운 EM 을 이용하기 위해서는 서비스를 실행해야 한다.

EM 의 시작과 종료는 쉘 혹은 도스 프롬프트에서 아래의 명령을 실행한다.


  • 시작 : emctl start dbconsole
  • 종료 : emctl stop dbconsole

EM  을 이용하기 위해서는 1158 포트로 접속하면 된다.


iSQL*Plus 시작과 종료


오라클 10g 부터는 EM 뿐만 아니라 SQL Query Tool 인 SQL*Plus 마져 iSQL*Plus 라는 이름의 웹서비스로 제공한다.

EM 과 마찬가지로 iSQL*Plus 을 이용하기 위해서는 서비스를 실행해야 한다.

iSQL*Plus 의 시작과 종료는 쉘 혹은 도스 프롬프트에서 아래의 명령을 실행한다.


  • 시작 : isqlplusctl start
  • 종료 : isqlplusctl stop
2010/10/22 11:47 2010/10/22 11:47

원본 : http://elflord.egloos.com/3388504
PHP등에서 오라클DB 접속 시도시 아파치 프로세스가 KILL 되는 경우가 있습니다. 이경우 프로세스 자체가 KILL 되어버리면 PHP나 DB의 에러 로그가 전혀 남지 않음은 물론, Apache의 errorlog에서도 단지 Segmentation Fault가 발생했다는 내용만 남을뿐 그밖에 어떤 흔적도 남지 않기에 원인을 추적하기가 무척 곤란한 경우가 많습니다.
사실 Segmentation Fault 의 원인은 너무나 다양하기에 특정하기가 무척 힘듭니다만, 오라클 관련 커맨드를 실행중에 이런 문제가 생겼다면, 많은 경우 퍼미션에 관련되었을 가능성이 높습니다.

이경우 확인할 사항은 다음과 같습니다.

1. 아파치 실행시 오라클 관련 파라메터들이 제대로 설정되어 있는가.
2. 아파치 유저에게 오라클 관련 파일에의 접근 퍼미션이 주어져 있는가.

특히 2번의 경우, 가령 예를 들어 오라클 클라이언트에서 DB 서버에 접근시에는
$ORACLE_HOME/network/admin/tnsnames.ora을 통해 서버 리스너 정보를 확보합니다만 여기까지 접근하는 parent 디렉토리, 혹은 tnsnames.ora자체가 other그룹에 read권한이 주어져 있지 않을 경우 기본설정의 Apache는 리스너 정보에의 접근에 실패하고 Segmentation Fault 를 일으킵니다.

이러한 퍼미션 관련의 문제를 해결하기 위해서 관련 디렉토리들에는 755, 각 파일들에 644 이상의 퍼미션을 부여함으로써 other그룹의 유저도 접근이 가능하도록 수정하는 방법이 있습니다만 많은 관련 디렉토리 및 파일들을 전부 수정하는 것은 효율이 나쁘고 other그룹의 타유저에게도 접근을 허용하는 세큐리티 홀을 발생시키게 됩니다. 그러므로 일반적으로 이 문제를 해결하기 위한 솔루션으로써는 Apache의 설정에서 유저 그룹을 오라클 유저그룹에 접근 가능한 권한의 그룹으로 설정하는 방법이 있습니다. 이경우 Apache의 유저 자체를 오라클 유저로 설정하는 것은 심각한 세큐리티 홀을 발생시킬 가능성이 있으므로 권장되지 않습니다.
2010/10/22 09:51 2010/10/22 09:51