1. 우선, httpd.conf에서 원하는 디렉토리를 정의하십시오.

           <Directory /usr/local/apache/htdocs/test>
             AllowOverride All  혹은 AllowOverride Limit
             혹은 AllowOverride AuthConfig
            </Directory>

2. ........./test 디렉토리에 .htaccess 파일에 아래 내용을 넣습니다.
   -------------------------------------------------------
   AuthName \"Auth TEST\"
   AuthType Basic
   AuthUserFile /usr/local/apache/htdocs/test/.htpasswd
   AuthGroupFile /dev/null
   ErrorDocument 401

   require valid-user  aaa

   --------------------------------------------------------

3. 패스워드 파일 생성.  패스워드 파일은 htpasswd라는 프로그램을 써서 만듭니다.  
   소스컴파일로 설치하셨다면, /usr/local/apache/bin/htpasswd 라는 프로그램이 존재합니다.
   이 프로그램은 기본적으로 패스워드파일에서 패스워드부분을 encrypt해 줍니다.

   패스워드를 만들어둘 .................../test 디렉토리에서 /usr/local/apache/bin/htpasswd -c .htpasswd aaa 라고 입력
   ID aaa에 대한 패스워드를 입력. 패스워드만 입력해주면 .htpasswd 파일이 생성


4. 아파치 재시작
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
자료 입력 및 검색하기
교재명 : MySQL(Advanced Class)
출판사 : 베스트북
저자명 : 허정수  


1.  MySQL Server 기동 및 Mysql 프로그램 실행하기

# /usr/local/mysql/share/mysql/mysql.server  start  [Enter]  : mysql server 기동
또는
#/usr/local/mysql/bin/safe_mysqld  nbsp; [Enter]
mysql server를 기동하는 방법

# ps  -ef  | grep mysqld  [Enter]        : 프로세스 확인
mysqld 데몬 실행 여부를 확인합니다

#/usr/local/mysql/bin/mysql  [Enter]     : mysql 프로그램 실행

Welcome to the MySQL monitor.   Commands  end  with  ;  or  \g.
Your  MySQL  connection  id  is  2  to  server  version: 3.23.49

Type 'help;'  or '\h'  for  help.  Type  '\c' to clear  the  buffer.

mysql>_


2. MySQL 버전 및 기본 데이터베이스 보기

mysql>select  version();            ☜  MySQL 명령문(쿼리문)끝에는 세미콜론.
mysql>show databases;


3. 데이터베이스(Database)  만들기

형식)

CREATE  DATABASE  데이터베이스명 ;

실습)
student 라는 데이터베이스를 만들어 보자.

mysql> CREATE  DATABASE  student;
mysql> SHOW DATABASES ;


4. 테이블(Table) 만들기

형식)
CREATE  TABLE  데이블명 ;

실습)
grade라는 테이블을 만들어 보자.

mysql> USE  student;
mysql> CREATE TABLE grade (
    →student_no  int,
    →student_name  varchar(15),
    →korean   int,
    →math     int,
    →english  int                   ☜  마지막 필드에서는 ","를 입력하지 않음
    →);
Query  Ok,  0 rows offected(0.07 sec)

- 테이블 보기

mysql> SHOW TABLES ;

- 테이블의 구조 보기

mysql> EXPLAIN  grade ;
mysql> DESC  grade ;


5. 테이블에 자료 입력하기

형식)

INSERT INTO 테이블명  VALUES(값1, 값2, .....값n) ;

실습)

mysql> INSERT INTO  grade  VALUES(200101, '강봉춘', 90, 85, 87);


6. 테이블에 저장된 자료 검색

형식)

SELECT  필드명1, 필드명2, ...  FROM  테이블명 ;

실습)

- 테이블 전체 자료 검색하기

mysql> SELECT *  FROM   grade ;          ☜  * 는 전체 필드를 대상으로 검색하겠다는 의미

- 특정한 필드만 대상으로 검색하기

mysql> select  student_name , korean  from  grade ;

- 필드 이름 바꿔 검색하기

mysql> select  student_name  as   '성명' , korean  as  '국어 점수' from  grade ;

- 연산자 사용하여 검색하기

mysql>select  student_name, korean + math + english  as  '총점' from   grade ;


- 함수 사용하기

mysql> select  avg(korean)  from  grade;

mysql> select  sum(korean)  from  grade;

mysql> select  max(korean)  from  grade;

mysql> select  min(korean)  from  grade;


- 정렬하여 검색하기

mysql> select student_name, korean+math+english  as  '총점' from  grade  order  by  '총점'  desc;

mysql> select  student_name , korean  from  grade  order  by  korean  asc;

※ desc 는 내림차순,  asc는 오름차순으로 정렬됨.

- 조건문 사용하기

mysql> select *  from  grade  where  student_name = '허혜선' ;

mysql> select  student_name, korean, math, english  from  grade  where  korean < 90 ;


7. 테이블의 자료 수정하기

형식)

UPDATE  테이블명  SET  필드명 = 새로운값  WHERE  조건 ;

실습)

mysql> update  grade  set  english = 85  where   student_no = 200102 ;

mysql> update  grade  set  korean = 90 ;      //  ※ 주의 모든 레코드가 변경됨


8. 테이블의 자료 삭제하기

형식)

DELETE  FROM   테이블명  WHERE  조건;

실습)

mysql>  delete  from  grade  where  student_no = 200105 ;

mysql>  delete  from  grade ;        //  ※ 주의 모든 레코드가 삭제됨



* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:05)
게시물 입력날짜 수정하기

ㅡmysql zboard에 들어가서 올라온 글을 보면 reg_date 필드에 날짜가 기록되어 있는데 다음과 같이 하면 됩니다.

-----------------------------------------------------------------------
안녕하세요?
밍키아빠입니다.

사이트를 관리하다보면 회원들의 글쓴 날짜를 수정해야 할일이 생깁니다.
생기지 않으면 더욱 좋지만 말입니다.
(특히 사고등 보드의 내용을 복구할때...)

날짜를 DB에서 그냥 수정해 주면 되는데
"1013640853"이라는 식으로 나와서 정확하게 날짜를 알기가 어렵습니다.

음 이것은 유닉스 시간이라서 그런데요
1970년 1월 1일 0시 0시 0분 0초에서 출발해서
오늘까지 초단위로 누계로 계산을 해온 것입니다.

그래서 오늘이 그때로 부터 1013640853흘렀다는 이야기가 되는 것이지요
그래서 특정 날짜로 수정하려면 기간에 해당하는 초만큼 오늘 날짜에서
빼주면 됩니다.

오늘 날짜는 그냥 보드에 기록하면 나오구요.
예를 들어서 오늘 기록한 것을 어제 기록한 것으로 변경하고 싶다면

1013640853  ->  2002년 02월 14일

여기에다 하루에 해당하는 초를 빼주면 됩니다.
하루는 60초*60(분)*24(시간)=86400초가 되는 것이지요

그래서
1013640853에서 86400을 빼주면 어제 날짜가 되는 것입니다.

------------------------------------------------------------
>mysql -u [username] -p[passwd] [db name]
>select * from zetyx_board_[게시판 이름] where no=[변경할 게시물 번호] ;   게시물이 맞는지 확인
>select reg_date from zetyx_board_[게시판 이름] where no=[변경할 게시물 번호] ;

  reg_date 값에서 원하는 시간만큼 뺀 값을 계산함

>update zetyx_board_[게시판 이름] set reg_date= [변결할 값]  where no=[변경할 게시물 번호] ;



* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:05)

'프로그래밍Tips' 카테고리의 다른 글

mysql 사용하기 - 자료 입력 및 검색하기  (0) 2005.04.08
mySQL 기본사용방법 2  (0) 2005.03.26
mySQL 기본사용방법 1  (0) 2005.03.25
MySQL 관련

root암호변경설정
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
/usr/bin/mysqladmin -u root -p password 'new-password'
/usr/bin/mysqladmin -u root -h ns.dbakorea.pe.kr -p password 'new-password'

쉘에서는 mysql이 되는데 PHP에서 mysql.sock error를 내면서 MySQL이 안되는 경우
mysql.sock은 /tmp 아니면 /var/lib/mysql에 생기게 된다.
나의 경우, /var/lib/mysql에 mysql.sock파일이 있는데 PHP에서는 /tmp에서 찾으려하면서 에러를 발생했다.
/usr/bin/safe_mysqld파일에서 다음과 같이 수정한다.
주석(#)이 달린 것이 원래것이고 그 밑에 있는것이 수정한 것이다.

# MYSQL_UNIX_PORT=${MYSQL_UNIX_PORT:-/var/lib/mysql/mysql.sock}
MYSQL_UNIX_PORT=${MYSQL_UNIX_PORT:-/tmp/mysql.sock}

위와 같이 하니 /usr/bin/mysql이 /var/lib/mysql/mysql.sock에서 소켓파일을 찾으려 했다.
socket file을 지정하는 --socket이라는 옵션으로 다음과 같이 지정하면 된다.

mysql --socket=/tmp/mysql.sock -u dbakorea -p db_test

하지만 mysql실행시마다 이렇게 써줘야한다는 것이 상당히 귀찮다. 옵션이 바로 적용되게 설정하자.
mysql은 설정사항을 다음 3가지 파일에서 검색한다.

/etc/my.cnf            global options(MySQL 전체적으로 사용되는 옵션 정의)
mysql-data-dir/my.cnf  특정 DB에 적용되는 option (/var/lib/mysql/my.cnf)
~/.my.cnf              사용자 각각의 설정('~'문자는 사용자의 홈디렉토리는 의미)

/usr/share/mysql디렉토리에 예제가 있으므로 참고한다.
소켓파일의 지정은 다음줄을 넣어주면 된다.

socket          = /tmp/mysql.sock


== /etc/my.cnf예 ==
# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock


# root암호설정
% mysqladmin -u root password '변경암호'  root로 로그인하여 해야함
or
% mysqladmin -u root -p기존암호 password '변경암호'  root로 로그인하여 해야함

DB생성
mysql> create database DB명 ( or % mysqladmin -u root -p create DB명 )

DB삭제
mysql> drop database DB명

MySQL 연결
mysql -u 사용자 -p DB명 ( or % mysqladmin -u root -p drop DB명 )

데이터파일 실행(sql*loader기능)
mysql>load data local infile "데이터파일" into table 테이블명 ;
데이터파일에서 컬럼구분은 탭문자, Null값은 /n로 입력

질의 파일 실행
쉘프롬프트상에서
mysql -u 사용자 -p DB명 < 질의파일
or
mysql프롬프트상에서
mysql> source 질의파일

쉘프롬프트상에서 질의 실행
dbakorea@lion board]$ mysql mysql -u root -pxxxx -e \
>            "INSERT INTO db VALUES(
>            'localhost', 'aaa', 'aaa',
>            'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y')"


사용자 생성 & 사용자에게 DB할당
shell> mysql --user=root -p mysql

