ORACLE/TroubleShooting2016. 10. 19. 12:01
반응형

이 문서는 sysdba 로 접속하는 중 발생할 수 있는 ORA-1031 또는 ORA-1017 오류에 대한 진단을 위해 사용되는 몇가지 단계에 대해 설명을 목적으로 합니다.

최신 버전에서 인증 실패와 같은 에러는 ORA-01031에서 ORA-01017 로 변경되었습니다. 그래서 이제부터는 모든 인증 실패에 관련해서는 "ORA-01017: invalid username/password; logon denied" 에러 메시지가 보일 것이고, 이미 데이터베이스에 접속이 된 상태에서 발생하는 불충분한 권한으로 인한 오류에 대해서만 ORA-01031에 만나게 될 것입니다.

질문을, 도움말을, 그리고 문서를 통해 당신의 경험을 공유하십시오.

당신은 오라클 고객들과, 오라클 직원들 그리고 업계 전문가들과 함께 이 주제에 대해 토론하고 싶으십니까?

귀하가 질문하고 또는 다른이로 부터 도움을 받을수 있는 그리고 귀하의 경험을 공유할 수 있는 포럼 가입은 여기를 클릭하십시오.
포럼을 통해 많은 주제에 대해 토론과 도움되는 정보를 얻기 위해 오라클 지원 커뮤니티에 접속하기 위해서는 여기를 클릭하십시오.

진단 절차

기본 개념

사용자는 다음의 방법 중 하나를 사용하여 오라클 서버에 SYSDBA 로 접속할 수 있습니다:

OS 인증
암호 파일 인증


사용자는 암호파일(password file) 인증을 통해 원격 시스템으로 부터 SYSDBA 로 데이터베이스에 연결해야만 합니다. 오라클 서버가 윈도우즈에서 실행될 경우 원격에서 SYSDBA 로 연결시 사용자 이름과 암호를 넣지않고 안전하게 연결할 수 있습니다.

오라클 11g 부터 SYSDBA 에 대한 인증방식이 보다 강화 되었습니다. 자세한 사항은 문서 457083.1 를 참고하십시오.




SYSDBA OS 인증

OS 인증은 OS 에 의해 관리되는 정보로 데이터베이스에 연결하는 사용자의 ID 를 확인하는 절차를 거치게 됩니다. OS 사용자는 다음과 같은 조건이 부합될 경우 OS 인증 방법을 사용할 수 있습니다:

1. 사용자가 특정 그룹의 구성원입니다.
2. OS 인증은 서버의 설정(sqlnet.authentication_services가 올바르게 설정되어야 함)을 통해 허용됩니다.

OS 사용자는 sysdba 로 접속하기 위해 반드시 OSDBA 그룹에 소속되어야 합니다. 유닉스의 경우 기본 이름은 dba 입니다. 윈도우즈의 경우 그룹이름은 ORA_DBA 입니다.

유닉스의 경우, sqlnet.authentication_services 값은 반드시 (ALL) 혹은 (BEQ, <other values>) 로 설정되어야 합니다. 윈도우즈의 경우 반드시 (NTS) 로 설정해야 합니다.



SYSDBA 암호 파일 인증


원격에서 SYSDBA 로 접속할 경우 제공된 자격 증명은 암호 파일의 내용을 비교하여 이루어집니다.

암호파일 인증은 데이터베이스 매개 변수인 remote_login_password 의 값이 "shared" 혹은 "exclusive" 인 경우에만 가능합니다.

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;




Note: OS 인증과 암호파일 인증 모두가 가능할 경우 OS 인증이 사용됩니다. 이는 귀하가 사용자이름/암호 조합으로 연결할 수 있음을 의미합니다. 자세한 사항은 <문서 242258.1> 를 참고하십시오.




OS 인증을 사용하여 SYSDBA 접속시 ORA-1031 오류 해결방법.

1. 사용자가 OSDBA 그룹에 소속되어 있는지 확인하십시오.

유닉스의 경우

A. 사용자가 소속된 그룹을 확인하십시오:



[oracle@seclin4 ~]$ id
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba) context=user_u:system_r:unconfined_t




B. $ORACLE_HOME/rdbms/lib/config.[cs] 파일에 정의된 OSDBA 그룹이 무엇인지 확인하십시오.

리눅스의 예제::

[oracle@seclin4 ~]$ cat $ORACLE_HOME/rdbms/lib/config.c

/* SS_DBA_GRP defines the UNIX group ID for sqldba adminstrative access. */
/* Refer to the Installation and User's Guide for further information. */

/* IMPORTANT: this file needs to be in sync with
rdbms/src/server/osds/config.c, specifically regarding the
number of elements in the ss_dba_grp array.
*/

#define SS_DBA_GRP "dba"
#define SS_OPER_GRP "dba"
#define SS_ASM_GRP ""

char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP, SS_ASM_GRP};

AIX 의 예제:



[celcaix3]/grdbms/64bit/app/oracle/product/1120/rdbms/lib> cat config.s
# SS_DBA_GRP defines the UNIX group ID for sqldba adminstrative access.
# Refer to the Installation and User's Guide for further information.

.rename H.10.NO_SYMBOL{TC},""
.rename H.11.NO_SYMBOL{TC},""
.rename H.12.NO_SYMBOL{TC},""
.rename H.13.NO_SYMBOL{RO},""
.rename H.14.NO_SYMBOL{RO},""
.rename H.15.NO_SYMBOL{RO},""
.rename H.16.ss_dba_grp{TC},"ss_dba_grp"

.lglobl H.13.NO_SYMBOL{RO}
.lglobl H.14.NO_SYMBOL{RO}
.lglobl H.15.NO_SYMBOL{RO}
.globl ss_dba_grp{RW}

# .text section

# .data section

.toc
T.16.ss_dba_grp:
.tc H.16.ss_dba_grp{TC},ss_dba_grp{RW}
T.10.NO_SYMBOL:
.tc H.10.NO_SYMBOL{TC},H.13.NO_SYMBOL{RO}
T.11.NO_SYMBOL:
.tc H.11.NO_SYMBOL{TC},H.14.NO_SYMBOL{RO}
T.12.NO_SYMBOL:
.tc H.12.NO_SYMBOL{TC},H.15.NO_SYMBOL{RO}

.csect ss_dba_grp{RW}, 3
.llong H.13.NO_SYMBOL{RO}
.llong H.14.NO_SYMBOL{RO}
.llong H.15.NO_SYMBOL{RO}
# End csect ss_dba_grp{RW}

.csect H.13.NO_SYMBOL{RO}, 3
.string "dba"
# End csect H.13.NO_SYMBOL{RO}

.csect H.14.NO_SYMBOL{RO}, 3
.string "dba"
# End csect H.14.NO_SYMBOL{RO}

.csect H.15.NO_SYMBOL{RO}, 3
.string ""
# End csect H.15.NO_SYMBOL{RO}
.llong 0x00000000

# .bss section


솔라리스의 예제:



.section ".text",#alloc,#execinstr
/* 0x0000 7 */ .file "x.c"

.section ".data",#alloc,#write
/* 0x0000 9 */ .global ss_dba_grp
/* 0x0000 10 */ .align 8

.global ss_dba_grp
ss_dba_grp:
/* 0x0000 17 */ .align 8
/* 0x0000 18 */ .xword (.L12+0)
/* 0x0004 24 */ .align 8
/* 0x0004 25 */ .xword (.L13+0)
/* 0x0008 26 */ .type ss_dba_grp,#object
/* 0x0008 27 */ .size ss_dba_grp,16

.section ".rodata1",#alloc
/* 0x0008 13 */ .align 8


.L12:
/* 0x0008 15 */ .ascii "dba\0"
/* 0x0014 20 */ .align 8


.L13:
/* 0x0014 22 */ .ascii "dba\0"




위의 예제에서 우리는 사용자가 config.c 파일에서 SS_DBA_GRP 값과 일치한 "dba" 그룹의 구성원임을 확인하였습니다. 만약 그룹이 정상적으로 설정되어 있는 연결에 문제가 있다면 오라클의 그룹 구성원(group membership) 이 올바른지 확인을 위해 문서 67984.1 의 스크립트를 사용하십시오.



