Dba_rollback_segs in Oracle 11.1.0.7.0
Hi.
As far i Know Oracle 10 and 11 g uses undo segments instead of roll back segments.
Then what is the purpose of dba_rollback_segs in 11g.
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - ProductionI can able to query fro this table
SQL> select SEGMENT_NAME,TABLESPACE_NAME,STATUS from dba_rollback_segs
2 where SEGMENT_NAME='_SYSSMU72$';
SEGMENT_NAME TABLESPACE_NAME STATUS
_SYSSMU72$ APPS_UNDOTS1 ONLINEPlease clarify .
Thanks in Advance
Edited by: Vijay.Cherukuri on Jun 25, 2012 1:10 PM
Hi Srini ,
Thanks for you reply.
As per MOS DOC its says " ROLLBACK segments are called UNDO segments when AUM is enabled. " .
That means When we have AUM enabled . there no difference between undo and rollback segments (both are same ) . Only difference is we can not manage them manually as we can in version 8i and 9i. They are managed by RDBMS in 10 and 11g when AUM enabled.
-- If AUM is disabled then there are no rollback segments in 10 and 11g ,we have only undo segs ? is it correct ?
Please clarify
Thanks
Similar Messages
-
Oracle 10g - Database does not respond to the application users
Hi all,
I am using ORACLE 10g database with 75 users connections 50 local and 20 remote users using ADSL and dial up modem. Operating system on server is
Windows 2003.
All of a sudden users making the entry get disconnected getting the error as
ORA-12516: TNS:listener could not find available handler with matching protocol stack
Other case users when using the appliaction get their PC hanged and connection
to oracle fails again. they cannot login to the application that time, the error is
ORA-04031: unable to allocate %s bytes of shared memory ("%s","%s","%s","%s")
Twice a day the users trying to login cannot access the database server.
Front end application is in VB using exe file. When the users cannot logon
to the database. I manually stop the ORACLE services(including DB console) and
then stop the listener.
This practice is going on since last two months.
Server Scenario
After Installing Oracle Standard Edition 10g.
System tablespace utilization is 98.5% which is 465 MB out of total 470 MB.
There is only one Rollback Segment named as SYSTEM.
when we install 9i 4 rollback segments as RO1, RO2, RO3, RO4 are created
by default.
Do I need to add the datafile to SYSTEM table space as its current usage is 99.15% and its auto extend is ticked on using auto extent as 10 MB. I tried adding another datafile during weekend downtime. when I resumed on saturday morning I found it did not add any datafile which I had put on thursday eveninig as system02.dbf.
Do I need to add a new datafile to the SYSTEM tablespace ?
Do I need to create new rollback segments apart from SYSTEM rollback segment ?
My current schema size 15360Mb with its usage as 9.32% (1432.25 Mb).
Please reply !!!Hi Paul
My Server configuration is
Compaq ML 370
3.4 Ghz Processor
3.5 GB RAM
SQL> show sga
Total System Global Area 171966464 bytes
Fixed Size 787988 bytes
Variable Size 145488364 bytes
Database Buffers 25165824 bytes
Redo Buffers 524288 bytes
SQL> select * from v$sgastat;
POOL NAME BYTES
fixed_sga 787988
buffer_cache 25165824
log_buffer 524288
shared pool subheap 55600
shared pool KQR L SO 218160
shared pool KQR M PO 1329244
shared pool KQR M SO 605364
shared pool KQR S PO 164156
shared pool KQR S SO 6144
shared pool KTI-UNDO 1235304
shared pool sql area 5368208
shared pool KGLS heap 1597560
shared pool joxs heap 6004
shared pool row cache 3707272
shared pool parameters 17520
shared pool repository 19396
shared pool ASH buffers 4194304
shared pool free memory 16586072
shared pool PL/SQL DIANA 679456
shared pool KSPD key heap 4220
shared pool PL/SQL MPCODE 1167992
shared pool library cache 11368964
shared pool miscellaneous 25942980
shared pool pl/sql source 88
shared pool PLS non-lib hp 29816
shared pool XDB Schema Cac 3594144
shared pool alert threshol 3460
shared pool joxlod exec hp 355820
shared pool table definiti 5880
shared pool temporary tabl 4932
shared pool trigger defini 12848
shared pool trigger inform 1892
shared pool type object de 20256
shared pool private strands 1198080
shared pool event statistics per sess 4384640
shared pool fixed allocation callback 304
large pool free memory 8388608
java pool joxs heap 233856
java pool free memory 44743296
java pool joxlod exec hp 5354496
40 rows selected.
SQL> select segment_name, owner, status
2 from dba_rollback_segs;
SEGMENT_NAME OWNER STATUS
SYSTEM SYS ONLINE
_SYSSMU1$ PUBLIC ONLINE
_SYSSMU2$ PUBLIC ONLINE
_SYSSMU3$ PUBLIC ONLINE
_SYSSMU4$ PUBLIC ONLINE
_SYSSMU5$ PUBLIC ONLINE
_SYSSMU6$ PUBLIC ONLINE
_SYSSMU7$ PUBLIC ONLINE
_SYSSMU8$ PUBLIC ONLINE
_SYSSMU9$ PUBLIC ONLINE
_SYSSMU10$ PUBLIC ONLINE
SEGMENT_NAME OWNER STATUS
_SYSSMU11$ PUBLIC ONLINE
_SYSSMU12$ PUBLIC ONLINE
_SYSSMU13$ PUBLIC ONLINE
_SYSSMU14$ PUBLIC ONLINE
_SYSSMU15$ PUBLIC OFFLINE
_SYSSMU16$ PUBLIC OFFLINE
_SYSSMU17$ PUBLIC OFFLINE
_SYSSMU18$ PUBLIC OFFLINE
_SYSSMU19$ PUBLIC OFFLINE
_SYSSMU20$ PUBLIC OFFLINE
_SYSSMU21$ PUBLIC OFFLINE
SEGMENT_NAME OWNER STATUS
_SYSSMU22$ PUBLIC OFFLINE
_SYSSMU23$ PUBLIC OFFLINE
_SYSSMU24$ PUBLIC OFFLINE
_SYSSMU25$ PUBLIC OFFLINE
_SYSSMU26$ PUBLIC OFFLINE
27 rows selected.
Currently AUTOEXTEND is ticked as on for SYSTEM tablespace and its size is showing as 99.16% (466.06 mb) used which is very much nearing to its full capacity of 470 mb.
Currently 75 users - 50 Local users and 20 Remote Users are connected to the server. Is there any limit that Server should have limited connections.
Server has Windows 2003 Standard Edition. Has Windows 2003 anything to do
with the no. of users getting connected ? -
Oracle Export and Import of XE application
I am trying to do an Oracle Export of an EX application and an Import to another PC. Can it be done?
I have encountered several problems. Either it brought over the application, but no Pages or I cannot access the Login page.
My reason for this is to handle application updates/changes for 50 odd remote users.
I am using APEX Release 2.1.0.00.39Yes it was a full database export with all schemas.
I ran the following query before and after the import:
select object_type, count(*) from dba_objects where owner = 'FLOWS_020100' group by object_type order by 1;
After the IMPORT, I had less LOBs (4) and Tables(8).
The missing tables are:
DR$WWV_FLOW_OH_IDX$I
DR$WWV_FLOW_OH_IDX$K
DR$WWV_FLOW_OH_IDX$N
DR$WWV_FLOW_OH_IDX$R
DR$WWV_FLOW_OH_PT_IDX$I
DR$WWV_FLOW_OH_PT_IDX$K
DR$WWV_FLOW_OH_PT_IDX$N
DR$WWV_FLOW_OH_PT_IDX$R
The script below was used to reinstate the SYS grants to flows_020100:
Select owner||':'||table_name||':'||privilege from dba_tab_privs where grantee='FLOWS_020100' and grantor='SYS';
The results from the script:
grant SELECT on SYS.OBJ$ to Flows_020100;
grant SELECT on SYS.USER$ to Flows_020100;
grant SELECT on SYS.V_$SESSION to Flows_020100;
grant SELECT on SYS.V_$PARAMETER to Flows_020100;
grant SELECT on SYS.V_$TIMER to Flows_020100;
grant SELECT on SYS.DBA_IND_COLUMNS to Flows_020100;
grant SELECT on SYS.DBA_OBJECTS to Flows_020100;
grant SELECT on SYS.DBA_ROLLBACK_SEGS to Flows_020100;
grant SELECT on SYS.DBA_ROLE_PRIVS to Flows_020100;
grant SELECT on SYS.DBA_SYS_PRIVS to Flows_020100;
grant SELECT on SYS.DBA_SEQUENCES to Flows_020100;
grant SELECT on SYS.DBA_TABLES to Flows_020100;
grant SELECT on SYS.DBA_TAB_COLUMNS to Flows_020100;
grant SELECT on SYS.DBA_TAB_PRIVS to Flows_020100;
grant SELECT on SYS.DBA_USERS to Flows_020100;
grant EXECUTE on SYS.UTL_FILE to Flows_020100;
grant EXECUTE on SYS.UTL_SMTP to Flows_020100;
grant EXECUTE on SYS.UTL_HTTP to Flows_020100;
grant SELECT on SYS.DBA_SEGMENTS to Flows_020100;
grant SELECT on SYS.DBA_FREE_SPACE to Flows_020100;
grant SELECT on SYS.DBA_DATA_FILES to Flows_020100;
grant SELECT on SYS.DBA_TABLESPACES to Flows_020100;
grant EXECUTE on SYS.DBMS_LOCK to Flows_020100;
grant EXECUTE on SYS.DBMS_SYS_SQL to Flows_020100;
grant EXECUTE on SYS.DBMS_FLASHBACK to Flows_020100;
grant EXECUTE on SYS.DBMS_RLS to Flows_020100;
grant EXECUTE on SYS.DBMS_CRYPTO to Flows_020100;
grant EXECUTE on SYS.WWV_FLOW_VAL to Flows_020100;
grant SELECT on SYS.FLOW_SESSIONS to Flows_020100;
grant SELECT on SYS.FLOW_PARAMETERS to Flows_020100;
grant SELECT on SYS.FLOW_SQLAREA to Flows_020100;
grant SELECT on SYS.FLOW_SGA to Flows_020100;
32 rows selected.
FYI:
When I Imported this last time, I Imported by users. Three imports statements for each user flows_020100, flows_files and apex_public_user (XE_DBA).
imp system/passwrd file=g:\common\xe\xedba_full.dmp ignore=y fromuser=flows_020100 touser=flows_020100 log=c:\flows_logs.log
imp system/passwrd file=g:\common\xe\xedba_full.dmp ignore=y fromuser=flows_files touser=flows_files log=c:\files_logs.log
imp system/passwrd file=g:\common\xe\xedba_full.dmp ignore=y fromuser=xe_dba touser=xe_dba log=c:\xe_dba_logs.log
as opposed to my initial IMPORT:
imp system/passwrd file=g:\common\xe\xefull.dmp ignore=y
FYI: I am not getting the Err-1016 "4550" Page "1" not found error. It now lets me log in , but there are[b] no applications. It should have been 5 applications.
Hey, in typing the above statement, I realized that my login page is "101" (default) and Page "1" is a data entry page. -
ORA-01552 error in Oracle 10g DB!!!
Hi,
I have an application running with an Oracle 10g db in Solaris 10 platform.
recently when i tried logging in to my Applicn. i get the following error in its log:-
*"sqociExec error: sqlcode=1552 message=ORA-01552: cannot use system rollback segment for non-system tablespace 'USERS'"*
and my login fails.
Am this apllicn. guy and don't know much about Oracle DB. Also i don't seem to have the comfort of DBA here so am hoping to receive help from
you guys in here.
i tried few tips which i picked from this forum but don't know what to do with its results...here they are..
*1) "SELECT segment_name, tablespace_name, initial_extent, status from dba_rollback_segs;"*
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
SYSTEM SYSTEM 114688
ONLINE
_SYSSMU1$ UNDOTBS1 131072
ONLINE
_SYSSMU2$ UNDOTBS1 131072
ONLINE
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
_SYSSMU3$ UNDOTBS1 131072
ONLINE
_SYSSMU4$ UNDOTBS1 131072
ONLINE
_SYSSMU5$ UNDOTBS1 131072
ONLINE
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
_SYSSMU6$ UNDOTBS1 131072
ONLINE
_SYSSMU7$ UNDOTBS1 131072
ONLINE
_SYSSMU8$ UNDOTBS1 131072
ONLINE
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
_SYSSMU9$ UNDOTBS1 131072
ONLINE
_SYSSMU10$ UNDOTBS1 131072
ONLINE
_SYSSMU11$ UNDOTBS1 131072
OFFLINE
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
_SYSSMU12$ UNDOTBS1 131072
OFFLINE
_SYSSMU13$ UNDOTBS1 131072
OFFLINE
_SYSSMU14$ UNDOTBS1 131072
OFFLINE
SEGMENT_NAME TABLESPACE_NAME INITIAL_EXTENT
STATUS
_SYSSMU15$ UNDOTBS1 131072
OFFLINE
_SYSSMU16$ UNDOTBS1 131072
OFFLINE
_SYSSMU17$ UNDOTBS1 131072
OFFLINE
18 rows selected.
2)*"select name, value from v$parameter where name like '%undo%';"*
NAME
VALUE
undo_management
AUTO
undo_tablespace
UNDOTBS1
undo_retention
900
What next????
Guys Please help me out!!! i have to get the application running soon!!!
please do give steps clearly bcoz am real newbie and the DB we are working on is a *"PRODUCTION"* one
Thanks
kris890466 wrote:
@orawiss
Sorry what precisely should i give in place of 'name' in
*"ALTER ROLLBACK SEGMENT 'name' online."*
In my case?
thanks
kris
Edited by: 890466 on Oct 10, 2011 3:41 AMUndo tablespace names which status are offline shown in your query. -
(V7.2)ORACLE RDBMS에 대한 Q&A
제품 : ORACLE SERVER
작성날짜 : 1998-01-20
(V7.2)ORACLE RDBMS에 대한 Q&A
=============================
1. Q) 여러 사용자들에게 특정 프로그램에 대한 동등한 권한을 주려고 하는데,
GRANT 명령을 반복해서 사용하지 않고 할 수 있는 방법은 무엇입니까?
A) 가장 쉬운 방법은 role을 만들어서 그 role에 새로운 사용자들의 그룹을 지정
하는 방법입니다.
아래의 예제는 scott을 owner로 하는 emp 테이블에 대한 읽기 권한을 부여하는
예제입니다.
SQL> CONNECT system/manager
Connected.
SQL> CREATE ROLE empread;
Role created.
SQL> CONNECT scott/tiger
Connected.
SQL> GRANT SELECT ON emp TO empread;
Grant succeeded.
SQL>CONNECT system/manager
Connected.
SQL> GRANT empread TO aa;
Grant succeeded.
위 예제는 시스템 권한을 가진 DBA가 role을 만드는 과정을 보여줍니다.
다음과 같이 scott 유저로도 role을 생성하고, 관리하는 것이 가능합니다.
SQL> CONNECT scott/tiger
Connected.
SQL> CREATE ROLE empread;
Role created.
SQL> GRANT SELECT ON emp TO empread;
Grant succeeded.
SQL> GRANT empread TO aa;
Grant succeeded.
2. Q) 테이블에 레코드를 insert하려고 하는데, 다음과 같은 에러가 발생합니다.
"unable to extend table table_name in tablespace tablespace_name "
이라는 ORA-1653 에러입니다. 무엇이 문제입니까?
A) 이 에러는 테이블스페이스에 새로운 extent를 생성할 공간이 부족할 때 발생하
는 에러입니다.
이 문제를 해결하기 위해서는 해당 테이블스페이스에 새로운 데이타화일을 생성
해야 합니다.
다음과 같은 명령문을 사용하여 데이타화일을 추가하시기 바랍니다.
SQL> ALTER TABLESPACE tablespace_name ADD DATAFILE datafile SIZE size;
위 명령문을 실행시 datafile을 지정하실 때 실제 물리적인 path를 모두 명시
해 주셔야 합니다.
대안으로, 'ALTER DATABASE DATAFILE name AUTOEXTEND ON' 을 실행하시면,
동적으로 영역을 할당하실 수 있습니다.
3.Q) 데이타베이스에 트랜잭션이 증가하여 'CREATE ROLLBACK SEGMENT' 명령으로
새로운 롤백세그먼트를 생성하였습니다. 그런데, DML문장을 실행시마다 문제가 발
생합니다. 무엇이 문제입니까?
A) 새로 생성한 롤백 세그먼트가 ON-LINE인지 확인해 보아야 합니다.
SQL> CONNECT system/manager
Connected.
SQL> SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
SYSTEM ONLINE
R01 ONLINE
R02 ONLINE
R03 ONLINE
R04 OFFLINE
OFFLINE을 ONLINE으로 만들기 위해서는 다음 명령을 사용하시기 바랍니다.
SQL> ALTER ROLLBACK SEGMENT r04 ONLINE;
Rollback segment altered.
만약, r04를 계속 ONLINE으로 작업하시고자 한다면, init.ora 화일을 열어
다음과 같이 ROLLBACK_SEGMENTS 파라미터에 r04를 추가하시기 바랍니다.
> ROLLBACK_SEGMENTS = (r01, r02, r03, r04)
4. Q) 새로운 유저들을 생성하였는데, 모든 오브젝트들과 temporary segments에
대해서 고정된 테이블스페이스를 유지하려고 한다면 그 방법은 무엇입니까?
A) 다음과 같이 'ALTER USER' 명령문을 사용하시기 바랍니다.
SQL> ALTER USER user_name DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
현재 지정된 테이블스페이스를 보고자 한다면, DBA_USERS 뷰를 조회하시기 바
랍니다.
SQL> SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
FROM DBA_USERS;
[USERNAME] [DEFAULT_TABLESPACE] [TEMPORARY_TABLESPACE]
SYS SYSTEM TEMP
SYSTEM TOOLS TEMP
WWW_DBA SYSTEM SYSTEM
SCOTT USERS TEMP
5. Q) 데이타베이스에 새로운 사용자를 생성하여, default 테이블스페이스와
temporary 테이블스페이스를 지정하였는데, 데이타베이스에 로그온할 수 없다면,
무엇이 문제입니까?
A) 아마 ORA-1045 에러가 발생하였을 것입니다. 이 에러는 CREATE SESSION 권한
이 해당 유저에게 없다는 메시지입니다. GRANT 명령을 사용하여 CREATE SESSION
권한을 해당 유저에게 부여하여야 합니다. 방법은 다음과 같습니다.
SQL> GRANT CONNECT TO newuser;
Grant succeeded.
6. Q) Oracle 데이타베이스에 update 명령을 실행하였는데, hanging 상태입니다.
무엇이 문제입니까?
A) 아마 다른 트랜잭션이 lock을 걸고 있는 레코드에 대해서 update하려고 하였을
것입니다. 새로운 트랜잭션이 시작되기 전에 COMMIT이나 ROLLBACK을 사용하여 해
당 트랜잭션을 종결시켜야 합니다.
이와 같은 상황은 같은 Oracle 유저를 사용하여 각각 다른 윈도우로부터 다중
세션을 열려고할 때나, LOCK이나 SELECT FOR UPDATE 와 같은 명령을 사용하여
EXPLICIT lock을 사용할 때 발생합니다.
7. Q) Alert log 화일을 살펴보니, 'Thread 1 cannot allocate new log
sequence number'라는 메시지가 여러 번 발생한 것을 볼 수 있었습니다.
이 문제를 어떻게 해결해야 합니까?
A) 아마도, redo log 그룹을 사용할 수 있을 때까지 기다리고 있는 상황인 것 같
습니다.
'ALTER DATABASE ADD LOGFILE' 명령을 사용하여 하나 이상의 redo log 그룹을
추가하시기 바랍니다.
8. Q) 50명의 사용자들이 데이타베이스를 액세스하려고 하는데, Multi-Threaded
서버옵션을 사용하지 않습니다. MTS를 사용하려면, 어떻게 해야 합니까?
A) init.ora 화일의 PROCESSES라는 파라미터를 적당히 셋팅해야 합니다.
이 파라미터는 데이타베이스에 동시에 접속할 수 있는 operating system 사용자
프로세스의 최대 수를 지정합니다.
프로세스의 수를 계산할 때, background 프로세스의 수도 더해야 합니다.
9. Q) Parallelism degree 8을 갖는 테이블에 액세스하려고 하는데, 실패하는
경우 무엇이 문제입니까?
A) init.ora 화일의 파라미터 PARALLEL_MAX_SERVERS 값이 적당히 셋팅되어 있어
야 합니다.
10. Q) 새로운 PL/SQL 프로그램을 작성한 후, 그 프로그램들을 실행시키기 전에
shared pool size를 늘리고 싶습니다. 방법은 무엇입니까?
A) init.ora 화일의 파라미터 SHARED_POOL_SIZE 값을 늘려주시기 바랍니다.
이 파라미터는 바이트 단위의 shared pool size를 지정하는 파라미터입니다.
11. Q) 새로운 데이타화일을 추가하려고 하다가 MAXDATAFILES 값에 도달하게 되
어 문제가 생겼습니다.
이 파라미터를 수정할 수 있는 방법은 무엇입니까?
A) MAXDATAFILES라는 파라미터는 init.ora 파라미터가 아닙니다.
모든 MAX 파라미터들은 데이타베이스가 생성될 때 결정되어집니다. 데이타베이스
를 생성할 때, 파라미터를 어떻게 셋팅했는지 보려면, 다음 명령문을 실행시켜
보시기 바랍니다.
SVRMGR> alter database backup controlfile to trace;
다음은 몇 개의 데이타베이스 명령문을 포함하는 SQL 스크립트입니다.
> CREATE CONTROLFILE REUSE DATABASE "733" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 100
LOGFILE
GROUP 1 '/home/orahome/data/733/redo01.log' SIZE 500K,
GROUP 2 '/home/orahome/data/733/redo02.log' SIZE 500K,
GROUP 3 '/home/orahome/data/733/redo03.log' SIZE 500K
DATAFILE
'/home/orahome/data/733/system01.dbf' SIZE 500K,
'/home/orahome/data/733/rbs01.dbf' SIZE 500K,
'/home/orahome/data/733/tools01.dbf' SIZE 500K,
'/home/orahome/data/733/users01.dbf' SIZE 500K,
'/home/orahome/data/733/test1.dbf' SIZE 500K,
'/home/orahome/data/733/temp.dbf' SIZE 500K;
위의 화일을 보면, MAX 파라미터 값을 알 수 있을 것이며, 이 값을 수정하려면
데이타베이스를 재생성하거나, control 화일을 재생성하셔야 합니다. 두 가지 방
법 중에서는 두 번째 방법을 사용하시기 바랍니다. CREATE CONTROLFILE이란 명령
을 사용하시면, 새로운 control 화일을 만들면서 MAX 파라미터 값을 새로 지정합
니다.
12. Q) 데이타베이스를 아카이브로그 모드로 운용하기 위해, 데이타베이스를
shutdown하고, mount한 후에, 데이타베이스를 아카이브로그 모드로 셋팅하였습니
다. 그런데, 접속을 하니 데이타베이스가 hanging 상태가 되었습니다.
이러한 일이 발생한 원인은 무엇이며, 해결방법은 무엇입니까?
A) 데이타베이스를 아카이브로그 모드로 운용하기 위해서는 두 가지 작업이 필요
합니다.
SVRMGR> alter database archivelog;
SVRMGR> log archive start;
아마 첫 번째 작업은 하셨을 것입니다. 그런데, 두 번째 작업을 해주시지 않
았기 때문에 hanging 상태가 된 것입니다. Oracle은 automatic archiving이 되
지 않고, 사용자가 manual archiving을 하기를 기다리고 있는 것입니다.
Archiving을 해 주지 않으면, 새로운 redo log 화일을 생성할 수가 없습니다.
데이타베이스를 열 때마다 이 작업을 해 주셔야하기 때문에, init.ora 화일의
LOG_ARCHIVE_START라는 파라미터를 true로 하시면 automatic archiving이 설정
됩니다.
13. Q)'ALTER DATABASE CREATE DATAFILE'이란 명령을 사용할 때, 주의할 사항은
무엇입니까?
A) 새로운 데이타화일을 생성한 후에, 그 데이타화일을 control 화일에 포함시켜
주어야 합니다.
만약, 백업 control 화일을 사용 중이라면, 새로운 데이타화일을 추가한 후에
control 화일이 백업되어야 한다는 것입니다.제품 : ORACLE SERVER
작성날짜 : 1998-01-20
(V7.2)ORACLE RDBMS에 대한 Q&A
=============================
1. Q) 여러 사용자들에게 특정 프로그램에 대한 동등한 권한을 주려고 하는데,
GRANT 명령을 반복해서 사용하지 않고 할 수 있는 방법은 무엇입니까?
A) 가장 쉬운 방법은 role을 만들어서 그 role에 새로운 사용자들의 그룹을 지정
하는 방법입니다.
아래의 예제는 scott을 owner로 하는 emp 테이블에 대한 읽기 권한을 부여하는
예제입니다.
SQL> CONNECT system/manager
Connected.
SQL> CREATE ROLE empread;
Role created.
SQL> CONNECT scott/tiger
Connected.
SQL> GRANT SELECT ON emp TO empread;
Grant succeeded.
SQL>CONNECT system/manager
Connected.
SQL> GRANT empread TO aa;
Grant succeeded.
위 예제는 시스템 권한을 가진 DBA가 role을 만드는 과정을 보여줍니다.
다음과 같이 scott 유저로도 role을 생성하고, 관리하는 것이 가능합니다.
SQL> CONNECT scott/tiger
Connected.
SQL> CREATE ROLE empread;
Role created.
SQL> GRANT SELECT ON emp TO empread;
Grant succeeded.
SQL> GRANT empread TO aa;
Grant succeeded.
2. Q) 테이블에 레코드를 insert하려고 하는데, 다음과 같은 에러가 발생합니다.
"unable to extend table table_name in tablespace tablespace_name "
이라는 ORA-1653 에러입니다. 무엇이 문제입니까?
A) 이 에러는 테이블스페이스에 새로운 extent를 생성할 공간이 부족할 때 발생하
는 에러입니다.
이 문제를 해결하기 위해서는 해당 테이블스페이스에 새로운 데이타화일을 생성
해야 합니다.
다음과 같은 명령문을 사용하여 데이타화일을 추가하시기 바랍니다.
SQL> ALTER TABLESPACE tablespace_name ADD DATAFILE datafile SIZE size;
위 명령문을 실행시 datafile을 지정하실 때 실제 물리적인 path를 모두 명시
해 주셔야 합니다.
대안으로, 'ALTER DATABASE DATAFILE name AUTOEXTEND ON' 을 실행하시면,
동적으로 영역을 할당하실 수 있습니다.
3.Q) 데이타베이스에 트랜잭션이 증가하여 'CREATE ROLLBACK SEGMENT' 명령으로
새로운 롤백세그먼트를 생성하였습니다. 그런데, DML문장을 실행시마다 문제가 발
생합니다. 무엇이 문제입니까?
A) 새로 생성한 롤백 세그먼트가 ON-LINE인지 확인해 보아야 합니다.
SQL> CONNECT system/manager
Connected.
SQL> SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
SYSTEM ONLINE
R01 ONLINE
R02 ONLINE
R03 ONLINE
R04 OFFLINE
OFFLINE을 ONLINE으로 만들기 위해서는 다음 명령을 사용하시기 바랍니다.
SQL> ALTER ROLLBACK SEGMENT r04 ONLINE;
Rollback segment altered.
만약, r04를 계속 ONLINE으로 작업하시고자 한다면, init.ora 화일을 열어
다음과 같이 ROLLBACK_SEGMENTS 파라미터에 r04를 추가하시기 바랍니다.
> ROLLBACK_SEGMENTS = (r01, r02, r03, r04)
4. Q) 새로운 유저들을 생성하였는데, 모든 오브젝트들과 temporary segments에
대해서 고정된 테이블스페이스를 유지하려고 한다면 그 방법은 무엇입니까?
A) 다음과 같이 'ALTER USER' 명령문을 사용하시기 바랍니다.
SQL> ALTER USER user_name DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
현재 지정된 테이블스페이스를 보고자 한다면, DBA_USERS 뷰를 조회하시기 바
랍니다.
SQL> SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
FROM DBA_USERS;
[USERNAME] [DEFAULT_TABLESPACE] [TEMPORARY_TABLESPACE]
SYS SYSTEM TEMP
SYSTEM TOOLS TEMP
WWW_DBA SYSTEM SYSTEM
SCOTT USERS TEMP
5. Q) 데이타베이스에 새로운 사용자를 생성하여, default 테이블스페이스와
temporary 테이블스페이스를 지정하였는데, 데이타베이스에 로그온할 수 없다면,
무엇이 문제입니까?
A) 아마 ORA-1045 에러가 발생하였을 것입니다. 이 에러는 CREATE SESSION 권한
이 해당 유저에게 없다는 메시지입니다. GRANT 명령을 사용하여 CREATE SESSION
권한을 해당 유저에게 부여하여야 합니다. 방법은 다음과 같습니다.
SQL> GRANT CONNECT TO newuser;
Grant succeeded.
6. Q) Oracle 데이타베이스에 update 명령을 실행하였는데, hanging 상태입니다.
무엇이 문제입니까?
A) 아마 다른 트랜잭션이 lock을 걸고 있는 레코드에 대해서 update하려고 하였을
것입니다. 새로운 트랜잭션이 시작되기 전에 COMMIT이나 ROLLBACK을 사용하여 해
당 트랜잭션을 종결시켜야 합니다.
이와 같은 상황은 같은 Oracle 유저를 사용하여 각각 다른 윈도우로부터 다중
세션을 열려고할 때나, LOCK이나 SELECT FOR UPDATE 와 같은 명령을 사용하여
EXPLICIT lock을 사용할 때 발생합니다.
7. Q) Alert log 화일을 살펴보니, 'Thread 1 cannot allocate new log
sequence number'라는 메시지가 여러 번 발생한 것을 볼 수 있었습니다.
이 문제를 어떻게 해결해야 합니까?
A) 아마도, redo log 그룹을 사용할 수 있을 때까지 기다리고 있는 상황인 것 같
습니다.
'ALTER DATABASE ADD LOGFILE' 명령을 사용하여 하나 이상의 redo log 그룹을
추가하시기 바랍니다.
8. Q) 50명의 사용자들이 데이타베이스를 액세스하려고 하는데, Multi-Threaded
서버옵션을 사용하지 않습니다. MTS를 사용하려면, 어떻게 해야 합니까?
A) init.ora 화일의 PROCESSES라는 파라미터를 적당히 셋팅해야 합니다.
이 파라미터는 데이타베이스에 동시에 접속할 수 있는 operating system 사용자
프로세스의 최대 수를 지정합니다.
프로세스의 수를 계산할 때, background 프로세스의 수도 더해야 합니다.
9. Q) Parallelism degree 8을 갖는 테이블에 액세스하려고 하는데, 실패하는
경우 무엇이 문제입니까?
A) init.ora 화일의 파라미터 PARALLEL_MAX_SERVERS 값이 적당히 셋팅되어 있어
야 합니다.
10. Q) 새로운 PL/SQL 프로그램을 작성한 후, 그 프로그램들을 실행시키기 전에
shared pool size를 늘리고 싶습니다. 방법은 무엇입니까?
A) init.ora 화일의 파라미터 SHARED_POOL_SIZE 값을 늘려주시기 바랍니다.
이 파라미터는 바이트 단위의 shared pool size를 지정하는 파라미터입니다.
11. Q) 새로운 데이타화일을 추가하려고 하다가 MAXDATAFILES 값에 도달하게 되
어 문제가 생겼습니다.
이 파라미터를 수정할 수 있는 방법은 무엇입니까?
A) MAXDATAFILES라는 파라미터는 init.ora 파라미터가 아닙니다.
모든 MAX 파라미터들은 데이타베이스가 생성될 때 결정되어집니다. 데이타베이스
를 생성할 때, 파라미터를 어떻게 셋팅했는지 보려면, 다음 명령문을 실행시켜
보시기 바랍니다.
SVRMGR> alter database backup controlfile to trace;
다음은 몇 개의 데이타베이스 명령문을 포함하는 SQL 스크립트입니다.
> CREATE CONTROLFILE REUSE DATABASE "733" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 100
LOGFILE
GROUP 1 '/home/orahome/data/733/redo01.log' SIZE 500K,
GROUP 2 '/home/orahome/data/733/redo02.log' SIZE 500K,
GROUP 3 '/home/orahome/data/733/redo03.log' SIZE 500K
DATAFILE
'/home/orahome/data/733/system01.dbf' SIZE 500K,
'/home/orahome/data/733/rbs01.dbf' SIZE 500K,
'/home/orahome/data/733/tools01.dbf' SIZE 500K,
'/home/orahome/data/733/users01.dbf' SIZE 500K,
'/home/orahome/data/733/test1.dbf' SIZE 500K,
'/home/orahome/data/733/temp.dbf' SIZE 500K;
위의 화일을 보면, MAX 파라미터 값을 알 수 있을 것이며, 이 값을 수정하려면
데이타베이스를 재생성하거나, control 화일을 재생성하셔야 합니다. 두 가지 방
법 중에서는 두 번째 방법을 사용하시기 바랍니다. CREATE CONTROLFILE이란 명령
을 사용하시면, 새로운 control 화일을 만들면서 MAX 파라미터 값을 새로 지정합
니다.
12. Q) 데이타베이스를 아카이브로그 모드로 운용하기 위해, 데이타베이스를
shutdown하고, mount한 후에, 데이타베이스를 아카이브로그 모드로 셋팅하였습니
다. 그런데, 접속을 하니 데이타베이스가 hanging 상태가 되었습니다.
이러한 일이 발생한 원인은 무엇이며, 해결방법은 무엇입니까?
A) 데이타베이스를 아카이브로그 모드로 운용하기 위해서는 두 가지 작업이 필요
합니다.
SVRMGR> alter database archivelog;
SVRMGR> log archive start;
아마 첫 번째 작업은 하셨을 것입니다. 그런데, 두 번째 작업을 해주시지 않
았기 때문에 hanging 상태가 된 것입니다. Oracle은 automatic archiving이 되
지 않고, 사용자가 manual archiving을 하기를 기다리고 있는 것입니다.
Archiving을 해 주지 않으면, 새로운 redo log 화일을 생성할 수가 없습니다.
데이타베이스를 열 때마다 이 작업을 해 주셔야하기 때문에, init.ora 화일의
LOG_ARCHIVE_START라는 파라미터를 true로 하시면 automatic archiving이 설정
됩니다.
13. Q)'ALTER DATABASE CREATE DATAFILE'이란 명령을 사용할 때, 주의할 사항은
무엇입니까?
A) 새로운 데이타화일을 생성한 후에, 그 데이타화일을 control 화일에 포함시켜
주어야 합니다.
만약, 백업 control 화일을 사용 중이라면, 새로운 데이타화일을 추가한 후에
control 화일이 백업되어야 한다는 것입니다. -
ORACLE PARALLEL SERVER (OPS)
제품 : ORACLE SERVER
작성날짜 : 2004-08-13
ORACLE PARALLEL SERVER (OPS)
==============================
PURPOSE
다음은 OPS(ORACLE PARALLEL SERVER) 의 구조에 대해서 알아본다.
SCOPE
Standard Edition 에서는 Real Application Clusters 기능이 10g(10.1.0) 이상 부터 지원이 됩니다.
Explanation
1. Parallel Server Architecture
OPS는 다수의 Loosely Coupled System들 간의 원활한 Resource
Sharing을 위해 제공하는 DLM(PCM)을 이용하여 동시에 다수의
사용자가 각 Node를 통해 한 Database를 Access함으로써 System의
가용성과 전체적인 성능을 극대화시키기 위한 다중처리 System
구성이다.
(1) Loosely Coupled System
SMP Machine과 같이 Tightly Coupled System들 간에 Data Files,
Print Queue 같은 Resource를 공유하기 위한 Shared Disk
Architecture로 Node간의 정보전송은 Common High-Speed Bus를
이용한다.
(2) Distributed Lock Manager(DLM)
Loosely Coupled System에서 Resource Sharing을 조정,관리하는
Software로 Application들이 같은 Resource에 대해 동시에 Access를
요구할 때 서로간의 Synchronization을 유지하며 Conflict가
발생하지 않도록 하는 기능을 담당한다.
다음은 DLM의 주요 Service이다
- Resource에 대한 Current "ownership" 유지 관리
- Application Process들의 Resource Request Accept
- 요구한 Resource가 가용할 경우 해당 Process에 공지
- Resource에 대한 Exclusive Access 허용
(3) Parallel Cache Management(PCM)
Data File내의 하나 이상의 Data Block을 관리하기 위해
할당되는 Distributed Lock을 PCM Lock이라 하며 어떤 Instance가
특정 Resource를 Access하기 위해서는 반드시 그 Resource의 Master
Copy의 "owner"가 되어야 한다.
이는 곧 그 Resource를 Cover하는 Distributed Lock의 "owner"가
됨을 의미한다. 이러한 "owner ship"은 다른 Instance가 동일
Data Block 또는 그 PCM Lock에 의해 Cover되고 있는 다른 Data
Block에 대한 Update 요구가 있을때까지 계속 유지된다.
"owner ship"이 한 Instance에 다른 Instance로 전이 되기 전에
변경된 Data Block은 반드시 Disk로 "write"하므로 각 Node의
Instance간 Cache Coherency는 철저하게 보장된다.
2. Parallel Server의 특성
- Network상의 각 Node에서 Oracle Instance 기동 가능
- 각 Instance는 SGA + Background Processes로 구성
- 모든 Instance는 Control File과 Datafile들을 공유
- 각 Instance는 자신의 Redo Log를 보유
- Control File, Datafiles, Redo Log Files는 하나 이상의
Disk에 위치
- 다수의 사용자가 각 Instance를 통해 Transaction 실행 가능
- Row Locking Mode 유지
3. Tuning Focus
서로 다른 Node를 통해서 하나의 Database 구성하의 Resource를
동시에 사용하는 OPS 환경에서 Data의 일관성과 연속성을 위한
Instance간의 Lock Managing은 불가피한 현실이다. 즉, 위에서
언급한 Instance간의 Resource "owner ship"의 전이(pinging 현상)
와 같은 Overhead를 최소화하기 위해선 효율적인 Application
Partition(Job의 분산)이 가장 중요한 현실 Factor이다.
다시 말해 서로 다른 Node를 통한 동일 Resource에의 Cross-Access
상황을 최소화해야 함을 의미한다.
다음은 OPS 환경에서 Database Structure 차원의 Tuning Point로서
PCM Lock 관련 GC(Global Constant) Parameters와 Storage에 적용할
Options 및 기타 필요한 사항이다.
(1) Initial Parameters
OPS 환경에서 PCM Locks를 의해 주는 GC(Global Constant)
Parameters는 Lock Managing에 절대적인 영향을 미치며 각 Node마다
반드시 동일한 Value로 설정(gc_lck_procs 제외)되어야 한다.
일반적인 UNIX System에서 GC Parameters로 정의하는 PCM Locks의
총합은 System에서 제공하는 DLM Configuration 중 "Number of
Resources"의 범위 내에서 설정 가능하다.
- gc_db_locks
PCM Locks(DistributedLocks)의 총합을 정의하는 Parameter로
gc_file_to_locks Parameter에 정의한 Locks의 합보다 반드시
커야 한다.
너무 작게 설정될 경우 하나의 PCM Lock이 관리하는 Data Blocks가
상대적으로 많아지므로 Pinging(False Pinging) 현상의 발생
가능성도 그만큼 커지게 되며 그에 따른 Overhead로 인해 System
Performance도 현격히 저하될 가능성이 크다. 따라서 가능한
최대의 값으로 설정해야 한다.
- False Pinging
하나의 PCM Lock이 다수의 Data Blocks를 관리하므로 자신의
Block이 아닌 같은 PCM 관할하의 다른 Block의 영향으로 인해
Pining현상이 발생할 수 있는 데 이를 "False Pinging"이라 한다.
Database Object별 발생한 Pinging Count는 다음과 같이 확인할 수
있으며 sum(xnc) > 5(V$PING) 인 경우에 더욱 유의해야 한다.
- gc_file_to_locks
결국 gc_db_locks에 정의된 전체 PCM Locks는 각 Datafile 당
적절히 안배가 되는데 전체 Locks를 운용자의 분석 결과에 의거
각 Datafile에 적절히 할당하기 위한 Parameter이다.
운용자의 분석 내용은 각 Datafile 내에 존재하는 Objects의 성격,
Transaction Type, Access 빈도 등의 세부 사항을 포함하되 전체
PCM Locks 대비 Data Blocks의 적절하고도 효율적인 안배가
절대적이다.
이 Parameter로 각 Datafile당 PCM Locks를 안배한 후 Status를
다음의 Fixed Table로 확인할 수 있다.
Sample : gc_db_locks = 1000
gc_file_to_locks = "1=500:5=200"
X$KCLFI ----> 정의된 Bucket 확인
Fileno Bucket
1 1
2 0
3 0
4 0
5 2
X$KCLFH ----> Bucket별 할당된 Locks 확인
Bucket Locks Grouping Start
0 300 1 0
1 500 1 300
2 200 1 800
gc_files_to_locks에 정의한 각 Datafile당 PCM Locks의 총합은 물론
gc_db_locks의 범위를 초과할 수 없다.
다음은 각 Datafile에 할당된 Data Blocks의 수를 알아보는 문장이다.
select e.file_id id,f.file_name name,sum(e.blocks) allocated,
f.blocks "file size"
from dba_extents e,dba_data_files f
where e.file_id = f.file_id
group by e.file_id,f.file_name,f.blocks
order by e.file_id;
- gc_rollback_segments
OPS로 구성된 각 Node의 Instance에 만들어진 Rollback Segment
(Init.ora의 rollback_segments에 정의한)의 총합을 정의한다.
다수의 Instance가 Rollback Segment를 공용으로 사용할 수는 있으나
OPS 환경에서는 그로 인한 Contention Overhead가 엄청나므로 반드시
Instance당 독자적인 Rollback Segment를 만들어야 하며 Instance간
동일한 이름의 부여는 불가하다.
select count(*) from dba_rollback_segs
where status='ONLINE';
위의 결과치 이상의 값으로 정해야 한다.
- gc_rollback_locks
하나의 Rollback Segment에서 동시에 변경되는 Rollback Segment
Blocks에 부여하는 Distributed Lock의 수를 정의한다.
Total# of RBS Locks = gc_rollback_locks * (gc_rollback_segments+1)
위에서 "1"을 더한 것은 System Rollback Segment를 고려한 것이다.
전체 Rollback Segment Blocks 대비 적절한 Locks를 정의해야 한다.
다음은 Rollback Segment에 할당된 Blocks의 수를 알아보는 문장이다.
select s.segment_name name,sum(r.blocks) blocks
from dba_segments s,dba_extents r
where s.segment_name = r.segment_name
and s.segment_type = 'ROLLBACK'
group by s.segment_name;
- gc_save_rollback_locks
특정 시점에서 어떤 Tablespace 내의 Object를 Access하고 있는
Transaction이 있어도 그 Tablespace를 Offline하는 것은 가능하다.
Offline 이후에 발생된 Undo는 System Tablespace내의 "Differred
Rollback Segment"에 기록, 보관 됨으로써 Read Consistency를
유지한다. 이 때 생성되는 Differred Rollback Segment에 할당하는
Locks를 정의하는 Parameter이다.
일반적으로 gc_rollback_locks의 값과 같은 정도로 정의하면 된다.
- gc_segments
모든 Segment Header Blocks를 Cover하는 Locks를 정의한다. 이 값이
작을 경우에도 Pinging 발생 가능성은 그 만큼 커지므로 해당
Database에 정의된 Segments 이상으로 설정해야 한다.
select count(*) from dba_segments
where segment_type in ('INDEX','TABLE','CLUSTER');
- gc_tablespaces
OPS 환경에서 동시에 Offline에서 Online으로 또는 Online에서
Offline으로 전환 가능한 Tablespace의 최대값을 정의하는 것으로
안전하게 설정하기 위해서 Database에 정의된 Tablespace의 수만큼
설정한다.
select count(*) from dba_tablespaces;
- gc_lck_procs
Background Lock Process의 수를 정하는 것으로 최대 10개까지
설정(LCK0-LCK9)할 수 있다. 기본적으로 하나가 설정되지만 필요에
따라 수를 늘려야 한다.
(2) Storage Options
- Free Lists
Free List는 사용 가능한 Free Blocks에 대한 List를 의미한다.
Database에서 새롭게 가용한 Space를 필요로 하는 Insert나
Update시엔 반드시 Free Space List와 관련 정보를 가지고 있는
Blocks Common Pool을 검색한 후 필요한 만큼의 충분한 Blocks가
확보되지 않으면 Oracle은 새로운 Extent를 할당하게 된다.
특정 Object에 동시에 다수의 Transaction이 발생한 경우 다수의
Free Lists는 그만큼 Free Space에 대한 Contention을 감소시킨다.
결국 Free List의 개수는 Object의 성격과 Access Type에 따라
적절히 늘림으로써 커다란 효과를 거둘 수 있다.
예를 들면 Insert나 크기가 늘어나는 Update가 빈번한 Object인
경우엔 Access 빈도에 따라 3 - 5 정도로 늘려줘야 한다.
- freelist groups
Freelist group의 수를 정의하며 전형적으로 OPS 환경에서
Instance의 수만큼 설정한다. 특정 Object의 Extent를 특정
Instance에 할당하여 그 Instance에 대한 Freelist Groups를
유지하므로 Instance별 Free List 관리도 가능하다.
(3) 기타
- Initrans
동시에 Data Block을 Access할 때 필요한 Transaction Entries에
대한 초기치를 의미하며 Entry당 23Byte의 Space를 미리 할당한다.
기본값은 Table이 "1" 이고 Index와 Cluster는 "2" 이다. Access가
아주 빈번한 Object인 경우 Concurrent Transactions를 고려하여
적절히 설정한다.
4. Application Partition
OPS Application Design의 가장 중요한 부분으로 Partitioning의
기본 원리는 다음과 같다.
. Read Intensive Data는 Write Intensive Data로부터 다른
Tablespaces로 분리한다.
. 가능한 한 하나의 Application은 한 Node에서만 실행되도록
한다. 이는 곧 다른 Application들에 의해 Access되는 Data에
대한 Partition을 의미한다.
. 각 Node마다 Temporary Tablespaces를 할당한다.
. 각 Node마다 Rollback Segments를 독립적으로 유지한다.
5. Backup & Recovery
일반적으로 OPS 환경의 Sites는 대부분 24 * 365 Online 상황이므로
전체적인 Database 운영은 Archive Log Mode & Hot Backup으로 갈
수에 없으며 Failure 발생시 얼마나 빠른 시간 안에 Database를
완벽하게 복구 할 수 있는 지가 최대 관건이라 하겠다.
모든 Backup & Recovery에 관한 일반적인 내용은 Exclusive Mode
Database 운영 환경에서와 동일하다.
(1) Backup
- Hot Backup Internal
Archive Mode로 DB를 정상적으로 운영하며 Online Data Files를
Backup하는 방법으로 Tablespace 단위로 행해진다.
alter tablespace - begin backup이 실행되면 해당 Tablespace를
구성하는 Datafiles에 Checkpoint가 발생되어 Memory상의 Dirty
Buffers를 해당 Datafiles(Disk)에 "Write"함과 동시에 Hot Backup
Mode에 있는 모든 Datafiles의 Header에 Checkpoint SCN을 Update
하는데 이는 Recovery시에 중요한 Point가 된다.
또한 alter tablespace - end backup이 실행되기 전까지 즉,
Hot Backup이 행해지는 동안 해당 Datafiles는 "fuzzy" Backup
Data가 생성되며 특정 Record의 변형 시에도 해당 Block이 Redo
Log에 기록 되므로 다수의 Archive File이 더 생성되는 것을 볼 수
있다. 따라서 Admin이 해당 Datafiles를 모두 Backup하고도 end
backup을 실행하지 않으면 전체 인 System 성능에 심각한 영향을
미치게 되므로 특히 주의해야 한다.
Hot Backup 중인지의 여부는 다음 문장을 통해 확인할 수 있다.
select * from v$backup; -> status 확인
- Hot Backup Step (Recommended)
① alter system archive log current
② alter tablespace tablespacename begin backup
③ backup the datafiles,control files,redo log files
④ alter tablespace tablespacename end backup
⑤ alter database backup controlfile to 'filespec'
⑥ alter database backup controlfile to trace noresetlogs(safety)
⑦ alter system archive log current
(2) Recovery
- Instance Failure시
OPS 환경에서 한 Instance의 Failure시 다른 Instance의 SMON이
즉시 감지하여 Failed Instance에 대한 Recovery를 자동으로
수행한다. 이 때 운영중인 Instance는 Failed Instance가 생성한
Redo Log Entries와 Rollback Images를 이용하여 Recovery한다.
Multi-Node Failure시엔 바로 다음에 Open 된 Instance가 그 역할을
담당하게 된다. 아울러 Failed Instance가 Access하던 모든 Online
Datafiles에 대한 Recovery도 병행되는 데 이런 과정의 일부로
Datafiles에 관한 Verification이 실패하여 Instance Recovery가 되지
않을 경우엔 다음 SQL Statement를 실행시키면 된다.
alter system check datafiles global;
- Media Failure시
다양한 형태로 발생하는 Media Failure시엔 Backup Copy를
Restore한 후 Complete 또는 Incomplete Media Recovery를 행해야
하며 이는 Exclusive Mode로 Database를 운영할 때와 전혀 다르지
않다.
Node별 생성된 즉, Thread마다 생성된 모든 Archived Log Files는
당연히 필요하며 많은 OPS Node 중 어디에서든지 Recovery 작업을
수행할 수 있다.
- Parallel Recovery
Instance 또는 Media Failure시 ORACLE 7.1 이상에서는 Instance
Level(init.ora) 또는 Command Level(Recover--)에서 Parallel
Recovery가 가능하다. 여러 개의 Recovery Processes를 이용하여
Redo Log Files를 동시에 읽어 해당 After Image를 Datafiles에
반영시킬 수 있다. Recovery_Parallelism Parameter는 Concurrent
Recovery Processes의 수를 정하며 Parallel_Max_Servers Parameter의
값을 초과할 수는 없다.
(3) 운영 시 발생 가능한 Error
- ORA-1187 발생
ORA-1187 : can not read from file name because it
failed verification tests.
(상황) 하나의 Node에서 create tablespace ... 한 상태에
정상적으로 운영하던 중 다른 Node를 통해 특정 Object를
Access하는데 ORA-1187 발생.
(원인) 다른 Node에서 raw disk의 owner, group, mode 등을
Tablespace가 생성된 후 뒤늦게 전환.
(Admin의 Fault)
(조치) SQL> alter system check datafiles global;
Reference Documents
--------------------hal lavender wrote:
Hi,
I am trying to achieve Load Balancing & Failover of Database requests to two of the nodes in 8i OPS.
Both the nodes are located in the same data center.
Here comes the config of one of the connection pools.
<JDBCConnectionPool CapacityIncrement="5" ConnLeakProfilingEnabled="true"
DriverName="oracle.jdbc.driver.OracleDriver" InactiveConnectionTimeoutSeconds="0"
InitialCapacity="10" MaxCapacity="25" Name="db1Connection598011" PasswordEncrypted="{3DES}ARaEjYZ58HfKOKk41unCdQ=="
Properties="user=ts2user" Targets="ngusCluster12,ngusCluster34" TestConnectionsOnCreate="false"
TestConnectionsOnRelease="false" TestConnectionsOnReserve="true" TestFrequencySeconds="0"
TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@192.22.11.160:1421:dbinst01" />
<JDBCConnectionPool CapacityIncrement="5" ConnLeakProfilingEnabled="true"
DriverName="oracle.jdbc.driver.OracleDriver" InactiveConnectionTimeoutSeconds="0"
InitialCapacity="10" MaxCapacity="25" Name="db2Connection598011" PasswordEncrypted="{3DES}ARaEjYZ58HfKOKk41unCdQ=="
Properties="user=ts2user" Targets="ngusCluster12,ngusCluster34" TestConnectionsOnCreate="false"
TestConnectionsOnRelease="false" TestConnectionsOnReserve="true" TestFrequencySeconds="0"
TestTableName="SQL SELECT 1 FROM DUAL" URL="jdbc:oracle:thin:@192.22.11.161:1421:dbinst01" />
<JDBCMultiPool AlgorithmType="Load-Balancing" Name="pooledConnection598011"
PoolList="db1Connection598011,db2Connection598011" Targets="ngusCluster12,ngusCluster34" />
Please let me know , if you need further information
HalHi Hal. All that seems fine, as it should be. Tell me how you
enact a failure so that you'd expect one pool to still be good
when the other is bad.
thanks,
Joe -
ORacle is not starting..
Hi..
I am using oralce 10g om windows machine .
my oracle is sudendly down ..
when I am trying to start it .it mount and give error as end of the communication error.
And in alert log file I get this error ..
Mem# 0 errs 0: C:\ORACLE\PRODUCT\10.2.0\DB_1\ORADATA\ORCL2069\REDO02.LOG
Block recovery completed at rba 21719.1507.16, scn 0.3240444804
Fri Nov 07 16:45:16 2008
SMON: slave died unexpectedly, downgrading to serial recovery
Fri Nov 07 16:45:16 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_smon_240.trc:
ORA-00600: internal error code, arguments: [kghstack_free2], [], [], [], [], [], [], []
Fri Nov 07 16:45:18 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_smon_240.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [kghstack_err+95] [PC:0x4F14339] [ADDR:0xFFFFFFFFFFFFFFFF] [UNABLE_TO_READ] []
ORA-00600: internal error code, arguments: [kghstack_free2], [], [], [], [], [], [], []
Fri Nov 07 16:45:22 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_pmon_8784.trc:
ORA-00474: SMON process terminated with error
Fri Nov 07 16:45:22 2008
PMON: terminating instance due to error 474
Fri Nov 07 16:45:22 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_m000_392.trc:
ORA-00474: SMON process terminated with error
Fri Nov 07 16:45:22 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_lgwr_6164.trc:
ORA-00474: SMON process terminated with error
Fri Nov 07 16:45:22 2008
Errors in file c:\oracle\product\10.2.0\admin\orcl2069\bdump\orcl2069_q000_8564.trc:
ORA-00474: SMON process terminated with error
Can you tell mi the reason and solution for this issuue?harshalpatil wrote:
I checked as select * from dba_rollback_segs
I found that one of the segment for UNDO is OFFline is this root cause of error?No, the segment can be offline just like that. Its the feature of Automatic Undo that Oracle would keep on switching them on /off depending upon the requirement.
I asked you to set the event to disable the transaction recovery for the database.
In the other workaround, you may want to disable the IMU by putting
_in_memory_undo=falseBeware, any setting like this needs Oracle support's consent beforehand or it MUST not be done.
HTH
Aman.... -
Not able to see rollback segment in oracle 10g
hi all
I created rollback segment by using command
CREATE ROLLBACK SEGMENT rs1 TABLESPACE rbs_ts
and made it online but not able to see
segment name by using
select * from dba_rollback_segs
Please help me
Ragards
Edited by: 174313 on Dec 1, 2008 3:19 PMYou can start with the following links in 10g documentation.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/mgmt_db.htm#sthref2230
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/logical.htm#CHDGJJEJ
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/logical.htm#CNCPT305 -
Oracle 9i - Rollback Segment Needs Recovery
I have been noticing for a few days that my UNDO tablespace has been growing in size for no apparent reason. My datafiles have only increased by 400 Meg over last 4 days, but UNDO tablespace has grown from 100 Meg - 5.6 Gig....
I decided to create a new UNDO tablespace and drop the old one.....
I created a new tablespace, changed the UNDO configuration to point to new tablespace and bounced the instance. The instance came back up fine, using the new UNDO tablespace....I then went to take the old tablespace offline and drop it....It went offline fine, but when I went to remove it, I received an Oracle error saying tablespaces was using rollback segment _SYSSMU24$.....
I looked in the alert log and I'm getting a message:
SMON: about to recover undo segment 24
SMON: mark undo segment 24 as needs recovery
When I query the dba_rollback_segs table, it shows that all rollback segments prior to _SYSSMU24$ are online, 24 & 25 are listed as NEEDS RECOVERY, and all others below that are offline....
Any help on resolving this issue would be appreciated....Metalink overrides any thing said, adviced, or written in this forum, if you have already opened a Service Request, as suggested by Daniel Morgan.
Just in case this may be helpful to you or others facing a similar situation, I suggest you to check this case Re: Error while Droping Undo Tablespace.
Make sure you have a full useful database backup as well as the required archive log files.
~ Madrid -
Scrpits for health monitoring of the oracle data base
Hi Folks
Can some one help me in finding the oracle database health monitoring scripts ...
Thanks in AdvanceFind one which i prepared.
REM Database Health monitoring script.
REM
REM Segments Max extents & Current extent comparison
REM ***************************************************
set line 180
set pagesize 10000
set feedback off
prompt
col Time format a50 heading "System Time"
select to_char(sysdate,'DD-MON-YYYY:HH24:MI:SS') Time from dual;
prompt
prompt
prompt
prompt**---------------Objects Reaching Max extents-----------------------**
prompt
col segment_name format a40 heading "Object Name"
col max_extents format 9999999999 heading "Max Extents"
col curr_extents format 99999999999 heading "Curent Extents"
select a.segment_name,a.max_extents,b.curr_extents from dba_segments a,(select
segment_name,max(extent_id) curr_extents from dba_extents group by segment_name) b where a.segment_name = b.segment_name
and (a.max_extents - b.curr_extents) <= 10;
prompt
prompt**---------------User Session Information----------------------------**
prompt
col sid format 9999 heading "SID"
col serial# format 9999999 heading "SERIAL NO"
col logon_time format 9999999 heading "Login Time"
col username format a12
col osuser format a24
col program format a38
select s.sid,s.serial#,p.spid,s.username,s.osuser,s.program,to_char(s.LOGON_TIME,'DD-MON-YY:HH24:MI:SS') "Log on Time",round((s.LAST_CALL_ET/(60*60*24)),2)"Wait in Days" from v$session s,v$process p where s.paddr = p.addr and s.username is not null order by 8 desc;
prompt
prompt**---------------File Information-------------------------------------**
prompt
col file_name format a55 heading "File Name"
col SizeInMB format 99999999 heading "Total Size (MB)"
col MAXSIZE format 99999999 heading "Maximum Size (MB)"
select file_name,BYTES/(1024*1024) SizeInMB,AUTOEXTENSIBLE,MAXBYTES/(1024*1024) MAXSIZE from dba_data_files;
prompt
prompt**---------------Tablespace Information-------------------------------**
prompt
col tablespace_name format a25 heading "Tablespace Name"
col logging format a10
col status format a12
col extent_management format a30 heading "Local/Dict"
select tablespace_name,status,contents,decode(logging,LOGGING,'YES','NO') Logging,extent_management from dba_tablespaces;
SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name;
prompt
prompt**---------------Tablespace Fragmentation Status----------------**
prompt
col TABLESPACE_NAME format a25 heading "Tablespace Name"
select TABLESPACE_NAME Name,TOTAL_EXTENTS "Total Extents",EXTENTS_COALESCED,decode(PERCENT_EXTENTS_COALESCED,100,'NO','YES') "Frag" from
dba_free_space_coalesced;
prompt
prompt**---------------Latch Contention-------------------------------**
prompt
col name format a40 heading "Latch Name"
SELECT name, gets, misses,
round((gets-misses)/decode(gets,0,1,gets),3) hit_ratio,
sleeps,
round(sleeps/decode(misses,0,1,misses),3) "sleeps/misses"
from v$latch
where gets != 0
order by name;
select name,immediate_gets,immediate_misses,(immediate_gets)/(immediate_gets+immediate_misses) Hit_Ratio
from v$latch where immediate_gets != 0;
prompt
prompt**---------------Shared Pool Statistics-------------------------------**
prompt
col namespace format a22
select namespace,gets,gethits,round(gethitratio,2) gethitratio,pins,pinhits,round(pinhitratio,2)
pinhitratio,reloads,invalidations from v$librarycache where namespace in ('SQL AREA','TABLE/PROCEDURE','BODY','TRIGGER');
prompt
prompt**---------------Reload Hit Ratio-------------------------------**
prompt
SELECT SUM(reloads)/SUM(pins) "Reload Ratio"
FROM v$librarycache;
prompt
prompt
prompt**--------------- Data Dictionary Hit Ratio-------------------------------**
prompt
SELECT 1-(SUM(getmisses)/SUM(gets))
"Data Dictionary Hit Ratio"
From v$rowcache;
prompt
prompt**---------------Buffer Cache statistics-------------------------------**
prompt
select (1-(a.value/(b.value+c.value))) *100 "Buffer Cache Hit ratio" from v$sysstat a,v$sysstat b,v$sysstat c where a.name
= 'physical reads' and b.name = 'consistent gets' and c.name = 'db block gets';
col name format a20 heading "Buffer Pool Name"
select name,free_buffer_wait,write_complete_wait,buffer_busy_wait,db_block_gets,consistent_gets,physical_reads,physical_writes
from v$buffer_pool_statistics;
prompt
prompt
prompt**---------------Roll back segment Statistics-------------------------------**
prompt
col segment_name format a30 heading "Segment Name"
col status format a15
select segment_name,a.status,initial_extent/(1024) "Initial KB",next_extent/(1024)"NextKB",max_extents,min_extents,optsize/102
"Opt Size KB",curext "Current Extents" from dba_rollback_segs a,v$rollstat b where a.segment_id = b.usn;
prompt
prompt**---------------Roll Back Segment Header Get Ratio-------------------------------**
prompt
SELECT n.name,s.usn,DECODE(s.waits,0,1,1-(s.waits/s.gets)) "RBS Header Get Ratio"
FROM v$rollstat s,v$rollname n
WHERE s.usn=n.usn
ORDER BY usn;
prompt
prompt**---------------Top 20 Events and System Statistics-------------------------------**
prompt
col event format a40 heading "Event Name"
col Stat format a40 heading "Stat Name"
select * from ( select name "Stat",value from v$sysstat order by value desc ) where rownum <= 20 ;
select * from ( select event,total_waits from v$system_event order by total_waits desc ) where rownum <=
20;
prompt
prompt
prompt**---------------File I/O statistics-------------------------------**
prompt
col file# format 99 heading "File No"
select file#,PHYRDS "Physical Reads",PHYWRTS "Physical Writes",READTIM "Read Time",WRITETIM "Write Time",AVGIOTIM "Avg Time" from v$filestat;
set feedback on
Regards
Jafar -
Error while invoking a WS-Security secured web service from Oracle BPEL..
Hi ,
We are facing some error while invoking a WS-Security secured web service from our BPEL Process on the windows platform(SOA 10.1.3.3.0).
For the BPEL process we are following the same steps as given in an AMIS blog : - [http://technology.amis.nl/blog/1607/how-to-call-a-ws-security-secured-web-service-from-oracle-bpel]
but sttill,after deploying it and passing values in it,we are getting the following error on the console :-
“Header [http://schemas.xmlsoap.org/ws/2004/08/addressing:Action] for ultimate recipient is required but not present in the message”
Any pointers in this regard will be highly appreciated.
Thanks,
SaurabhHi James,
Thanks for the quick reply.
We've tried to call that web service from an HTML designed in Visual Studios with the same username and password and its working fine.
But on the BPEL console, we are getting the error as mentioned.
Also if you can tell me how to set the user name and password in the header of the parter link.I could not find how to do it.
Thanks,
Saurabh -
Error while running a customize report in oracle ebs
Hi ..
can anybody suggest how to solve the follwing error while running a customize report in oracle ebs?
XXIFMS: Version : UNKNOWN
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
Current system time is 03-JUN-2011 11:09:24
+-----------------------------
| Starting concurrent program execution...
+-----------------------------
Arguments
P_DATE_FROM='2010/04/01 00:00:00'
P_DATE_TO='2011/06/03 00:00:00'
Forcing NLS_NUMERIC_CHARACTERS to: '.,' for XDO processing
APPLLCSP Environment Variable set to :
Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
American_America.AL32UTF8
stat_low = 9
stat_high = 0
emsg:was terminated by signal 9
ld.so.1: rwrun: fatal: librw.so: open failed: No such file or directory
Start of log messages from FND_FILE
End of log messages from FND_FILE
Program was terminated by signal 9
Concurrent Manager encountered an error while running Oracle*Report for your concurrent request 1068011.
Review your concurrent request log and/or report output file for more detailed information.
Executing request completion options...
------------- 1) PUBLISH -------------
Beginning post-processing of request 1068011 on node D0005 at 03-JUN-2011 11:09:24.
Post-processing of request 1068011 failed at 03-JUN-2011 11:09:24 with the error message:
One or more post-processing actions failed. Consult the OPP service log for details.
Finished executing request completion options.
Concurrent request completed
Current system time is 03-JUN-2011 11:09:24Please post the details of the application release, database version and OS.
Is the issue with this specific concurrent program?
Can you find any errors in the CM/OPP log files?
Please see if these docs help.
On R12.1.1/Solaris Platform While Generating Oracle Reports Files Failed With Error " ld.so.1: rwconverter: fatal: librw.so: open failed: No such file or directory [ID 1067786.1]
Apps UPG Fail With Error Ld.So.1: Rwserver: Fatal: Librw.So [ID 961222.1]
Thanks,
Hussein -
HELP! Can not install Oracle 8.1.5 w/ RedHat 6.1!
I can not get Oracle 8.1.5 to install onto Linux RedHat 6.1. The
Oracle installation script generates several errors. I have
tried several attempts, using different options, but they all
generate errors.
Please help. The Oracle Installation scripts appear to be very
buggy... or perhaps they are incompatible with the standard
RedHat 6.1 release. Either way, it is very frustrating.
I have documented one of my (failed) installation attempts below.
Does anyone have any words of wisdom?
I am installing Oracle onto a Dell Latitude CPi PC w/ 128MB RAM,
a 366MHz Pentium II, and RedHat 6.1 (using the standard Linux
2.2.12-2 kernel). RedHat was installed using the standard "Gnome
Workstation" configuration.
The Oralce CD is labeled:
"Oralce 8i Enterprise Edition
Release 8.1.5
for Linux
(c) Oracle Corporation 1999"
I got this CD about one week ago at Oracle OpenWorld '99 in Los
Angeles... it should be their "latest & greatest" version so far.
1. Pre-Installation and ./runInstall
I created an "oracle" Unix account w/ groups "oinstall" (the
primary group) and "dba" (a secondary group).
I created directories /u01 through /u04, belonging to oracle.
I setup .cshrc and sourced it, containing:
umask 022
setenv DISPLAY `hostname`:0
xhost +
setenv ORACLE_BASE /u01/app/oracle
setenv ORACLE_HOME ${ORACLE_BASE}/product/8.1.5
setenv ORACLE_SID cprtest
setenv PATH ${ORACLE_HOME}/bin:${PATH}
setenv LD_LIBRARY_PATH ${ORACLE_HOME}/lib
setenv NLS_LANG US7ASCII
I downloaded jre116_v5 and installed to /usr/local/jre.
Finally, I executed (from the "oracle" Unix account):
cd /mnt/cdrom
./runInstall
Problem: I got the error (from ./runInstall):
Initializing Java Virtual Machine from /usr/local/jre/bin/jre.
Please wait...
Error in CreateOUIProcess(): -1
: Bad address
Workaround: Executed the following commands instead:
cd /mnt/cdrom/install/linux
./runIns.sh
3. runIns.sh and root.sh
I selected the following options (from ./runIns.sh):
Source: /mnt/cdrom/stage/products.jar
Destination: /u01/app/oracle/product/8.1.5
Oracle 8i Enterprise Edition 8.1.5.0.0
Typical (585MB)
Installable Components: Oralce Intelligent Agent 8.1.5.0.0
Global Database Name: cprtest.parkrussell.com
SID: cprtest
Directory for Database Files: /u02
Then (when instructed by ./runIns.sh), I attempted to execute
(from the
"root" Unix account):
cd /u01/app/oracle/product/8.1.5
./root.sh
Problem: I got the error:
"bash: ./root.sh: Permission denied"
The execute bit was not set.
Workaround: I executed:
chmod a+x root.sh
./root.sh
5. Configuration Tools
The Oracle Installer (./runIns.sh) attempted to execute:
A. Net8 Configuration Agent
B. Oracle Database Configuration Agent
Problem: The "Oracle Database Configuration Agent" failed with
the following error message:
"One or more tools have failed. It is recommended but not
required that these tools succeed for this installation.
You can now select these tools, read its details to examine
why they have failed, fix those problems, and retry them.
Or, you can click "Next" to continue."
When I selected the "Oracle Database Configuration Agent" for
more info, I got the following additional details (as the cause
of the error):
"A required command line argument is missing."
The log file
"/u01/app/oracle/oraInventory/logs/installActions.log" recorded:
"Command which is being spawned is /usr/local/jre/bin/jre
-Duser.dir=/u01/app/oracle/product/8.1.5/assistants/dbca/jlib
-classpath
/usr/local/jre/lib/rt.jar:/u01/app/oracle/product/8.1.5/jlib/ewt-3_1_10.jar:/u01/app/oracle/produc
/8.1.5/jlib/share-1_0_6.jar:/u01/app/oracle/product/8.1.5/assistants/dbca/jlib/DBAssist.jar:/u01/a
p/oracle/product/8.1.5/assistants/jlib/jnls.jar:/u01/app/oracle/product/8.1.5/assistants/jlib/ACC.
AR:/u01/app/oracle/product/8.1.5/jlib/help-3_0_7.jar:/u01/app/oracle/product/8.1.5/jlib/oracle_ice
4_03_3.jar:/u01/app/oracle/product/8.1.5/jlib/HotJavaBean.jar:/u01/app/oracle/product/8.1.5/jlib/n
tcfg.jar:/usr/local/jre/lib/i18n.jar
DBCreateWizard /createtype seed /numusers NO_VALUE /apptype
NO_VALUE /cartridges NO_VALUE /options NO_VALUE /demos NO_VALUE
/seedloc NO_VALUE /sid cprtest /orahome
/u01/app/oracle/product/8.1.5 /orabase /u01/app/oracle /dbloc
/u02 /clususer NO_VALUE /cluspswd NO_VALUE /nodeinfo NO_VALUE
/gdbName cprtest.parkrussell.com
Invalid Exit Code. The following result code will be used for
configuration tool: 1
Configuration tool Oracle Database Configuration Assistant
failed"
Workaround: There is obviously nothing I can do to fix this
problem. It appears to be an internal bug in ./runIns.sh.
Therefore, I selected "Next" and executed "dbassist" directly.
6. dbassist
I executed:
dbassist
Problem: I got the following error:
"JNLS Execution:oracle.ntpg.jnls.JNLSException
Unable to find any National Character Sets. Please
check your Oracle installation."
Workaround: Press "OK" and ignore the error.
7. dbassist (cont.)
I selected the following options:
Create database
Typical
Copy existing database files from the CD
Global Database Name: cprtest.parkrussell.com
SID: cprtest
Problem: I got the following error:
"CD-ROM drive not detected on this system.
Database not created."
(Note: I've been running the installation scripts from the
CDROM drive this entire time. "df" shows the CDROM drive
mounted on /mnt/cdrom. "ls /mnt/cdrom" works too.)
Workaround: Abort (which generated the additional error: "Unable
to create database. DBCA-00003: No CD-ROM drive detected.") and
run dbassist again, this time using different parameters.
8. dbassist, again
I executed "dbassist" again and selected the following options:
Create database
Typical
Create new database files
Hybrid
Concurrently connected users: 5
Options: Oralce interMedia, Oralce JServer, and iM demos
Global Database Name: cprtest2.parkrussell.com
SID: cprtest2
Create database now
Problem: I got the following error:
"ORA-01012: not logged on"
Workaround: Try, try again.
9. dbassist, one last time
Executed "dbassist" once more and selected the following options:
Create database
Typical
Create new database files
Hybrid
Concurrently connected users: 5
Options: Oralce interMedia, Oralce JServer, and interMedia
demos
Global Database Name: cprtest3.parkrussell.com
SID: cprtest3
Output creation script
Then, I executed (from the "oracle" Unix account):
cd /u01/app/oracle/product/8.1.5/install
setenv ORACLE_SID cprtest3
./sqlcprtest3.sh
Problem: I got the following output:
"Oracle Server Manager Release 3.1.5.0.0 - Production
(c) Copyright 1997, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production
SVRMGR> SVRMGR> Connected.
SVRMGR> ORACLE instance started.
ORA-01012: not logged on
SVRMGR> 2> 3> 4> 5> 6> 7>
8> 9> CREATE DATABASE "cprtest3"
ORA-01012: not logged on
SVRMGR> Disconnected."
Workaround: Beats me.
10. sqlplus
I attempted to execute sqlplus, but got the following error
message:
"/u01/app/oracle/product/8.1.5/bin/sqlplus: Permission denied."
The execute bit was not set.
Workaround: I executed:
chmod a+x /u01/app/oracle/product/8.1.5/bin/sqlplus
sqlplus
I gave up for now... there were just too many things wrong with
this installation, starting with the very first command I was
supposed to execute (./runInstaller).
I can't fathom why Oracle's installation script has so many bugs.
Am I just doing something terribly wrong?
Please help.
nullI'm using enlightenment version 0.15.5-41, which is more recent
than the 0.15.5-37 version (containing the Oracle installer
patch) that you recommended. Unfortunately, it fails when using
this version.
I also tried installing Oracle using twm, with enlightenment
disabled. This didn't help either.
Furthermore, the errors that I'm encountering in the OUI are
not just toward the end of the installation. They happen from
the very beginning, right after I enter "./runInstall", and
continue every step of the way.
Calvin Mitchell (guest) wrote:
: Check out my thread: "Assistants Failure Toward end of Oracle
: Install" to see where i've gone with this.
: if your running Enlightenment as your window manager you need
to
: upgrade to 0.15.5-37, that will solve the OUI error.
: Let me know if you solve any of your problems.
: Chris Russell (guest) wrote:
: : I can not get Oracle 8.1.5 to install onto Linux RedHat 6.1.
: The
: : Oracle installation script generates several errors. I have
: : tried several attempts, using different options, but they all
: : generate errors.
: : Please help. The Oracle Installation scripts appear to be
very
: : buggy... or perhaps they are incompatible with the standard
: : RedHat 6.1 release. Either way, it is very frustrating.
: : I have documented one of my (failed) installation attempts
: below.
: : Does anyone have any words of wisdom?
: : I am installing Oracle onto a Dell Latitude CPi PC w/ 128MB
: RAM,
: : a 366MHz Pentium II, and RedHat 6.1 (using the standard Linux
: : 2.2.12-2 kernel). RedHat was installed using the standard
: "Gnome
: : Workstation" configuration.
: : The Oralce CD is labeled:
: : "Oralce 8i Enterprise Edition
: : Release 8.1.5
: : for Linux
: : (c) Oracle Corporation 1999"
: : I got this CD about one week ago at Oracle OpenWorld '99 in
Los
: : Angeles... it should be their "latest & greatest" version so
: far.
: : 1. Pre-Installation and ./runInstall
: : I created an "oracle" Unix account w/ groups "oinstall" (the
: : primary group) and "dba" (a secondary group).
: : I created directories /u01 through /u04, belonging to oracle.
: : I setup .cshrc and sourced it, containing:
: : umask 022
: : setenv DISPLAY `hostname`:0
: : xhost +
: : setenv ORACLE_BASE /u01/app/oracle
: : setenv ORACLE_HOME ${ORACLE_BASE}/product/8.1.5
: : setenv ORACLE_SID cprtest
: : setenv PATH ${ORACLE_HOME}/bin:${PATH}
: : setenv LD_LIBRARY_PATH ${ORACLE_HOME}/lib
: : setenv NLS_LANG US7ASCII
: : I downloaded jre116_v5 and installed to /usr/local/jre.
: : Finally, I executed (from the "oracle" Unix account):
: : cd /mnt/cdrom
: : ./runInstall
: : Problem: I got the error (from ./runInstall):
: : Initializing Java Virtual Machine from
: /usr/local/jre/bin/jre.
: : Please wait...
: : Error in CreateOUIProcess(): -1
: : : Bad address
: : Workaround: Executed the following commands instead:
: : cd /mnt/cdrom/install/linux
: : ./runIns.sh
: : 3. runIns.sh and root.sh
: : I selected the following options (from ./runIns.sh):
: : Source: /mnt/cdrom/stage/products.jar
: : Destination: /u01/app/oracle/product/8.1.5
: : Oracle 8i Enterprise Edition 8.1.5.0.0
: : Typical (585MB)
: : Installable Components: Oralce Intelligent Agent 8.1.5.0.0
: : Global Database Name: cprtest.parkrussell.com
: : SID: cprtest
: : Directory for Database Files: /u02
: : Then (when instructed by ./runIns.sh), I attempted to execute
: : (from the
: : "root" Unix account):
: : cd /u01/app/oracle/product/8.1.5
: : ./root.sh
: : Problem: I got the error:
: : "bash: ./root.sh: Permission denied"
: : The execute bit was not set.
: : Workaround: I executed:
: : chmod a+x root.sh
: : ./root.sh
: : 5. Configuration Tools
: : The Oracle Installer (./runIns.sh) attempted to execute:
: : A. Net8 Configuration Agent
: : B. Oracle Database Configuration Agent
: : Problem: The "Oracle Database Configuration Agent" failed
with
: : the following error message:
: : "One or more tools have failed. It is recommended but not
: : required that these tools succeed for this installation.
: : You can now select these tools, read its details to
examine
: : why they have failed, fix those problems, and retry them.
: : Or, you can click "Next" to continue."
: : When I selected the "Oracle Database Configuration Agent" for
: : more info, I got the following additional details (as the
cause
: : of the error):
: : "A required command line argument is missing."
: : The log file
: : "/u01/app/oracle/oraInventory/logs/installActions.log"
: recorded:
: : "Command which is being spawned is /usr/local/jre/bin/jre
: : -Duser.dir=/u01/app/oracle/product/8.1.5/assistants/dbca/jlib
: : -classpath
/usr/local/jre/lib/rt.jar:/u01/app/oracle/product/8.1.5/jlib/ewt-
: 3_1_10.jar:/u01/app/oracle/product/8.1.5/jlib/share-
1_0_6.jar:/u01/app/oracle/product/8.1.5/assistants/dbca/jlib/DBAs
sist.jar:/u01/app/oracle/product/8.1.5/assistants/jlib/jnls.jar:/
u01/app/oracle/product/8.1.5/assistants/jlib/ACC.JAR:/u01/app/ora
: cle/product/8.1.5/jlib/help-
: 3_0_7.jar:/u01/app/oracle/product/8.1.5/jlib/oracle_ice-
4_03_3.jar:/u01/app/oracle/product/8.1.5/jlib/HotJavaBean.jar:/u0
1/app/oracle/product/8.1.5/jlib/netcfg.jar:/usr/local/jre/lib/i18
: n.jar
: : DBCreateWizard /createtype seed /numusers NO_VALUE /apptype
: : NO_VALUE /cartridges NO_VALUE /options NO_VALUE /demos
NO_VALUE
: : /seedloc NO_VALUE /sid cprtest /orahome
: : /u01/app/oracle/product/8.1.5 /orabase /u01/app/oracle /dbloc
: : /u02 /clususer NO_VALUE /cluspswd NO_VALUE /nodeinfo NO_VALUE
: : /gdbName cprtest.parkrussell.com
: : Invalid Exit Code. The following result code will be used
for
: : configuration tool: 1
: : Configuration tool Oracle Database Configuration Assistant
: : failed"
: : Workaround: There is obviously nothing I can do to fix this
: : problem. It appears to be an internal bug in ./runIns.sh.
: : Therefore, I selected "Next" and executed "dbassist"
directly.
: : 6. dbassist
: : I executed:
: : dbassist
: : Problem: I got the following error:
: : "JNLS Execution:oracle.ntpg.jnls.JNLSException
: : Unable to find any National Character Sets. Please
: : check your Oracle installation."
: : Workaround: Press "OK" and ignore the error.
: : 7. dbassist (cont.)
: : I selected the following options:
: : Create database
: : Typical
: : Copy existing database files from the CD
: : Global Database Name: cprtest.parkrussell.com
: : SID: cprtest
: : Problem: I got the following error:
: : "CD-ROM drive not detected on this system.
: : Database not created."
: : (Note: I've been running the installation scripts from the
: : CDROM drive this entire time. "df" shows the CDROM drive
: : mounted on /mnt/cdrom. "ls /mnt/cdrom" works too.)
: : Workaround: Abort (which generated the additional error:
: "Unable
: : to create database. DBCA-00003: No CD-ROM drive detected.")
: and
: : run dbassist again, this time using different parameters.
: : 8. dbassist, again
: : I executed "dbassist" again and selected the following
options:
: : Create database
: : Typical
: : Create new database files
: : Hybrid
: : Concurrently connected users: 5
: : Options: Oralce interMedia, Oralce JServer, and iM demos
: : Global Database Name: cprtest2.parkrussell.com
: : SID: cprtest2
: : Create database now
: : Problem: I got the following error:
: : "ORA-01012: not logged on"
: : Workaround: Try, try again.
: : 9. dbassist, one last time
: : Executed "dbassist" once more and selected the following
: options:
: : Create database
: : Typical
: : Create new database files
: : Hybrid
: : Concurrently connected users: 5
: : Options: Oralce interMedia, Oralce JServer, and interMedia
: : demos
: : Global Database Name: cprtest3.parkrussell.com
: : SID: cprtest3
: : Output creation script
: : Then, I executed (from the "oracle" Unix account):
: : cd /u01/app/oracle/product/8.1.5/install
: : setenv ORACLE_SID cprtest3
: : ./sqlcprtest3.sh
: : Problem: I got the following output:
: : "Oracle Server Manager Release 3.1.5.0.0 - Production
: : (c) Copyright 1997, Oracle Corporation. All Rights
Reserved.
: : Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
: : With the Partitioning and Java options
: : PL/SQL Release 8.1.5.0.0 - Production
: : SVRMGR> SVRMGR> Connected.
: : SVRMGR> ORACLE instance started.
: : ORA-01012: not logged on
: : SVRMGR> 2> 3> 4> 5> 6> 7>
: : 8> 9> CREATE DATABASE "cprtest3"
: : ORA-01012: not logged on
: : SVRMGR> Disconnected."
: : Workaround: Beats me.
: : 10. sqlplus
: : I attempted to execute sqlplus, but got the following error
: : message:
: : "/u01/app/oracle/product/8.1.5/bin/sqlplus: Permission
: denied."
: : The execute bit was not set.
: : Workaround: I executed:
: : chmod a+x /u01/app/oracle/product/8.1.5/bin/sqlplus
: : sqlplus
: : I gave up for now... there were just too many things wrong
with
: : this installation, starting with the very first command I was
: : supposed to execute (./runInstaller).
: : I can't fathom why Oracle's installation script has so many
: bugs.
: : Am I just doing something terribly wrong?
: : Please help.
null -
Logical operators in Oracle select query
Hello all,
Can i use logical operators in oracle select queries?
for 1 and 0 =0 ; 1 or 0 =0
if i have two fileds in a table COL1 have a value of 1010 and COL2 have a value of 0001.
Is there any way to use select col1 or col2 from table? where or is a logical operator?
Regards,Hi,
NB wrote:
Hello all,
Can i use logical operators in oracle select queries?Sure; Oracle has the logical operators AND, NOT and OR. All the comparison operators, including >, >=, = !=, EXISTS, IN, IS NULL, LIKE and REGEXP_LIKE are really logical operators, since they return logical values. You can use them in SELECT statements, and other places, too.
for 1 and 0 =0 ; 1 or 0 =0
if i have two fileds in a table COL1 have a value of 1010 and COL2 have a value of 0001.It's unclear what you want. Maybe you'd be interested in the BITAND function:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions014.htm#sthref1080
BITAND is the only logical function that I know of. Many other functions, especially numberical fucntions such as MOD, have applications in logic.
Is there any way to use select col1 or col2 from table? where or is a logical operator?Whenever you have a question, please post a little sample data (CREATE TABLE and INSERT statements), and also post the results you want from that data.
Explain how you get those results from that data.
Always say which version of Oracle you're using. -
Strange scenario,Oracle can not display the data in mysql correctly
I use Heterogeneous Service+ODBC to achieve "oracle access mysql"(any other method?),and now i find Oracle can not display the data in mysql correctly:
-------mysql------------
mysql> create table tst(id int,name varchar(10));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into tst values(1,'a');
Query OK, 1 row affected (0.00 sec)
mysql> select * from tst;
------------+
| id | name |
------------+
| 1 | a |
------------+
1 row in set (0.00 sec)
mysql> show create table tst\G
*************************** 1. row ***************************
Table: tst
Create Table: CREATE TABLE `tst` (
`id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
-------------oracle ------------------
SQL> select count(*) from "tst"@mysql;
COUNT(*)
49
SQL> select * from "tst"@mysql;
id
1
SQL> desc "tst"@mysql;
Name Null? Type
id NUMBER(10)You can make the following query on the result page:
"select * from the_table where movietitle = ? and cinema = ?"
then you set movietitle and cinema to those which the user selected. If the resultset contains more than 0 rows, that means the movie is available.
Below is the sample code, it assumes you have a connection to the database:
PreparedStatement stat = myConnection.prepareStatement("select * from the_table where movietitle = ? and cinema = ?");
stat.setString(1, usersMovieTitleSelection);
stat.setString(2, usersCinemaSelection);
ResultSet res = stat.executeQuery();
if (res.next()) {
out.print("The movie is available");
} else {
out.print("The movie is not available");
}Now just add that to your JSP page. Enjoy ! =)
Maybe you are looking for
-
Hi! Since the day before yesterday, xfce is taking longer than normal to start. It is taking 15-20 seconds to boot to the desktop after the password is input on SLiM. At first I thought it was a matter of slim, since I switched to it recently from li
-
When I add a photo to a folder how do I get the thumbnails in Bridge to sort automatically? Right now I have to move them around manually. This becomes quite a chore when I add several pictures.
-
I believe my facetime on my imac is corrupted. When I open the programme I get the screen which indicates "preference" and that the toggle shows the programme is off. If I toggle it on, facetime does not turn on but shows that it is trying to load(
-
I am trying to install the essbase.pm and have some trouble. The makefile refers to /api/lib/libmaxl directory which is not part of the windows install. Does anyone have any clue as to how to modify the makefile.PL.win32 file?ThanksRandy
-
Number of processes in 1 BPM DC ?
Hello Experts, Can anyone please tell me how many no. of processes there should be in 1 BPM DC ? We have a scenario where we need 4 processes. Each process comprises of 4-5 human tasks. Can I put them in single DC or should be placed in separate DC