생계/Sybase2017. 12. 14. 13:31

오라클 12c 부터 CDB, PDB 라는 새로운 개념이 도입되었다. 

CDB 를 사용하는 DB 에서는 기존처럼 유저를 생성하면 에러가 난다. 

DB에 접속하는 것도 기존과 조금 다르다. 

CDB 에 접속하는 유저들을 common user 라고 부르는데, 

CDB 에 접속하려면 c## 이라는 접두어를 붙여야 한다.

(오라클이 제공하는 common user 는 예외. ex: sys,system)


● Common user 생성


 [oracle@oracdb response]$ sqlplus system/oracle


SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 13 15:15:43 2017


Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Last Successful login time: Wed Dec 13 2017 15:12:59 +09:00


Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


SQL> create user c##test identified by test container=all;


User created.


SQL> grant create session to c##test;


Grant succeeded.


SQL> exit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

[oracle@oracdb response]$ sqlplus test/test            -- 이전 버전방식의 로긴 시도


SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 13 15:16:35 2017


Copyright (c) 1982, 2014, Oracle.  All rights reserved.


ERROR:

ORA-01017: invalid username/password; logon denied


 

[oracle@oracdb response]$ 

[oracle@oracdb response]$ sqlplus c##test/test        -- c## 접두어 붙여서 접속  

 

SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 13 15:17:02 2017


Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Last Successful login time: Wed Dec 13 2017 15:16:47 +09:00


Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


SQL> show con_name;


CON_NAME

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

CDB$ROOT



● PDB 에 접속권한 주기


[oracle@oracdb ~]$ sqlplus system/oracle


SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 14 13:51:46 2017


Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Last Successful login time: Wed Dec 13 2017 17:20:59 +09:00


Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


SQL> 

SQL> alter session set container=pdb01;


Session altered.


SQL> grant connect to c##test container=current;


Grant succeeded.


SQL> exit

Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

[oracle@oracdb ~]$ sqlplus c##test/test


SQL*Plus: Release 12.1.0.2.0 Production on Thu Dec 14 13:59:31 2017


Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Last Successful login time: Thu Dec 14 2017 13:49:30 +09:00


Connected to:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


SQL> alter session set container=pdb01;      


Session altered.


SQL> show con_name 


CON_NAME

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

PDB01

SQL> 




끗. 공감 구걸


반응형

'생계 > Sybase' 카테고리의 다른 글

BCP 로 ASE 에서 IQ 로 데이터 이관  (0) 2017.09.14
Sybase Storage정보  (0) 2017.09.11
Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Posted by 돌고래트레이너
생계/Sybase2017. 9. 14. 15:31

* Sybase ASE 의 데이터를 IQ 로 이관하기


1) ASE data를 bcp out 
 
bcptest 을 bcp out 으로 덤프 떨군다.


set rowcount 10

select * into bcptest
from ....
 
sybase@/sybase/DBA/lkj/work> bcp dba..bcptest out bcptest.txt -Usa -Ppassword -t'||' -r'\n' -c


2) .txt 파일을 IQ 로 ftp 전송


3) IQ에서 load 하는 쉘 작성


dipiq1:/sybase_iq/iq154/DBA

vi load.sql
----------------------------------
load table tb_test(col1, col2,....)
from '/sybase/tmp/tb_test.bcp'
QUOTES OFF
ESCAPES OFF
FORMAT BCP
ROW DELIMITED BY '\n'
DELIMITED BY '||'
;
----------------------------------

3) 실행

dbisql -c dsn=DBA -q load.sql > load.out





 

반응형

'생계 > Sybase' 카테고리의 다른 글

오라클 12c CDB common 유저 생성  (0) 2017.12.14
Sybase Storage정보  (0) 2017.09.11
Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Posted by 돌고래트레이너
생계/Sybase2017. 9. 11. 01:58

-- 1. DB 별