NSCD 이슈

OS 인증을 사용한 sysdba 접속시, /etc/passwd 와 /etc/group 로 부터 정보를 캐싱하는 nscd 서비스(/etc/nscd.conf 로 부터 설정됨) 의 문제로 ora-1031 오류가 간혈적으로 발생할 수 있습니다. 만약 이 서비스를 중지할 경우 문제가 해결된다면 OS 공급업체에 문의하시기 바랍니다.



/etc/group 이슈

만약 /etc/group 화일이 어떤 다른 그룹명들을 가지고 있고 이것이 많은 수의 멤버들을 가지고 있어 그 라인의 길이가 길어진다면, OS인증을 사용하는 sysdba로의 접속은 설명하기 어려운 다른 요인으로 인해 어쩌면 실패할 지도 모릅니다, 이 때는 note 13092226.8 에 나와 있는 대안을 참조하십시오.



윈도우즈의 경우

윈도우즈에서 OS 인증을 사용하기 위해서는 OS 사용자는 반드시 아래 두개의 그룹 중 하나의 구성원 이어야 합니다:

ORA_DBA
ORA_<%ORACLE_SID%>_DBA
두번째 그룹의 구성원이 되는 것은 %ORACLE_SID% 로 지정된 인스턴스에 접속시 OS 사용자가 OS 인증을 사용하는 것을 허락합니다.

OS 사용자가 이 두개의 로컬 그룹의 구성원인지 확인하십시오.

OS 사용자의 이름을 가져오기 위해서는:


D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>echo %username%
dbadmin

로컬 그룹의 구성원 목록을 확인하기 위해서는:


D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>NET LOCALGROUP ORA_DBA
Alias name ORA_DBA
Comment Members can connect to the Oracle database as a DBA without a password
Members

-------------------------------------------------------------------------------
dbadmin
NT AUTHORITY\SYSTEM
The command completed successfully.





D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>set oracle_sid=d1v10204

D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN>NET LOCALGROUP ORA_%ORACLE_SID%_DBA
Alias name ORA_d1v10204_DBA
Comment Members can connect to instance d1v10204 as a DBA without a password

Members
-------------------------------------------------------------------------------
dbadmin
The command completed successfully.

만약 사용자가 이 그룹의 구성원이지만 접속시 문제가 발생한다면, 아래 링크를 참고하여 C 프로그램을 컴파일하고 오라클 그룹 구성원 설정이 올바르게 되어 있는지 여부를 확인하기 위해 오라클 실행파일을 다시 수행하십시오:

http://msdn.microsoft.com/en-us/library/aa370655(VS.85).aspx




2. $ORACLE_HOME/network/admin/SQLNET.ORA 에 설정된 SQLNET.AUTHENTICATION_SERVICES 매개변수 값을 확인 하십시오



유닉스의 경우

만약 강력한 인증 방법을 사용하지 않는 경우에 이 매개변수는 설정하지 말아야 합니다. 만약 이 방법이 사용될 경우 아래의 값 중 하나를 매개변수로 설정하십시오:



SQLNET.AUTHENTICATION_SERVICES = (ALL)


or



SQLNET.AUTHENTICATION_SERVICES = (BEQ,<the strong auth method>)

<강력한 인증 방법> 은 다음의 값을 조합할 경우입니다: TCPS, KERBEROS5, RADIUS


NOTE: SQLNET.AUTHENTICATION_SERVICES 의 값에 공백이 선행되면, ORA-1031 가 발생할 수 있습니다.

윈도우즈의 경우

이 매개변수는 NTS 로 설정해야 합니다:



SQLNET.AUTHENTICATION_SERVICES = (NTS)

필요한 경우 귀하는 NTS 옆에 다른 강력한 인증 방식을 추가할 수 있습니다:


SQLNET.AUTHENTICATION_SERVICES = (NTS,TCPS)



Note: 매개변수가 NONE 으로 설정된 경우 OS 인증은 사용할 수 없으며 사용자는 데이터베이스 연결시 유효한 사용자 이름/암호 조합을 제공해야 합니다.

위와 마찬가지로 SQLNET.AUTHENTICATION_SERVICES 의 값에 공백이 선행되면, ORA-1031 가 발생할 수 있습니다.



Note:
윈도우즈에서 OS 인증 방식을 사용하여 sysdba 로 접속할 수 없는 사용자는 도메인 사용자일 수 있습니다. 귀하가 다음의 상황에 부합되는지 확인하십시오:
A) 사용자가 로컬 ora_dba 그룹의 직접적인 구성원인지가 중요합니다. (자세한 내용은 <문서 1065023.1> 참고하십시오.)

B) 오라클 서비스는 반드시 로컬에서 SYSDBA 로 접속할 수 있는 도메인 사용자에 대한 그룹 구성원을 확인할 수 있는 사용자로 기동되어야 합니다. ( 자세한 내용은 <문서 1071638.1> 를 참고하십시오.)

C) 활성화된 디렉토리 서버(Active Directory Server) 와 RDBMS 서버의 시간이 완벽하게 동기화되어 있는지 확인하십시오. 작은 시간의 차이도 윈도우즈에서 기본으로 사용하는 커버로스(KERBEROS) 인증 방식에서 문제가 발생할 수 있습니다.
이러한 경우 ORA-1031 시간 차이로 인해 간혈적으로 발생할 수 있습니다.

D) 오라클 서비스를 기동한 사용자의 이름에 아스키 캐릭터가 아닌 글자(NON ACSII characters) 를 포함하고 있는지 확인하십시오. 자세한 내용은 <문서 1280996.1> 를 참고하십시오.


ORA-12638 는 로컬보다 액티브 디렉토리(Active directory) 를 통해 관리되는 사용자의 경우에 나타납니다.


윈도우즈에서 OS 사용자가 도메인 사용자일때, ORA-12638 가 발생할 수 있습니다. 이 경우 클라이언트단 SQL*Net 추적 파일(trace file) 을 획득하고 naun5authent 함수에 의해 발생하는 MS 윈도우즈 오류가 있는지 확인하는 것이 중요합니다:

A) 클라이언트의 sqlnet.ora 파일에 다음 줄을 추가합니다. (클라이언트는 RDBMS 서버와 동일할 수 있음):


trace_level_client = 16
trace_directory_client = c:\temp\newsqlnet


B) SYSDBA 로 접속을 시도하고 SQL*Net 추적 파일을 획득합니다. 해당 파일을 열어 "SSPI" 문자열을 찾습니다. 귀하는 아래와 비슷한 내요을 확인할 수 있습니다:


[02-OCT-2011 09:21:02:076] naun5authent: SSPI: 0x8009030c error in InitializeSecurityContext
[02-OCT-2011 09:21:02:076] naun5authent: exit
[02-OCT-2011 09:21:02:076] naunauthent: exit
[02-OCT-2011 09:21:02:076] nau_ccn: get credentials function failed
[02-OCT-2011 09:21:02:076] nau_ccn: failed with error 12638
[02-OCT-2011 09:21:02:076] nacomsd: entry
[02-OCT-2011 09:21:02:076] nacomfsd: entry
[02-OCT-2011 09:21:02:076] nacomfsd: exit
[02-OCT-2011 09:21:02:076] nacomsd: exit
[02-OCT-2011 09:21:02:076] nau_ccn: exit
[02-OCT-2011 09:21:02:076] na_csrd: failed with error 12638
[02-OCT-2011 09:21:02:076] na_csrd: exit
[02-OCT-2011 09:21:02:076] nacomer: error 12638 received from authentication service

C) 아래의 링크를 통해 MS 오류를 검색할 수 있습니다. (위 예제의 경우 0x8009030c):

http://technet.microsoft.com/en-us/library/cc786775%28WS.10%29.aspx

D) 윈도우즈 관리자에게 연락하여 마이크로 소프트로부터의 권고 작업을 수행하도록 하십시오. SSPI 오류에 대한 해결책은 다음과 같습니다:

"로그온을 거부합니다. 정책의 범위를 결정할 때 그룹 정책이 컴퓨터와 사용자 모두 해당되도록 합니다.이렇게 하면 컴퓨터 계정은 암호 재설정이 필요하거나 혹은 문제가 발생한 사용자 계정 정보가 필요할 수 있습니다. 사용자 계정이 올바르게 설정되어 있는지 액티브 디렉토리를 확인하십시오. netdom 이나 nltest 와 같은 유틸리티를 사용하여 컴퓨터 계정의 암호를 테스트하십시오."



3. 1단계와 2단계에 따른 구성사항을 확인 후 다음의 문서에 설명된 문제를 검토하십시오:

Note 69642.1 - UNIX: Checklist for Resolving Connect AS SYSDBA Issues
Note 114384.1 - WIN: Checklist for Resolving CONNECT AS SYSDBA (INTERNAL) Issues

4. 위 문서를 참고했음에도 문제가 해결되지 않으면 SR 을 통해 오라클의 지원을 받으시기 바랍니다. SR 을 통한 지원 요청시 다음의 정보를 제공해 주십시오:

유닉스의 경우

A) $ORACLE_HOME/network/admin/sqlnet.ora
B) $ORACLE_HOME/rdbms/lib/config.c(or config.s)
C) "id" 명령어 출력결과
D) 아래 명령 수행 후 출력되는 추적 파일:


Linux:
strace -o /tmp/strace_sysdba.output -cfT sqlplus / as sysdba



AIX, Solaris:
truss -fea -o /tmp/truss_sysdba.output sqlplus / as sysdba



HP-UX:
tusc -afpo /tmp/tusc_sysdba.output -aef sqlplus / as sysdba



윈도우즈의 경우


A) %ORACLE_HOME%/network/admin/sqlnet.ora
B) "echo %username% 과 "NET LOCALGROUP ORA_DBA" 명령 출력 결과
C) 문서 395525.1 과 문서 374116.1 에 따라 문제 재현시 획득한 클라이언트/서버 SQL*Net 추적파일.

암호 파일 인증 사용시 ORA-1031 문제 해결 방법



1.매개변수 remote_login_passwordfile 의 값을 확인하십시오. 이 값은 EXCLUSIVE 혹은 SHARED 로 설정되어야만 합니다:

SQL> show parameter remote_login_passwordfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE

만약 매개변수가 올바르게 설정되어 있지 않다면, 수정 후 데이터베이스를 재시작 하십시오:



SQL> ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;


2. 올바른 이름의 암호 파일이 올바른 디렉토리에 존재하는지와 해당 파일의 소유권 및 권한이 올바르게 설정되어 있는지 확인하십시오



유닉스의 경우

암호 파일은 orapw<ORACLE_SID> 형태로 $ORACLE_HOME/dbs 디렉토리에 존재해야만 합니다. 만약 존재하지 않는다면 orapwd 명령어를 사용하여 재생성하십시오.



$ > orapwd file=$ORACLE_HOME/dbs/orapw<sid> password=<password> force=y ignorecase=n
파일의 권한은 아래와 같아야만 합니다:



-rw-r----- 1 oracle oinstall 1536 Jul 21 13:50 orapwdv11201


orapwd 명령어와 관련된 자세한 정보는 <문서 1029539.6> 를 참고하시기 바랍니다.

윈도우즈의 경우

윈도우즈의 경우 암호 파일의 기본 경로는 %ORACLE_HOME%/database 입니다. 암호 파일의 이름은 반드시 pwd<%ORACLE_SID%>.ora 이어야 합니다.
암호 파일 인증을 사용하면 오라클은 아래의 순서에 따라 해당 위치에 암호 파일이 있는지 확인하게 됩니다:

레지스트리 키 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HomeXX\ORA_<%ORACLE_SID%>_PWFILE 이 가르키는 폴더
레지스트리 키 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HomeXX\ORA_PWFILE 이 가르키는 폴더
기본 경로 (%ORACLE_HOME%/database)


Note: 암호 파일 인증을 설정한다면, 레지스트리 키에 의해 지정된 폴더에 암호 파일이 존재하는지 확인하십시오.




만약 암호 파일이 올바른 위치의 폴더에 존재하지 않으면, orapwd 명령을 사용하여 생성하십시오:



D:\> cd %ORACLE_HOME/database
D:\> orapwd file=pwd<sid>.ora password=<password> force=y nosysdba=n

orapwd 명령어와 관련된 자세한 정보는 <문서 1029539.6> 를 참고하시기 바랍니다.



3. 사용자가 SYSDBA 권한을 부여받았는지 확인하십시오





SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE


만약 사용자가 권한을 부여받지 않았다면, 아래 명령을 수행하십시오:



grant SYSDBA to myadminuser;


myadminuser 는 sysdba 로 접속할 사용자 이름입니다.

4. 데이터 베이스 연결에 사용할 리스너의 설정에 아무런 문제가 없는지 확인하십시오.


리스너 설정에 ORACLE_HOME 매개변수 값이 반드시 올바르게 설정되어야 합니다:



SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = d1v11203)
(ORACLE_HOME = /oracle/product/11203)
(SID_NAME = d1v11203)
)
)


리스너에 정의된 SID 의 경우 ORACLE_SID 로 설정한 인스턴스 이름의 대소문자까지 일치해야만 합니다:



SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = d1v11203)
(ORACLE_HOME = /oracle/product/11203)
(SID_NAME = d1v11203)
)
)






암호 파일 인증시 자주 발생하는 문제들

1) 로드 밸런싱 옵션으로 여러개의 TNS 주소로 맵핑된 TNS 별칭(alias) 을 사용하여 SYSDBA 로 원격 연결시 간혈적으로 ORA-1031 이 발생할 수 있습니다.



TNS 별칭은 tnsnames.ora 파일에 아래와 같이 정의되어 있습니다:

CLIENT_load_balance=
(DESCRIPTION =
(LOAD_BALANCE = yes)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ro-rac1.ro.oracle.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = ro-rac2.ro.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = service.idc.oracle.com)
)
)


최소 하나의 노드에서 암호 파일이 정상적으로 설정되어 있지 않은 경우, 간혈적으로 해당 오류가 발생할 수 있습니다. 이 경우 모든 노드에 대해 암호 파일이 올바르게 설정되어 있는지 확인하십시오.

2) 아래의 오류와 함께 RMAN 보조 연결(auxiliary connections) 이 실패합니다:

RMAN-04006: error from auxiliary database: ORA-01031: insufficient privileges




RMAN 을 실행하기 전에 원격 보조 데이터베이스에 암호 파일이 올바르게 구성되어 있는지 확인하십시오.

3) EM 설치중 emca_repos_config_yyyy_mm_dd_hh_mm_ss.log 파일에서 아래의 오류가 기록될 수 있습니다:


Caused by: oracle.sysman.emdrep.config.ConfigurationException:
Cannot Create Connection:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testemconfig.us.oracle.com)(PORT=1553)))(CONNECT_DATA=(SERVICE_NAME=TESTDB)))
SYS
sysdba
ORA-01031: insufficient privileges



이러한 오류는 sqlplus 에서도 재현됩니다:



[oracle@test dbs]$ sqlplus sys/oracle@r01 as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jun 7 16:02:39 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges

이러한 경우, 위에 설명한 대로 귀하는 암호 파일 인증을 통해 sysdba 연결시 발생할 수 있는 오류 해결 방법을 단계별로 수행하여 해결해야 합니다.



반응형
Posted by [PineTree]
아이폰2016. 9. 14. 18:19
반응형

애플이 6월 13일(현지 시각) 샌프란시스코에서 열린 세계개발자회의(WWDC)에서 iOS의 새로운 버전인 iOS 10을 발표했다. iOS 10 개발자 프리뷰는 오늘부터 제공되며 일반 이용자를 위한 베타 소프트웨어는 오는 7월부터, 정식버전은 새 아이폰이 나오는 3분기 이후 정식 출시된다. 수많은 새로운 기능이 탑재됐지만 그 중 10개의 중요한 기능을 간추려 보았다




1. 쓰임새 늘어난 잠금화면과 3D 터치