mysql> INSERT INTO user VALUES('localhost','사용자',PASSWORD('비밀번호'),'Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user VALUES('%','사용자',PASSWORD('비밀번호'),'Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y');

mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
VALUES ('localhost','DB명','사용자','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
VALUES('%','DB명','사용자','Y','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES; (or shell prompt: mysqladmin -u root -pxxxx reload)


DB, 테이블목록보기
mysql> show databases;
mysql> show tables;

사용 DB선택
mysql> use DB명

테이블구조
mysql> describe 테이블명

인덱스 보기
show index from 테이블명

테이블명 변경
mysql> rename table test to test2;

접속
mysql {-h 접속호스트} -u 사용자 -p 사용DB
-h로 다른 서버에 존재하는 MySQL접속시 다음과 같이 MySQL DB에 설정해줘야 한다.
mysql> INSERT INTO user VALUES('접근을 허용할 호스트ip','사용자',PASSWORD('비밀번호'),'Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv)
VALUES('접근을 허용할 호스트ip','사용DB','사용자','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES; or 쉴프롬프트상에서 % mysqladmin -u root -p flush-privileges

버전체크
mysql> select version();

검색조건(where)
regular expression을 지원하다니 신기하군..
mysql> select * from work where 열명 regexp "정규표현식";

컬럼의 추가, 삭제(오라클과 동일)
alter table 테이블명 add 컬럼명 데이터타입;
alter table 테이블명 del 컬럼명;


백업 & 복구
mysqldump {-h 호스트} -u 사용자 -p DB명 > 백업파일
mysql {-h 호스트} -u 사용자 -p DB명 < 백업파일

mysqldump -u root -p --opt db_dbakorea > dbakorea.sql
mysqldump -u root -p --opt db_board | mysql ---host=remote-host -C database (상이한 머쉰)
mysql -u dbakorea -p db_dbakorea < dbakorea.sql      


mysqldump -u root -p --opt db_dbakorea | mysql ---host=ns.dbakorea.pe.kr -C db_dbakorea

테이블 검사
isamchk

오라클 sysdate와 동일
insert into test values('12', now());

유닉스 time()함수 리턴값 사용
FROM_UNIXTIME(954788684)
UNIX_TIMESTAMP("2001-04-04 :04:04:04")

MySQL 디폴트 DB&로그파일 위치
/var/lib/mysql
/var/lib디렉토리는 여러 프로세스들이 사용하는 데이터를 저장하는 일종의 파일시스템상의 데이터베이
스라고 볼 수 있다.

replace
해당 레코드 존재하면 update하고, 존재하지 않는다면 insert한다.(insert문법과 동일)
replace into test values('maddog','kang myung gyu')'

explain
explain 질의문: 지정한 질의문이 어떻게 실행될 건지를 보여줌
mysql> explain select u.uid, u.name, a.name from sm_user u, sm_addr a where u.uid=a.uid;    
+-------+------+-----------------+-----------------+---------+-------+------+-------+
| table | type | possible_keys   | key             | key_len | ref   | rows | Extra |
+-------+------+-----------------+-----------------+---------+-------+------+-------+
| u     | ALL  | PRIMARY         | NULL            |    NULL | NULL  |  370 |       |
| a     | ref  | sm_addr_uid_idx | sm_addr_uid_idx |      11 | u.uid |   11 |       |
+-------+------+-----------------+-----------------+---------+-------+------+-------+
2 rows in set (0.01 sec)

temporary table
크기가 큰 테이블에 있는 subset에 대한 질의라면 subset을 temporary table에 저장한 후
질의하는 것이 더 빠를 경우가 있다.
create temporary table (...);
create temporary table (...) type=heap;        디스크가 아닌 메모리에 테이블 생성

==============================================================================
MySQL 특성정리
==============================================================================
primary key지원
index 지원(15개컬럼, 256byte까지)
foreign key, check, references기능 지원하지 않음(형식상 있음)

mysql> CREATE TABLE test (
        id INT NOT NULL,
        last_name CHAR(30) NOT NULL,
        first_name CHAR(30) NOT NULL,
        PRIMARY KEY (id),
        INDEX name (last_name,first_name));
        
MySQL에서의 Stored Script개념 => SQL server language
commit-rollback개념 => lock tables


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:05)
mySQL 기본사용

    ■ MySQL Server의 실행과 종료
            MySQL Server을 실행 시키거나 종료시키려면 다음의 명령을 root 가 사용하면 된다.
               mysql.server start      --> mysql Server의 시작
               mysql.server stop       --> mysql Server의 종료
       MySQL Server가 실행시 두개의 프로세서가 실행되므로 확인해 보기 바란다.
           < 실행중인 두개의 프로세서 >
              /usr/local/bin/safe_mysqld
              /usr/local/libexec/mysqld

        #######################################
        #                                     #
        #     MySQL 설치후 기본적인 사용법과  #
        #          root의 암호설정            #
        #                                     #
        #######################################


        1. MySQL 사용하기

    1.1 MySQL 서버 시작하기

MySQL이 정상적으로 설치 되었다면 그리고 디폴트 옵션으로 설치
하였다면 /usr/local/bin/ 디렉토리에 관련 실행 파일이 설치 되었
을 것이다. 먼저 MySQL 서버를 실행하는 명령은 다음과 같다.
물론 root 아이디로 실행해야 한다.(다른방법이 있으면 알려주세요)

    mysql.server start

위와 같이 입력하면 서버가 실행된다.  두개의 프로세서가 데몬상태로
실행되는데, safe_mysqld, mysqld 이렇게 두개이다.
이 두개의 프로세서가 실행되고 있다면 이제 MySQL을 사용할수 있다.
MySQL 두번째 강좌에서 보면 위의 두 프로그램에 대한 설명이 나와 있다.
이 상태에서 아래와 같이 MySQL을 사용할수 있는 가상 터미날을 실행시킨다.

    mysql -u root mysql

MySQL이 처음 설치되면  DB admin user 는 root 이다. 몰론 이것은 변경
할수도 있다. 디폴트로 설치한 경우 암호가 처음에는 생성되어 있지 않으
므로 위와 같이 하면 실행이 된다. 위의 명령에 대한 설명은 다음과 같다.

  mysql       -u          root               mysql
실행파일  유저선택     root db 유저     사용할데이타베이스

그외 몇가지 간단한 옵션이 있으나 필요하면 mysql -h 하여 내용을 참고
하기 바란다. 그리고, root 유저에 암호를 설정한 후 부터는 -p 옵션을
하나더 추가하여 실행하기 바란다. 이 옵션은 패스워드를 입력받는 옵션이다.


    1.2 mysql 프로그램의 사용

  mysql을 실행하여 간단한 동작을 하여보자.
mysql은 일반 유저로 실행하여도 되는 프로그램이다.

$ mysql -u root mysql                        ---> DB 사용을 위한 실행
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.21.27-gamma-log

Type 'help' for help.

mysql>

위와 같이 연결된다. 여기서 몇가지 간단한 테스트용 명령을 적는다.

mysql> show databases                  --> 데이타베이스 종류보기
    -> \g
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> show tables from mysql          --> mysql상의 테이블 정보 보기
    -> \g
+-----------------+
| Tables in mysql |
+-----------------+
| db              |
| func            |
| host            |
| user            |
+-----------------+
4 rows in set (0.00 sec)

mysql> show columns from db            --> db table 칼럼정보 보기
    -> \g
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| Host        | char(60)      |      | PRI |         |       |
| Db          | char(32)      |      | PRI |         |       |
| User        | char(16)      |      | PRI |         |       |
| Select_priv | enum('N','Y') |      |     | N       |       |
| Insert_priv | enum('N','Y') |      |     | N       |       |
| Update_priv | enum('N','Y') |      |     | N       |       |
| Delete_priv | enum('N','Y') |      |     | N       |       |
| Create_priv | enum('N','Y') |      |     | N       |       |
| Drop_priv   | enum('N','Y') |      |     | N       |       |
+-------------+---------------+------+-----+---------+-------+
9 rows in set (0.00 sec)

mysql> show index from db              --> db table의 인덱스정보기
    -> \g
+-------+------------+----------+--------------+-------------+
-----------+-------------+----------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
Collation | Cardinality | Sub_part |
+-------+------------+----------+--------------+-------------+
-----------+-------------+----------+
| db    |          0 | Host     |            1 | Host        |
A         |     4 |     NULL |
| db    |          0 | Host     |            2 | Db          |
A         |     4 |     NULL |
| db    |          0 | Host     |            3 | User        |
A         |     4 |     NULL |
| db    |          1 | User     |            1 | User        |
A         |  NULL |     NULL |
+-------+------------+----------+--------------+-------------+
-----------+-------------+----------+
4 rows in set (0.00 sec)

mysql> show status                     --> MySQL의 상태정보 보기
    -> \g
+--------+-----------------+-----------+---------------+---------
+-------------+
| Uptime | Running_threads | Questions | Opened_tables | Reloads
| Open_tables |
+--------+-----------------+-----------+---------------+---------
+-------------+
|   1493 |               1 |        26 |             4 |       1
|           4 |
+--------+-----------------+-----------+---------------+---------
+-------------+
1 row in set (0.00 sec)

mysql> show variables                  --> MySQL 환경변수보기
    -> \g
+--------------------+---------------------------------+
| Variable_name      | Value                           |
+--------------------+---------------------------------+
| back_log           | 5                               |
| basedir            | /usr/local/                     |
| datadir            | .                               |
| join_buffer        | 131072                          |
| key_buffer         | 1048568                         |
| language           | /usr/local/share/mysql/english/ |
| max_allowed_packet | 65536                           |
| max_connections    | 90                              |
| max_join_size      | 4294967295                      |
| max_sort_length    | 1024                            |
| net_buffer_length  | 8192                            |
| port               | 3306                            |
| record_buffer      | 131072                          |
| skip_locking       | 1                               |
| socket             | /tmp/mysql.sock                 |
| sort_buffer        | 2097144                         |
| table_cache        | 64                              |
| thread_stack       | 65536                           |
| tmp_table_size     | 1048576                         |
+--------------------+---------------------------------+
19 rows in set (0.00 sec)

mysql> select * from db                  --> db 테이블의 데이타 가져오기
    -> \g
+-----------+----------+------------+-------------+-------------+
-------------+-------------+-------------+-----------+
| Host      | Db       | User       | Select_priv | Insert_priv |
Update_priv |Delete_priv | Create_priv | Drop_priv |
+-----------+----------+------------+-------------+-------------+
-------------+-------------+-------------+-----------+
| %         | test     |            | Y           | Y           |
Y           |Y           | Y           | Y         |
| %         | test\_%  |            | Y           | Y           |
Y           |Y           | Y           | Y         |
| localhost | binggo   | binggo     | Y           | Y           |
Y           |Y           | Y           | Y         |
+-----------+----------+------------+-------------+-------------+
-------------+-------------+-------------+-----------+
3 rows in set (0.00 sec)

mysql>


위의 명령은 기본적인 명령으로서 실제 mysql 을 사용할때
자주 사용될 명령이라고 생각된다. 기타 sql문은 강좌 3에서
정리하였으므로 생략하기로 한다.


        2. MySQL DB admin user 암호걸기

  MySQL 을 설치후 가장 먼저 해야 할 일은 MySQL의 admin 인
root (DB user 임)의 암호를 설정하는 일이다. 이것은 서버가
인터넷상에 접속되어 있을경우 보안을 위하여 가장 먼저해야
하는 일이라고 생각된다. 암호를 설정하는 방법은 다음과 같다.
먼저 admin 유저인 root 아이디의 암호를 설정하기로 한다.

mysql> update user
    -> set password = password('testpass')
    -> where user = 'root'
    -> \g
Query OK, 2 row affected (0.00 sec)

mysql>

위를 실행하면 일반적으로 user 테이블상에 root 아이디가 두개가 root
아이디가 등록 되어 있으므로 2 row 의 비밀번호가 변경이 된다.
여기시 확인을 위하여 아래의 명령을 실행해 본다.

mysql> select * from user
    -> \g
  . . . .
  . . . .

테이블상에 저장된 내용이 출력될 것이다.

자 이제부터는 admin 유저인 root로 mysql에 접속할 경우 꼭 password를
입력해야 한다. 즉 아래와 같이 실행하여야 한다.

$ mysql -u root -p mysql
Enter password:

암호를 물을때 암호를 입력하면 mysql을 사용할수 있다.


        3. 새로운 데이타 베이스 생성과 사용자 연결

    3.1 데이타 베이스의 생성

데이타베이스 생성의 방법은 두가지가 있다. mysqladmin 프로그램을
이용하여 root 아이디로 shell 상에서 생성하는 방법과 또하나 mysql
프로그램 상에서 생성하는 방법이다.

먼저 mysqladmin 프로그램을 이용하는 방법이다.

mysqladmin create soonhg     --> 이경우 soonhg 라는 데이타베이스 생성

admin 인 root 에 암호를 설정한 경우 다음과 같이 실행한다.

mysqladmin -u root -p create soonhg

이 경우 디폴트로 설치한 경우 /usr/local/var/soonhg 라는 디렉토리가 생성
된다. 이 디렉토리가 데이타 베이스 공간으로 이용될 곳이다. 즉 soonhg 라는
데이타 베이스 공간에 테이블을 생성할 경우 soonhg 라는 디렉토리로 관련된
파일이 생성되며 데이타가 저장된다.

*******************************************************************
중요한 tip......
*******************************************************************
MySQL과 주고 밍는 각종 내용은 /usr/local/var 상의 full도메인명.log
파일상에 모두 저장된다. 만일 동작 상태를 알고 싶다면 터미날을 하나 더
열어서 tail -f full도메인명.log 하여 MySQL과의 주고받는 내용을
모니터링 할 수 있다.
*******************************************************************

두번째 방법으로 mysql을 이용하는 법이다. mysql 실행상태에서 아래와 같이
한다. (admin 인 root 아이디로 mysql 에 접속)

mysql> create database soonhg
    -> \g
Query OK, 1 row affected (0.00 sec)

mysql>

위의 두가지 방법중 어느 방법을 사용하여도 무관하다. 개인적으로는 mysql
상에서 데이타베이스를 생성하는것을 권장한다. 왜냐하면 계속하여 작업을
해야할것들이 있기 때문이다.


    3.2 데이타베이스와 mysql 관리 테이블과의 연결 및 사용자등록 및 특권정의

자 이제 생성된 데이타베이스와 데이타베이스 관리및 엑세스 권한등을 정의
하고 있는 mysql 상의 db, user 테이블에 방금 생성된 soonhg 테이블의 내
용을 정의 하자.

먼저 이 soonhg 데이타베이스는 모든 호스트 상에서 접근이 가능하도록 만들
기로 한다. 그리고 사용자는 id 로 park 라는 DB user 를 생성한다고 하자.
sql 문은 다음과 같다.

mysql> insert into db
    -> (host,db,user,select_priv,insert_priv,update_priv,delete_priv,
    -> create_priv,drop_priv)
    -> values ('%','soonhg','park','Y','Y','Y','Y','Y','Y')
    -> \g
Query OK, 1 row affected (0.00 sec)

mysql>

위의 sql문에서 보면 park 이라는 사용자는 soonhg 데이타베이스에 대하여
select,insert,update,delete,create,drop 권한이 모두 주어졌다. 이것은
하나의 soonhg 데이타 베이스에 대하여 각 sql 명령에 대한 권한을 개별적
으로 줄수 있다는 것을 의미한다.
select * from db 라는 sql 문을 이용하여 정상적으로 insert 되었는지
확인해 보기 바란다.

자 이제 park 라는 db 사용자에 대한 등록을 할 차례이다.
다음과 같은  sql 문을 만들어 실행한다.


mysql> insert into user
    -> (host,user,password,select_priv,insert_priv,
    -> update_priv,delete_priv,create_priv,drop_priv,
    -> reload_priv,shutdown_priv,process_priv,file_priv)
    -> values ('localhost','park',password('park'),'N',
    -> 'N','N','N','N','N','N','N','N','N')
    -> \g
Query OK, 1 row affected (0.00 sec)

mysql>

위와 같이 하여도 되고 간단히 아래와 같이 하여도 무방하다.

mysql> insert into user
    -> (host,user,password)
    -> values ('localhost','park',password('park'))
    -> \g
Query OK, 1 row affected (0.00 sec)

mysql>

host,user,password  이외의 칼럼들은 모두 디폴트로 'N' 으로 설정
되어 있으므로 위와 같이 하면된다. 여기서 db 테이블과 user 테이블은
특권상에서 약간의 차이점이 있다.  db 테이블 상에서 설정되지 않고
user 테이블 상에만 설정되어진 DB 사용자는 user 테이블 상에서 설정
된 권한을 존재하는 모든 데이타베이스에 대하여 인정받는다.
이러한 이유로 일반 사용자인 경우는 user 테이블 상에는 모든 권한을
'N' 로 설정하여야 하고 각 DB user 가 사용할 데이타베이스에 대한
권한을 DB 테이블에 다시 정해주는 것이다.
즉, 데이타베이스가 여러개 존재한다고 가정하자.  aaa, bbb, ccc 라는
세개의 데이타베이스가 존재할때, park 이라는 DB 사용자는 aaa 라는
데이타베이스만 이용하게 하려고 설정하려고 한다고 하자.

이경우는  user 테이블에는 모든 권한을 'N' 상태로 설정하고 db 테이블
에는 aaa 라는 테이블에 대하여 모든 권한을 'Y' 라고 설정하면 이 park
라는 db 사용자는 aaa 라는 데이타베이스에 대하여 사용권한이 주어질
것이다. 잘 이해가 가지 않는다면 몇번 더 자세히 읽어보고 test 해본다면
쉽게 이해할 수 있을것이다.

*******************************************************************
중요한 tip......
*******************************************************************
user 테이블에 사용자를 insert, update  한 경우 MySQL을 꼭 재기동
시켜 주어야만 한다. 명령은 다음과 같다.
     myaqladmin -u root -p reload
이 명령은 user 테이블에서 사용자 정보를 다시 읽어서 MySQL 을 다시
실행시켜준다.
*******************************************************************


        4. 테이블의 생성

테이블의 생성은 일반적인 sql 문장이므로 간단히 테이블 하나 생성하는
예제를 적는것으로 대신하겠다.
위에서 생성한 사용자와 사용자를 위한 테이블을 이용하여 작업을 하여보자

먼저 mysql을 실행한다. 실행은 그냥 일반 계정 사용자로 한다.

$ mysql -u park -p soonhg
Enter password: ****          <-- 여기서 password 인 park을 입력한다.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17 to server version: 3.21.27-gamma-log

Type 'help' for help.

mysql>


자 MySQL에 접속되었다. 이제 table을 생성하여 보자. 아래는 individual
테이블 생성을 위한 SQL 문장이다.

create table individual(
empno  char(16)   primary key,
name   char(20)   not null,
sex    char(2),
addr   char(80),
tel    char(15)
)

위의 테이블은 개인정보 테이블로 간단히 만든것이다. empno 가 키가 되어
저장된다. 물론 index 테이블이 하나 생성되며 empno 가 인덱싱 되어진 테
이블이 생성될것이다. not null 은 말그대로 name 칼럼은 null 값은 받지
않겠다는 것이고.....

자 그럼 insert 문장을 하나 작성해 보자

insert into individual
values ('1','박순행','1','서울시 중랑구 상봉동 LG apt.','02-777-7777')

위의 sql문을 실행하면 한 row의 데이타가 insert 된다. 그럼 이제
select 문을 이용하여 읽어보자.

mysql> select *
    -> from individual
    -> \g
+-------+--------+------+------------------------------+-------------+
| empno | name   | sex  | addr                         | tel         |
+-------+--------+------+------------------------------+-------------+
| 1     | 박순행 | 1    | 서울시 중랑구 상봉동 LG apt. | 02-777-7777 |
+-------+--------+------+------------------------------+-------------+
1 row in set (0.00 sec)


위와 같이 출력 될 것이다. 여러가지 sql문장을 테스트 해보면 될것이다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:05)

'프로그래밍Tips' 카테고리의 다른 글

mySQL 기본사용방법 2  (0) 2005.03.26
UTP RJ 45 랜선 케이블링 방법  (0) 2005.03.03
오라클 원격 DB 접속 설정하기  (0) 2005.02.22


HUB-to-PC연결
Direct cable을 만들면 된다.
즉, UTP 케이블을 RJ-45 connector와 연결 할 때 RJ-45 connector를 뒤집어서 편편한 면이 위로 오게 했을 때(볼록한 부분이 아래로 향하게) 왼쪽부터가 1번이 되며,양 끝 단이 똑같이 1번부터 8번까지 순서대로 꼬임 없이 핀 순서대로 연결한다.
-1(흰주),2(주),3(흰녹),4(파),5(흰파),6(녹),7(흰갈),8(갈)

HUB-to-HUB, PC-to-PC 연결
Cross cable을 만들면 된다.
즉, 한쪽은 direct cable과 같이 핀 순서대로 연결하고 다른 한쪽은 1번2번과 3번6번을 바꿔주기만 하면 된다. 다른 한쪽의 핀 번호 및 색깔은 다음과 같이 한다.
- 1(흰녹),2(녹),3(흰주),4(파),5(흰파),6(주),7(흰갈),8(갈)
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
일단 기본적인 DB 사용법을 한번 확인하는 의미에서

기동하기
    >svrmgrl
            connect internal
            startup
멈추기
   >svrmgrl
           connect internal
           shutdown

리스너 기동 - 서버측에서 외부에서의 원격 접속을 받아들이기 위해 필요함
   >lsnrctl start

-----------------------------------------------------------------------
원격지에 있는 컴터(PC든 유닉스든, 서버든 DB 서버와 다른 곳)에서 DB 서버에 접속하려면

1. 원격지 컴터(현재 내가 사용하고 있는 곳)에 적절한 오라클 클라이언트를 설치한다.

2. 설치 후 아래의 예를 참조하여 tnsnames.ora 파일 설정함

# TNSNAMES.ORA Network Configuration File: /data/oracle/OraHome1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

HAKSA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 원격DB서버IP)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = 원격DB서버SID)
      (SERVIE_NAME = haksa.ok.ac.kr)
    )
  )
