logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

SyBase 사용법 요약

by digipine posted Oct 28, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

SYBASE home directory는 /home/sybase로 가정하며, 이하 'HOME'이라 합니다.

1.User System Account등록
   1)User Account생성(System의 User등록방법에 따라)
      Login as root - System Booting후 Root와 Password 입력)
      Ex) #vi /etc/passwd/
      Format] username:password:UID:GID:comment:user home directory:shell type
      Example]sybase::100:100:SYBASE USER:/home/sybase:/bin/csh

   2)User Directory생성
      #cd /home
      #mkdir sybase
      #chown sybase sybase
      #exit

2.Sysytem Login
   Login as sybase - System Booting후 User name과 Password입력

3.Server를 Start시킴
   1)"HOME"에서 install directory로 변경(cd install)
      Format]startserver -f RUN_SERVERNAME
      ※ RUN_SYBASE인 경우, startserver만 해줌, ServerName는 LAN상 unique해야 함
      ※ showserver - server가 start되어 있는지 install directory에서 확인.

4.Server로 Login
   1)isql -Usa -P(default is null) - isql 사용
      1>SQL Commend 입력
      2>qo
      3>quit  /* isql exit */

5.Shutdown the Server
   1)At isql - recommended
      1>shutdown (with nowait)
      2>go
       /* with nowait option 은 진행중인 process의 정상종료없이 Server가 Down됨 */
   2)At OS prompt
      %kill -9 PID /* PID : dataserver process ID */

6.기존 DataBase(install후 생성)
   1)System Database
      (1)master - db를 관리하는 db(db정보, device정보, login, account등)
         /* master db에 object를 생성하는 것은 피해야 한다. - master db full */
      (2)model - User db를 생성하는 prototype(db를 생성할 때 model db 복제)
      (3)tempdb - join, sorting, temprary table($table_name)등의 작업영역
      (4)sybsystemrocs - Sybase 제공 System Procedures(SP_who, SP_hw\wlpdb 등)
      (5)sybsecurity - 시스템 전반적인 사용을 감시하는 db(user, db, table, SQL등)
      (6)sybsyntec - 명령어를 저장하고 있는 db(DML,DDL,DCL 및 기타 명령어)
   2)The pubs2 database 생성
      %isql -Usa -P < $SYBASE/scripts/installpubs2
      /* installpubs2는 pubs2 db를 생성하기 위한 script이며,
         pubs2가 있을 경우에는 생성하지 말 것.(isql상에서 sp_helpdb로 확인)
   3)The pubs2 database query set
      %isql -Usa -P (sa로 login) - 이하 생략
      1>select db_name() /* 사용중인 db 확인 */
      2>go
      1>user pubs2
      2>go
      1>select * from titles
      2>go
      1>vi
      select * from titles
      ~
      :wq query /* OS file로 query저장 */
      1>:r query /* OS file로부터 isql로 query를 read */
      2>go /* 또는 vi editor를 call하여 edit후 save하고 수행 */
      4)Query를 OS File로 작성하여 결과를 OS File로 받아보기 위한 방법
      %vi
      user pubs2
      go
      select * from titles
      go
      :wq query
      %isql -Usa -P <query> query.out /* vi query.out로 결과 확인 */

7.Devicee등록 및 Drop
이는 SQL Server가 Device를 인식하고 그 Device에 db를 생성할 수 있도록 Device initialize를 하여 Server에 Device를 등록해 주는 과정임.
   1) Device위치 선정
      %su root(root account로변환 및 passward입력)
      # cd/user(/user directory에 deice 를 생성하고자 할 경우)
      #mkdir test-dev
      # chwon sybase test-dv(ownership변경 또는 sybase writable)
        /*sybase로login하여”HOME”밑에 생성시 ownership변경 필요없음*/
      # exit
   2) isql로 server에 login
      1> disk init
      2> name=”data_dev”,(log_dev”,)
      3> physname=”usr/test_dev/data_dev,””log_dev”,)
      4> vdevno=1,(2,)
         /* default : 1-9, 최대 255, 0은 master device로reserved */
         /* device등록을 실패할 때에는 다른 vdevno를 부여하거나, 그 번호를 재사용시는
           server restaret */
      5> size = 5120(1024)
         /* size는 page단위이며, 단위는 10MB 의 device임 */
         /* size =512 *MB단위 size */
      6>    go
       /* ()안은 log device에 대한 disk init 이며, 별도로 disk init 하여 등록 */
       /* master device및 device는 raw partition으로도 지정가능 */
      1>  sp_helpdevice-disk init 후 device등록확인
      2>  go
      1> sp_dropdevice data_dev(log_dev)
      2> go
      1>  quit
      /*device에 database가 존재할 경우 drop되지 않음- 먼저 db drop */
      % rm data_dev(log_dev)
          /*server내에서 drop한 다음 os에 해당 file을 지움 */