iOS 10은 시스템 전반에서 새로운 사용자 경험을 제공한다. 가장 먼저 눈에 띄는 것은 '밀어서 잠금해제'가 사라졌다. iOS 10에서는 아이폰을 들어 올리는 것만으로 깨어난다.잠금 화면에서 오른쪽으로 밀면 알림 위젯들이, 왼쪽으로 밀면 카메라가 나온다.

아이폰6·6s를 쓰는 이들이 가진 불만 중 하나는 바로 터치 ID가 너무 빨리 작동한다는 것이다. 시간을 확인하고 싶어서 홈 버튼을 눌렀는데 잠금이 풀려서 불편했는데 아이폰을 들어올리기만 하면 화면이 켜지고 지금까지 온 전화나 문자메시지를 확인할 수 있다.

새 잠금 화면은 알림을 대응하는 방법도 개선되었다. 메시지 앱은 굳이 앱을 열지 않아도 알림에서 메시지를 주고 받을 수도 있다. 앱을 실행하지 않아도 알림 센터에서 그 앱을 열고 사용하는 것 수준으로 다양한 기능을 활용할 수 있다.


3D 터치를 사용할 수 있는 아이폰 6S에는 특별한 기능이 추가됩니다. 이전에는 단순히 몇 가지 기능만 보여줬지만 위젯 화면을 통해 더 많은 정보를 볼 수 있고, 앱이 지원한다면 더 많은 기능을 사용할 수 있습니다.

2. 쓸데 없는 기본 앱은 삭제

iOS 10에서는 전부는 아니지만 대부분의 기본 앱을 지울 수 있다. 지울 수 있는 앱으로는 날씨, 주가, 메일, 지도, 메모, 음성 메모, 애플 워치 연동 앱, 음악, 페이스타임, 날씨, 아이튠즈 스토어, 캘린더, 연락처, 비디오, 계산기, 나침반, 팁 앱이 포함됩니다. 지운 앱은 다시 필요하면 앱 스토어를 통해 다시 내려받을 수 있습니다. 저장 공간만 좀 먹고 안 보이게 숨겨 두었던 기본 앱을 지울 수 있다는 것은 반가운 소식임에 틀림없다

3. 보다 재미있어진 아이메세지

iOS 10은 아이메시지에 다양한 새로운 기능을 제공합니다. 카카오톡처럼 URL을 공유하면 제목과 썸네일을 미리 보여줄 수 있고, 단어를 입력하면 자동으로 그림문자(이모지)가 뜨고 보낼 수 있는 기능도 탑재되었다. 그림문자(에모지)는 보다 세 배 키웠고 입력한 문장에 있는 단어를 그림문자로 변환할 수 있다. 이 외에도 필기 인식 기능과 말풍선 효과, 애플 워치 화면에 그림을 그려 보내는 기능인 디지털 터치 기능을 사용할 수 있는 등 다양한 새로운 기능이 추가되었다.

하지만 무엇보다 중요한 것은 메시지 앱을 위한 다양한 API 지원입니다. 메시지 앱에서 쓸 수 있는 전용 이모지를 개발한다던지, 아니면 아이메시지를 통해 써드 파티 앱을 이용한 송금도 가능해졌다.
4. 인공지능기술에 타사 앱과 연동가능해진 시리

iOS 10은 딥러닝(Deep Learning) 기술을 접목시켜 기능이 더욱 강화된 개인용 음성인식 서비스 '시리'가 탑재되었다. 딥러닝 기술은 인공지능 기술 구현의 핵심으로 기계나 컴퓨터가 스스로 학습하게끔 만드는 것이다. 애플은 시리가 일주일에 받는 질문 약 2억개를 토대로 사용자에 좀 더 최적화했다고 전했다.

또한 iOS 10은 시리를 다른 회사가 개발한 앱과 연동해서 쓸 수 있도록 개발자들에게 ‘시리킷’이라는 이름으로 SDK를 개방했다. 개발자들이 규격에 맞춰서 개발하기만 하면 시리를 통해 외부 앱을 이용할 수 있다. 크레이그 페더리기 애플 소프트웨어 엔지니어링 담당 수석부사장(SVP)은 아이폰에서 시리를 불러내 중화권의 인기 메신저 '위챗'과 차량 공유 앱 '우버' 등을 이용하는 장면을 시연했다.
5. 인공지능으로 더욱 똑똑해진 퀵타입 키보드

iOS 8부터 도입된 퀵타입 키보드는 자동완성 기능을 갖췄다. iOS 10은 퀵타입 키보드에 시리의 인공지능을 더해 보다 지능적으로 작동하게 했다. 이제 텍스트만 추천하는 것이 아니라, 메시지의 전후 맥락을 분석해 이에 적절한 답을 보낼 수 있도록 유도한다. 예를 들어 친구에게 "어디 있냐"는 메시지를 받으면, 현재 위치를 발송할 수 있게끔 하는 버튼이 뜨는 식이다.

6. 인공지능으로 더욱 똑똑해진 사진앱

사진 앱은 단순히 찍은 사진을 보관만 하지 않는다. 딥러닝 기술을 이용 사람의 얼굴과 사물, 풍경 등을 인식한다. 사진 속 정보를 분석해 여행, 날짜, 인물, 주제 등에 따라 앨범을 만들어준다. 사진에 찍힌 사물이나 사람을 자동으로 알아보고 같이 여행갔던 사람들, 혹은 날짜나 장소에 따라 자동으로 정리해주기까지 한다. 강아지가 찍힌 사진, 혹은 가족과 찍은 사진을 보다 쉽게 찾을 수 있게 됐다. 특이한 사진이나 동영상을 자동으로 모아 짧은 동영상을 만드는 기능도 유용해 보인다. 음악이나 장면 전환 효과도 원하는 분위기에 맞게 자동으로 바뀐다. 구글 포토와 비슷하다.

7. 새로운 디자인으로 바뀐 지도 앱

애플 지도 앱도 새로운 디자인으로 바뀌었습니다. 사용자의 습관을 추적하고 배워 회사나 집으로 가는 경로를 제안하거나 검색하는 기능이 더욱 강화됐고, 차량 내비게이션도 교통 상태를 바로 확인하거나 길이 밀리면 자동으로 재탐색을 할 수 있는 기능도 추가됐다.

또한, 지도 앱을 개발자들에게 개방해 써드 파티 앱의 기능을 지도 앱에서 사용할 수 있게 되었다. 예컨대 미국에서는 지도에서 식당을 찾은 다음 오픈테이블로 예약하고 우버를 불러 이동할 수 있다. 중국은 택시 앱인 디디콰이디가 지도 앱을 지원할 예정이다.
8. 집 안의 모든 것을 지배하는 홈 앱

애플은 2014년 iOS 8과 함께 스마트 자물쇠나 조명과 같은 스마트 홈 액세서리들을 iOS 기기에서 조종할 수 있는 ‘홈킷’을 선보였다. 그러나 그 동안 쓸 일이 별로 없었다. 이번에 iOS 10에 탑재될 홈 앱은 홈킷을 통해 연결된 가전 제품을 하나의 앱에서 모두 조작할 수 있다. 연결된 도어락, 선풍기, 조명, 에어컨 등 카테고리별로 정리해주고, 각각의 앱에 들어갈 필요 없이 홈 앱에서 바로 조작할 수 있다. 심지어 잠금 화면에서도 빠르게 조작할 수 있다.
9. 보다 직관적으로 변한 음악 앱

iOS 9에서 애플뮤직 서비스를 품으면서 복잡해졌던 음악 앱은 다시 이용자 개개인에 초점을 맞췄다. 처음 앱을 실행하면 자주 듣는 음악을 중심으로 보여준다. 노래 가사를 찾아 보여주는 기능도 있다.
10. 스팸 전화 차단 기능

아이폰을 쓰면서 제일 불편한 점은 바로 스팸전화를 피할 수 없다는 것이다. 안드로이드 스마트폰은 각종 앱을 통해 전화 수신 화면에서 정보를 확인하고 바로 끊을 수 있지만 아이폰은 일단 전화를 받아 봐야 이를 확인할 수 있었다.