#

3. sqlplus 접속 확인

         sqlplus  ID/PW@원격DB서버SID


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
junggon 님의 글입니다.
----------------------------------------------------------------------------
썬머신의 솔라리스 8에서 오라클 817버전을 인스톨하는 방법에 대한 내용입니다.


하두 고생고생 해서 다른 분들도 고생하실까봐 올려봅니다.
------------------------------------------------------------
Sun Solaris8 (intel 플랫폼) 에서 Oracle 8i 설치
글쓴이 : 노상근 sknho@deskpia.com , 추가 배중곤 cgv1004@hanafos.com

=== 배중곤 추가 부분 ===
Sun Solaris 8 오라클 설치시 먼저 해둘 일 !!!!!

root로 해야하는 작업이 있다. 아래 나오는 파일을 수정해줘야 한다.
/etc/system 파일에 아래를 추가해 쓴다.
vi system

------------------------------------------------------------
#* 오라클용 공유메모리,세마포어 세그먼트,식별자 세그먼트 설정.
#* 우리 회사 Ultra 80 ( 2cpu , 256MB ram , 30GB 스카시하드 ) 모델의 설정값.
set noexec_user_stack=1
set noexec_user_stack_log=1
forceload:sys/shmsys
forceload:sys/semsys
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=70
set semsys:seminfo_semmsl=160
set semsys:seminfo_semmns=310
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
============================================================================================
설치작업을 할 oracle 이라는 계정을 만들어 준다.
그룹은 그냥 dba 하나로만 한다.
계정이 만들어지면 계정 홈디렉토리 안에있는 프로파일 화일인 " .profile " 에 아래와 같이 추가한다.
아래는 본쉘을 사용하는 것을 기준으로 한다.

ORACLE_SID=ADSVC; export ORACLE_SID
ORACLE_HOME=/export/home/ora817; export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin; export PATH
ORACLE_TERM=vt100; export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/openwin/lib:/usr/bin:/usr/lib; export LD_LIBRARY_PATH
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
ORACLE_OWNER=oracle; export ORACLE_OWNER
#DISPLAY=211.38.1.164:0.0; export DISPLAY
NLS_LANG=American_America.KO16KSC5601; export NLS_LANG
#LANG=en; export LANG

alias ls='ls -p'
alias ll='ls -al'
alias l='ls -l'
alias c='clear'

PS1='[\u@\H:\W]\$'

umask 022
============================================================================================


[ 예제 1 ]  Solaris 2.3/2.4    

 1. SQLDBA 에서 :    
  SQLDBA> shutdown    
  SQLDBA> exit    
 
 2. Superuser(root)로 login 하고 :    
  # cd /etc
 
 3. /etc/system file 에 다음을 추가 한다.
(저 위의 값을 추천한다.) 왜 이런 값을 넣어야 하는지에 대한 이유를
정확이 아는바가 없음이 죄송스럽습니당. 아래는 울회사 서버의 값입니다. 그대로 써두 될듯.
set noexec_user_stack=1
set noexec_user_stack_log=1
forceload:sys/shmsys
forceload:sys/semsys
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=70
set semsys:seminfo_semmsl=160
set semsys:seminfo_semmns=310
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
    
 4. Kernel을 reconfigure 한다:    
  # touch /reconfigure    
    
 5. Machine 을 reboot 한다:    
  #init 6    
    
 6. SQLDBA 에서 :    
   SQLDBA> startup    
   SQLDBA> exit    
    
Oracle의 init<SID>.ora Parameters 에는 SGA 의 영향을 주는 Parameters가 있다. OS의 Shared Momory 와 Semaphore Parameter 에 연결된 이 Parameter의 Setting 은 System 과 Oracle의 Performance에 영향을 미친다.   
   