8. Database생성 및 Drop
Disk init를 하여 server에 등록된 Device 에 새로운 Database 생성
   1> create database mydb on data_dev =5 log on log _dev
   2>  go
   /*위 예제는 data_dev에 data를, og dev 에 log 를 담는 db 생성하는 예제
   device등록시에는 page단위이지만, db생성시에는 MB단위임
   남아있는 device 여분은 mydb 의 확장 및 타 db의 device로 사용
   log size 는 update빈도에 따라 다르지만 log device를 별도로 지정하지 않으면
   db생성 device에 log devie생성
   database 생성시 deice 를 생략하면 master device(default device)에 생성

   1>  sp_helpdb /*mydb생성 확인 및 database list */
   2>  go
   1>  drop data  mydb  /*  database drop */
   2>  go

9. database 에 대한 ownership변경
   1> use mydb  /* database open , 이하 생략 */
   2> go
   1> sp_changedbowner  dully
   2> go
     /* 해당 db  user 이면 ownership이 변경되지 않고,  sp_dropuser 후 ownership 변경*/

10. Database 확장
Database의 용량을 확장할 경우에는 기존 등록된 device 및 disk init에 의해 새로 등록된 device에 database를 확장한다.
   1> alter  database  mydb  on  data _dev = 3
   2> go

11. Object-Nameing  Convention
   1)  Objcet  Name
      (1) Table, default, Procedure등 모두 해당됨
      (2) 대 소문을 구분하여, 최대 30characters
      (3) Object name identify ? db, owber, table (puds2. Friend)-dbo일 경우 생략가능
   2) Transact ? SQL
      (1) 대 소문자 구분 없음(select  or  SELECT)
      (2) 축약형가능(procedure:proc, execute: exec, transaction: tran 등)
   3) 타 DB와  Join
      1>  select  a.name, b.amount from friend a, pubs ... charg b
      2> where a.id = b.id
      3> go
   4) Object 종류 - Table, View, Index, Default, Rule, Procedure, Trigger등이 있음  

 

 

* START UP

 

Oracle

Sybase

%su - oracle
password:
%svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>exit
%lsnrctl start

%su - sybase
password:
%cd install
%startserver -f RUN_SYBASE
%startserver -f RUN_SYS_BAKUP
※RUN_SYBASE, RUN_SYB_BACKUP는 Server name이므로 확인


 

 

* SHUTDOWN


 

 

Oracle

Sybase

%su - oracle
password:
%svrmgrl
SVRMGR>connect internal
SVRMGR>shutdown
SVRMGR>exit
%lsnrctl stop

%su - sybase
password:
%cd install
%isql -Usa -P
1>shutdown SYB_BACKUP
2>go
1>shutdown

 


 

* CREATE DATABASE

 

 

Oracle

Sybase

%sqlplus system/manager
SQL>create tablespace mpts/datafile '/data1/mpdb/mp.dbf' size 100
default storage(
initial 64K
next 64K
pctincrease 0
minextents 2
);
Tablespace create.

SQL>create tablespace mptmpts/datafiile '/data1/mpdb/mp.dbf' size 20M
deault storage(
initial 64K
next 64K
pctincrease 0
minextents 2
);
Tablespace create.

SQL>create user medpack
2 indetified by medpack000
3 default tablesapce mpts
4 temporary tablespace mptmpts
5 quota unlimited on mpts
6 quota unlimited on mptmpts;
User create.

SQL>grant connect, resource to medpack;
Grant Succeede.

※ 위 예제는 mpts, mptmpts라는 tablespace를 만들고 medpack이라는 User를 생성한다.
  mpts와 mptmpts의 비율은 8:2비율이 적당하고 User생성시 default tablespace와 temporary tablespace를 지정해 준다.
그런후에 connect와 resource라는 rule을 User에게 허용해 준다.

전체적인 순서는
1)2개의 Tablespace생성
2)User생성
3)User에게 rule허용
과 같다.












 

%isql -Usa -P
1>disk init
2>name = 'mp_dev',
3>physname = "/data1/mpdv/mp.dev",
4>vdevno = 2,
5>size = 51200(page단위)
6>go

1>disk init
2>name = "mplog_dev",
3>physname = "/data1/mpdb/mp.log.dev",
4>vdevno = 3,
5>size = 10240
6>go

※100MB를 할당하려면 100 * 512 = 51200의 값을 사용한다.