하지만 이제는 부동산 전화, 대출 전화, 검찰 사칭 보이스피싱을 아이폰에서도 피할 수 있게 됐다. 애플이 개발자에게 ‘콜킷’이라는 이름으로 전화 앱을 개방했기 때문이다. 이제는 전화가 걸려오면 전화번호를 외부 앱에 전달해서 바로 차단하거나 관련 정보를 보여줄 수 있다.

반응형

'아이폰' 카테고리의 다른 글

아이폰 IOS 11.2  (0) 2017.12.02
아이폰 11.1.2 update  (0) 2017.11.17
IOS 11.1  (0) 2017.11.01
IOS 10.3  (1) 2017.03.28
ios 10.1  (0) 2016.10.27
Posted by [PineTree]
ORACLE/ADMIN2016. 7. 8. 14:23
반응형

오라클 리스터 프로세느 확인

ps -ef | grep LOCAL=NO | awk '{print $2}'

오라클 리스너 프로세스 한꺼 번에 정리

ps -ef | grep LOCAL=NO | awk '{print $2}' | xargs kill -9

반응형
Posted by [PineTree]
ORACLE/RAC2016. 6. 10. 13:29
반응형


다른서버에 엔진을 묶어서 싱글로 올릴때는 tar로 말아서 옮긴후 아래 내용중 relink 단계까지만 하고 dbca로 생성 하니 잘되네요


My last post about Turn on/off RAC basically is to implement Converting/Migrating Oracle RAC to Single instance. I try to find a way to do this in Google but it seem no result regarding this. You can find thousand of article on converting Single Instance to Oracle RAC but not the other way around. Why?

You'll find a Doc. on Metalink with step by step instructions on "How to convert a
single instance Database to RAC", but not the other way round.
The analyst's response from Oracle is "We cannot convert a RAC database into a Single
instance database, that is the reason why you didnt find any steps.
It is not supported.

Why Oracle mentioned it is not supported? It does not makes any sense that you cannot convert from RAC to non-RAC environment, unless Oracle does not want their customers to go away from RAC.
Anyway…it’s all about $$$$$.
So, based on my knowledge on how Oracle RAC work, I’ve successfully done it.


This is based on Oracle 10G Release 2 and assumes:

1. Oracle RAC running with cluster file system
2. You have basic knowledge about Oracle RAC


Test Server:
OS : Red Hat Enterprise Linux Server release 5.4
Database Version : 10.2.0.4
File system: OCFS2


1. Stop database and CRS on both node

$ srvctl stop database -d mydb
# crsctl stop crs

2. Turn Off RAC

SQL> startup
ORA-29702 error occurred in Cluster Group Service operation


Relink with the RAC OFF.
$ cd $ORACLE_HOME/rdbms/lib
$ /usr/ccs/bin/make -f ins_rdbms.mk rac_off
Relinking oracle
$ make -f ins_rdbms.mk ioracle
## OR , both working fine
$ cd $ORACLE_HOME/bin
$ relink oracle


If ASM Instance Exist, run below command as root
# /oracle/product/10.2.0/db/bin/localconfig delete
# /oracle/product/10.2.0/db/bin/localconfig add

3. Parameter(Pfile/spfile) & database changes

SQL> startup
SQL> alter database disable thread 2;
SQL> alter system set remote_listener='';


3a. Remove unwanted logfile
SQL> select thread#, group# from v$log;
SQL> alter database drop logfile group 3;
SQL> alter database drop logfile group 4;


3b. Remove unwanted tablespace
SQL> drop tablespace UNDOTBS2 including contents and datafiles;


3c. Rename instance name.
SQL> alter system set instance_name=<new_name> scope=spfile;
SQL> shutdown immediate
SQL> startup
- Change your ORACLE_SID environment


4. Run $ORA_CRS_HOME/install/rootdelete.sh on both node
- This will stop and remove all CRS startup related file

5. Remove $ORA_CRS_HOME binary using Clusterware OUI installer
- Ignore any error if 2nd node already down
- rm -rf $ORA_CRS_HOME


6. Modify listener file
$ vi $ORACLE_HOME/network/admin/listener.ora


6a. Modify tnsname file
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

반응형
Posted by [PineTree]
ORACLE/SQL2016. 4. 6. 17:29
반응형

출처: http://m.blog.yes24.com/metalzang/post/1785694

나누기 연산 하는 경우거나 평균값을 구하는 경우에 분모 값이 0 인 상태에서 연산을 하면 에러(ORA-01476)가 발생하는데...

이 경우 아래와 같은 예제를 활용하시면 해결하실 수 있습니다.

-- ORA-01476: 제수가 0 입니다.
-- 나누기 연산을 하여 값을 구하는 경우

select a/b result
from (select 100 a, 0 b from dual)

-- ORA-01476: 제수가 0 입니다.
-- 두개의 값에 따라 평균값을 구하는 경우
select avg(a/b) result
from (select 100 a, 0 b from dual)

-- NULLIF 함수를 사용하여 처리
-- 분모가 0 인 경우에 결과값은 0
select nvl(avg(a/nullif(b,0)),0) result
from (select 100 a, 0 b from dual)

-- 결과값 : 2, 0.5
select avg(200/100) result from dual
select avg(100/200) result from dual

-- DECODE 함수를 사용하여 처리.
select decode(b,0,0,null,0, a/b) result
from (select 100 a, 0 b from dual)

-- ORA-01476: 제수가 0 입니다.
-- AVG 함수를 사용하는 경우에는 분자/분모 모두 "0"이 아니여야 하므로
-- 아래와 같이 DECODE, NULLIF 함수를 사용하면 해결할 수 있음.
select decode(sum(b),0,0,null,0, avg(a/b)) result
from (
select 1001 a, 16 b from dual union all
select 2002 a, 10 b from dual
)

-- 131.38125 결과값
-- ROUND 함수로 인한 결과값 반올림(131.4)
select ROUND(decode(sum(b),0,0,null,0, avg(a/b)),1) result
from (
select 1001 a, 16 b from dual union all
select 2002 a, 10 b from dual
)

-- 131.38125 결과값
-- 지정한 소수점 단위로 절삭한다.(131.3)
select trunc(decode(sum(b),0,0,null,0, avg(a/b)),1) result
from (
select 1001 a, 16 b from dual union all
select 2002 a, 10 b from dual
)

반응형

'ORACLE > SQL' 카테고리의 다른 글

oracle table count 오라클 테이블 건수 확인  (0) 2023.07.02
오라클 Count over  (0) 2018.07.06
동시성제어 SELECT FOR UPDATE #1  (0) 2013.03.01
Oracle EXISTS Versus IN  (0) 2010.06.18
NOT IN과 NOT EXISTS의 차이점  (0) 2010.04.02
Posted by [PineTree]
PineTree/etc2016. 3. 23. 19:06
반응형

​​밤마다 경험하는 더욱 나아진 일상.
iOS 9.3 업데이트를 통해 이미 세상에서 가장 앞선 모바일 운영체제에 다양한 혁신이 더해집니다. 여러 앱에 대한 개선이 이루어지고, CarPlay에는 멋진 기능들이 새로 추가되죠. 이번 최신 iOS는 숙면에 도움이 될만한 기능도 선보인답니다.


날마다 밤마다 경험하는 더욱 나아진 일상.
iOS 9.3 업데이트를 통해 이미 세상에서 가장 앞선 모바일 운영체제에 다양한 혁신이 더해집니다. 여러 앱에 대한 개선이 이루어지고, CarPlay에는 멋진 기능들이 새로 추가되죠. 이번 최신 iOS는 숙면에 도움이 될만한 기능도 선보인답니다.

Night Shift
당신이 깊이 잠들 수 있도록 우리의 깊은 생각을 담았습니다.


다수의 연구를 통해 밝혀진 바에 따르면, 해가 진 후에 밝은 블루 라이트에 노출된 신체는 활동일주기에 영향을 받아 숙면에 어려움을 겪는다고 합니다. Night Shift 기능은 iOS 기기의 시간 및 위치 정보를 통해 일몰 시간을 감지하고, 해가 지면 자동으로 디스플레이 색상을 더 따뜻한 색상 범위로 변경해줍니다.1 아침이 되면 디스플레이 색상 설정을 원래대로 돌려놓죠. 이제 편히 주무세요.

