盡人事待天命

미디어협동조합 국민TV
select round(dbms_random.value(0,100),2) from dual
Posted by 톰켓 Trackback 0 Comment 0
 select sql_text from v$sqlarea

이렇게 치면 이력이 나온다 ㅋㅋ


Posted by 톰켓 Trackback 0 Comment 0


CREATE TABLE 복재할테이블명(신규)
AS
SELECT * FROM 복제할테이블명


이렇게 하면 데이터 까지 다 들어간다 므흣 ㅋㅋ

Posted by 톰켓 Trackback 0 Comment 0

RENAME TABLENAME1 TO TABLENAME2;

TABLENAME1에서 TABLENAME2로 변경한다.

Posted by 톰켓 Trackback 0 Comment 0
출처 공부하자 | 미나
원문 http://blog.naver.com/alpsgirl2000/120014642555
SHOW DATABASES는 데이터 베이스 현황을 보는건가요~?

흠 그렇담.. SELECT * FROM USER_TABLES 라는 명령어를 함 쳐보세요...
그 유저에 관련된 이렇게 하심.. 지금 사용하시는 사용자 계정에 들어있는 테이블들과.. 상세 정보/데이터들이 출력될거에요..


그리고 두번째 질문에 대한 답변입니다..

오라클의 기본적인 테이블들.. EMP, DEPT, SALGRADE, BOUNS...
이 기본적인 테이블들은.. 간단히 얘기하면 테스트용이죠...
우선 EMP라는 테이블에는 회사에 관련된 정보 즉, 한 회사에 근무자와 그 상위직책, 연봉, 입사날짜, 보너스, 부서번호를 토대로 SQL문법에 대해 공부할수 있구요.. 그와 연관된 JOIN이나.. DELETE, ALTER, INSERT등으로 연관된 쿼리문을 짤수 있도록 가벼운 테이블들이 있죠.. DEPT, SALGRADE, BOUNS등요...
이 4가지 테이블을 저는 테스트용으로 썼거든요.. ^^;;
원래는 ORACLE 8i에서 유저 테스트용 기본테이블로 많이 사용했었죠..
각 테이블들의 유용성을 찾아보시면 될듯해요..
SELECT * FROM EMP..., DESC EMP...
이런식으로 하나씩 검사해보구요.. 데이터 타입이라든가 칼럼.. 그안의 데이터들을 살펴보시면 이게 왜 나와있는지, 어떤 식으로 사용해야 하는지 알게 될듯하네요.. ^^*


자자.. 마지막 세번째 질문에 대한 답변입니다..

흐음.. 가장 곤란하면서도 쉬운 질문인데요.. ^^:;
지금 사용하시는 SCOTT / TIGERS 는 흔히 SCOTT 유저(계정)이라고 부르는데요.. 오라클을 처음 사용하는 유저들이 제일 먼저 접하게 되는 유저(계정)이죠.. 허나 SCOTT 계정은 권한에 대한 제약이 있기때문에 보통은 새로운 사용자를 많이 생성해서 쓰는 편이죠..

- 사용자의 생성에 대한 설명입니다. -

새로운 USER를 생성하기 위해서는 CREATE USER문을 이용하면 됩니다.
USER를 생성하기 위해서는 USER생성 권한이 있는 사용자로 접속해야 합니다.

- user_name : 사용자 이름

- BY password : 사용자가 데이터베이스에 의해 인증되도록 지정하며, 데이터베이스 유저 로그온시 사용하는 비밀번호 입니다.

- EXTERNALLY : 사용자가 운영 체제에 의해서 인증되도록 지정합니다.

- DEFAULT TABLESPACE는 사용자 스키마를 위한 기본 테이블 스페이스를 지정 합니다.

- TEMPORARY TABLESPACE는 사용자의 임시 테이블 스페이스를 지정합니다.

- QUOTA절을 사용하여 사용자가 사용할 테이블 스페이스의 영역을 할당합니다.

- PASSWORD EXPIRE : 사용자가 SQL*PLUS를 사용하여 데이터베이스에 로그인할 때 암호를 재설정하도록 합니다.(사용자가 데이터베이스에 의해 인증될 경우에만 적합한 옵션입니다.)