1>create database mepackdb
2>on mp_dev = 100(Mega단위)
3>log on mplog_dev = 20
4>go

CREATE DATABASE: allocating 51200 pages...
CREATE DATABASE: allocating10240 pages...

1>sp_addlogin medpack, medpack000 medpackdb
2>go

Password correctly set.
Account unlocked.
New login created.
(return status = 0)

1>use medpackdb
2>go

1>sp_changedbowner medpack
2>go

Database owner changed.
(return status = 0)

※ 위의 예제는 mp_dev, mplog_dev라는 2개의 device를 만들고 medpackdb를 만든다. 그런후에 medpack이라는 User를 만들어 medpackdb를 기본db로 설정한다. 그리고 나서 medpack의 소유권을 medpack으로 바꾸어 준다.

전체적인 순서는
1)2개의 device 생성
2)db생성
3)User생성
4)db의 소유권 변경
과 같다.

 


 

* DROP DATABASE

 

Oracle

Sybase

%sqlplus system/manager
SQL>drop user medpack cascade;

User dropped

SQL>drop tabelspace mpts
2 including contents
3 cascade contraints;

Tablespace dropped

SQL>exit


※그런후에 실제 data file를 삭제한다.

※위 예제는 medpack이라는 User와 그 User에게 할당된 tablespace를 삭제한다.
 전체적인 순서는
 1)먼저 User를 삭제(Drop)
 2)2개의 tablespace를 삭제(Drop)
 3)File System에 있는 File들을 삭제
와 같다.
 
※Oracle에서는 사실상 database는 하나만 존재한다. 각각의 User들은 tablespace를 할당받아 실제의 data를 저장한다.
따라서, User Space의 증가는 tablespace를 늘려주면 가능하다.
(Ref, alter tablesapce....)

%isql -Usa -P
1>drop database medpackdb
2>go

1>sp_dropdevice mp_dev
2>go

Device dropped.
(return status = 0)

※위 예제는 medpackdb이라는 이름의 database를 삭제하고 database가 사용하고 있던 device를 삭제한다. 그리고 나서 User를 삭제한다.
 전체적인 순서는
 1)database 삭제
 2)2개의 device삭제
 3)User삭제
 4)File System에 있는 File들을 삭제
와 같다

※Sybase에서는 device에서 일정한 양의 space를 할당받아 database를 만든다.
device를 만들 때 번호를 적당하게 지정해 주어야 하는데, sp_helpdevice라는 system procedure를 이용한다.




 

 

 

 
TAG •

List of Articles
No. Subject Author Date Views
22 [PostgreSQL] 간단 사용법 digipine 2017.11.02 5372
21 Filter를 이용한 웹 프로그래밍 Filter 란 무엇인가? file siseong@naver.com 2017.10.31 4739
20 MySQL root 비밀번호 변경하기 (MySQL 5.7버전 이상) lizard2019 2019.06.10 3317
19 Eclipse, JSP, Beans 실습하기 digipine 2017.10.29 3143
18 Apache Tomcat 설치후 관리자 모드 실행 되지 않을때 문제 해결방법 digipine 2017.11.01 3070
17 MS Access MDB를 위한 DB Connection String digipine 2017.10.29 1724
16 [Oracle] SQL*Plus 개요,각종 명령어들 digipine 2017.10.28 1346
15 Choosing a free database - DB2 digipine 2017.10.29 1255
» SyBase 사용법 요약 digipine 2017.10.28 1107
13 SyBase 와 JSP 연동 digipine 2017.10.28 985
12 Ubuntu mySql 완전 삭제하기 lizard2019 2021.04.15 943
11 MySQL 시작할때 No directory, logging in with HOME=/ 에러 해결 방법, 홈 디렉토리 변경 digipine 2021.05.06 829
10 SQLite 활용 팁 3 - 다른 DB 테이블에 트리거 사용하기 digipine 2017.11.01 815
9 HTTP Multi Part Request Sample Format digipine 2017.11.01 809
8 MySQL Data Backup - Database Dump 방법 및 복구 방법 엉뚱도마뱀 2017.11.18 765
7 Ubuntu에서 sqlite3 빌드 방법 digipine 2017.11.01 758
6 MySQL 5.7.x 버전 root 및 유저 암호(Password) 변경 digipine 2017.11.02 719
5 Docker를 통한 MySQL 설치하기 lizard2019 2021.04.15 663
4 서블릿(Servlet) 이란 무엇인가? siseong@naver.com 2017.11.01 599
3 SQLite 활용 팁 2 - 트리거 실전 사용하기 digipine 2017.11.01 545
Board Pagination Prev 1 2 Next
/ 2