메모
암호나 지문으로 확실하게 보호하는 개인정보.


‘메모’ 앱은 매우 자주, 매우 다양한 용도로 사용되는 그런 앱이죠. 이제 은행 정보, 진료 기록, 웹사이트 접속 기록 등의 소중한 개인정보가 담긴 메모를 암호나 지문으로 보호할 수 있습니다. 또한 생성된 날짜, 수정된 날짜 또는 알파벳 순서로 메모를 정렬할 수도 있게 되었답니다.

건강
새로운 건강 앱도 더 많은 건강 정보도 손쉽게 한 곳에서.
​건강 상태를 측정하는 서드파티 앱 찾기가 더욱 쉬워집니다. 체중, 운동, 수면 등의 카테고리에 새로운 슬라이더 메뉴가 추가되어 ‘건강’ 앱 대시보드에 멋진 앱들을 손쉽게 추가할 수 있죠.2 또한 건강 앱이 목표 정보는 물론 움직이기, 운동하기, 일어서기 데이터까지 Apple Watch에 표시해주기 때문에 모든 건강 정보를 한 곳에서 확인하고 편리하게 서드파티 앱과 공유할 수 있습니다.



9.3 새로운 기능 자세한 내용

이 업데이트는 iPhone, iPad 및 iPod touch의 메모, News, 건강, Apple Music의 기능을 향상하고 Night Shift라는 새로운 기능을 추가합니다. Night Shift는 밤에 화면의 색상을 색상 스펙트럼의 가장 따뜻한 색으로 변경하여 수면에 도움을 줍니다. 새로운 기능, 기능 향상 및 오류 수정에 관한 자세한 내용은 다음과 같습니다.

Night Shift
- Night Shift 기능을 활성화하면 iOS 기기의 시계와 지리적 위치를 사용하여 사용자가 있는 장소의 일몰 시각을 파악한 다음, 화면의 색상을 색상 스펙트럼의 가장 따뜻한 색으로 자동 변경합니다. 이 기능은 수면에 도움을 줄 수 있습니다.

메모 기능 향상
- 사용자의 개인적인 데이터가 기재된 메모를 Touch ID 또는 암호로 보호
- 알파벳, 생성일, 또는 변경일 순으로 메모 정렬
- 스케치를 사용할 때 두 손가락으로 쓸어넘기거나 새로운 스케치 버튼을 탭하여 손쉽게 새로운 캔버스 열기
- 새로운 목록을 간편하게 생성할 수 있도록 모든 메모 하단에 새로운 체크 리스트 버튼 추가
- 메모의 이미지 또는 첨부 파일을 길게 눌러서 큰 이미지나 첨부 파일 대신 축소판으로 보기
- 메모에 있는 사진 및 비디오를 메모에만 저장할지 사진 App에도 추가할지 선택 가능
- Evernote에서 보낸 파일을 길게 눌러서 그 콘텐츠를 메모로 가져오기

새로운 기능 향상
- 추천 뉴스에서 하루의 가장 중요한 뉴스를 알려주는 인기 기사 섹션 새로 추가
- Apple News 에디터가 엄선한 기사를 에디터 추천에서 탐색하고, 선정된 채널 및 토픽 탐색 가능
- iPhone의 추천 뉴스에서 기사를 왼쪽으로 쓸어넘겨서 간편하게 공유 또는 저장하고 오른쪽으로 쓸어넘겨서 옵션 더 보기
- 추천 뉴스에서 기사를 열지 않고도 비디오 기사를 바로 재생
- iPhone에서 가로 화면 방향으로 기사 또는 비디오 보기
- 기사를 읽기 편하게 텍스트 크기 변경

건강 기능 향상
- 건강 App에 체중, 운동, 수면 등의 데이터 종류와 관련된 타사 App 표시
- 건강 대시보드에 Apple Watch의 움직이기, 운동하기, 일어서기 활동 데이터 및 목표 지원 추가
- 홈 화면에서 3D Touch 빠른 동작을 사용하여 대시보드 및 의료 정보에 간편하게 접근
- 타사 App도 HealthKit을 통해 Apple Watch의 활동 링 및 요약에 접근 가능

Apple Music 기능 향상
- Apple Music 카탈로그의 노래를 보관함에 추가할 필요 없이 재생목록에 바로 추가
- iPad에서 뮤직 비디오를 전체 화면으로 보기
- 라디오를 켜지 않고도 라디오 탭을 통해 Beats 1에서 재생되는 항목 바로 보기
- ‘지금 재생 중’에 재생 중인 노래 제목을 탭하여 앨범으로 이동
- Apple Music 카탈로그의 앨범에서 가장 인기 있는 노래 보기

사진 기능 향상
- Live Photo를 스틸 이미지로 변경: Live Photo에서 복제하기를 탭하면 Live Photo로 복제할지 스틸 이미지로 복제할지 선택할 수 있음
- iCloud 사진 보관함에 저장된 원본 사진 또는 비디오를 전체 사이즈로 다운로드할 때의 성능 향상
- AirDrop 및 메시지를 사용하여 iOS와 OS X 간에 Live Photo 공유

iBooks 기능 향상
- iBooks에서 PDF 파일을 iCloud에 저장하여 모든 기기에서 사용할 수 있는 기능 추가
- 이전에 구입한 오디오북을 iBooks Store에서 다운로드하는 기능 추가
- 가족 공유를 통해 오디오북 구입 항목을 가족 간에 공유하는 기능 추가
- 만화를 볼 때 페이지를 빠르게 넘기고 텍스트 크기를 간편하게 조절하는 새로운 제어 추가
- Apple Pencil로 좋아하는 구문을 하이라이트하고 저장하는 기능 지원

교육 기능 향상
- 여러 명의 학생이 한 대의 iPad를 서로 다른 시간에 각자 이용할 수 있는 공유된 iPad 기능 미리 보기 소개
- 관리되는 Apple ID로 iCloud에 로그인할 수 있는 지원 추가
- 새로운 교실 App과의 호환성 추가
- 홈 화면에서 App의 정렬을 제어하는 구성 옵션 새로 제공
- 홈 화면에 App을 표시하거나 가릴 수 있는 새로운 제어 추가
- iCloud 사진 보관함 및 Apple Music의 새로운 제한 사항에 대한 지원 추가

CarPlay 기능 향상
- Apple Music 구독 멤버의 CarPlay 추천 음악 및 새로운 콘텐츠 사용 지원
- 지도에서 주유소, 주차장, 음식점, 커피 및 기타 운행에 도움이 되는 정보를 빨리 찾아볼 수 있는 새로운 주변 검색 화면 추가
- CarPlay에서 Siri를 사용하여 메시지를 읽거나 작성할 때 더 간략한 인터페이스 제공
- CarPlay의 다른 오디오 소스 간에 균등한 사운드 레벨 제공

Dolby Digital Plus
- Apple Lightning Digital AV 어댑터를 사용하여 멀티채널 출력 지원과 함께 Dolby Digital Plus 오디오 스트림으로 인코딩한 비디오 재생 지원 추가

하드웨어 키보드 기능 향상 및 오류 수정
- Spotlight, Mail 및 Safari에서 목록을 탐색할 때 화살표 키 사용 가능
- Mail에서 스페이스 바를 사용하여 스크롤 가능
- Safari에서 스페이스 바를 사용하여 스크롤 할 때의 기능 향상
- 하드웨어 키보드에 연결되어 있을 때 단축키 막대에서 소프트웨어 키보드를 불러오는 기능 추가
- 하드웨어 키보드를 사용하여 iPad를 잠금 해제할 수 없던 오류 수정
- 종속적 로그인 페이지에서 하드웨어 키보드가 반응하지 않던 문제 해결
- 하드웨어 키보드에 연결되면 단축키 막대 뒤의 메시지 입력 필드가 사라지던 문제 수정