- ACCOUNT LOCK/UNLOCK : 사용자 계정을 명시적으로 잠그거나 풀 때 사용할 수 있습니다.(UNLOCK이 기본값입니다.)

- PROFILE: 자원 사용을 제어하고 사용자에게 사용되는 암호 제어 처리 방식을 지정하는데 사용됩니다.

※ 여기선 간단한 유저생성에 대해서만 알아보고 자세한 유저관리와 PROFILE 관리는 어드민에서 설명 하겠습니다.

※ 참고 1

- 임시 테이블스페이스를 지정해 주지 않으면 시스템 테이블스페이스가 기본으로 지정 되지만 시스템 테이블스페이스에 단편화가 발생할 수 있으므로 사용자를 생성할때 임시테이블스페이스를 따로 지정해 주는 것이 좋습니다.

- 또한 DEFAULT TABLESPACE도 사용자를 생성할때 지정해 주지 않으면 기본적으로 시스템 테이블스페이스가 지정이 됩니다. 하지만 사용자를 생성할때 DEFAULT TABLESPACE를 지정을 해서 사용자가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 합니다.

시스템 테이블스페이스는 본래의 목적(모든 데이터 사전 정보와, 저장 프로시저, 패키지, 데이터베이스 트리거등을 저장)을 위해서만 사용되어져야 하지 일반사용자의 데이터 저장용으로 사용 되어서는 안됩니다.


※ 참고 2

테이블 스페이스란 ?

- 오라클 서버가 테이터를 저장하는 논리적인 구조입니다.
- 테이블스페이스는 하나 또는 여러개의 데이터파일로 구성되는 논리적인 데이터 저장 구조입니다.

테이블 스페이스에 대한 자세한 내용는 오라클 어드민의 테이블스페이스 강좌에서 학습하겠습니다.


사용자 생성 예제

SQL PLUS를 실행시키고 SCOTT/TIGER로 접속을 합니다.
.
SQL>CREATE USER TEST IDENTIFIED BY TEST;

1행에 오류:
ORA-01031: 권한이 불충분합니다

※ SCOTT USER는 사용자 생성 권한이 없어서 사용자를 생성할 수 없습니다.

SQL>CONN SYSTEM/MANAGER -- DBA Role이 있는 유저로 접속합니다.

SQL>CREATE USER TEST IDENTIFIED BY TEST; -- USER를 다시 생성합니다.
사용자가 생성되었습니다.


새로 생성한 USER로 접속해 볼까요..

SQL> CONN TEST/TEST

ERROR:
ORA-01045: 사용자 TEST는 CREATE SESSION 권한을 가지고있지 않음; 로그온이
거절되었습니다

- 새로 생성한 TEST USER는 권한이 없어서 접근할 수가 없습니다.
- 모든 USER는 권한이 있고 권한에 해당하는 역할만 할 수 있습니다.
- TEST라는 USER를 사용하기 위해서도 권한을 부여해주어야 합니다.


SQL> CONN SYSTEM/MANAGER
연결되었습니다.

SQL> GRANT connect, resource TO TEST ;
권한이 부여되었습니다.

SQL> CONN TEST/TEST
연결되었습니다.





- 다음은 USER의 변경 및 삭제에 대한 설명입니다. -

USER 변경하기 위해서는 ALTER USER문을 사용합니다..

● ALTER USER문으로 변경 가능한 옵션

- 비밀번호
- 운영체제 인증
- 디폴트 테이블 스페이스
- 임시 테이블 스페이스
- 테이블 스페이스 분배 할당
- 프로파일 및 디폴트 역할


사용자 수정 예제
SQL>CONN SYSTEM/MANAGER -- SYSTEM USER로 접속합니다.
SQL>ALTER USER scott IDENTIFIED BY lion; -- scott USER의 비밀번호를 수정합니다.
사용자가 변경되었습니다.
SQL>conn scott/lion -- scott USER의 비밀번호가 바낀걸 확인할 수 있습니다.
접속되었습니다.
SQL>conn system/manager
접속되었습니다.
SQL>ALTER USER scott IDENTIFIED BY tiger; -- scott USER의 비밀번호를 처음처럼 수정합니다.
사용자가 변경되었습니다.

