Resource Privileges in Oracle Database

If you don’t have resource privileges in oracle databases, you don’t create the following objects:

SQL> select privilege from dba_sys_privs where grantee='RESOURCE';
CREATE TABLE
CREATE TYPE
CREATE TRIGGER
CREATE CLUSTER
CREATE SEQUENCE
CREATE OPERATOR
CREATE PROCEDURE
CREATE INDEXTYPE

Also, you must have unlimited tablespace within the resource role. 

You can use the following syntax to give resource privileges:

SQL> grant resource to user;

Catalog Upgrade Sonrası ORA-15204 Hatası

Oracle database upgrade işleminin ardından RMAN ile backup alınırken ASM disk grupları ile Database versiyonunun uyuşmamasından ORA-15204 hatası alınabilir.

Database üzerinden compatible sürümü aşağıdaki gibi kontrol edilir. 

SQL> show parameter compatible; 

NAME          TYPE    VALUE
compatible    string          11.2.0.0.0

ASM disk gruplarının compatible kontrolü:

ASMCMD> lsattr -l -G RECOC1 compatible.rdbms 

Name Value
compatible.rdbms 11.2.0.0.0
ASMCMD> lsattr -l -G DATAC1 compatible.rdbms 

Name Value
compatible.rdbms 11.2.0.4.0

DATAC1 ve RECOC1 disk gruplarının farklı versiyonda olduğu dikkatinizi çekmiş olmalı. Bu örnekte database’e ait tüm datafile’lar RECOC1 disk grubunda, spfile DATAC1 disk grubunda bulunmaktadır.  Database backup işlemine başladığında spfile’nin backup’ı otomatik alınır. Spfile database ile uyuşmayan disk grubunda olduğundan dolayı backup işlemi başarısız olmaktadır.

Compatible sorunu çözülene kadar spfile’nin backup’ı aşağıdaki gibi alınabilir.

SQL> create pfile ='/u02/backup/spf_%d_%T_%s_%p.bck' from memory;

Database’in compatibility parametresini 11.2.0.4.0’a set edildiğinde spfile backup alma işlemi başarılı olacaktır.

SQL> alter system set compatible=’11.2.0.4.0′ scope=spfile sid='*'; 
SQL> shutdown immediate;
SQL> startup;

Long Tipi Kolonu Olan Tabloların Taşınması

Oracle db’de bir şemanın tablolarını db link ile başka bir db’ye yere aktarmam gerekiyordu. Bu işlemi yaparken long tipi kolonu olan bir tablonun bu yöntemle aktarılmadığını fark ettim.

Long tipi kolonu olan tabloyu aktarmak için sadece o tabloyu export import yapmak gerekiyor.

Bu örnekte HR şemasından export ettiğim tabloyu EMRAH şemasına import edeceğim. 

Export/İmport edilecek tablo:

CREATE TABLE HR.COMMENT(
  C_ID RAW(16),
  C_TITLE VARCHAR2(155),
  C_CONTENT LONG,
);

Export/İmport şlemi için db de tanımlı bir directory olmalıdır. Bu örnekte tanımlı directory HOME_DIR=’/home/oracle’ olarak set edilmiştir.

$ expdp userid="hr/hr" DIRECTORY=HOME_DIR TABLES=HR.COMMENT DUMPFILE=hr_comment.dmp LOGFILE=hr_comment_exp.log ROWS=Y

Bu işlem sonucunda “/home/oracle” dizini altında “hr_comment.dmp” dosyasının oluşması ve long tipindeki kolonun verileri de export edilmiş olması gerekiyor.

HR şemasında export edilmiş tabloyu EMRAH şemasına import işlemi aşağıdaki gibi yapılmaktadır.

$ impdp userid="emrah/welcome1" DIRECTORY=HOME_DIR DUMPFILE=hr_comment.dmp LOGFILE=hr_comment_imp.log REMAP_SCHEMA="HR:EMRAH" ROWS=Y

REMAP_SCHEMA parametresi yazılmadığı taktirde import HR şemasına yapılacaktır. REMAP_SCHEMA parametrenin kullanımı “default_şema:yeni_şema” şeklindedir.