### 다음은 oracle 계정의 생성 및 프로파일 설정..
[#] groupadd -g 5000 dba
[#] useradd oracle -g dba
기존사용자를 바꿀땐 : usermod -g dba oracle



vi .profile 로 아래 부분 추가.
--------------------------------------
ORACLE_SID=원하는SID값; export ORACLE_SID
ORACLE_HOME=/export/home/ora817; export ORACLE_HOME
#ORACLE_BASE=/export/home/ora817; export ORACLE_BASE
PATH=$PATH:$ORACLE_HOME/bin; export PATH
ORACLE_TERM=vt100; export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/openwin/lib:/usr/bin:/usr/lib; export LD_LIBRARY_PATH
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
ORACLE_OWNER=oracle; export ORACLE_OWNER
# DISPLAY=:0.0; export DISPLAY
NLS_LANG=American_America.KO16KSC5601; export NLS_LANG
#임시디렉토리는 오라클 홈 밑에 tmp 디렉토리를 만들어준다.
TMDIR=/export/home/ora817/tmp; export TMDIR
#TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

#아래 언어설정은 혹시나 인스톨시 디비생성을 바로 못하고 스크립트로 남긴 후 수동으로
## dbassist 명령어로 생성하려고 할때엔 언어설정을 풀어서 환경을
## 영어로 재적용(리부팅 등의 방법을 써서~) 해주고 해야 잘 됩니다.
#LANG=en; export LANG

alias ls='ls -p'
alias ll='ls -al'
alias l='ls -l'
alias c='clear'

PS1='[\u@\H:\W]\$'
umask 022
#------------------------


--------------------------------------


Sun 솔라리스 8 (intel 플랫폼)을 처음 받았을 때 함께 들어있는 Oracle 8i 데이터베이스 CD를 보노라면 웬지 뿌듯한 느낌을 받게 된다. 전세계 DB시작을 석권한 오라클에서 리눅스용에 이어 선 솔라리스 사용자들을 위한 제품까지 만들어서 서비스를 시작한 것이다. 사실 오라클 DB의 가격은 결코 만만치 않다. 선 엔터프라이즈용 오라클 DB의 가격을 아는 이들이라면 이렇게 운영체제와 함께 제공되는 오라클 CD에 대해 묘한 감정을 느낄 것이다.
동봉된 오라클 DB는 개발자용이다. 그러나 서버용 DB로도 훌륭히 수행된다.
한가지... 처음 DB를 다루는 분들께는 오라클 이외에 다른 제품을 권하고 싶다. 설치부터가 만만한 제품이 아니기 때문이다. 필자의 개인적 경험상 사용하기 무난한 제품으로는 MS의 MS-SQL Server 7.0을 권하고 싶다. 그러나 이미 어느정도 DB에 대한 지식을 쌓은 분이라면, 그래서 SQL문법에 능통한 분이라면 오라클은 결코 지나칠 수 없는 제품이리라.
작년 (1999년) 초, 리눅스용 오라클을 설치했을 때 몇시간을 헤매던 생각이 났다. 잡지에 나온 대로 설정을 시도했으나 몇 번의 실패끝에 결국은 나름대로의 방식대로 설정하여 겨우 DB가 startup 되는 모습을 볼 수 있었다. 이에 반해 NT용 오라클 서버는 그리 까다롭지 않은 설치방식을 제공한다. 운영체제에 따라 설치방식이 극과 극을 달리는 듯 하다.
사실 이번 솔라리스용 오라클 8i 역시 몇 번의 시행착오를 거친 끝에 설치를 할 수 있었다. 특히 환경변수 설정이 무엇보다 중요하다. 유닉스나 리눅스에 대한 기본 지식이 없이는 시도하지 말 것을 당부한다.
자 준비가 되었으면 설정에 들어간다. 아래 글은 읽는 이들이 어느정도 유닉스나 리눅스에 대하여 기본 지식이 있음을 전제로 작성하였다.


1. 설치를 위한 기본 환경
- 메모리 권장 : 128 MB 이상
- HDD : 1 GB정도의 빈 공간.
- CPU : Celeron 366 혹은 펜티엄 II 350 이상 .
위의 사양은 말 그대로 설치를 위한 최소사양이다. 위 내용중 메모리는 256MB를 장착하면 쾌적하게 오라클을 설치하여 사용할 수 있다. 128MB와 256MB의 차이점은 오라클 설치에 필요한 소요시간에서도 명확히 나타난다.
2. ROOT 권한하에서 할 일.
가. ORACLE 계정 등록
- 오라클 설치 및 운영을 위한 USER 계정을 새로 만든다. (admintool을 이용하는 것이 편하다) 아래와 같이 설정해주면 된다.
* 사용자명 : oracle (임의로 설정가능)
* Primary Group : dba
* Secondary Group : oinstall
* 홈 디렉토리 : / OraHome1 (임의로 설정 가능. 단 오라클 사용자 자체의 계정의 홈 디렉토리와는 절대로 일치시키지 말 것. 과거 리눅스용은 오라클 홈 디렉토리로 사용자 홈 디렉토리를 설정하였으나 솔라리스용은 다르다)
* Login Shell : Bourne shell (/bin/sh)
나. 솔라리스 커널 Parameter 설정
/etc/system 파일 맨 밑부분에 아래 내용을 삽입한다.
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=100
set semsys:seminfo_semmns=200
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
** 상기 사항을 입력할 때 주의하세요. 오타가 나면 부팅시 에러메시지가 나타납니다.




다. 환경변수 설정
- oracle user의 환경변수를 설정해준다. oracle user의 홈 디렉토리안에 있는 .profile을 수정해주면 된다.
문서 맨 위 .profile 적용사항을 보시고 하세요.!!!
** 주의사항 : oracle 계정은 위에 언급한 대로 Bourne shell을 사용한다. C shell과는 달리 Bourne shell이나 Korn shell에서는 환경변수를 지정한후에는 반드시 export 명령을 주어야만이 변수가 적용된다.
예를 들어 위에서 설정한 ORACLE_HOME=/export/home/OraHome1 의 경우에도 밑줄에 export ORACLE_HOME 을 추가로 설정해 주어야 된다.
여기까지는 oracle을 인스톨하기 전에 만들어준다.
라. oracle 홈디렉토리의 사용권한 설정
- oracle user가 새로이 생성될 오라클 홈디렉토리에 쓰기권한을 가질 수 있도록 해주는 것이다. 만일 오라클 홈디렉토리가 위에 지정한 것처럼 /export/home/OraHome1이라면..
# chown oracle:dba /export/OraHome1
이렇게 지정해주면 된다.




3. oracle 사용자로서 할 일
root 권한하에서 할 일을 마쳤으면 이제 새로 생성한 oracle user로 다시 login하여 다음 작업을 수행해주자.
가. umask 값 확인
- umask라고 쉘에서 입력했을 때 0022값이 나오면 된다. 다른값이 나왔다면 .profile에서 umask 설정을 잘못해준 것이다.
4. oracle 데이터베이스 설치
아래 내용은 모두 oracle 사용자로 로긴하여 수행해야 하는 일이다. 절대 root로 login하지 말기 바란다.
가. 로긴시 언어설정
가장 애를 먹은 부분이다. 이제껏 기본적으로 한글 (Korean) 환경에서 솔라리스를 수행하여 왔을 것이다. 그러나 Oracle database를 설치할 때 만큼은 영어환경에서 설치를 해주도록 하자. 그 이유는.... 한글환경에서 설치를 해보면 안다. Oracle Database Configuration Assistant를 수행할 때 나오는 원인모를 에러.. 그리고 멈춤. 이것 때문에 며칠을 허송세월하였다. 결국 오라클 사용자모임의 게시판에서 해답을 얻을 수 있었다.
나. Oracle 8i CD 삽입
다 아는 내용이겠지만 솔라리스는 CD를 삽입함과 동시에 자동으로 CD를 마운트해준다. 오라클 CD를 넣으면 CD의 루트 디렉토리에 있는 파일들이 파일관리자 화면에 보일 것이다. 여기서 아래에 흰색으로 표시된 runInstaller 파일을 수행시키면 된다. 마우스로 더블클릭해보자. JAVA를 기반으로 한 멋진 GUI환경의 Universal Installer Program이 실행된다.

오라클 CD를 넣었을 때 나타나는 파일매니저


다. Oracle 8i 설치
설치 프로그램 화면을 따라가면서 설치를 수행하자.
설치도중 tmp/OraInstall/orainstRoot.sh 스크립트 파일을 root 권한으로 수행하라고 나온다. (물론 새로 root로 로긴하라는 것이 아니고 잠시 su를 이용 root권한을 가지고 하면 된다)
File location 지정화면은 특별한 이유가 없는 이상 시스템에서 기본적으로 지정하는 위치에 설치하면 된다.
설치하는 유형을 선택하는 메뉴는 다음 3가지로 나뉜다.
1) Oracle Enterprise Edition 8.1.5 : Oracle db server와 관련된 모든 프로그램
2) Oracle 8i Client 8.1.5 : client용 프로그램
3) Oracle Programmer 8.1.5 : 기본적인 클라이언트 프로그램 (Net8, SQL*Pluse) 및 프리 컴파일러, 도움말등.
위에서 자신에게 알맞는 사항을 선택후 Next 버튼을 누르면 설치유형 선택화면이 나온다. 여기서 Custom을 선택하여야만 프로그램 및 데이터베이스에서 사용할 언어를 선택할 수 있다.
다음 화면은 설치가 가능한 각 프로덕트가 박스안에 나열된다. 상단의 'Product Language'를 클릭하면 설치할 언어를 선택할 수 있다. 기본적으로는 'English'로 되어있겠지만 이것을 'Korean'으로 변경한다.
Java Runtime Applicaiton의 경로설정 및 보안인증방법 (Authentification Methods) 설정부분은 그냥 Next 버튼을 누르면 기본값으로 설정된다.
Oracle Home Directory는 기본적으로 export/home/OraHome1으로 되어있을 것이다. 설정된 기본값 그대로 하면 된다.
오라클 소프트웨어를 갱신할 수 있는 UNIX 그룹을 지정하라고 나오면 oinstall을 입력한다.
설치에 필요한파일이 복사되는 과정이 진행된다.
라. Net8 Configuration
네트웍 설정부분이다. 이곳을 click하면 자세한 사항이 나온다.

** 설치중 정해주어야 할 값.
Oracle SID: 4-5자정도의 짧은 알파벳 이름을 지어준다. 이값은 추후 .profile에도 설정해주어야 하므로 잊지 않도록 한다. (Default : ORCL)
DB 명 : 역시 자기마음에 드는 이름을 지어준다

.

마. 데이터베이스 생성
설치 후반부로 가면 자동으로 수행에 필요한 데이터베이스 생성으로 들어간다. (Oracle Database Configuration Assistant) 데이터베이스 생성 옵션으로서는 설치 CD에 있는 데이터베이스 파일 복사를 선택하면 된다. 데이터베이스 생성작업에 소요되는 시간은 시스템 메모리 크기에 따라 차이가 있을 것이다. (메모리가 클수록 소요시간은 짧아진다)



바. root.sh 실행
필요한 파일 설치가 끝나고 링크작업이 완료되면 Oracle Home 디렉토리에 있는 root.sh를 root권한으로 실행하라는 메시지가 나온다. 이것을 실행시켜도 실행이 되지 않을 경우에는 chmod 명령을 사용하여 root.sh의 속성을 실행가능 파일로 바꿔준다.
실행후 ORACLE_OWNER, ORACLE_HOME, ORACLE_SID의 설정값이 나오면 이것을 확인해둔다. local bin 디렉토리의 full path명은 자신의 시스템에 설정된 값으로 고쳐준다. (예. /usr/bin)
모든 설치가 끝나게 되면 아래와 같은 엔딩 화면을 보게된다. 이걸 보기위하여 얼마나 많은 노력을 하였는가.... 라고 생각하면 안된다. 아직 확인해야 할 일이 많다.