사용자 삭제
※ CASCADE를 사용하게 되면 사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터
삭제되며 모든 스키마 객체들 또한 물리적으로 삭제 됩니다.


사용자 정보의 확인
데이터베이스에 등록된 사용자를 조회하기 위해서는 DBA_USERS라는 데이터사전을 조회하면 됩니다.
SQL*Plus를 실행시켜 system/manager로 접속을 합니다.
SQL>SELECT username, default_tablespace, temporary_tablespace
FROM DBA_USERS;

USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLES
---------------- ------------------- ----------------
SYS SYSTEM TEMP
SYSTEM TOOLS TEMP
OUTLN SYSTEM SYSTEM
DBSNMP SYSTEM SYSTEM
ORDSYS SYSTEM SYSTEM
ORDPLUGINS SYSTEM SYSTEM
MDSYS SYSTEM SYSTEM
CTXSYS DRSYS DRSYS
SCOTT SYSTEM SYSTEM
TEST TEST SYSTEM
STORM STORM SYSTEM
KJS SYSTEM SYSTEM
OEM OEM_REPOSITORY TEMP

위와 같이 유저와 테이블 스페이스에 대한 정보가 화면에 나옵니다.


- 오라클 시스템 권한에 대한 설명입니다. -

오라클에서 권한(Privilege)은 특정 타입의 SQL문을 실행하거나 데이터베이스나 데이터 베이스
객체에 접근할 수 있는 권리입니다.


SYSTEM PRIVILEGES
- 시스템 권한은 사용자가 데이터베이스에서 특정 작업을 수행 할 수 있도록 합니다
- 약 126개의 시스템 권한이 있으며 그 수는 계속 증가하고 있습니다.
- 권한의 ANY 키워드는 사용자가 모든 스키마에서 권한을 가짐을 의미 합니다.
- GRANT 명령은 사용자 또는 Role에 대해서 권한을 부여 합니다.
- REVOKE 명령은 권한을 삭제 합니다.

시스템 권한의 종류 몇가지
- CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한
- CREATE ROLE : 오라클 데이터베이스 역할을 생성할 수 있는 권한
- CREATE VIEW : 뷰의 생성 권한
- ALTER USER : 생성한 사용자의 정의를 변경할 수 있는 권한
- DROP USER : 생성한 사용자를 삭제시키는 권한
- system_privilege : 부여할 시스템 권한의 이름
- role : 부여할 데이터베이스 역할의 이름
- user, role : 부여할 사용자 이름과 다른 데이터 베이스 역할 이름
- PUBLIC : 시스템 권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있습니다.
- WITH ADMIN OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로
부여할 수 있게 되며, 만약 사용자가 WITH ADMIN OPTION과 같이 역할을 부여 받는다면
부여된 역할은 그 사용자에 의해 변경 또는 삭제 될 수 있습니다.


시스템 권한 부여 예제
SQL>GRANT CREATE USER, ALTER USER, DROP USER TO scott
WITH ADMIN OPTION.
권한이 부여되었습니다.

*설명 : scott 사용자에게 사용자를 생성, 수정, 삭제 할 수 있는 권한을 부여하고,
scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.


시스템 권한 철회 예제
SQL>REVOKE CREATE USER, ALTER USER, DROP USER
FROM scott
권한이 회수되었습니다.

*설명 : scott 사용자에게 부여한 생성, 수정, 삭제 권한을 회수합니다,



WITH ADMIN OPTION을 사용하여 시스템 권한 취소
WITH ADMIN OPTION을 사용하여 시스템 권한을 부여했어도 시스템 권한을 취소 할 때는 연쇄적으로 취소 되지 않습니다.


시나리오
1. DBA가 STORM에게 WITH ADMIN OPTION을 사용하여 CREATE TABLE 시스템 권한을 부여 합니다.
2. STORM이 테이블을 생성 합니다.
3. STORM이 CREATE TABLE 시스템 권한을 SCOTT에게 부여 합니다.
4. SCOTT가 테이블을 생성 합니다.
5. DBA가 STORM에게 부여한 CREATE TABLE 시스템 권한을 취소 합니다.

