728x90

DB2® 데이터베이스 시스템에서는 인스턴스 및 데이터베이스 디렉토리가 최소 수준의 사용 권한을 가지고 있어야 합니다.

주: 인스턴스 및 데이터베이스 디렉토리가 DB2 데이터베이스 관리 프로그램에 의해 작성되면, 권한이 정확하고 변경되지 않아야 합니다.
UNIX 및 Linux 머신에 있는 인스턴스 디렉토리 및 NODE000x/sqldbdir 디렉토리의 최소 권한은 u=rwx 및 go=rx여야 합니다. 여기에 사용된 문자가 의미하는 바는 다음 표와 같습니다.
문자의미
u사용자(소유자)
g그룹
o기타 사용자
r읽기
w쓰기
x실행
예를 들어, /home에 있는 db2inst1 인스턴스에 대한 사용 권한은 다음과 같습니다.
drwxr-xr-x  36 db2inst1  db2grp1         4096 Jun 15 11:13 db2inst1  
데이터베이스가 있는 디렉토리의 경우 NODE000x를 포함한 각 디렉토리 레벨에는 다음과 같은 사용 권한이 필요합니다.
drwxrwxr-x  11 db2inst1  db2grp1         4096 Jun 14 15:53 NODE0000/

예를 들어, 데이터베이스가 /db2/data/db2inst1/db2inst1/NODE0000에 있는 경우 /db2/db2/data/db2/data/db2inst1,/db2/data/db2inst1/db2inst1 및 /db2/data/db2inst1/db2inst1/NODE0000 디렉토리에는 drwxrwxr-x가 필요합니다.

NODE000x 내의 sqldbdir 디렉토리에는 다음과 같이 drwxrwxr-x 사용 권한이 필요합니다.
drwx------   5 db2inst1  db2grp1         256 Jun 14 14:17 SAMPLE/ 
drwxr-x---   7 db2inst1  db2grp1        4096 Jun 14 13:26 SQL00001/ 
drwxrwxr-x   2 db2inst1  db2grp1         256 Jun 14 13:02 sqldbdir/
경고:
파일 보안을 유지하려면 DB2 데이터베이스 관리 프로그램이 DBNAME 디렉토리(예: SAMPLE) 및 SQLxxxx 디렉토리를 작성할 때 지정된 사용 권한을 그대로 유지하십시오.


http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.sec.doc/doc/c0050516.html

728x90
728x90

버퍼 풀 페이지는 사용 중 또는 사용 중이 아니고 더티 또는 정리입니다.

  • 사용 중인 페이지는 현재 읽거나 갱신 중인 페이지입니다. 페이지를 갱신 중인 경우 갱신자만 액세스할 수 있습니다. 그러나 페이지를 갱신하지 않는 경우 읽는 사용자가 동시에 여러 명일 수 있습니다.
  • 더티 페이지에는 변경되었지만 아직 디스크에 기록되지 않은 데이터가 포함됩니다.
데이터베이스가 종료되거나 페이지가 차지하는 스페이스가 다른 페이지에 필요하거나 예를 들어, 오브젝트 삭제의 일부분으로 버퍼 풀에서 페이지가 명시적으로 제거되기 전까지 페이지는 버퍼 풀에 남아 있습니다. 다음 기준은 다른 페이지에 스페이스가 필요하면 제거되는 페이지를 판별합니다.
  • 얼마나 최근에 페이지가 참조되었습니까?
  • 페이지가 다시 참조될 가능성이 있습니까?
  • 페이지에 어느 데이터 유형이 들어 있습니까?
  • 메모리에서 페이지가 변경되었지만 디스크에 기록되지 않았습니까?

변경된 페이지는 항상 겹쳐쓰기 전에 디스크에 기록됩니다. 디스크에 기록되는 변경된 페이지는 스페이스가 필요하지 않는 한 버퍼 풀에서 자동으로 제거되지 않습니다.

페이지 클리너 에이전트

올바로 조정된 시스템에서 보통 변경된 페이지 또는 더티 페이지를 디스크에 기록하는 페이지 클리너 에이전트입니다. 페이지 클리너 에이전트는 입출력을 백그라운드 프로세스로 수행하고 에이전트가 실제 트랜잭션 작업을 수행할 수 있으므로 응용프로그램을 빠르게 실행할 수 있도록 지원합니다. 페이지 클리너 에이전트는 다른 에이전트의 작업과 협력하지 않으며 필요한 경우에만 작동하므로 비동기 페이지 클리너 또는 비동기 버퍼 기록기라고도 합니다.

