oracle dbfs檔案系統介紹及使用測試
一、DBFS介紹
The Oracle Database File System (DBFS) creates a standard file system interface on top
of files and directories that are stored indata base tables. DBFS is similar to NFS in that
it provides a shared network file systemthat looks like a local file system. Like NFS,
there is a server component and a clientcomponent.
Dbfs在檔案和目錄之上建立了一個標準的檔案系統結構,並且將資料儲存在資料庫基表裡面。DBFS很像NFS,因為它提供了一個與本地檔案系統相同的共享的網路檔案系統。與NFS一樣,由Server與Client組成。
In DBFS, the server is the Oracle Database.Files are stored as SecureFiles LOBs in a
database table. A set of PL/SQL proceduresimplement the file system access
primitives such as create, open, read,write, and list directory. The implementation of
the file system in the database is calledthe DBFS Content Store. The DBFS Content
Store allows each database user to createone or more file systems that can be mounted
by clients. Each file system has its owndedicated tables that hold the file system
content.
在DBFS中,Server為Oracle資料庫,檔案儲存在表的一個SecureFiles LOBs 欄位裡面。一個PLSQL儲存過程的集合,提供了訪問檔案系統的基本操作,比如說create、open、read、write,ls 。DBFS目錄庫允許每個資料庫使用者建立一個或多個檔案系統,並且可以被clients使用。每個檔案系統擁有專有的資料表,保證檔案系統的內容。
體系結構如下圖所示
二、Client端安裝fuse
確定fuse版本
uname –a
Linux DB-SERVER-02 2.6.18-164.el5#1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
本機kernelversion 2.6.18
Kernel version 2.6.x
x>9都需要使用 fuse-2.7.4
下載fuse安裝包
下載地址:
或者
檢查kernel-devel 包
# rpm –q kernel-devel
如果沒有安裝,掛載安裝盤後安裝package
安裝fuse
$ tar -xzvf fuse-2.7.4.tar.gz
$ cd [fuse_src_dir]
$ ./configure --prefix=/usr --with-kernel=[yourkernel dir]
$ make
$ sudo su
# make install
# /sbin/depmod
# /sbin/modprobe fuse
# chmod 666 /dev/fuse
# echo "/sbin/modprobe fuse" >>/etc/rc.modules
示例
檢視是否安裝了所需安裝包
[root@mytest ~]# rpm -q kernel-devel
package kernel-devel is not installed
掛載光碟
[root@mytest dev]# mount /dev/hdc /mnt
mount: block device /dev/hdc iswrite-protected,
mounting read-only
安裝kernel-devel包
[root@mytest Server]# rpm -ivh kernel-devel-2.6.18-308.el5.x86_64.rpm
Preparing... ########################################### [100%]
1:kernel-devel ###########################################[100%]
檢視kernelversion
[root@mytest Server]# uname -a
Linux mytest 2.6.18-308.el5#1 SMP Sat Feb 25 12:40:07 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
ftp 將fuse2.7.4 上傳至伺服器/root目錄下
[root@mytest ~]# pwd
/root
[root@mytest ~]# ls -l fuse-2.7.4.tar.gz
-rw-r--r-- 1 root root 506658 Jun 11 13:54 fuse-2.7.4.tar.gz
解壓
[root@mytest ~]# tar -xzvf fuse-2.7.4.tar.gz
[root@mytest ~]# cd fuse-2.7.4
安裝
[root@mytest fuse-2.7.4]#./configure
[root@mytest fuse-2.7.4]#make
[root@mytest fuse-2.7.4]#make install
[root@mytest fuse-2.7.4]#/sbin/depmod
[root@mytest fuse-2.7.4]#/sbin/modprobe fuse
[root@mytest fuse-2.7.4]#chmod 666 /dev/fuse
[root@mytest fuse-2.7.4]#echo "/sbin/modprobe fuse" >> /etc/rc.modules
三、Server端Oracle資料庫配置
Server端配置流程
1建立表空間
新建的表空間用來儲存dbfs中相關資料。
2建立使用者
新建使用者用來管理dbfs相關的檔案以及源資料
3授權
管理dbfs的使用者需要擁有相關許可權
4執行dbfs初始化指令碼
Dbfs配置指令碼路徑:
$ORACLE_HOME/rdbms/admin/dbfs_create_filesystem_advanced
注意,需要使用新建的使用者執行該指令碼。
示例
使用dba使用者登入
[oracle@mytest~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0Production on Thu Aug 2 13:40:42 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
開啟資料庫
SQL>startup
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2213896 bytes
Variable Size 956303352 bytes
Database Buffers 687865856 bytes
Redo Buffers 7135232 bytes
Database mounted.
Database opened.
建立表空間fsts(這裡使用大檔案表空間)
SQL>create bigfile tablespace fsts
2 datafile '/u01/apps/oracle/oradata/david/fsts01.dbf'
3 size500m ;
Tablespace created.
建立使用者dexter
SQL> create user dexter identified byxiaojun default tablespace fsts quota unlimited on fsts ;
User created.
授權
SQL>grant create session,create table , create procedure , dbfs_role to dexter ;
Grant succeeded.
SQL> conn dexter/xiaojun
Connected.
執行初始化指令碼
SQL>@?/rdbms/admin/dbfs_create_filesystem_advanced fsts dir1 nocompressnodeduplicate noencrypt non-partition
四、客戶端掛載
客戶端使用需要用到dbfs_client命令,相關的程式都在Oracle client中,所以客戶端必須安裝Oracle client。
客戶端配置流程
1.使用root使用者
2. Add a new library path.
Command:
# echo "/usr/local/lib" >>/etc/ld.so.conf.d/usr_local_lib.conf
3. Change directory to lib , and create thefollowing symbolic links to the
libclntsh.so.11.1 and libnnz11.so libraries.
Command:
# cd /usr/local/lib
# ln -s $ORACLE_HOME/lib/libclntsh.so.11.1
# ln -s $ORACLE_HOME/lib/libnnz11.so
4. Locate libfuse.so, and create a symbolic linkthis library.
# locate libfuse.so
determined_path /libfuse.so
Command:
# ln –s determined_path /libfuse.so
5. Run ldconfig to create the links and cache for the new symbolic links.
Command:
# ldconfig
6. Create a symbolic link to dbfs_client in /sbin as mount.dbfs.
Command:
# ln -s $ORACLE_HOME/bin/dbfs_client/sbin/mount.dbfs
7. Login as admin user. (Oracle recommends th atyou do not perform the next step
as root user.)
8. Mount the DBFS store.
Command:
% dbfs_client @/dbfsdb -owallet,rw,user,direct_io /mnt/dbfs
9. [Optional] To test if the previo us step wassuccessful, list the dbfs directory.
Command:
# ls /mnt/dbfs
後臺執行:
nohup dbfs_client ETLUser@DBConnectString/mnt/dbfs < passwordfile.f &
示例
[oracle@mytest~]$ mkdir /u01/dbfs
[oracle@mytest~]$ ls -l /u01
drwxr-xr-x 2 oracle oinstall 4096 Aug 2 13:51 dbfs
[root@mytest~]# echo "/usr/local/lib" >>/etc/ld.so.conf.d/usr_local_lib.conf
[root@mytest~]# cd /usr/local/lib
[root@mytestlib]# ln -s /u01/apps/oracle/product/11gr2/db_1/lib/libclntsh.so.11.1
[root@mytestlib]# ln -s /u01/apps/oracle/product/11gr2/db_1/lib/libnnz11.so
[root@mytestlib]# find / -name libfuse.so
/usr/local/lib/libfuse.so
[root@mytestlib]# ln -s /usr/local/lib/libfuse.so
[root@mytestlib]# ldconfig
[root@mytestlib]# ln -s /u01/apps/oracle/product/11gr2/db_1/bin/dbfs_client/sbin/mount.dbfs
[root@mytestlib]# su - oracle
配置密碼檔案
使用oracle使用者作為dbfs掛載的管理使用者
建立密碼檔案
echo xiaojun > passwd.t
檢視客戶端的配置
[oracle@mytest~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
DAVID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =mytest)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = david)
)
)
遠端可以登入
[oracle@mytest~]$ sqlplus dexter/xiaojun@david
SQL*Plus: Release 11.2.0.1.0Production on Thu Aug 2 14:17:32 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- 64bit Production
With the Partitioning, OLAP, Data Mining andReal Application Testing options
SQL>
執行掛載命令
nohup dbfs_client dexter@david /u01/dbfs < passwd.t &
[1] 11665
[oracle@mytest ~]$ nohup: appending outputto `nohup.out'
[oracle@mytest ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 30G 15G 14G 53% /
/dev/sda3 3.9G 473M 3.3G 13% /tmp
tmpfs 2.0G 943M 1.1G 48% /dev/shm
/dev/hdc 3.7G 3.7G 0 100% /mnt
dbfs 1.5M 57K 1.4M 4% /u01/dbfs
五、測試
[oracle@mytest ~]$ ll /u01
drwxr-xr-x 3 root root 0 Aug 2 14:20 dbfs
[oracle@mytest ~]$ ll /u01/dbfs/
total 0
drwxrwxrwx 3 root root 0 Aug 2 14:09 dir1
[oracle@mytest~]$ echo test > /u01/dbfs/dir1/test.t
[oracle@mytest~]$ ll /u01/dbfs/dir1/
total 1
-rw-r--r--1 oracle oinstall 5 Aug 2 14:21 test.t
[oracle@mytest ~]$ cat /u01/dbfs/dir1/test.t
Test
[oracle@mytest~]$ mkdir /u01/dbfs/dir1/sub_dir
[oracle@mytest~]$ echo ffccddssdd > /u01/dbfs/dir1/sub_dir/test2.t
[oracle@mytest~]$ sqlplus dexter/xiaojun@david
SQL*Plus: Release 11.2.0.1.0Production on Thu Aug 2 14:28:49 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0- 64bit Production
With the Partitioning, OLAP, Data Mining andReal Application Testing options
Pathtype=1 表示檔案 2表示目錄
[sql] view plaincopyprint?
1. SQL> select pathname , item , pathtype from t_dir1 ;
2. PATHNAME ITEM PATHTYPE
3. -------------------- ----------------------------
4. /test.t test.t 1
5. /sub_dir sub_dir 2
6. /sub_dir/test2.t test2.t 1
7. / ROOT 2
8. /.sfs .sfs 2
9. /.sfs/attributes attributes 2
10. /.sfs/tools tools 2
11. /.sfs/snapshots snapshots 2
12. /.sfs/RECYCLE RECYCLE 2
13. /.sfs/content content 2
14.
15. 10 rows selected.
配置完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-2147514/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 認識Oracle DBFS檔案系統Oracle
- Databricks 第5篇:Databricks檔案系統(DBFS)
- lustre檔案系統環境搭建及測試
- Linux 檔案系統基本介紹Linux
- ros學習檔案系統介紹ROS
- 在exadata環境下配置dbfs檔案系統
- Linux 檔案系統-ext3 檔案系統介紹(轉)Linux
- 檔案系統(十一):Linux Squashfs只讀檔案系統介紹Linux
- 10g Oracle檔案及目錄介紹Oracle
- iOS系統及客戶端軟體測試的基礎介紹iOS客戶端
- ORACLE主要配置檔案介紹Oracle
- Redis叢集介紹及測試思路Redis
- 前端單元測試總結及測試工具介紹前端
- FASTDFS開源分散式檔案系統介紹AST分散式
- Linux EXT4檔案系統介紹Linux
- 『學了就忘』Linux檔案系統管理 — 57、Linux檔案系統介紹Linux
- linux使用者及組相關檔案介紹Linux
- 【iOS資料儲存】iOS檔案系統介紹iOS
- 檔案系統 FTP Ubuntu 安裝入門介紹FTPUbuntu
- 混沌測試介紹
- ORACLE11GR2 RAC檔案系統變更成ASM EXTEND RAC及高可用測試OracleASM
- 官方壓測工具mysqlslap介紹及使用MySql
- Bash on Windows 搶鮮測試 -- 介紹及安裝Windows
- [原創]Fitnesse測試工具介紹及安裝
- UI自動化測試介紹及入門UI
- Flask快速入門day 01(flask介紹、快速使用、配置檔案、路由系統)Flask路由
- NFS 網路檔案系統測試筆記NFS筆記
- JDK安裝及測試檔案JDK
- 簡單介紹一下 Linux 檔案系統?Linux
- Macbook磁碟系統結構/檔案/目錄介紹分析Mac
- vue 腳手架 配置 及檔案介紹Vue
- Java基準效能測試--JMH使用介紹Java
- 【RAC】Oracle RAC上線測試場景介紹Oracle
- Oracle Stream實戰(1)—測試環境介紹Oracle
- 網路測試DOS命令詳細介紹及使用方法舉例
- 效能測試的流程及常用工具介紹
- 壓力測試sysbench安裝及引數介紹
- 【檔案系統】嵌入式檔案系統Fatfs簡介