5. 설치후 해야할 일
가. 환경변수 추가 설정
- oracle user의 환경변수를 추가로 설정해준다. 설치하기 전과 마찬가지로 oracle user의 홈 디렉토리안에 있는 .profile을 수정해주면 된다.
* ORACLE_SID= 아까 설정한 값을 넣어준다. (예 : ORCL등)
* CLASSPATH=/export/home/jre/1.1.7/bin:$ORACLE_HOME/jlib
* LD_LIBRARY_PATH=$ORACLE_HOME/lib
** 참고로 필자의 oracle 계정에 설정한 .profile값을 공개한다. 여기서 DISPLAY 변수에 나오는 서버명(deskpia)은 여러분의 시스템에 맞게 수정해야 한다. 나머지 사항은 대체로 동일하게 설정해도 되는 사항들이다.

tty istrip
DISPLAY=deskpia:0.0
export DISPLAY
ORACLE_HOME=/export/home/OraHome1
export ORACLE_HOME
PATH=/usr/bin:/usr/ccs/bin:/usr/ucb:/etc:$ORACLE_HOME/bin:/bin:/opt/bin
export PATH
TMDIR=/var/tmp
export TMDIR
umaks=022
export umask
ORACLE_OWNER=oracle
export ORACLE_OWNER
ORACLE_SID=ORCL
export ORACLE_SID
CLASSPATH=/export/home/jre/1.1.7/bin:$ORACLE_HOME/jlib
LD_LIBRARY_PATH=/usr/java/lib:$ORACLE_HOME/lib
이제 시스템을 rebooting후 oracle user로 새로이 login한다.
6. 오라클 구동 확인
가. 이미 path가 지정되어 있으므로 곧바로 아래와 같이 쉘에서 입력해보자.
$ svrmgrl
아래와 같이 화면이 나타나면 1차 성공이다.
Oracle Server Manager Release 3.1.5.0.0 - Production
(c) Copyright 1997. Oracle Coprporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
with the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production
SVRMGR>
나. 이제 데이터베이스에 연결해본다.
SVRMGR> connect internal
Connected 라고 나오면 된다. 여기서 Connected라는 메시지와 함께 어떤 error 메시지가 나온다면 오라클 db가 정상적으로 설치되지 못한 것이다.
다. 다음으로는 데이터베이스를 구동시킨다.
SVRMGR> startup
잠시후 아래와 같이 메시지가 나오면 성공적으로 데이터베이스가 구동되고 있는 것이다.
** 아래 수치는 시스템에 따라 다를 수 있음 **
Oracle instance started
Total System Global Area 35028368 bytes
Fixed Size 64912 bytes
Variable Size 18014208 bytes
Database Buffers 16777216 bytes
Redo Buffers 172032 bytes
Database mounted.
Database Opened.
라. 내친김에 데이터베이스에 있는 테이블들을 살펴보자.
SVRMGR> select * from tab;
수많은 테이블들이 주욱 나오면서 마지막에 다음 메시지가 나올 것이다.
1433 rows selected.
이제 오라클 데이터베이스 설치라는 기나긴 여정이 끝났다. 남은 일은 dba로서 해야 할 일이다. 항상 끝마칠 때 shutdown을 잊지 않으면 아무런 문제없이 oracle DB를 사용할 수 있을 것이다.

p.s. http://technet.oracle.com으로 가면 오라클 데이터베이스에 관한 아주 많은 자료들이 체계적으로 정리되어 있다. 이것을 이용하려면 회원으로 가입하면 된다. 회비는 무료이다. 물론 모든 자료는 영어로 되어 있다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
아래글은 empas 블로그 "햇님"의 글을 가져온 것입니다.

각 컴퓨터마다 설정이 다르기 때문에 현재 상태를 먼저 백업하신 후 하나씩 적용하면서 혹시 오류는 없는지 확인하여야 합니다.
------------------------------------------------------------------------------------
No1. 지렁이 숫자 줄이기
Windows폴더 -> Prefatch폴더안에 *.pf 파일들을 모두 삭제한다.
프로그램을 설치하거나 레지 건드는 위험한 팁이 아니니 한번 시도해 보세요.
그런데, 윈도우 사용하다보면 pf파일이 또다시 쌓이게 됩니다.
주기적으로 지워줘야 한다는...

No2. 웹페이지 로딩을 빠르게
윈도탐색기 -> 도구 -> 폴더옵션을 선택하신 후 [보기]탭에 보시면 [네트워크 폴더 및 프린터 자동검색]이라는 항목이 있는데 이 항목의 선택을 지운다.
프린터 자동검색을 해제하시면 웹페이지가 단번에 뜹니다.

No3. 화면 이동을 부드럽게?
익스플로러에서 화면이동할때 마우스의 휠기능을 사용하는데 좀 무겁게 느껴진다거나 끊기는 느낌이 있을때 유용한것 같네요.특히 저사양 컴퓨터에서..익스플로러 -> 도구 -> 인터넷옵션 -> 고급 -> 부드러운 화면이동 체크를 해제.

No4. 프로세서 사용계획 수정
내컴퓨터 마우스 오른쪽 클릭하고 속성들어가서 고급 성능옵션 고급탭에서 프로세서 사용계획이란게 있습니다. 여기에서 백그라운드서비스와 시스템캐시에 체크를 하고 재부팅해보세요. 전보다 멀티테스킹이 빨라진 느낌이 드실겁니다.

No5. 메뉴 팝업속도 높이기
시작을 클릭하거나 하위 프로그램메뉴가 나타날때 속도를 높이는 레지수정방법입니다.
(1).시작-실행-regedit
(2).다음 경로를 찾아갑니다
HKEY_CURRENT_USER\Control Panel\Desktop\

(3).여기서 MenuShowDelay 의 값을 더블 클릭해서 원하는 값으로 변경해주면 메뉴팝업속도를 조정할 수 있습니다.


최소 0(가장 빠름)~65534(가장 느림)까지 설정할 수 있습니다.
윈도 9X/me의 경우 기본값이 250이고 윈도 XP/2000/NT의 경우 400입니다
기본보다 빠르게 설정하려면 값을 400보다 낮게 설정하면 되겠죠

No6. 윈도우 xp 인터넷익스플로러 로딩속도 향샹법
(1) DNS캐쉬수정으로 브라우저속도 높이기
HKEY_LOCAL_MACHINE\System\CurrentControlset\Services\Dnscache\Parameters에서
다음항목의 값을 입력한다(없으면 새로 오른쪽 마우스 클릭하여 새로만들기->DWORD값-10진수로 만든다)
※. 반드시 10진수 확인하시기 바랍니다.

CachehHashTableBucketSize---->1
CachehHashTableSize---------->384
MaxCacheEntryTtlLimit-------->64000
MaxSOACacheEntryTtlLimit----->301


No7. 폴더창 속도향상하기
제어판에서 [폴더옵션]을 실행한 다음,
[보기]=>[고급설정] 부분에서 [폴더 및 바탕화면 항목에 팝업 설명 표시]와 [압축된 파일과 폴더를 다른 색으로 표시] 그리고, [독립된 프로세스로 폴더창 실행]의 체크를 해제하여 속도 향상

No8. 윈도우 창이 뜨는 속도 높이기
윈도우즈의 속도를 조금이라도 높이고 싶은 사람들에게는 창의 최대화 , 최소화에 따른 애니메이션 효과도 속도를 저하 시키는 원인이 될 것이다.여기서는 그 속도를 높여주는 방법.

레지스트리 편집기를 실행한다.
변경 할 사항: HKEY_CURRENT_USER\Control Panel\desktop\windowmetrics 로이동 우측 화면에서 마우스 오른쪽 버튼을 누른후 [문자열 값]을 선택하고 MinAnimate라고 입력한다.그다음 이 값을 더블클릭하여 값을 "0"으로 설정한다. 이것으로 창이 열리거나 닫힐때 최대화 , 최소화 애니메이션 표시가 되지 안 아 창의 표시속도가 눈에 띄게 빨라진다.

No9. 폴더를 열었을때 화일아이콘의 화면출력(Refrash rate) 속도 향상
레지스트리 편집기를 실행한다.
변경 할 사항: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update
로 이동하여, 오른쪽 창의 [UpdateMode] 에서 오른쪽 마우스 버튼을 클릭하고 수정을 선택, value를 1에서 0으로 바꾼다.

No10. L2캐쉬 지정으로 속도향상 시키기
Secondlevel Datacache(L2Cache) 는 CPU의 작업속도에 매우 중요한 기능을 담 당한다. 펜3코퍼마인에 내장된 CPU와 같은 속도로 동작하는 이 빠른 L2캐쉬에 데 이타를 일정량 올려놓을 수 있기때문에 상대적으로 엄청 느린 메모리로만 데이터 를 처리할 때보다. 작업효율이 더욱 뛰어날수밖에 없다.

일반적으로 xp가 cpu와 L2Cache의 값을 자동으로 인지하게 된다. 그러나, 종종 xp가 이것을 할 수 없을 경우가 발생한다. 그래서 cpu의 작업속도를 향상시키기 위해서는 레지스트리 값을 조작해줘야 한다.

(1).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management에서 오른쪽에 SecondLevelDataCache항으로 간다.

(2).자신의 cpu에 맞는 10진수 값을 다음과 같이 수정한다.
AMD Duron → 64입력
CeleronA/celeron2 → 128입력
PII mobile/PIII E(EB)(칩형태 256K L2캐쉬내장 펜3 코퍼마인)/P4/AMD K6-3/AMD THUNDERBird/Cyrix III → 256입력
AMD K6-2/PII/PIII katmai(초기 카트리지형식 펜3 카트마이)/AMD Athlon→ 512입력
PII Xeon/PIII Xeon → 1024입력

(3). 재시작한다.


№11. 캐쉬메모리 체적화로 속도 높이기
디스크캐시는 윈xp에서 매우 중요한 역할을 담당한다. 그렇지만, xp의 기본 입출 력 페이지 파일 셋팅은 매우 민감해서 xp의 작업속도를 제한하게 된다. 다음은 램 의 크기에 따른 몇 가지 값들이다. 램의 크기에 맞게 다음을 수정하시면, xp의 작 업속도를 가속시킬 수 있다.

(1).HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\ IoPageLockLimit 에서

(2). 자신의 램 사이즈에 맞는 16진수(hex)값을 다음과 같이 수정한다.
64M: 1000;
128M: 4000;
256M: 10000;
384M: 22000;
512M or more: 40000.

(3). 재시작한다.


№12. 무응답 응용프로그램 타임아웃 시간줄이기
윈도XP는 해당 응용프로그램이 정지하면 해당 프로그램이 응답이 기다리는 시간이 설정되어 응답이 없으면 해당프로그램을 정지시킨다 이 타임아웃시간을 조절해서 윈도우 XP 정지시간을 줄일 수 있다

*.레지스트리수정(실행=>regedit)
[HKEY_CURRENT_USER\Control Panel\Desktop]에서 HungAppTimeout의 다음 값이 기본적으로 5000(5초)으로 설정되어있을 것이다.
이 값을 더블 클릭해서 1000 (1000 = 1초)로 설정해준다


№13. msconfig에서 필요없는 서비스항목 해지하여 부팅속도 올리기

(그만큼 윈도우시작시 불필요한 인식을 안해서 좋으나, 신중히 고려해보고 해제하는 것이 좋을 듯)

(1).Automatic Updates(자동업데이트 기능) => 해제하시면 수동으로만 업데이트 됩니다.

(2).Help and Support (도움말 및 지원센터) =>윈도우 도움말이 불필요하다고 여겨지면 해제.




(3).NetMeeting Remote Desktop Sharing =>인터넷외의 인트라넷, 원격제어등을 사용하지 않는다면 해제

(4).Performance Logs and Alerts(원격제어시 원격 컴퓨터의 정보등을 수집하는 서비스) => 원격제어 사용하지 않는다면 해제

(5).Portable Media Serial Number =>컴퓨터에 연결된 휴대용 음악장치의 시리얼넘버검색을 사용하지 않으면 해제

(6). Secondary Logon =>다른 계정을 사용하지 않는다면(단독으로 사용하는 컴퓨터라면) 해제.

(7).Smart Card Helper =>플러그 앤 플레이를 지원하지 않는 레거시 스마트 카드를 지원하도록 설정. => 레거시 스마트 카드를 사용하지 않는다면 당근 해제.

(8). System Restore Service => 시스템 복원 서비스... 시스템 복원 사용하지 않는다면 해제.
      이거는 필요 한 듯 XP에 문제가 발생될 때 시스탬을 복원할 필요가 있음.