갱신에 집중된 워크로드의 성능을 향상시키기 위해 혁신적인 페이지 정리를 사용할 수 있습니다. 이 경우 지정된 시점에 기록되는 더티 페이지를 선택할 때 페이지 클리너를 혁신적으로 사용할 수 있습니다. 이러한 내용은 특히 스냅샷이 비동기 데이터 페이지 또는 인덱스 페이지 쓰기와 관련하여 동기 데이터 페이지 또는 인덱스 페이지 쓰기 수가 있음을 표시하는 경우에 적용됩니다.

그림 1에서는 버퍼 풀 관리 작업을 페이지 클리너 에이전트와 데이터베이스 에이전트 사이에 공유할 수 있는 방식을 보여 줍니다.

그림 1. 비동기 페이지 정리더티 페이지가 디스크에 기록됩니다.
비동기 페이지 정리
프로세스

페이지 정리 및 빠른 복구

데이터베이스 관리 프로그램은 데이터베이스 로그 파일에서 트랜잭션을 재실행하는 것보다 디스크에서 버퍼 풀을 추가로 재빌드할 수 있으므로 디스크에 추가 페이지가 기록된 경우 시스템 파손 후 데이터베이스 복구가 빠릅니다.

복구 중 읽어야 하는 로그의 크기는 로그에 있는 다음 레코드들의 위치마다 다릅니다.
  • 최근에 기록한 로그 레코드
  • 버퍼 풀에서 데이터의 가장 오래된 변경사항에 대해 설명하는 로그 레코드
복구 중 재실행해야 하는 로그의 크기가 다음을 초과하지 않는 방식으로 페이지 클리너는 디스크에 더티 페이지를 기록합니다.
   logfilsiz * softmax / 100 (4-KB페이지 단위)
각 항목에 대한 설명은 다음과 같습니다.
  • logfilsiz는 로그 파일의 크기를 나타냅니다.
  • softmax는 데이터베이스 파손 후 복구할 로그 파일의 퍼센트를 나타냅니다. 예를 들어, softmax의 값이 250인 경우 2.5 로그 파일에는 파손이 발생하면 복구해야 하는 변경사항이 포함됩니다.

복구 중 로그 읽기 시간을 최소한으로 줄이려면 데이터베이스 시스템 모니터를 사용하여 페이지 정리를 수행하는 횟수를 추적하십시오. 데이터베이스의 혁신적 페이지 정리를 사용 가능하게 하지 않은 경우 pool_lsn_gap_clns(트리거된 버퍼 풀 로그 스페이스 클리너) 모니터 요소가 이 정보를 제공합니다. 혁신적 페이지 정리를 사용 가능하게 설정한 경우 이 조건이 발생하지 않으며 pool_lsn_gap_clns의 값은 0입니다.

log_held_by_dirty_pages 모니터 요소를 사용하여 페이지 클리너가 사용자가 설정한 복구 기준에 맞게 충분한 페이지를 정리하지 않는지 판별할 수 있습니다. log_held_by_dirty_pages가 logfilsiz * softmax보다 계속해서 상당히 큰 경우 추가 페이지 클리너가 필요하거나 softmax를 고정해야 합니다.


데이터 페이지의 버퍼 풀 관리

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.perf.doc%2Fdoc%2Fc0005393.html 


softmax - 복구 범위 및 소프트 체크포인트 간격 구성 매개변수

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.config.doc/doc/r0000242.html


버퍼 풀

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.dbobj.doc%2Fdoc%2Fc0052482.html


로깅 오버헤드를 축소한 DML 성능 향상

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0005425.html


갱신 프로세스

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/admin/c0005425.htm


응급 복구 분석

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.pd.doc/pd/c0020759.htm




728x90
728x90


Question

Why is the DB2 Java daemon (db2jd) not running on my UNIX machine?

Cause

The DB2® Java daemon (db2jd) is not started on UNIX® platforms automatically.

Answer