SELECT  "HOST명"=@@servername,     
    "디바이스명" = substring(d.name, 1, 20),     
    "물리적디바이스명"=d.phyname,      
    "DB명" = db_name(u.dbid),     
    "할당(MB)" = str(round(u.size /(512.0/(@@maxpagesize/@@pagesize)),2),12,1),     
    "가용(MB)"=  str(round(curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs)/ (512.0/(@@maxpagesize/@@pagesize)),2),12,1) ,     
    "사용율(%)"= str(round(  ((u.size-curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs))*100.0/u.size),2),12,1) ,     
    "SegMap설명" = case segmap when 4 then "LOG"     
                   else "DATA" end,   
    convert(varchar(8),u.crdate,112) as crdate   
FROM   master.dbo.sysdevices d,      
     master.dbo.sysusages u      
WHERE  u.vdevno = d.vdevno

 

-- 2. device 별

SELECT  "HOST명"=@@servername,     
    "디바이스명" = substring(d.name, 1, 20),     
    "물리적디바이스명"=d.phyname,      
    "DB명" = db_name(u.dbid),     
    "할당(MB)" = str(round(u.size /(512.0/(@@maxpagesize/@@pagesize)),2),12,1),     
    "가용(MB)"=  str(round(curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs)/ (512.0/(@@maxpagesize/@@pagesize)),2),12,1) ,     
    "사용율(%)"= str(round(  ((u.size-curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs))*100.0/u.size),2),12,1) ,     
    "SegMap설명" = case segmap when 4 then "LOG"     
                   else "DATA" end,   
    convert(varchar(8),u.crdate,112) as crdate   
FROM   master.dbo.sysdevices d,      
     master.dbo.sysusages u      
WHERE   u.vdevno = d.vdevno

 

 -- 3. 테이블 사이즈

  select convert(varchar(30),o.name) as table_name,
    row_count(db_id(), o.id) as row_count,
    data_pages(db_id(), o.id) as pages,
    (data_pages(db_id(), o.id)*(@@maxpagesize/1024))/1024 as MB
 from sysobjects o
where type='U'
and name='테이블명'
order by table_name

반응형

'생계 > Sybase' 카테고리의 다른 글

오라클 12c CDB common 유저 생성  (0) 2017.12.14
BCP 로 ASE 에서 IQ 로 데이터 이관  (0) 2017.09.14
Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Posted by 돌고래트레이너
생계/Sybase2017. 9. 9. 00:08

- Sybase 성능 분석 리포트 결과를 편집하는 쉘

 

isql 에서 sp_sysmon 을 실행하면 많은 항목들에 대한 결과가 나오는데

이중에서 내가 필요한 항목은 달랑 3개 (Engine Utilization, Data Cache Management, Procedure Cache Management)

정기적으로 보고 하는 자료이기에 매번 수동 편집하지 않고 실행만 하면 자동 편집되는 쉘을 만들었습니다.

 

비슷한 요구사항의 작업 시에 참고하기실...

grep -n 으로 원하는 내용의 라인수 출력,

파일 한줄씩 읽어들여 배열에 저장,

sed -n 으로 원하는 부분만 편집 등을 사용했습니다. 

 

 

01_exec_sysmon.sh  : isql 에서 sp_sysmon 실행

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

DATE=`date +%Y%m%d%H%M`

echo $DATE

isql -Usa -w400 -P1111 << 'EOF' >> ./logs/sysmon.log.$DATE
sp_sysmon '00:05:00'
go
exit
EOF
----------------------------------------------------------

 

 