(9).Telnet =>원격 사용자가 이 컴퓨터에 로그온하여 프로그램을 실행하고 UNIX 및 Windows 기반 컴퓨 터를 포함한 다양한 TCP/IP 텔넷 클라이언트를 지원. 말그대로... 이런 기능을 사용하지 않으려면 해제.

№14. 저사양 컴터에서 XP 잘 돌아가게 하는방법
XP를 저사양 컴터에서 벅벅대지 않고 잘돌아가게 하려면 다음을 설정한다
(1).제목표시줄 오른쪽마우스 클릭 -> 속성 -> 시작메뉴 -> 이전시작메뉴 : 윈도우 예전메뉴로 설정됨

(2).내컴퓨터 -> 속성 -> 고급 -> (시각효과,프로세서일정,메모리사용및가상메모리 시각효과에서 사용자지정으로 한후 모든 콤보박스 체크해제 (단,[바탕화면의 아아콘 레이블에 그림자사용] 항목만 설정하여 바탕화면 아이콘을 투명화 조치한다.

※. 일반 컴에서도 화려한 XP창이 필요치 않을시 이 방식 적용하면 속도 향상 효과를 보게 됨

№15.XP시작할때 새로운 시작 화면 안뜨게 하기
XP시작할때 새로운 시작 하면서 화면이 뜹니다.
제거할려면 먼저 제어판 => 사용자 계정에 가시면 사용자 계정 창이 뜹니다.
거기서 [사용자 로그온 또는 로그오프 방법 변경]에 가시면 [새로운 시작 화면 사 용]이 있습니다.
새로운 시작이 뜨면 새로운 시작 화면 사용에 체크가 되어 있겠죠 그 체크 표시를 안하면 이제 부터 새로운 시작화면 이 안뜹니다.

№16. 시스템에 랜카드가 꼽혀있는 분들은
아마 로그온 후 부팅속도가 상당히 늦으실 겁니다..
이건 윈2000이나 98SE도 마찬가지죠..
이건 랜카드 설정시간 때문인데요..
방법이 있습니다. ※ 전용선은 안돼요~

우선 [제어판]=>[네트워크 등록정보]까지 갑니다.
오른편 [랜카드아이콘]에서 오른쪽 버튼누르시고 등록정보 들어갑니다.
거기서 IP자동 할당 말고 할당된 IP사용 에 체크하시고
IP주소를 192.168.0.1로 넣어주시면 서브네스 마스크는 자동으로 255.255.255.0으로 들어가게 됩니 다.

확인 누르신다음 리부팅해 보시면 부팅속도가 빨라진것을 현저히 느끼실 수 있을 겁니다.

※. 이건 ADSL외장형이나 케이블모뎀 사용자에게만 해당되는 방법입니다.
     전용선은 어차피 IP를 할당받기 때문.




№17. HDD 파티션 및 프로그램 설치 최적화
파티션 및 프로그램 설치와 최적화가 무슨 상관이 있을까? 하고 의아하게 여기는 사람들이 있을 것이다. 그러나 HDD의 구조에 대하여 이해한다면 궁금증이 풀릴 것이다. HDD는 디스크 바깥쪽 전송률이 안쪽보다 대략 30-40% (IBM DJNA 15GB 기준) 정도 더 빠르다.

여기서 반드시 파티션을 나눠야 된다는 것을 알 수 있다.

프로그램을 설치하는 위치를 사용자가 임의로 조절할 수 있는 방법은 없다. 그러나 어느 드라이브에 어떤 순서로 설치할 것인지는 결정할 수가 있다. 그러므로 사용 빈도가 높은 프로그램이 가급적 HDD 외측에 설치되도록 설치 순서를 정하고 적절한 드라이브를 선택하면 된다. 파티션을 하는 목적은 여러 가지이지만 HDD 전송률을 최대한 높이기 위한 방법(최적화)도 그 중 하나이다. HDD를 파티션하면 C:, D:, E: 등의 순서로 HDD가 나뉜다. C:는 디스크의 가장 바깥쪽에, 마지막 드라이브는 가장 안쪽에 자리 잡는다.

15GB 용량의 HDD를 3 등분하여 5GB씩 파티션하고 3 개의 드라이브 C:, D:, E:로 사용할 경우를 예로 들어보자;

드라이브 C:의 속도가 가장 빠르므로 이곳에는 OS, 인터넷 탐색기, 워드프로세서, 유틸리티 등을 필수 프로그램들을 사용 빈도가 높은 순서로 설치하고 D: 드라이브에는 이따금 즐기는 게임이나 CD 레코딩을 위한 임시 작업장으로 사용하며 E: 드라이브는 그래픽 드라이버를 포함한 각종 update용 드라이버 보관 및 장기 보관 data backup용으로 사용하면 좋을 것이다.

실제로 위 말이 사실인지 테스트 해보자.

테스트 프로그램은 자료실에 하드속도 테스트란 제목으로 등록되어있다.
자신의 디스크가 어느부분에서 제일 빠른지 그 부분을 제일 빠른 순으로
C: D: E: ...영역으로 설정하면 C: 시스템파일들을 설치하고 기본적인 응용프로그램들을 설치한다면 빠른 시스템을 느낄것이다.

중요>>>하드의 제일 빠른 부분을 찾아야 되기 때문에 파티션 용량 계산 잘 하시길...필자는 현재 3개 로 나눠서 사용중이다.

C:는 17G
D:는 11G
E:는 12G 로 사용중이다.

실제로 테스트 해 본 결과 C: 와 E: 의 읽기 속도와 쓰기 속도는 거의 2배 가까이 차이가 났다. 물론 그래프 상이지만...

40기가중 17G 이 영역이 가장 빠르게 나타나서 이 부분을 현재 C: 로 쓰고 있다.

OS를 가장 빠른 하드에 설치해서 부팅속도 및 엑세스 속도를 조금이나마 당겨보시길..보편적인 벤치마킹 프로그램인 산드라로 테스트해보면 금방 알수 있음.

№18. 윈도우 탐색기를 좀 더 빠르게 할 수 있는 방법
일단 시작버튼-> 실행을 선택한 후 -> regedit 를 입력하고 엔터를 눌러서 레지스 트리 편집기를 엽니다.

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/


여기에 update 로 가서 오른쪽에 보면 updatemode라고 있을겁니다.
updatemode에서 오른쪽 버튼 눌러서 수정해주면..값이 나오는데.
0000 01 이라고 아마 나올겁니다..거기서 01을 00으로 고쳐주면 됩니다..
아마 0만 치면..자동으로 00 이 될겁니다..

이렇게 하시고 윈탐색기를 실행시켜서..폴더를 돌아다니다보면..좀 빨라졌다는걸 느끼실겁니다..

№19. CMOS SETUP설정으로 PC속도 향상하기(하드웨어)
만약 당신이 다른 사람과 똑같은 사양의 컴퓨터를 가지고 있을때 자신의 컴퓨터의
부팅시간이 배이상이나 느릴때는 CMOS SETUP설정을 제대로 못한 경우가 많습니다.
그래서 바이오스 조정에 대한 몇가지 팁을 알려 드립니다. 밑에 설명들을 보시고 자신에게 필요한 것만 설정을 해주시면 빠른 부팅속도를 얻을수 있습니다.

◆ Standard CMOS Setup
시스템 날짜나 시간, 메모리와 하드디스크에 대한 정보를 다룬다.
부팅 속도와 관련된 메뉴는 halt on과 hard disks type다.


- hard disks type
1∼47(user)/auto 타입이 있다. auto로 하면 PC를 켤때마다 하드디스크와 CD롬 드라이브를 검색해서 윈도우즈에 알려준다. 하드디스크를 자주 떼었다 붙이는 사람은 auto로 한다. 그렇지 않으면 user type으로 시스템에 달린 하드디스크의 정보를 직접 등록한다. 그 결과 하드디스크와 CD롬 드라이브를 검색하지 않으므로 부팅 속도가 15% 정도 빨라진다.

- halt on
부팅 중간에 키보드에 불이 깜박 들어온다. 키보드가 제대로 달렸는지 검사하는 것이다. 값은 no error all error all, but keyboard all, but disk all, but disk, key 세 가지다. 키보드 검사 시간을 줄이려면 no error로 한다.

◆ BIOS Features Setup


CPU 캐시를 쓸 것인가, 부팅이 될 때 바이러스를 검사할 것인가, 메모리 검사를 몇 번 할 것인가를 정한다. 모두 부팅 속도와 관련되었다.

- anti virus protection
시스템을 켜거나 하드디스크 부트 섹터에 쓰기를 할 때 바이러스를 발견하면 작동을 멈추고 에러 메시지를 띄운다. 값을 enabled로 하면 바이러스를 검사하는 과정을 건너뛴다.

- CPU internal cache
램은 CPU보다 데이터 처리 속도가 느려 둘 사이에 병목 현상이 생긴다. 이 문제를 막는 것이 캐시다. CPU internal cache는 이름 그대로 CPU에 달려 있는 캐시다. 이것은 CPU 다음으로 데이터 처리 속도가 빠르다. 기본 값인 enabled를 그대로 둬 작업 속도를 높인다. 셀러론 CPU에는 캐시가 없다.

- external cache
external cache는 메인보드에 달린 캐시를 이용해 병목 현상을 줄인다. L2 캐시라고도 부른다. CPU internal cache와 마찬가지로 값을 enabled로 한다.

- quick power on self test
quick power on self test는 포스트(POST)를 재빨리 처리한다는 뜻이다. 포스트는 전원 버튼을 누른 뒤 윈도우즈가 뜰 때까지 과정을 말한다. 물론 이 작업은 아주 신중하게 진행되어야 한다.
그렇지 않으면 부팅이 끝난 뒤 시스템에 문제가 생긴다. 하지만 요즘 나오는 PC는 철저하게 검사하지 않아도 될 만큼 성능이 뛰어나다. 값을 enabled로 바꿔 부팅 속도를 높인다.

- boot sequence
윈도우즈의 부팅 파일을 어디서 불러온 것인지 정한 다. 기본 값은 A, C, SCSI다.
플로피디스크 드라이브를 살펴 부팅 파일이 없으면 C 드라이브와 스카시 장치를 차례로 검색한다.
어차피 부팅 파일은 C 드라이브에 있으므로 A 드라이브부터 읽을 필요가 없다.
값을 C, A, SCSI 또는 C only로 바꾼다.

- boot up floppy seek
플로피디스크 드라이브를 검색하는 메뉴다. 이 시간을 줄이려면 값을 disabled로 한다.

- delay IDE initial
전원 버튼을 누르면 곧바로 부팅이 되지만 예전에는 그렇지 않았다.
시스템을 검사한 뒤 문제가 없어야 부팅이 시작되었다. 이때는 하드디스크가 반응할 수 있도록 여유 시간을 주었다. delay IDE initial 명령이 그 일을 한다. 요즘 쓰는 하드디스크는 부팅하자마자 작동하므로 여유 시간을 둘 필요가 없다. no delay로 한다.

- video BIOS shadow
전원 버튼을 누르면 바이오스는 CPU와 VGA카드를 검사한다. 이때 VGA카드의 롬 바이오스를 메모리로 불러온다. 롬 바이오스를 VGA카드에서 직접 읽어오는 것보다 메모리에서 불러오는 시간이 훨씬 짧기 때문이다. 값을 enabled로 한다.

◆ Chipset Features Setup

그래픽카드의 램이나 바이오스 롬을 캐시해서 작업 속도를 높일 것인지, 램을 얼마나 자주 충전할 것인지, CPU와 램 사이에 흐르는 신호 간격을 어느 정도로 할 것인지 정한다.

- EDO RAS to CAS delay
메모리에서 데이터를 읽어올 때는 행과 열로 된 주소를 이용한다. 예를 들어, 1열 2행이라는 신호를 보내면 메모리는 첫 번째 열의 두 번째 행에 있는 데이터를 불러온다. 열과 행의 주소를 정하는 것을 RAS(raw address strobe)와 CAS(column address strobe)라고 부른다. 이 옵션은 열을 정한 뒤 행을 결정짓는 데까지 걸리는 시간을 정한다. 물론 짧을수록 좋다. 값은 2 또는 3클럭이 가장 적당하다.

- EDO RAS precharge time
펜티엄 시절에 썼던 EDO램은 주기적으로 전력을 공급받아야 제대로 작동한다.
방전되면 기억하고 있던 데이터를 모두 날려버리기 때문이다. 이 옵션은 충전을 얼마나 자주 할 것인지 정한다. 전력을 공급받을 때는 작동을 멈추기 때문에 이 주기가 너무 짧으면 데이터를 처리하는 속도가 떨어진다. 반대로 충전 간격이 너무 길면 방전될 위험이 있다. 가장 적당한 값은 3이다.

- system(video) BIOS cacheable
PC 작업을 할 때는 바이오스 정보를 자주 읽어온다.
이 옵션을 enabled로 하면 바이오스 롬의 F000h-FFFFh를 L2 캐시로 복사한다.
덕분에 정보를 읽는 시간이 그만큼 짧아진다. 마찬가지로 video BIOS cacheable 항목을 enabled로 바꾸면 VGA카드에 있는 바이오스의 C0000h-F7FFFh가 L2 캐시에 들어간다.

- video RAM cacheable
VGA카드에 꽂힌 램에 보관된 데이터를 L2 캐시에 복사해서 그래픽 처리 시간을 줄인다. 값을 enabled로 한다.

◆ PNP/PCI Configuration Setup

요즘 나오는 부품은 꽂으면 바로 작동하는 플러그 앤드 플레이 기술을 쓴다.
하지만 이 기술이 아직 완벽하지 않아 100% 믿을 수 없다. 상황에 따라서는 이용자가 IRQ 번호를 직접 챙겨주어야 한다.

- assign IRQ for VGA
그래픽카드에 IRQ 번호를 줘 CPU의 도움을 받지 않고 자기 일을 소화한다.
덕분에 CPU는 맡은 일을 재빨리 처리한다. 값을 enabled로 한다.

- assign IRQ for USB
인터페이스가 USB인 부품이 CPU의 도움 없이 자기 일을 빠르게 처리하도록 한다.
enabled로 한다.

- PnP OS installed
전원을 켜면 바이오스는 IRQ와 입출력 주소 등을 각 부품에 할당한다.
하지만 이 일은 윈도우즈도 한다. 같은 일을 두 번 할 이유가 없다.
값을 yes로 바꿔 윈도우즈만 할당하도록 한다.

- Intergrated Peripherals
하드디스크 드라이브에 관한 옵션을 정한다. 그 중에서 속도와 관련된 부분만 다루었다.

- IDE HDD block mode
원래 하드디스크는 한번에 하나의 섹터(512바이트)를 처리한다. 이 양을 늘려 CPU나 메모리가 자료를 오랫동안 기다리지 않도록 하려면 값을 hdd max로 한다.
이것은 스카시 하드디스크가 쓰던 블록 모드와 같은 원리다.

- parallel port mode
최근 선보인 프린터와 스캐너는 EPP나 ECP 같은 고속전송 기술을 쓴다.
값을 EPP or ECP로 하면 DMA 주소를 이용해 데이터를 재빨리 처리한다.

※ IDE HDD Auto Detection
IDE 방식의 하드디스크를 검색해서 올바른 값을 바이오스에 등록한다.
Standard CMOS Setup 메뉴의 hard disks type에서 하드디스크를 직접 등록하지 않아도 된다.

№20. xp shutdown(윈도우종료) 빠르게하기
시작 -> 실행 -> regedit를 실행하고 다음 경로를 찾아갑니다. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control

Control를 선택한 다음 오른쪽 목록에서 WaitToKillServiceTimeout을 더블 클릭합 니다.
그리고 20000 으로 설정된 값을 100 으로 수정하시면 됩니다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
/* 리모트 백업하기 */

example% tar cvfb  -  20 files |  rsh host dd of=/dev/rmt/0n  obs=20b

****참고적으로 files는 백업을 받고자하는 디렉토리....
**** host 는 백업 장비가 부착된 서버 이름...
**** 명령어를 입력한 뒤 다시한번 잘못된 부분이 없나 확인요....

/* 백업한 디렉토리를 restore 할려면....*/

example% rsh -n host dd if=/dev/rmt/0 bs=20b |  tar xvBfb - 20 files
..............

여기서 주의 하실점은 /(루트) 밑에 .rhosts라는 화일을 만들어 내용을 + 로 하시고
/etc/hosts.equiv 도 같은 형식으로 만들어 줍니다.

그리고 가급적이면 csh를 사용하시고 ( 현재 상태에서 csh라고 입력하면 됨)
/.cshrc 화일에 stty를 사용한 라인이 있으면 주석처리 해주시면 됩니다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
onstat -l     로그 정보 확인
onstat -d     디비 space 정보 확인
onstat -u     현재 사용자 정보 확인
onstat -g sql     현재 실행되는 쿼리 정보 확인
onstat -g sql [session num]  해당 쿼리의 실제 쿼리문 확인
finderr [err num]   에러가 있는 경우 에러 정보 확인
vi online.log
onstat -p   profile 확인
onstat -R   큐 확인
onstat -m   log 확인  
onstat -c   설정 확인

dbaccess stores7 sel.sql  : stores7 db를 이용하는 sel.sql 쿼리문 실행
time dbaccess stores7 sel.sql  :  이 쿼리문 실행에 걸리는 시간 측정
dbaccess stores7
     set explain on;      쿼리의 진행경로 확인
     select * from customer where customer_num=119;
vi setexplain.out 위 명령에 대한 결과 확인
dbaccess stores7  
     update statistics for table customer;   해당 테이블에 대한 최적화 명령
     update statistics ;   전체 테이블에 대한 최소 최적화

        create database stores_test in yeongye with log;
        load from '[unl name]' insert into [table name];

touch [db space name]
chmod 660 [db space name]
chown informix:informix [db space name]
onmonitor     디비 공간 생성 및 공간 추가....
        Dbspace -> Create

숙제 :  stores7 -> kim 디비생성 및 데이타 로드
          - iweb server ,  ~informix/Daou/temp/un.sh , load.sh 이용

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)
메가패스 속도향상법

처음 메가패스를 설치한 이후 하드를 포맷한 경우 이전처럼 메가패스의 속도가 나오지 않는 경우가 많습니다. 이런 경우에는 레지스트리의 인터넷관련 부분을 조금만 수정해 주면 속도가 회복이 됩니다. 이제부터 소개할 레지스트리 수정법을 잘따라해 보시기 바랍니다. (윈도우 98을 기준)

1) Ping Test란?
Ping Test란 자신의 MTU값을 찾을 때 쓰는 방법이고, 또한 특정 싸이트와의 연결 가능 유,무를 테스트 할 때 쓰는 방법입니다. 예를들어 http://www.yahoo.co.kr에 브라우저로 접속했을 때 연결이 안된다면 Ping Test를 통해 연결이 가능한지를 테스트 한 다음, 연결이 가능하다면 브라우저의 설정이 잘못된 것이겠죠.이제부터 MTU값을 찾는 방법을 알아보도록 하겠습니다. 기본적인 방법은 이렇습니다.