On UNIX systems, you have to start the JDBC listener manually by running "db2jstrt 6789" (where 6789 is the port that the Java listener will be listening on). If you want to start the listener automatically, you have to put "db2jstrt 6789" in a script file and run this script each time you log in or during system startup. Another option is to modify /etc/inittab to start this listener on reboot.



https://www-304.ibm.com/support/docview.wss?uid=swg21187846

728x90
728x90


Question

How do I turn on SQL tracing within Optim?

Answer

To enable sql tracing:



On Windows: 

    1) Help-> About Optim 
    2) Double click on the Optim Logo 
    3) Select the checkbox for NEC Dynamic SQL (DSQ) 
    4) Select the checkbox for Option 25 (Trace sql statements...) 
    5) Click on enable tracing. 
    6) Reproduce the problem.

On Unix: 
    Add the following to either the pstserv.cfg or the pstlocal.cfg
    dependant on whether you are using optim server or client (pr0cmnd): 

      trace DSQ 25 
      trace enable


    If using server you will need to restart it to pick up these changes. 

Trace files are named PR0TOOL.00n or PR0CMND.00n if running through the windows client. If running on Unix/Linux the trace files are named PR0SVER.00n and PR0SVCE.00n. Please send the trace files created


http://www-01.ibm.com/support/docview.wss?uid=swg21423841

728x90
728x90


Question

What DB2 UDB 9.x command turns auto-commit off or on?

Answer

Method 1:

Using “+c” option turns off auto-commit for the current command ; rollback will undo this uncommitted change

[db2inst1@frodo ~]$ db2 +c "update tec_t_evt_rep set source=‘changeme'"
DB20000I The SQL command completed successfully.
[db2inst1@frodo ~]$ db2 rollback
DB20000I The SQL command completed successfully.
[db2inst1@frodo ~]$ db2 terminate
DB20000I The TERMINATE command completed successfully.


Method 2: 
Example: using DB2OPTIONS env variable with +c (off) or -c (on)

[db2inst1@frodo ~]$ export DB2OPTIONS='+c -a'
[db2inst1@frodo ~]$ db2 list command options
Command Line Processor Option Settings

Backend process wait time (seconds) (DB2BQTIME) = 1
No. of retries to connect to backend (DB2BQTRY) = 60
Request queue wait time (seconds) (DB2RQTIME) = 5
Input queue wait time (seconds) (DB2IQTIME) = 5
Command options (DB2OPTIONS) = +c -a

Option Description Current Setting
------ ---------------------------------------- ---------------
-a Display SQLCA on
-c Auto-Commit OFF


Method 3:
Example: Turning off/on auto-commit for session only

Turning off:
C:\SQLLIB\BIN>db2 update command options using c OFF 

Turning on:
C:\SQLLIB\BIN>db2 update command options using c on 

Note: Method 3 only used for temporary change during interactive mode 
(The db2=> prompt). It affects the current interactive session only. With
c on, other users will see the changes made; with c OFF, other users will
be locked out of seeing the change until the commit is made..

Method 4: Using db2cli.ini configuration file

[mydatabase_alias] 
autocommit=0 

Note:
Env Variable Overrides to db2cli.ini are:
SQL_ATTR_AUTOCOMMIT= 1 or 0 (on or off)


https://www-304.ibm.com/support/docview.wss?uid=swg21297813

728x90
728x90


Problem(Abstract)

Error -952 returned when using shadow passwords with Informix Dynamic Server versions 7.31 or 9.40 on HP-UX 11i.

Resolving the problem

PROBLEM

Shadow passwords are not supported in either IBM® IDS versions 7.31 or 9.40. This operating system enhancement is not available until the release of HP-UX® 11i (11.11), and for purposes of backward compatibility IDS 7.31 and 9.40 are ported to earlier releases of HP-UX 11. 


SCOPE

The following products and operating systems are affected:

Product Name​
Product Version(s)​
Hardware Vendor​
Operating System​
IBM® Informix® Dynamic Server™ ​
7.31.​x​C1 and later versions​
9.40.​x​C1 and later versions​
Hewlett-Packard​
HP-UX® 11i​
x can be U, H, or F depending on your operating system.


WORKAROUND



CAUSE

This is expected behavior and not a product defect.


http://www-01.ibm.com/support/docview.wss?uid=swg21250766