결과

- STORM의 테이블은 여전히 존재하지만 새 테이블을 생성할 수 있는 권한은 없습니다.
- SCOTT는 여전히 테이블과 새로운 테이블을 생성 할 수 있는 CREATE TABLE권한을 가지고 있습니다.

위의 예문들은 제가 공부할때 자주 사용하는 사이트(http://www.oracleclub.com/)에서 가져온 것들입니다.. 그곳은 오라클에 대한 지식이 다양한 방법으로 기술되어 있습니다.. 처음 공부하시는데에는 많은 도움 될듯하네요...
Posted by 톰켓 Trackback 0 Comment 0
1. 오라클 프로그램 다운로드

아래의 주소에서 오라클 파일중, ship.db.cpio.gz을 다운 받습니다.

http://www.oracle.com/technology/software/products/database/oracle10g/index.html

http://otn.oracle.com/software/products/database/oracle10g/index.html

아래의 명령으로 압축을 풉니다.
# zcat ship.db.cpio.gz | cpio -idmv


2. OS 환경 변경

오라클 10g는 자체적으로 테스트된 몇 가지의 OS만 설치되도록 체크하는 부분이 있습니다.
이를 위해 /etc/redhat-release 파일을 생성 후 레드햇 3 버전으로 만듭니다.
# echo "redhat-3" > /etc/redhat-release


3. 사용자 및 그룹생성

아래의 명령으로 사용자 및 그룹을 생성합니다.

# groupadd dba
# groupadd oinstall
# useradd -g oinstall -G dba oracle
# passwd oracle


오라클이 설치될 디렉토리를 생성합니다.

# mdkir -p /u01/app/oracle
# chown -R oracle.oinstall /u01
# chmod -R 755 /u01/app/oracle



4. 커널 파라미터 수정

/etc/sysctl.conf 파일에 뒷 부분에 아래와 같이 내용을 추가합니다.

[root@localhost ~]# cat >> /etc/sysctl.conf << eof
### Oracle 10g Kernel Parameters
kernel.shmmax = 1073741824
kernel.sem = 250 32000 100 128
fs.file-max = 65536
eof

수정한 /etc/systl.conf의 파라미터 값을 새롭게 커널에 적용시킵니다.

[root@localhost ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.shmmax = 1073741824
kernel.sem = 250 32000 100 128
fs.file-max = 65536


5. 오라클 사용자의 환경변수 추가

/home/oracle/.bash_profile 파일의 뒤에 아래 내용을 추가합니다.

##############################################
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ORCL
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export DISPLAY=:0.0
##############################################


관리자(root) 권한으로 아래의 명령을 실행합니다.
# xhost + 127.0.0.1
※ 위 명령은 반드시 해당 로컬서버에서 작업을 하셔야 합니다.(원격에서는 안됩니다.)
(오라클 설치는 로컬서버에서 모든 작업을 하시는 것이 좋습니다.)


6. 오라클 설치시작

※ 지금부터는 반드시 oracle 사용자 계정으로 실행해야 합니다.
지금 root권한으로 로그인 되어있다면 로그아웃 하시고,
oracle 계정으로 다시 로그인하시기 바랍니다.

오라클 설치 프로그램을 압축푼 장소로 이동하여, 아래 파일을 찾아서 실행시킵니다.
$ sh runInstaller

※ 만약 글자가 깨져서 보인다면, 프로그램을 종료하고 아래명령을 입력한후 다시 프로그램을 실행합니다.
$ unset LANG


7. Welcome

환영인사 입니다. Next를 클릭합니다.


8. Specify Inventory directory and credentials

디렉토리와 시스템그룹 지정. Next를 클릭합니다.

※ 경고창이 나타납니다.
/u01/app/oracle/oraInventory/orainstRoot.sh를 실행하라는 내용입니다.
콘솔을 띄워서 root 권한으로 변경한 다음, 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/oraInventory/orainstRoot.sh
팝업창의 Continue를 클릭합니다.


9. Specify File Locations

설치할 파일과 설치될 파일의 위치를 지정합니다. Next를 클릭합니다.


10. Select Installation Type

오라클을 설치할 유형을 선택합니다. Enterprise Edition을 선택하고, Next를 클릭합니다.


11. Specific Prerequisite Checks

이제까지의 설정을 확인합니다. 이상 없으면 Next를 클릭합니다.

커널 파라미터를 체크하는 부분에서 경고 팝업이 뜹니다.
Yes를 눌러 경고를 무시하고 계속 진행합니다.


12. Select Database Configuration

데이터베이스 사용 용도에 따라 설정 옵션을 선택합니다.
보통 General Purpose로 하면 됩니다. Next를 클릭합니다.


13. Specify Database Configuration Options

데이터베이스의 Global Database Name/SID/Character set의 옵션을 지정합니다.
Global Database Name와 SID는 [ORCL] 로 Character set은 [Korean KO16KSC5601]로 Database 예제 스키마도 생성합니다.
Next를 클릭합니다.


14. Select Database Management Option

데이터베이스를 관리하는데 필요한 옵션을 선택합니다. Next를 클릭합니다.


15. Specify Database File Storage Option

데이터베이스 파일의 스토리지 옵션을 지정합니다. 보통 File System으로 하시면 됩니다.
Next를 클릭합니다.


16. Specify Backup and Recovery Options

백업이나 복구 옵션을 지정합니다. 기본값으로 넘어갑니다.
Next를 클릭합니다.


17. Specify Database Schema Passwords

오라클 관리를 위한 계정들의 패스워드를 입력합니다.
(SYS, SYSTEM, SYSMAN, DBSNMP 등)
개별적으로 입력해도 되며, 하단의 "Use the same password for all the accounts"를 선택하여 한번에 동일하게 입력 가능합니다.
Next를 클릭합니다.

18. Summary

이제까지 선택한 내용을 창으로 보여줍니다. [Install] 버튼을 클릭하여 설치를 시작합니다.


19. Install

....[설치 진행 중]....

자동으로 설치가 진행되는 동안, 차한잔 하면서 느긋하게 기다려줍시다.



20. Configuration Assistants

파일 설치 후 데이베이스 관련 파일들을 복사하고 오라클 인스턴스를 생성합니다.

70%이상 넘어가면서 패스워드 오류가 날 수 있습니다. 이는 무시하셔도 좋습니다.

모든 설치가 끝난 후, 각 오라클 시스템에 패스워드를 지정하려면 [Password Management]를 클릭하고, 아니면 [OK] 버튼을 클릭합니다.


21. Setup Privileges

[OK] 버튼을 클릭하면 root.sh 파일을 실행하라는 창이 나타납니다.
root 권한으로 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/product/10.1.0/db_1/root.sh


22. End of Installation

이제 설치가 모두 종료되었습니다. Exit 버튼을 눌러서 프로그램을 종료합니다.


-----------------------------------------------------------------------------
데이타베이스를 기동만 하면 안되죠 외부에서 접속하도록 리스너를 띄워야 합니다.

우선 listener.ora 파일을 수정합니다.
$ORACLE_HOME/network/admin/listener.ora 파일 내용

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
# 추가부분 시작 - 이걸 추가해야 8i 이하의 클라이언트에서 연결했을 때 SERVICE_NAME 관련 내용이 없습니다.
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
)
# 추가 부분 끝
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 해당ip)(PORT = 1521)) # <== 서버명 대신에 반드시 ip를 넣으세요 127.0.0.1을 넣으시면 안됩니다. 외부에서 소켓이 닫힌 것으로 인식합니다.
)
)
)

한텀내용을 일일이 보고 친 것이니 오타가 있을 수 있습니다. 이는 감안하고 보세요.

이제 리스너를 띄웁니다.

$ lsnrctl start

리스너의 기동을 확인합니다.

$ netstat -a | grep 1521
tcp 0 0 해당ip:1521 *:* LISTEN

절대
tcp 0 0 서버명:1521 *:* LISTEN
으로 나오면 위 설정중 HOST의 내용을 확인하세요.
내용출처 : [기타] 인터넷 : http://www.knitwill.co.kr
Posted by 톰켓 Trackback 0 Comment 1