文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

oracle中dbfs文件系统怎么用

2024-04-02 19:55

关注

这篇文章主要介绍oracle中dbfs文件系统怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一、DBFS介绍

Dbfs在文件和目录之上创建了一个标准的文件系统结构,并且将数据存储在数据库基表里面。DBFS很像NFS,因为它提供了一个与本地文件系统相同的共享的网络文件系统。与NFS一样,由Server与Client组成。

 

在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安装包

下载地址:

http://fuse.sourceforge.net

或者

http://sourceforge.net/projects/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

三、ServerOracle数据库配置

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.  

SQL> select pathname , item , pathtype  from t_dir1 ;    

PATHNAME             ITEM                 PATHTYPE

-------------------- ----------------------------

/test.t               test.t                      1

/sub_dir             sub_dir                    2

/sub_dir/test2.t        test2.t                     1

/                   ROOT                     2

/.sfs                .sfs                        2

/.sfs/attributes        attributes                   2

/.sfs/tools            tools                      2

/.sfs/snapshots        snapshots                  2

/.sfs/RECYCLE      RECYCLE                 2

/.sfs/content          content                    2

 

10 rows selected.

 

配置完成

以上是“oracle中dbfs文件系统怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