1. db를 생성한다.(dbca사용 or ddl 로 생성)
db 생성후에 할일
1) $ORACLE_HOME/dbs/init[SID].ora 생성
$cp init.ora init[SID].ora
2) 내용수정
db_name=디비이름(8자리까지)
shared_pool_size = 62198988
control_files = (/oradata경로/SID명/control01.ctl, /oradata경로/SID명/control02.ctl, /oradata경로/SID명/control03.ctl)
compatible = 10.2.0.1 #주석풀고 수정
2. listener.ora 에 리스너등록
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
#기존 리스너 추가
(SID_DESC =
(SID_NAME = DEF1)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
)
#생성한 리스너추가
(SID_DESC =
(SID_NAME = DEF1LOG)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
)
)
3. tnsnames.ora 에서 생성한 db(SID)를 설정한다.
DEF1LOG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DEF1LOG)
)
)
4. dba로 접속해서 사용자에게 권한을 설정한다.
grant CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK to 유저명;
5. db link를 생성한다
CREATE PUBLIC DATABASE LINK "DEF1LOG.REGRESS.RDBMS.DEV.US.ORACLE.COM" -- 링크명(DEFCON4LOG 로 생성했지만 자동으로 변경되었음)
CONNECT TO TEST1 -- 접속할 유저(원격지의 유저)
IDENTIFIED BY "TEST1" -- 접속 패스워드
USING 'DEF1LOG';
sql> show parameter global_names;
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
global_names boolean FALSE
위 명령 수행시 value 가 false 로 되어있다면 링크 생성시의 이름과 db명이 달라도 된다.
true 이면 반드시 같아야됨.
6. 접속테스트
sql> select * from tab@DEF1LOG;
db mount 시
sql> conn sys@defcon4log as sysdba
sql> startup
startup시에 에러 발생하면 1번 사항을 확인한다. 안되면 에러코드 구글링~
db 생성후에 할일
1) $ORACLE_HOME/dbs/init[SID].ora 생성
$cp init.ora init[SID].ora
2) 내용수정
db_name=디비이름(8자리까지)
shared_pool_size = 62198988
control_files = (/oradata경로/SID명/control01.ctl, /oradata경로/SID명/control02.ctl, /oradata경로/SID명/control03.ctl)
compatible = 10.2.0.1 #주석풀고 수정
2. listener.ora 에 리스너등록
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
#기존 리스너 추가
(SID_DESC =
(SID_NAME = DEF1)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
)
#생성한 리스너추가
(SID_DESC =
(SID_NAME = DEF1LOG)
(ORACLE_HOME = /home/oracle/app/oracle/product/10.2.0/db_1)
)
)
3. tnsnames.ora 에서 생성한 db(SID)를 설정한다.
DEF1LOG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DEF1LOG)
)
)
4. dba로 접속해서 사용자에게 권한을 설정한다.
grant CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK to 유저명;
5. db link를 생성한다
CREATE PUBLIC DATABASE LINK "DEF1LOG.REGRESS.RDBMS.DEV.US.ORACLE.COM" -- 링크명(DEFCON4LOG 로 생성했지만 자동으로 변경되었음)
CONNECT TO TEST1 -- 접속할 유저(원격지의 유저)
IDENTIFIED BY "TEST1" -- 접속 패스워드
USING 'DEF1LOG';
sql> show parameter global_names;
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
global_names boolean FALSE
위 명령 수행시 value 가 false 로 되어있다면 링크 생성시의 이름과 db명이 달라도 된다.
true 이면 반드시 같아야됨.
6. 접속테스트
sql> select * from tab@DEF1LOG;
db mount 시
sql> conn sys@defcon4log as sysdba
sql> startup
startup시에 에러 발생하면 1번 사항을 확인한다. 안되면 에러코드 구글링~
'데이타베이스 > Oracle' 카테고리의 다른 글
ora 에러 모음 (원문 포함) (0) | 2018.09.08 |
---|---|
오라클 동적 쿼리를 이용한 CURSOR 사용 (0) | 2011.08.31 |
oracle 10g scheduler (0) | 2011.08.01 |
[Oracle] ORA-00257 : 아카이브 오류, 해제되기 전에는 내부 연결만 가능 (0) | 2011.07.29 |
ORA-01078:Failure in processing system parameters (0) | 2011.07.15 |