기타 기능 향상
- 지도에서 특정 대중교통 라인을 탭하여 목적지 및 정류장을 하이라이트 하여 표시
- 지도에서 제안한 각각의 경로에 대해 복수의 대중교통 옵션이 있는지 표시
- Wallet App에서 카드 또는 패스의 아이콘을 탭하여 카드 또는 패스 관련 App을 표시하는 기능 추가
- 매장에서 결제할 때 Apple Pay로 매장 포인트 프로그램에 가입할 수 있도록 지원 추가
- Podcast에서 비디오 전체 화면 재생 지원
- 활동 App에서 주요 측정치의 월간 요약을 볼 수 있는 새로운 운동 탭 및 운동을 종류별로 필터하는 기능 추가
- 사용자가 안드로이드 기기에 설치했던 App을 바탕으로 ‘iOS로 이동’에서 App Store의 App 추천 제안
- iCloud 저장 공간에서 상태 정보 및 App 내 알림을 통해 저장 공간이 부족해지기 전에 사용자에게 통지
- 모든 iCloud 계정에서 이중 인증 사용 가능
- 스페인어(라틴 아메리카)에 대한 시스템 언어 지원
- 핀란드어(핀란드), 히브리어(이스라엘) 및 말레이시아어(말레이시아)에 대한 Siri 언어 지원 추가

기업용 오류 수정
- 업데이트한 다음 일부 VPP를 통해 구입한 App을 실행할 수 없던 문제 해결
- 기기에 할당된 VPP App에 대한 iCloud 백업 지원 추가
- 구성 프로파일을 업데이트할 때 인증서가 제대로 설치되지 않던 문제 해결
- VPN 세션이 종료된 다음 인터넷 연결에 문제가 발생하던 일부 IPSec VPN 구성 오류 수정
- iBooks가 관리되지 않는 계정에서 기업용 관리되는 PDF 파일을 이메일하던 문제 해결
- 일부 Exchange 사용자의 경우 캘린더가 동일 초대에 응답을 여러 번 보내던 문제 해결
- 기기가 OS X 캐싱 서버에 연결할 때의 안정성 향상

손쉬운 사용 오류 수정
- 스위치 제어 손쉬운 사용 옵션의 3D Touch 안정성 향상
- 받아쓰기를 한 다음 VoiceOver의 말하기에 문제가 생기던 오류 수정
- VoiceOver 사용자가 App Store에 리뷰를 작성할 수 없던 문제 해결
- Bluetooth 헤드셋으로 전화를 받으면 VoiceOver가 반응하지 않던 문제 해결
- 미리 알림에서 큰 텍스트가 읽히지 않던 오류 수정

기타 오류 수정, 기능 및 안정성 향상
- 수동으로 날짜를 1970년 5월 이전으로 변경하면 iOS 기기가 재시동한 다음 켜지지 않던 문제 해결
- 일부 iCloud 백업이 완료되지 않던 오류 수정
- 일부 사용자의 경우 iCloud 백업에서 복원할 때 건강 데이터가 온전하지 않던 문제 해결
- 일부 배터리 잔량 표시가 정확하지 않던 문제 수정
- 일부 사용자의 경우 iMessage 또는 FaceTime을 활성화할 수 없던 문제 해결
- 전화를 받는 동안 전화 인터페이스가 표시되지 않던 문제 수정
- 제한사항 덮어쓰기가 셀룰러 데이터 토글에 적용되던 오류 수정
- Apple Watch에 설치되지 않은 App에 대한 알림 설정이 Watch App에 표시되는 문제 해결
- 키보드에서 3D Touch를 사용할 때의 안정성 향상
- 음성 메시지를 설정할 때의 전화 App 안정성 향상
- 기기의 저장 공간이 적을 때의 Mail App 안정성 향상
- Mail Drop을 사용하여 대용량 첨부 파일을 보낼 때의 Mail 안정성 향상

반응형
Posted by [PineTree]
ORACLE/ADMIN2016. 2. 18. 10:09
반응형

Truncate Table From a Remote Database


Truncating from a remote database is not allowed. On a development database environment, developers are in need of truncating certain tables on a regular basis. Delete is allowed over database link, that’s an option. But, that’s a bad example for allowing fragmentation and high water mark over the period of time.

If you try to truncate a table on a remote database, you will get the following error:
ORA-02021: DDL operations are not allowed on a remote database.

As, procedure can be executed over a dblink, so following workaround can be a good option on such scenario.

1.    Create a procedure on Remote Database that can truncate
CREATE OR REPLACE PROCEDURE
Trunc_Rem_Tab(p_table_name VARCHAR2) AS
   v_sql_error_code PLS_INTEGER;
   v_sql_error_message VARCHAR2(512);
BEGIN
   EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || p_table_name;
EXCEPTION
   WHEN OTHERS THEN
      v_sql_error_code := SQLCODE;
      v_sql_error_message := SQLERRM(v_sql_error_code);
      DBMS_OUTPUT.ENABLE(5000);
      DBMS_OUTPUT.PUT_LINE('OTHER ERROR');
      DBMS_OUTPUT.PUT_LINE(v_sql_error_message);
END Truncate_Remote_Table;

2.    Execute the procedure from local database.
BEGIN
   Trunc_Rem_Tab@REMOTE_LINK('TEST');
END;


반응형
Posted by [PineTree]
ORACLE/TroubleShooting2015. 10. 26. 21:44
반응형

http://u.gzit.org/blog-27-3455.html

아래 로그가 설치 중에 root.sh  실행 중에 에러 나오면 아래 단계대로 조치하면 된다.

    Step-1) cd /usr/sbin/cluster/utilities
             mv cldomain cldomain_orig
    Step-2) Remove "hagsuser" group using smit security command
    Step-3) cd /var/ha/soc
            rm -rf *clients*
    Step-4) Modify rootpre.sh file by removing HACMP related part from this file and run rootpre.sh again.


##########################################################################

  
2015-01-26 16:27:45: platform_family=unix
2015-01-26 16:27:45: srvctl_trc_suff=0
2015-01-26 16:27:45: user_is_superuser=1
2015-01-26 16:27:45: ### Printing of configuration values complete ###
2015-01-26 16:27:45: USER_IGNORED_PREREQ  is set to 1
2015-01-26 16:27:45: User ignored Prerequisites during installation
2015-01-26 16:27:48: ###### Begin DIE Stack Trace ######
2015-01-26 16:27:48:     Package         File                 Line Calling   
2015-01-26 16:27:48:     --------------- -------------------- ---- ----------
2015-01-26 16:27:48:  1: main            rootcrs.pl            393 crsconfig_lib::dietrap
2015-01-26 16:27:48:  2: crsconfig_lib   crsconfig_lib.pm     6235 main::__ANON__
2015-01-26 16:27:48:  3: crsconfig_lib   crsconfig_lib.pm     6780 crsconfig_lib::set_file_perms
2015-01-26 16:27:48:  4: main            rootcrs.pl            485 crsconfig_lib::run_env_setup_modules
2015-01-26 16:27:48: ####### End DIE Stack Trace #######
2015-01-26 16:27:48: '' checkpoint has failed



반응형
Posted by [PineTree]
ORACLE/Migration2015. 9. 14. 21:37
반응형

RMAN을 사용한 raw device migration


출 처: http://jhroom.co.kr/21369
예전에 테스트했던 자료인데.. ASM -> filesystem의 경우에도 가능합니다..
개요
Oracle datafile을 raw device에서 file system file로, 또는 반대로 file system에서 raw device로 변환하기 위해 일반적으로 dd 명령을 주로 사용하게 되는데, Operating System마다 각기 다른 raw device control block size를 가지고 있기 때문에 작업 수행시 추가적인 확인 작업이 필요하다. 그러나 RMAN을 사용하여 변환 작업을 수행하면 이와 같은 과정 없이 변환이 가능하다.
작업절차
본 시나리오에서는 데이터베이스 전체에 대해 raw device/file system 상호 변환하는 과정을 테스트하였다.

##        RAW DEVICE -> FILE SYSTEM

1. Database mount

SQL> startup mount

2. Control file 재생성을 위해 trace 형태로 백업 수행

SQL> alter database backup controlfile to trace;

3. Raw device로 되어 있는 spfile을 pfile로 변경

SQL> create pfile from spfile;

4. Password file 재생성

ORA10@/oracle/product/10.2.0/dbs> orapwd file=orapwORA10 password=oracle force=y

