데이터베이스2012. 8. 1. 13:04

Unable to create an instance of the Java Virtual Machine Located at path ....jvm.dll

라는 에러가 발생하게 되면

 

sqldeveloper\bin\sqldeveloper.conf 파일을 열고

AddVMOption -Xmx256M를 붙여 주면 해결 된다.

Posted by 미랭군
데이터베이스2012. 5. 24. 13:15

SELECT TO_DATE('20080628', 'YYYYMMDD') + LEV - 1 AS RESULT_DATE
FROM (SELECT LEVEL LEV
FROM DUAL
CONNECT BY LEVEL <= (TO_DATE('20080702', 'YYYYMMDD') - TO_DATE('20080628', 'YYYYMMDD')+1)
)

 

Posted by 미랭군
데이터베이스2012. 4. 9. 12:34

<bean id="com.ex.MemberDao" class="com.ex.MemberDaoImpl">
     <property name="dataSource" ref="memberDatabaseDataSource"/>
</bean>

<bean id="com.ex.StoreDao" class="com.ex.StoreDaoImpl">
     <property name="dataSource" ref="storeDatabaseDataSource"/>
</bean>

<tx:annotation-driven transaction-manager="memberTransactionManager"/>
<tx:annotation-driven transaction-manager="storeTransactionManager"/>

<bean id="memberTransactionManager"     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource"><ref bean="memberDatabaseDataSource"/></property>
</bean>

<bean id="storeTransactionManager"     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource"><ref bean="storeDatabaseDataSource"/></property>
</bean>

Posted by 미랭군
데이터베이스2012. 3. 7. 17:26

SELECT u.tablespace_name "tablespace_name",
 u.file_name,
       u.bytes / 1024000 "Size(MB)",
       trunc( (u.bytes - sum(nvl(f.bytes,0))) / u.bytes * 100, 2) "Used(%)"
FROM DBA_FREE_SPACE f, DBA_DATA_FILES u
WHERE f.file_id(+) = u.file_id
GROUP BY u.tablespace_name, u.file_name, u.bytes
ORDER BY u.tablespace_name;
Posted by 미랭군
데이터베이스2012. 1. 30. 16:32

CREATE TABLESPACE "신규 테이블 스페이스명"
DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\"신규 테이블 스페이스명.dbf"
SIZE 1073741824 AUTOEXTEND OFF LOGGING
ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE ;

-- 임시테이블 스페이스 생성
CREATE TEMPORARY TABLESPACE "신규 임시테이블 스페이스명"
TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\"신규 임시테이블 스페이스명"'
SIZE 104857600 AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL UNIFORM
SIZE 1048576 ;

-- 계정생성
CREATE USER "계정명"
IDENTIFIED BY VALUES 'D91CE2F6ADFDBCBF'
DEFAULT TABLESPACE TS_LODRIGOCEON_DATA
TEMPORARY TABLESPACE TS_LODRIGOCEON_TEMP
QUOTA UNLIMITED ON "신규 테이블 스페이스명"
PROFILE DEFAULT
ACCOUNT UNLOCK ;

-- 권한설정
GRANT CONNECT TO "계정명";
GRANT RESOURCE TO "계정명";
GRANT UNLIMITED TABLESPACE TO "계정명";

-- 비번변경
ALTER USER "계정명" identified bY "비밀번호";

Posted by 미랭군
데이터베이스2012. 1. 26. 14:21

지금껏 오라클을 사용하면서도 SID와 Service Name은 거의 구분해서 사용하지 않았다.

덕분에 최근까지는 SID와 Service의 차이를 인식하지 못하고 사용해 왔다.

사실 일반적인 테스트 환경이나 소규모의 경우 한개의 DB서버에 한개의 인스턴스만 사용한다.

이런 환경에서는 SID와 Service Name을 구분할 필요가 없었던것.

단순히 구분짓자면 이렇게 말할수 있다.

SID = DB 하나의 인스턴스

Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것

쉽게 예를 들어보자.

서버 한대에 인스턴스를 여러개 생성하여 orcl1, orcl2 로 각각 생성했다고 하자.

각각의 인스턴스는 orcl1, orcl2 라는 SID를 갖게 된다.

