ORACLE DATABASE 12C: Nuove Feature per Oracle Database File System

ORACLE DATABASE 12C: Nuove Feature per Oracle Database File System
  • 28
    Gen

ORACLE DATABASE 12C: Nuove Feature per Oracle Database File System

twittergoogle_pluslinkedin

Oracle Database File System (DBFS) è stato introdotto dalla versione 11g R2 e fa parte delle feature XML DB (in breve, XDB).
Il concetto è semplice: DBFS è un tablespace i cui contenuti sono documenti (in particolare colonne LOB) direttamente accessibili come file system esterni.
In Oracle 11g R2 l’unico modo per realizzarlo era tramite il software FUSE (Filesystem in Userspace) disponibile solo su piattaforme Linux e Solaris. Oltretutto, la configurazione di DBFS era abbastanza complessa.
Oracle 12c introduce il supporto per HTTP, FTP e i protocolli WebDAV, semplificando la fase di configurazione e aumentando l’accessibilità.
Il processo di creazione del DBFS è lo stesso per 11g R2 e 12c:
– Creare un tablespace DBFS:
SQL> CREATE TABLESPACE dbfs_tbs
DATAFILE ‘/u01/app/oracle/oradata/DB12C/dbfs01.dbf’
SIZE 1M AUTOEXTEND ON NEXT 1M;
– Creare un utente per DBFS:
SQL> CREATE USER dbfs_user IDENTIFIED BY dbfs_user
DEFAULT TABLESPACE dbfs_tbs QUOTA UNLIMITED ON dbfs_tbs;
– Dare i permessi necessari, in particolare il ruolo DBFS_ROLE:
SQL> GRANT CREATE SESSION, RESOURCE, DBFS_ROLE TO dbfs_user;
– Connettersi con l’owner creato e lanciare lo script di creazione DBFS:
SQL> CONNECT dbfs_user/dbfs_user
SQL> @?/rdbms/admin/dbfs_create_filesystem.sql dbfs_tbs orafs
No errors.
——–
CREATE STORE:
begin dbms_dbfs_sfs.createFilesystem(store_name => ‘orafs’, tbl_name => ‘orafs’, tbl_tbs => ‘dbfs_tbs’, lob_tbs => ‘dbfs_tbs’, do_partition => false, partition_key => 1, do_compress => false,
compression => ”, do_dedup => false, do_encrypt => false); end;
——–
REGISTER STORE:
begin dbms_dbfs_content.registerStore(store_name=> ‘orafs’, provider_name => ‘sample1′, provider_package => ‘dbms_dbfs_sfs’); end;
——–
MOUNT STORE:
begin dbms_dbfs_content.mountStore(store_name=>’orafs’, store_mount=>’orafs’); end;
——–
CHMOD STORE:
declare m integer; begin m := dbms_fuse.fs_chmod(‘/orafs’, 16895); end;
No errors.
Il primo parametro (dbfs_tbs) è il nome del tablespace DBFS mentre il secondo (orafs) è il nome del nuovo file system DBFS.
Per poter accede al file system DBFS creato (per questo esempio, /orafs) bisogna configurare almeno uno di questi protocolli:
HTTP O WEBDAV
Verificare che sia già stata definita una porta HTTP per XDB (potrebbe essere stato fatto in precedenza per l’accesso dell’Enterprise Manager Express):
SQL> SELECT DBMS_XDB_CONFIG.GETHTTPPORT FROM dual;
GETHTTPPORT
———–
0
Se non è definita, settarla:
SQL> EXEC DBMS_XDB_CONFIG.SETHTTPPORT(5500)
Ora si può accedere al DBFS /orafs via HTTP tramite browser, per esempio:
http://ora12c:5500/dbfs/orafs
Si può anche accedere via WebDAV, per esempio usando MS Explorer o Nautilus (rispettivamente su sistemi Windows o Linux): semplicemente basta aggiungere un Network Place in Windows oppure, se si usa Nautilus, tramite menù File -> Connect to server.
Il protocollo WebDAV consente di effettuare il drag-and-drop dei documenti con DBFS!
FTP
Verificare che sia già stata definita una porta FTP per XDB, per esempio:
SQL> SELECT DBMS_XDB_CONFIG.GETFTPPORT FROM dual;
GETFTPPORT
———-
0
Se non è definita, settarla:
SQL> EXEC DBMS_XDB_CONFIG.SETFTPPORT(4021)
Ora si può usare un Client FTP per accedere ai documenti ed effettuare upload e download da e verso FSDB.