2) Ping Test방법?
시작->실행->ping -f -l (1~1500)
그리고는 그 뒤에 자신이 사용하는 ADSL의 접속서버주소를 적어주는겁니다. 저같은 경우는 메가패스이기 때문에 http://www.kornet.net이 되겠죠. 그럼 구체적으로 MTU값을 찾는 예를 보여드리겠습니다.
ping -f -l 1500 www.kornet.net
ping -f -l 1400 www.kornet.net
ping -f -l 1300 www.kornet.net

이런식으로 수치를 줄여나가다가 ....packet needs to be fragmented but DF set 이란 에러메세지 대신에 Reply가 들어오면 조금씩 수치를 다시 높여주면서 체크를 하다가 최종적으로 Reply가 들어오는 가장큰 값을 찾으실수 있을겁니다. 그 값에다가 28을 더하시면 여러분들의 최적의 MTU값이 나오는 겁니다.

3) 본격적인 레지스트리를 수정
이제 위에서 구한 MTU값을 가지고 레지스트리를 수정해 보겠습니다
①윈도우 왼쪽 아래의 시작을 클릭
②실행을 선택
③regedit라고 입력하면은 레지스트리 편집창이 뜹니다
아래의 소제목들은 이 레지스트리 에디트 화면에서 레지스트리 폴더의 경로이구요(그곳으로 가셔야 세부 항목을 수정할수 있겠죠? ^^), 그 아래의 목록은 그 폴더경로에서 수정할수 있는 항목들입니다.

※ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\
   NetTrans\0000 ~ 0010(레지스트리 경로 찾아가기)
- MaxMTU (자신의 Ping값 + 28)
위에서 찾으신 MTU값을 여기에 넣으시면 됩니다. MaxMTU 항목을 더블클릭 하시구요, 수치란에 값을 넣어주시면됩니다. 만약 MaxMTU라는 항목이 없으면은 아래 그림과 같은 방법으로 추가해주시면 됩니다. 이하 수치 입력법은 같습니다. 위의 경로에서는 사용자에 따라 0000~0010까지 다 있는 경우가 있구요, 몇 개만 있는 경우가 있는데요, 자기에게 있는 것에만 넣어주시면 됩니다.


※ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD
   \MSTCP(레지스트리 경로 찾아가기)
- DefaultMSS
DefaultMSS는 패킷 또는 프레임에서 데이터의 최대 크기를 나타내는 값으로 MaxMTU 값에서 Header의 크기인 40을 뺀 값이 MSS(Maximum Sagment Size)가 됩니다. MSS = MaxMTU - 40

- DefaultRcvWindow
DefaultRcvWindow값은 0에서 2 ^ 30(2의 30승)까지 선택이 가능합니다. 이러한 DefaultRcvWindow은 핑값에 크게 좌우하며 잘못 대입시 핑손실의 발생이 되므로 여러번 수정해서 자신에게 맞는 값을 선택해야 합니다. Win9x의 경우는 최대값이 대체로 65535를 넘지 않는 것이 이상적이나 WinME에서는 최대값이 372564정도를 넘지않도록 하면 됩니다. 대개 30000 ~ 373000 사이인 MSS의 배수를 구하여 여러번 테스트한 후에 최적값을 선택하시기 바랍니다.

- DefaultTTL
DefaultTTL은 한 개의 패킷이 인터넷 전송과정 중 얼마동안 네트워크에 살아 있을 것인가를 결정하는 값입니다. 속도와는 상관이 없지만 값이 너무 클 경우 패킷이 손실이 되어 재전송을 해야할 경우 기다리는 시간이 길어지고, 반대로 값이 작을 경우 목적지까지 도착하기도 전에 소멸되는 결과를 가져올 수 있습니다 이 값은 가능한 값(64 or 128) 중에서 하나를 선택해 Ping 테스트에서 얻은 근사치를 적으면 됩니다.(Ping Test시 접속에 성공하면 TTL값이 오른쪽에 나오게 됩니다.) 다만 이러한 TTL은 속도와는 무관합니다. 이 값을 잘 설정하면 온라인 게임같은 데서 랙현상을 방지할 수 있습니다. 물론 자기 때문에 생기는 랙을 말하는 겁니다. 즉 인터넷의 안정성과 관련이 있다고 보시면 될겁니다.

- Tcp1323Opts=3
Tcp1323Opts는 DefaultRcvWindow 를 지원하기 위해서 필요한 값으로 이 parameter가 없으면 DefaultRcvWindow가 64k미만으로 제한되므로 반드시 이 값을 넣어야합니다.

※HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD
  \MSTCP\Parameters (레지스트리 경로 찾아가기)
- MaxDupAcks=3
MaxDupAck는 전송된 TCP/IP 패킷이 복제된 승인을 얼마나 많이 기억하는가를 정하는 Parameter로 최적값을 3으로 설정합니다.

- SackOpts=1
SackOpts는 SACK(Selective Acknowledgement)를 지원할 것인가를 결정하는 값으로 값이 1 인 경우 전송 받은 것 중 IP 패킷 손실이 생긴 것을 다시 전송 받지 않고 복구하므로 최적값은 1입니다.

이상 메가패스 ADSL의 속도향상을 위한 레지스트리 수정법을 배워봤습니다. 늘 짜증나지 않는 인터넷 하시기 바랍니다.^^

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)

'프로그래밍Tips' 카테고리의 다른 글