해당 서버에서 두개의 인스턴스를 묶어 사용할경우, orcl 이라는 Service Name을 갖을수 있다.

이외에도 서버 두대에 설치하여 각각 미러링 처리하여 동일한 서버인것 처럼 활용할경우

각각의 서버는 서로다른 SID를 갖게 되지만 Service Name을 동일하게 하여 같은 서버 처럼 활용할수 있다.

Posted by 미랭군
데이터베이스2012. 1. 26. 14:08

Oracle 8i 미만 버젼에서는 Oracle SID(System Identification) 정보만을 이용
하여 클라이언트에서 서버로의 접속이 이루어졌으나, Oracle 8i부터 새로이 소개된
Service Name을 이용하여 데이타베이스에 접속할 수 있게 되었다.

그러나 만일 Service Name을 적절히 기술되지 않으면 다음과 같은 오류를 만나게
되므로 그 사용 방법을 다루고자 한다.

"ORA-12514 :TNS - Could not resolve service name"
"ORA-12154 :TNS - Could not resolve service name"

Net8 Easy Configuration 또는 Net8 Assistant 도구에서 Net Service Name을
입력하여야 하며, SERVICE_NAME은 TNSNAMES.ORA 화일에 CONNECT_DATA 절에
기술하여 하며, 과거 버젼의 (SID=<SIDname>) 절을 대치시킨 것이다.

SERVICE_NAME을 TNSNAMES.ORA에 지정하는 방법은 다음 세 가지로 가능하다.


(1) 만일 LISTENER.ORA에 GLOBAL_DBNAME 파라메터가 지정되어 있다면, 그 이름
을 이용한다.

(참고로 GLOBAL_DBNAME은 init 파라메터 <DB_NAME>.<DB_DOMAIN>의 형태로
구성된다.)

listener.ora:
-------------
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = RC815.o200.kr.oracle.com)
(ORACLE_HOME = /mnt3/rctest8i/app/oracle/product/8.1.5)
(SID_NAME = RC815)
)
)

tnsnames.ora:
-------------
ora815 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = o200)(PORT = 1588))
)
(CONNECT_DATA =
(SERVICE_NAME = RC815.o200.kr.oracle.com)
)
)


(2) 초기화 파라메터 <SERVICE_NAMES>.<DB_DOMAIN>의 형태를 이용한다.

(참고로 SERVICE_NAMES의 디폴트 값은 <DB_NAME>.<DB_DOMAIN>이므로
SERVICE_NAMES이 명시적으로 지정되어 있지 않으면 <DB_NAME>.<DB_DOMAIN>
형태의 지정이 가능하다.)

init<SID>.ora:
--------------
SERVICE_NAMES = MYDB
DB_DOMAIN = o200.kr.oracle.com

tnsnames.ora:
-------------
ora815 =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB.o200.kr.oracle.com)
)
)

만일 둘 이상의 service name의 지정이 필요한 경우에는 다음과 같이
init<SID>.ora화일에 SERVICE_NAMES에 이름을 연속하여 지정한 후 사용할 수 있다.

init<SID>.ora:
--------------
SERVICE_NAMES = MYDB1, MYDB2
DB_DOMAIN = o200.kr.oracle.com

tnsnames.ora:
-------------
ora815_A =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB1.o200.kr.oracle.com)
)
)

ora815_B =
...
(CONNECT_DATA =
(SERVICE_NAME = MYDB2.o200.kr.oracle.com)
)
)

(3) 마지막으로 init<SID>.ora에 DB_DOMAIN 파라메터가 없고, listener.ora에도
GLOBAL_DBNAME이 없는 경우에는 간단히 SID 값을 사용한다.

tnsnames.ora:
-------------
ora815 =
...
(CONNECT_DATA =
(SERVICE_NAME = ORA815)
)
)
Posted by 미랭군
데이터베이스2011. 11. 8. 16:07

root로 접속 후

[root@NMS_DBMS ~]#su - oracle
oracle@:/home/oracle>sqlplus "/as sysdba"

위와 같이 sqlplus에 접속합니다.

마지막으로.

select * from dba_profiles where profile = 'DEFAULT';

위 쿼리로 password_life_time 값을 확인합니다.

유효기간 설정을 변경합니다.

alter profile default limit password_life_time unlimited;

Posted by 미랭군