728x90
728x90
물리 메모리 혹은 ipc limit 와 관련된 이슈.
AIX의 경우 커널 매개변수 설정이 필요없지만, HP-UX, Solaris, linux는 권장 매개변수 값을 참조하여 설정하는 것이 좋겠다.


IZ47611: DB2 INSTANCE CRASH AFTER SEVERE OS RESOURCE ALLOCATION FAILURE (FAILURE TO FORK OR ALLOCATE IPC RESOURCES)

https://www-304.ibm.com/support/docview.wss?uid=swg1IZ47611


DB2: Severe system error occurs with SQLO_NORES, DIA8336C and DIA8532C messages in db2diag.log

http://www-01.ibm.com/support/docview.wss?uid=swg21406633


Redirect restore failed with SQL2043N on DB2 9.X

http://www-01.ibm.com/support/docview.wss?uid=swg21425464

728x90
728x90

REPLACE 함수와 비슷하게 문자열을 치환해주는 기능을 하는데 표현식을 이용할 수 있어서

대상 문자열이 숫자 또는 문자를 판단할 때 간편하게 사용할 수 있습니다.


1. 단순 문자열 치환 : TRANSLATE('대상문자열', '비교문자', '바꿀문자')
    > select translate('12345', '1', 'x')  from dual;
    > select replace('12345', '1', 'x')  from dual;

 둘다 결과값은 동일합니다.


2. 숫자 제거 : TRANSLATE('대상문자열', ' +.0123456789', ' ')
    > select translate('abc1def2', ' +.0123456789', ' ')  from dual

 숫자 1,2 가 제거되고 'abcdef' 을 리턴합니다.

 응용하면, 
 > select nvl(length(translate('a', ' +.0123456789', ' ')),0)  from dual     ==> 1을 리턴
 > select nvl(length(translate('1', ' +.0123456789', ' ')),0)  from dual     ==> 0을 리턴

 위와 같이 숫자 여부 판단에 사용될 수 있습니다. 왠지 숫자여부 판단하는 함수가 있을듯한데;;


3. 문자 제거 : TRANSLATE('대상문자열', '0123456789'||'대상문자열', '0123456789')
    > select translate('abc1def2', '0123456789' || 'abc1def2', '0123456789')  from dual          ==> 12를 리턴

 응용하면,
 > select translate('010-123-4567', '0123456789' || '010-123-4567', '0123456789')  from dual  ==> 0101234567 을 리턴

 예) select TRANSLATE('전화번호', '0123456789'||'전화번호', '0123456789') from dual; 
 숫자만 리턴됩니다~


http://blog.naver.com/kdi85/30097007828

728x90
728x90


Problem(Abstract)

When using IBM DB2 for Linux, UNIX and Windows, running db2icrt/db2idrop against an DB2 instance name results in db2icrt/db2idrop process hangs when it is executing db2isrv in child process.

Symptom

db2icrt/db2idrop hangs when executing db2isrv

Cause

DB2 port entries in /etc/services file are missing or in wrong order etc.

Example 1:
DB2_db2instance1 entry is missing:


    DB2_db2instance1_1 60045/tcp 
    DB2_db2instance1_2 60046/tcp 
    DB2_db2instance1_END 60047/tcp

Example 2:
DB2_instance2 related port entries are in wrong order:
    DB2_db2instance2_1 60001/tcp 
    DB2_db2instance2_2 60002/tcp 
    DB2_db2instance2_END 60003/tcp 
    DB2_db2instance2 5914/tcp

Resolving the problem

1. Remove DB2 port entries related to the instance name in /etc/services file

2. Run db2icrt/db2idrop command again.



http://www-01.ibm.com/support/docview.wss?uid=swg21441874

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.qb.server.doc/doc/t0008487.html

728x90
728x90

Problem(Abstract)

On unix platforms the following error is seen

"Failed to start Core Services: Failed to launch rpcss."

when starting Optim with the rtserver command.

Symptom

The full output when running rtserver is:

optim@myserver:> ./rtserver start

Seems that there are no applications running.
No display defined - don't clean xprops
Seems that there are no applications running.
No display defined - don't clean xprops
Core Services are not running.
Failed to start Core Services: Failed to launch rpcss.

The MainWin log file may show the following error:

RPCSS ServiceMain failed with 1702

Cause

This problem is typically caused by a network conflict.

Resolving the problem

The following have resolved this issue:



728x90

+ Recent posts