informix tuning study 03.10.31  (0) 2003.10.31
Installing Oracle9i Database on Red Hat Linux 9  (0) 2003.10.17
리눅스에 Oracle 9i 설치하기  (0) 2003.09.09
Installing Oracle9i Database on Red Hat Linux 9
By Abhijeet Kulkarni

Database Version: Oracle9i R2 (9.2.0.1.0)

1. Creating users and groups:
-------------------------
Become root and execute the following commands

$ su -

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

2. Creating directories.
--------------------------
We will install everything under /opt/ora9:

# mkdir -p /opt/ora9/product/9.2
# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chown -R oracle.dba /opt/ora9

3. Preinstallation (system configuration):
---------------------------

3.1 Install these compatibility libraries:

compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm

You will find these packages on the installation CD s.
RedHat RPMS directory of CD1 first file
and RPMS directory CD2 remaining 3 files


3.2 Set kernel params to be correct at startup:

Append these lines to /etc/sysctl.conf
You might want to change these values if you have more RAM:

kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Append these lines into /etc/security/limits.conf

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

REBOOT the system so the kernel changes can take effect

4. Preinstallation (oracle environment):
----------------------------
Login as oracle user:

su - oracle

Put the following lines in ~/.bashrc:

#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
export NLS_LANG='AMERICAN_AMERICA,KO16KSC5601'


If you want other national settings (these are croatian), consult the supported settings here, and change the NLS_LANG variable accordingly.

5. Installation:
------------------------

Login as root and allow user oracle to write to X display:

su -
xhost +

Login to oracle user:

su - oracle

Start the installation. Do not switch to your CD-ROM mount directory because you will not be able to unmount the 1st Cd to insert others when asked.

/mnt/cdrom/install/linux/runInstaller

During the installation, you will be prompted to insert other disks. Open up a new console, unmount the current disk with umount /dev/cdrom (as root), replace the disk. If Redhat9 does not mount it automatically, mount it yourself with mount /dev/cdrom

Your installation will produce two errors.

* First, you will see an error dialog informing about problems with ins_oemagent.mk. Choose ignore on this one, we will fix it in postinstallation.
* Second dialog will inform you about an "Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk".
When that happens, open up a new console and login as oracle user. Execute the following commands:

$ cd $ORACLE_HOME/install
$ tail make.log

You will see a line such as this:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

Copy this line, add -ldl at the end and run it in $ORACLE_HOME/bin

$ cd $ORACLE_HOME/bin
$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

Now hit the ignore button on the dialog and the installation will continue.

At the end, Oracle installation will probably inform you that agents failed to start. Choose ignore on this one, we will fix it later.

6. Postinstall
---------------------------
Open up a console and login as oracle user. Execute these lines:

$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_client.mk install

Then edit the $ORACLE_HOME/ctx/lib/ins_ctx.mk file so that lines 13-14 change from:

ctxhx: $(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)

to

ctxhx: $(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

Then do a

$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

Now you should be able to start your agents with

$ /opt/ora9/product/9.2/bin/agentctl start

7. Starting the database
------------------------------
If your installer hangs after the last setp in section 5 don't worry. Wait for some time just to see if it responds, otherwise kill it.
Add the following lines in a shell script such as setvar.sh
#oracle 9i
export ORACLE_BASE=/home1/orahome
export ORACLE_HOME=/home1/orahome/ora92
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

Save this file and at a command prompt run
$source setvar.sh

Now go to $ORACLE_HOME/bin
Edit the dbca script with any editor
$kwrite dbca

Locate the JRE_HOME environment variable. This points to the JDK 1.8 that is part of installation CD. Change this and point it to JDK1.3 or 1.4 of your linux installation go to the end of file where the this is used invoke Java programs. Remove the bin directory from the path and rename jre executable to java. It's just like calling the java program with our on JDK.
Start
$./dbca

8. Starting the database instance
Open a sqlplus session and log in as sys/passwd as sysdba
sql>create spfile from pfile='full path of the <init>.ora file created by the dbca utility ';
Eg /home1/orahome/admin/dl226b/pfile/initdl226b.ora

sql>shutdown immediate;
sql>startup;


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
Oracle 9i Install


1. 일단 root권한으로 해야 하는 작업

dba 그룹을 생성한다
# groupadd -g 5000 dba

oracle 유저 생성
# useradd oracle -g dba -s /bin/bash

oracle 유저 패스워드 지정
# passwd oracle



2. 오라클 9i를 때려받는다
http://otn.oracle.com 에서 oracle9i Database를 받는다
총 3장의 Disk로 구성 되어있다
설치도중에 모두 요구되므로 모두 받기를 바란다
이때 받을 때 oracle 계정으로 로긴하여 받기 바란다(권한 문제가 발생할 수 있으므로)

lnx_920_disk1.cpio.gz
lnx_920_disk2.cpio.gz
lnx_920_disk3.cpio.gz

이렇게 3개의 파일을 받았을 것이다

다음과 같은 명령으로 일단 cpio 파일로 압축을 해제시킨다
# gunzip lnx_920_disk1.cpio.gz
# gunzip lnx_920_disk2.cpio.gz
# gunzip lnx_920_disk3.cpio.gz

cpio 파일로 변화 되어있을 것이다
이를 다시 다음과 같은 명령으로 압축을 해제한다
# cpio -idmv <lnx_920_disk1.cpio
# cpio -idmv <lnx_920_disk2.cpio
# cpio -idmv <lnx_920_disk3.cpio

아래와 같은 디렉토리가 생성되어 있을 것이다
Disk1
Disk2
Disk3


3. 이젠 환경변수를 설정해 보자
oracle 계정으로 로긴한후 작업해야 한다

/home/oracle/.bash_profile 파일에 추가한다
# vi /home/oracle/.bash_profile

## Environment variables for Oracle
export ORACLE_HOME=/home/oracle/
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_SID=RAC1

##CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

:wq


4. 이젠 오라클9i를 인스톨 해보자
오라클9i설치 파일이 있는 디렉토리에서 runInstaller 파일을 실행시켜서 인스톨을 시작한다
# ./runInstaller

- Inventory Location 화면이 나온다
시스템에 오라클을 처음 인스톨할 때 물어보는 화면으로 인스톨 파일에 대한 기본 디렉토리에 대한 위치를 물어본다.
위치를 지정하고 (OK)를 선택하여 다음으로 진행한다

- Unix Group Name 화면이 나온다
시스템에 오라클 소프트웨어를 수정하기 위한 권한 을 얻기 위한 Unix Group Name을 물어보는 화면이다.
dba를 입력한 후 Next를 선택하여 다음으로 진행한다

- OrainstRoot.sh 화면이 나온다
다른 윈도우창에서 root계정으로
# /tmp/orainstRoot.sh 를 수행하고 Continue를 선택한다

- File Location 화면
설치할 제품이 들어 있는 위치를 지정하고 제품이 설치될 ORACLE_HOME 디렉토리를 지정한 다음 Next 버튼을 선택하여
다음으로 진행한다.
참고로 ORACLE_BASE라는 환경변수를 지정한 경우에는 Path: 부분에 ORACLE_BASE의 환경변수 값이 자동으로 표시되므로 이 변수 값 다음에 해당 경로(예:/home/ora815)를 추가하면 된다.

표시된 값을 확인하고 (OK)를 선택한 후 다음으로 진행한다

- Available Products 선택 화면
데이터베이스를 구성하기 위해서는 Oracle9i 9.0.1.0.0을 선택한다. Client/Server환경구축을 원하는 경우에는 데이터베이스 구성이 끝난 다음 Client로 사용할 시스템에서 OUI를 사용하여 Oracle9i Client를 설치한다.
Product Language를 선택한다

- Product Language 선택 화면
사용할 언어를 선택한다. 좌측의 리스트 안에서 Korean을 선택한 후 >를 선택한 후 OK를 한다.
Next 를 선택한다

- Installation Types 선택 화면
Typical을 선택하면 각종 소프트웨어 및 데이터베이스를 사전에 구성된 형태로 설치해 준다. Minimal은 최소한의 데이터베이스 기능만을 사용하고자 할 때 선택하면 된다. 사용자가 원하는 형태로 여러 가지 환경의 세부적인 구성을 하자면 Custom을 선택한다. 여기에서는 ORACLE 9i RAC를 설치하기 위해서는 반드시 Custom을 선택하여야 한다

- Available Product Components 화면
설치를 원하는 제품에 체트를 한다. 제품에 대한 설명은 마우스포인터를 가까이 가져가면 위의 노란 박스에서처럼 표시가 된다. 오라클 9i RAC를 설치 하기 위해서 Oracle 9i Real Application Clusters 9.0.1.0.0을 선택한다.
Enterprise Oracle Management Server는 선택하지 않는다. 설치 중 repository에 생성에 관하여 묻는데 Database를 나중에 생성하기 때문에 생성할 수 없다

- Component Locations 화면
이 화면에 표시된 구성 요소들은 원하는 위치에 설치 할 수 있다. 특별한 경우가 아니면 그냥 Next를 눌러 진행하도록 한다

- Shared Configuration File Name 입력 화면
Oracle 9i RAC를 위해 미리 정의되어 있는 quorum으로 정의되어 있는 raw device명을 입력한 후 Next를 선택한다

- Cluster Nodes Selection
Oracle 9i RAC가 설치될 node를 입력하면 된다. 그러면 Primary node에 software 설치한 후 다른 node에 software를 설치한다. 다른 node명을 입력한 후 Next를 선택한다.
물론 사전에 다른 node에 rcp나 rsh의 명령어가 정상적으로 수행되어야 한다

-Privileged Operating System Groups 화면
데이터베이스를 생성하기 위해서 OS상의 인증을 얻기 위한 GROUP 명을 입력하는 화면이다. DBA를 입력한 후 NEXT를 선택한다

- JDK Home Directory 화면
시스템에 설치된 JDK의 위치를 입력한다. 입력한 후 Next를 선택한다

- Summary 화면
설치할 제품과 각종 관련 정보가 일목요연하게 표시된다. 잘못된 것이 있으면 이전을 눌러 수정한 다음 진행한다

- Install 화면
인스톨 작업이 진행된다

- Cdrom change 화면
인스톨 과정에서 다른 CD를 요구하는 데 이를 위해서는 (/mnt에 mount 되었다고 가정)
#umount /mnt or eject (Auto mount인 경우)
#mount /dev/cdrom /mnt
이 문서를 보고 처음부터 따라한 사람이라면 Disk2 디렉토리를 지정하면 된다
위의 작업을 다른 창에서 수행한 후 계속 OK를 선택하면 된다

- Setup Privileges 화면
다른 창에서 root.sh script를 root 권한을 가지고 수행시켜 준다. 만약 디렉토리가 없다는 메시지를 보이면 /var/opt/oracle direcory를 생성한 후 chown 를 이용하여 owner와 group을 변경한후 root.sh script를 수행한다. 그리고 OK를 선택한다.
# mkdir /var/opt/oracle
# chown oracle:dba /var/opt/oracle
# cd $ORACLE_HOME
#./root.sh

- End of Installation
Oracle Software install이 완료 되었습니다. 다른 소프트웨어를 Install 하기 위해서는 Next Install을 선택하고 더 이상의 설치가 없을 때에는 Exit를 선택하고 종료한다

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
케이원 : 수강신청관련 테이블에 대량의 데이타 로딩 후
update statistics를 수행전과 수행후의 responding time을 체크해 본다.

. 대량의 데이타가 로드된 테이블
        - eboard, cmember, member,

UPDATE STATISTICS
        [
                {
                HIGH [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                        [RESOLUTION percentage]
                |
                MEDIUM [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                  [RESOLUTION percentage [confidence-percentage]]
                |
                [LOW] [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                        [DROP DISTRIBUTIONS]
                }
        |
        FOR PROCEDURE [procedure-name]
        ]


set explain on;
select org_sect, year,term, lec_cd, lec_note_form ,title
   from eboard
        where year='2003' and lec_cd='1036422000621';

update statistics high for table eboard;


set explain on;
select user_id, org_sect,year from cmember
   where user_id='20317038';

update statistics high for table cmember;

set explain on;
select --+ ordered index (cmember , xpkcmember) c.user_id, c.org_sect,c.year
   from cmember c , eboard d
   where user_id='20317038' and c.org_sect=d.org_sect;
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)

+ Recent posts