02_make_editsh.sh : 분석로그를 편집하는 쉘을 만들기 위한 전 단계 (sed 에 변수($) 처리가 잘 안되서

                              echo 를 redirect 해서 결과를 쉘로 만들기

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

echo '\n'
echo '\n'
echo '### beginning of the shell ###'
echo '\n'

filename=`ls -l ./logs/sysmon.log.* | grep "^-" | tail -1 | awk '{print $9 }'`

echo 'The name of the result file is :' $filename
echo '\n'
echo '\n'

grep -n "Engine Utilization" $filename | awk '{print $1}' > filename.tmp
grep -n "Data Cache Management" $filename | awk '{print $1}' >> filename.tmp
grep -n "Procedure Cache Management" $filename | awk '{print $1}' >> filename.tmp

#cat filename.tmp

sed -e s/:/'  '/g filename.tmp | awk '{print $1}' > filename2.tmp

#cat filename2.tmp

index=0
while read line ; do
    ary[$index]="$line"
    index=$(($index+1))
done < filename2.tmp

a=${ary[0]}
b=${ary[1]}
c=${ary[2]}

aa=`expr $a + 23`
bb=`expr $b + 13`
cc=`expr $c + 7`

echo 'sed -n '\'$a','$aa'p'\' $filename '> engine_busy.log' > edit_log.sh
echo 'sed -n '\'$b','$bb'p'\' $filename '> cache_hit.log'   >> edit_log.sh
echo 'sed -n '\'$c','$cc'p'\' $filename '> procedure_cache.log' >> edit_log.sh

echo '\n'
echo '#### before executing editing shell ####'
echo '\n'

sh ./edit_log.sh

echo '#### done executing the editing shell ####'
echo '\n'

 

03_print_result.sh  : 편집된 결과 출력

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

echo '  ######################################################################### '
echo '\n'
cat engine_busy.log
echo '\n'
echo '  ######################################################################### '
echo '\n'
cat cache_hit.log
echo '\n'
echo '  ######################################################################### '
echo '\n'
cat procedure_cache.log
echo '\n'

 

반응형

'생계 > Sybase' 카테고리의 다른 글

BCP 로 ASE 에서 IQ 로 데이터 이관  (0) 2017.09.14
Sybase Storage정보  (0) 2017.09.11
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Sybase User resource 제한  (0) 2017.09.08
Posted by 돌고래트레이너
생계/Sybase2017. 9. 9. 00:07

select t.HOST명, t.디바이스명, t.물리적디바이스명, t.DB명, t.할당, t.가용, t.사용율, t.SegMap설명, t.crdate
from
(
SELECT      
"HOST명"=@@servername,     
"디바이스명" = substring(d.name, 1, 20),     
"물리적디바이스명"=d.phyname,      
"DB명" = db_name(u.dbid),     
"할당" = round(u.size /(512.0/(@@maxpagesize/@@pagesize)),2),     
"가용"=  round(curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs)/ (512.0/(@@maxpagesize/@@pagesize)),2) ,     
"사용율"= round(  ((u.size-curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs))*100.0/u.size),2) ,     
"SegMap설명" = case segmap when 4 then "LOG"     
               else "DATA" end,   
convert(varchar(8),u.crdate,112) as crdate,1 col
FROM      
master.dbo.sysdevices d,      
master.dbo.sysusages u      
WHERE   u.vdevno = d.vdevno
and d.phyname not in ('/dev/rmt4','/dev/rst0')
and db_name(u.dbid) not in ('master','sybsystemdb','sybsystemprocs','tempdb','tempdb2')     
union all
SELECT      
"HOST명"=@@servername,     
"디바이스명" = substring(d.name, 1, 20),     
"물리적디바이스명"=d.phyname,      
"DB명" = db_name(u.dbid),     
"할당" = round(u.size /(512.0/(@@maxpagesize/@@pagesize)),2),     
"가용"=  round(curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs)/ (512.0/(@@maxpagesize/@@pagesize)),2) ,     
"사용율"= round(  ((u.size-curunreservedpgs(u.dbid,u.lstart,u.unreservedpgs))*100.0/u.size),2) ,     
"SegMap설명" = case segmap when 4 then "LOG"     
               else "DATA" end,   
convert(varchar(8),u.crdate,112) as crdate, 2 col   
FROM      
master.dbo.sysdevices d,      
master.dbo.sysusages u      
WHERE   u.vdevno = d.vdevno
and d.phyname not in ('/dev/rmt4','/dev/rst0')
and db_name(u.dbid) in ('master','sybsystemdb','sybsystemprocs','tempdb','tempdb2')     
) t
ORDER BY col, DB명

 

 

 

sybase 15.7 기준

반응형

'생계 > Sybase' 카테고리의 다른 글