5. RMAN을 이용하여 raw device datafile을 file system으로 변환

ORA10@/oracle> rman nocatalog target /
RMAN> copy datafile '/dev/raw/raw1' to '/oracle/oradata/ORA10/system.dbf'; -- 이처럼 파일마다 개별적으로 작업이 가능하지만, DB 전체를 복사할 경우 아래와 같이 작업한다.
RMAN> backup as copy database;

6. 위 단계에서 backup된 datafile들을 실제로 사용할 file 이름으로 변경

ORA10@/oracle> mv data_D-ORA10_I-650271866_TS-SYSTEM_FNO-1_04jsnkjp /oracle/oradata/ORA10/system.dbf
ORA10@/oracle> mv data_D-ORA10_I-650271866_TS-UNDOTBS1_FNO-2_05jsnkl6 /oracle/oradata/ORA10/undotbs1.dbf
ORA10@/oracle> mv data_D-ORA10_I-650271866_TS-SYSAUX_FNO-3_06jsnkmt /oracle/oradata/ORA10/sysaux.dbf
ORA10@/oracle> mv data_D-ORA10_I-650271866_TS-USERS_FNO-4_07jsnkol /oracle/oradata/ORA10/users.dbf

7. Parameter file(init.ora)을 열어 재 생성될 control file 경로를 지정

ORA10@/oracle/product/10.2.0/dbs> vi initORA10.ora
control_files='/oracle/oradata/ORA10/control01.ctl','/oracle/oradata/ORA10/control02.ctl'

8. Database shutdown

SQL> shutdown immediate;

9. 2번 단계에서 생성된 스크립트를 수정하여 datafile들의 새로운 경로를 지정한 후, resetlogs 옵션으로 데이터베이스를 오픈한다. 그리고 오픈 후 temp file들도 생성해 준다.

SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA10" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/oracle/oradata/ORA10/redo01.dbf'  SIZE 45M,
  GROUP 2 '/oracle/oradata/ORA10/redo02.dbf'  SIZE 45M
DATAFILE
  '/oracle/oradata/ORA10/sysaux.dbf',  
  '/oracle/oradata/ORA10/system.dbf',  
  '/oracle/oradata/ORA10/undotbs1.dbf', 
  '/oracle/oradata/ORA10/users.dbf'
CHARACTER SET KO16MSWIN949;
 
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
ORA-00279: change 179042 generated at 10/09/2008 14:50:53 needed for thread 1
ORA-00289: suggestion : /oracle/product/10.2.0/dbs/arch1_11_667665402.dbf
ORA-00280: change 179042 for thread 1 is in sequence #11
 
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
Media recovery cancelled.
SQL> ALTER DATABASE OPEN RESETLOGS;
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/oradata/ORA10/temp.dbf' SIZE 200M;


##        FILE SYSTEM -> RAW DEVICE

1. Database mount

SQL> startup mount

2. Control file 재생성을 위해 trace 형태로 백업 수행

SQL> alter database backup controlfile to trace;

3. Password file을 raw device로 변경

ORA10@/oracle/product/10.2.0/dbs> dd if=orapwORA10 of=/dev/raw/raw13
ORA10@/oracle/product/10.2.0/dbs> rm -f orapwORA10
ORA10@/oracle/product/10.2.0/dbs> ln -s /dev/raw/raw13 orapwORA10

4. RMAN을 사용하여 file system datafile을 raw device로 변환

ORA10@/oracle> rman nocatalog target /
RMAN> copy datafile '/oracle/oradata/ORA10/system.dbf' to '/dev/raw/raw1';
RMAN> copy datafile '/oracle/oradata/ORA10/sysaux.dbf' to '/dev/raw/raw2';
RMAN> copy datafile '/oracle/oradata/ORA10/users.dbf' to '/dev/raw/raw6';
RMAN> copy datafile '/oracle/oradata/ORA10/undotbs1.dbf' to '/dev/raw/raw3';

5. Parameter file(init.ora)을 수정하여 재 생성될 control file의 경로 지정

ORA10@/oracle/product/10.2.0/dbs> vi initORA10.ora
control_files='/dev/raw/raw10','/dev/raw/raw11'

6. Database shutdown

SQL> shutdown immediate;

7. 2번 단계에서 생성된 스크립트를 수정하여 datafile들의 새로운 경로를 지정한 후, resetlogs 옵션으로 데이터베이스를 오픈한다. 그리고 오픈 후 temp file들도 생성해 준다.

SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA10" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/dev/raw/raw8'  SIZE 45M,
  GROUP 2 '/dev/raw/raw9'  SIZE 45M
-- STANDBY LOGFILE
DATAFILE
  '/dev/raw/raw1',
  '/dev/raw/raw3',
  '/dev/raw/raw2',
  '/dev/raw/raw6'
CHARACTER SET KO16MSWIN949
;

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
ORA-00279: change 179846 generated at 10/09/2008 16:45:11 needed for thread 1
ORA-00289: suggestion : /oracle/product/10.2.0/dbs/arch1_1_667672438.dbf
ORA-00280: change 179846 for thread 1 is in sequence #1
  
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
Media recovery cancelled.
SQL> ALTER DATABASE OPEN RESETLOGS;
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/dev/raw/raw5' size 190M REUSE;

8. File system으로 되어 있는 pfile을 raw device spfile로 변환

SQL> create spfile='/dev/raw/raw12' from pfile;

9. Parameter file을 수정하여 spfile을 사용하도록 지정한다.

ORA10@/oracle/product/10.2.0/dbs> vi initORA10.ora
SPFILE=/dev/raw/raw12


반응형
Posted by [PineTree]
ORACLE/Migration2015. 9. 14. 21:31
반응형
출처 : http://blog.naver.com/itisksc/30046860726
1. raw device에는 LVCB(Logical Volume Control Block)가 있지만
   file system에는 없음.

 

   - bs    : 파일 입출력의 block(버퍼) 크기

   - skip  : 입력 파일에서 처리하지 않고 통과할 블록의 개수
             (Raw Device to Filesystem 복사 시 지정해야 함)
   - seek  : 출력 파일에서 처리하지 않고 통과할 블록의 개수
             (Filesystem to Raw Device 복사 시 지정해야 함)

   - count : 복사할 회수 or 블록의 개수 (생략 시 모든 데이터 복사 )

             (Raw Device to Filesystem 복사 시 반드시 명시해야 함,
              그 이외의 경우는 생략 가능)

플랫폼
LVCB
플랫폼
LVCB
Solaris
0
True64
64KB
HP-UX
0
Linux
0
AIX
4KB
Windows
0

 

2. dbfsize로 확인

   $ORACLE_HOME/bin/dbfsize <Oracle Datafile 명>

   [file system 결과]
   /data05/TESTDB] dbfsize UNDO01_01.dbf
   Database file: UNDO01_01.dbf
   Database file type: file system             : File Type
   Database file size: 128000 8192 byte blocks :8192 byte Block이 128000 개

 

   [raw device 결과]

   Database file type: raw device             : File Type

   Database file size: 1408 8192 byte blocks  : 8192 byte Block이 1408 개

   ※ dbsize로 조회한 결과(Dictionary View에서 select로 조회한
      block 수도 마찬가지)에는 Datafile Header Block 및 LVCB가 포함되지 않음
 
      다음과 같은 경우에는 파일이 손상된 경우이므로 다시 복사
      Header block file size is bad;            trying raw file format...
      Header block magic number is bad
 
3. 참고사항
1) Raw Device 에서 Filesystem으로 변환
   dd if=/dev/rv_data001 of=/data01/TESTDB/data001.dbf bs=4096
      skip=1 count=2818
2) Filesystem 에서 Raw Device로 변환
   dd if=/data01/TESTDB/data001.dbf of=/dev/rv_data001 bs=4096 seek=1
3) Raw Device 에서 Raw Device로 복사
   dd if=/dev/re_data001 of=/dev/rv_data001_bk bs=4096 skip=1 seek=1
4) Filesystem 에서 file system으로 복사
   cp /data01/TESTDB/data001.dbf /data01/TESTDB/data001.bak


반응형
Posted by [PineTree]