четверг, 26 мая 2011 г.

Recovery: corrupt oracle block for test

C:\oracle\product\10.2.0\db_1\database>vim test.null
insert : 0
C:\oracle\product\10.2.0\db_1\database>dd if=test.null of=C:\PROJECT\TEST10G\DATAFILE\O1_MF_TEST_UND_6MBTLQRW_.DBF bs=8192 seek=3 count=1
0+1 records in
0+1 records out

среда, 25 мая 2011 г.

Recovery: clear log file - not existing

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:346817516082

08:00:42 38 4294967295 SYS@orcl> alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) ═х єфрхЄё эрщЄш єърчрээ√щ Їрщы.


Elapsed: 00:00:00.10
08:00:50 38 4294967295 SYS@orcl> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery


Elapsed: 00:00:00.37
08:12:44 38 4294967295 SYS@orcl> recover database until cancel;
Media recovery complete.
08:13:01 38 4294967295 SYS@orcl> alter database open resetlogs;

Database altered.

вторник, 24 мая 2011 г.

суббота, 21 мая 2011 г.

General: Resource manager simple plan

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_SIMPLE_PLAN(SIMPLE_PLAN => 'simple_plan1',
CONSUMER_GROUP1 => 'mygroup1', GROUP1_CPU => 3,
CONSUMER_GROUP2 => 'mygroup2', GROUP2_CPU => 1);
END;
/

exec dbms_resource_manager.create_pending_area;

BEGIN
DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING
(DBMS_RESOURCE_MANAGER.ORACLE_USER, 'test', 'mygroup2');
END;
/

exec dbms_resource_manager.submit_pending_area;

18:27:16 38 447 TEST@orcl> select initial_rsrc_consumer_group from dba_users where username = 'TEST';

INITIAL_RSRC_CONSUMER_GROUP
------------------------------
MYGROUP2

alter system set resouce_manager_plan=simple_plan1;

вторник, 25 января 2011 г.

Dev: nls_sort: possible values and why index not used for order by

select * from v$nls_valid_values where parameter='SORT';
--
-- Territory
--
select to_char(sysdate, 'd') from dual;

T
-
3

alter session set nls_territory=RUSSIA;
Session altered.
select to_char(sysdate, 'd') from dual;

T
-
2
--
-- Be careful, for varchar columns optimizer will not use index for sorting
--
13:45:19 SQL> select value from nls_session_parameters where parameter = 'NLS_SORT';

VALUE
----------------------------------------
RUSSIAN
13:46:54 SQL> select * from id order by id;
Elapsed: 00:00:00.01

Execution Plan
----------------------------------------------------------
Plan hash value: 1459189690

-----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
-----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 10145 | 14M| | 3196 (1)| 00:00:39 |
| 1 | SORT ORDER BY | | 10145 | 14M| 31M| 3196 (1)| 00:00:39 |
| 2 | TABLE ACCESS FULL| ID | 10145 | 14M| | 6 (0)| 00:00:01 |
-----------------------------------------------------------------------------------
13:47:24 SQL> alter session set nls_sort=binary;

Session altered.

Elapsed: 00:00:00.01
13:47:31 SQL> select * from id order by id;
Elapsed: 00:00:00.00

Execution Plan
----------------------------------------------------------
Plan hash value: 4052251165

--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 10145 | 14M| 19 (0)| 00:00:01 |
| 1 | INDEX FULL SCAN | SYS_C006460 | 10145 | 14M| 19 (0)| 00:00:01 |
--------------------------------------------------------------------------------
--
-- You can create linguistic index but in this case table will be accessed too
--
14:49:47 SQL> alter session set nls_sort=russian;

Session altered.

Elapsed: 00:00:00.01
14:50:49 SQL> select value from nls_session_parameters where parameter = 'NLS_SORT';

VALUE
----------------------------------------
RUSSIAN

1 row selected.

Elapsed: 00:00:00.01
14:51:16 SQL> set autotrace traceonly exp
14:51:31 SQL> select * from id order by id;
Elapsed: 00:00:00.01

Execution Plan
----------------------------------------------------------
Plan hash value: 3088927961

--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 10145 | 14M| 954 (0)| 00:00:12 |
| 1 | TABLE ACCESS BY INDEX ROWID| ID | 10145 | 14M| 954 (0)| 00:00:12 |
| 2 | INDEX FULL SCAN | ID_IDX | 10145 | | 16 (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement

Update BLOB

set define off DECLARE    vb1 CLOB := 'long text';    vb2 CLOB :=                 'long text';    vb3 CLOB :=              ...