Sybase Storage정보  (0) 2017.09.11
Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Sybase User resource 제한  (0) 2017.09.08
Sybase 테이블 관련  (0) 2017.09.08
Posted by 돌고래트레이너
생계/Sybase2017. 9. 9. 00:00
1) isql 접속

isql -Usa -w400     

 

2) lock session check

sp_lock

-- lock check

sp_who

-- session check

spid 확인

 

3) kill 세션

 

kill 'spid'

 

반응형

'생계 > Sybase' 카테고리의 다른 글

Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase User resource 제한  (0) 2017.09.08
Sybase 테이블 관련  (0) 2017.09.08
Sybase Role관련  (0) 2017.09.08
Posted by 돌고래트레이너
생계/Sybase2017. 9. 8. 23:57

# ASE

 

 

-- 건수제한

sp_modify_resource_limit '계정', NULL,'at all times',row_count,건수,2,4,1

 

-- 시간제한

sp_modify_resource_limit ‘계정’, NULL,'at all times',elapsed_time,시간,2,4,6

ex) sp_modify_resource_limit 'testuser', NULL,'at all times',row_count,200,2,4,1

확인 : sp_help_resource_limit 

 

#IQ

​sp_iqcheckoptions

set option 계정.QUERY_ROWS_RETURNED_LIMIT ='1000'

반응형

'생계 > Sybase' 카테고리의 다른 글

Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Sybase 테이블 관련  (0) 2017.09.08
Sybase Role관련  (0) 2017.09.08
Posted by 돌고래트레이너
생계/Sybase2017. 9. 8. 23:56

-- 컬럼 타입 변경
alter table TESTTB modify colA VARCHAR(1)

 

-- 컬럼 이름 변경 
sp_rename 'TESTTB.colA', 'colB'

 

=> colA 를 colB 로 변경

 

-- 컬럼 추가
ALTER TABLE sample.dbo.employee ADD new_col char(25) DEFAULT '22' NOT NULL

 

-- 특정 컬럼이름 찾기

 

select distinct object_name(id)
from syscolumns
where name = 'colA'
order by object_name(id)

 

 

 

* 테이블 생성

 

--drop table TESTTB

 

create table TESTTB (
colA CHAR(2) not null,
colB CHAR(4) not null,
colC CHAR(6) not null,
colD VARCHAR(20) not null
)
lock datarows
with dml_logging = full
on 'default'
go

 

Grant Insert on dbo.TESTTB to test_user_role Granted by dbo
go

 

반응형

'생계 > Sybase' 카테고리의 다른 글

Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Sybase User resource 제한  (0) 2017.09.08
Sybase Role관련  (0) 2017.09.08
Posted by 돌고래트레이너
생계/Sybase2017. 9. 8. 23:39

* 특정계정 정보

 

sp_displaylogin userA

 

 

 

* 계정별 가진 권한 확인

 

use master
go

 

select t1.name, t3.name
from syslogins t1, sysloginroles t2, syssrvroles t3
where t2.suid = t1.suid and
t3.srid = t2.srid
order by 1,2
go

 

--------- -------------- 
userA      sa_role

 

* 특정 role을 누가 가지고 있는지 확인

 

use master
go

 

select sr.name, sl.name
from syssrvroles sr, syslogins sl, sysloginroles slr
where sl.suid = slr.suid
and sr.srid = slr.srid
and sr.name like "sa_role"

 

 

------- ---------
sa_role sa
 

 

 

 

* Role 부여

 

Syntax

sp_role {"grant" | "revoke"}, rolename, loginame

 

ex) sp_role 'grant', test_user_role, userB

 

      또는 grant create table to test_user_role

 

 

 

* role에 부여된 권한 확인

 

sp_helprotect test_user_role

 

 

반응형

'생계 > Sybase' 카테고리의 다른 글

Sybase 성능분석 로그 편집 쉘  (0) 2017.09.09
Sybase DB사용량  (0) 2017.09.09
Sybase session kill  (0) 2017.09.09
Sybase User resource 제한  (0) 2017.09.08
Sybase 테이블 관련  (0) 2017.09.08
Posted by 돌고래트레이너