精华内容
下载资源
问答
  • Oracle BIEE 12c用户权限系统操作文档(下) 本文涉及用户用户组和应用程序角色系统操作和对oracle 11g数据库,hive,Impala三种数据源的分用户项目视图权限细粒度权限管理操作。 以下操作均为个人研究成果,...

    Oracle BIEE 12c用户权限系统操作文档(下)

    本文涉及用户,用户组和应用程序角色系统的操作和对oracle 11g数据库,hive,Impala三种数据源的分用户项目视图权限细粒度权限管理操作。

    以下操作均为个人研究成果,研究整理不易,这里分享出来是希望能和大家共同探讨,不足之处还望指出。

    四,安装windows端的Oracle BIEE

    因OBIEE的BI管理工具只在Windows版本的BIEE存在,需要在Windows端安装对应版本BIEE安装过程(无需配置环境变量,文件夹路径相似,Linux的的.SH操作在视窗对应.CMD操作)

    五,配置的Windows端ODBC

    1.Windows自带搜索程序和文件中搜索”‘ODBC’,并打开

    2.点击“系统DSN”,选择“添加”

    3.列表中选择“Oracle BI Server”,“完成”

    4.填入“名称”和“服务器IP”,“下一步”

    5.浏览器登陆融合中间件控制界面:http:// ip:9500 / em,点击“biinstance”

    6.点击“可用性”,打开“BI Server”,查看对应的端口(这里是9515)

    7.回到ODBC配置界面,将第6步得到的端口号填入,点击“下一步”,“完成”

    六,连接Linux端BI服务器

    1.启动BI管理工具

    在Windows下的BIEE安装目录$ Oracle_ Home / user_projects \ domains \ bi \ bitools \ bin下找到“admintool.cmd”,双击打开。

    2.点击第三个文件夹图标“联机打开”选项

    3.此方法不推荐,为第2条备选方案,这里仅作了解:

    选择脱机打开RPD文件进行编辑,需要使用BIEE自带工具命令提取RPD:/opt/oraBI/Middleware/Oracle_Home/user_projects/domains/bi/bitools/bin./datamodel.sh downloadrpd -O obiee.rpd -SI ssi -U adminusername -P adminpassword

    将RPD文件传到的Windows系统的BI管理工具打开,编辑,保存,再反传回的Linux系统中,使用BIEE自带工具命令上传RPD:

    /opt/oraBI/Middleware/Oracle_Home/user_projects/domains/bi/bitools/bin/datamodel.sh uploadrpd -I obiee_new.rpd -SI ssi -U adminusername -P adminpassword

    重启BIEE。

    4.选择之前创建的ODBC驱动,输入BIEE的管理员“用户”和“口令”并“打开”

    5.如图这里会显示BIEE数据的三层结构,优秀的习惯是学好数据建模,下面先介绍帕拉数据源的简单导入方式

    七,导入数据源元数据

    • 帕拉数据源

    1.修改的Linux系统BIEE的obis.properties文件:

    vi /opt/oraBI/Middleware/Oracle_Home//user_projects/domains/bi/config/fmwconfig/bienv/OBIS/obis.properties

    配置如下内容(HADOOP_DLL是为连接配置单元数据源配置的,只用帕拉可省略):

    LD_LIBRARY_PATH = /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 7.1.4 / lib下,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI / bifoundation / server / bin目录,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI / bifoundation /网络/ bin中,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI /客户/ Essbase的/ EssbaseRTC / bin中,

    /opt/oraBI/Middleware/Oracle_Home/bi/modules/oracle.bi.datadirect.odbc/8.0.2/lib,

    $ ORACLE_INSTANCE,

    的/ usr / lib64下,

    /选择/ oraBI /中间件/ ORACLE_HOME / lib中

    HADOOP_DLL = /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 8.0.2 / LIB / ARhive28.so

    2.修改的Linux系统BIEE的ODBC.INI文件:

    vi /opt/oraBI/Middleware/Oracle_Home/user_projects/domains/bi/config/fmwconfig/bienv/core/odbc.ini

    添加如下内容;

    [帕拉]

    驱动器= /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 7.1.4 / LIB / ARimpala27.so

    描述= Oracle 7.1 Impala有线协议

    ARRAYSIZE = 16384

    数据库=默认

    DefaultLongDataBuffLen = 1024

    DefaultOrderByLimit = -1

    EnableDescribeParam = 0

    主机名= xxx.xxx.x.xxx

    LoginTimeout = 30

    MaxVarcharSize = 2000

    端口号= 21050

    RemoveColumnQualifiers = 0

    StringDescribeType = 12

    TransactionMode = 0

    UseCurrentSchema = 0

    WireProtocolVersion = 2

    3.重启BIEE的海洋生物地理信息服务

    cd / opt / oraBI / Middleware / Oracle_Home / user_projects / domains / bi / bitools / bin

    ./stop.sh -i obis1

    ./start.sh -i obis1

    4.打开Windows系统的ODBC配置界面,选择“系统DSN”,点击“添加”,在列表中找到“Oracle 7.1 Impala Wire Protocol”,点击“完成”

    5.添入ODBC名称(帕拉),添加黑斑羚的主机的IP,端口号(21050)和数据库名称(默认)

    6.点击下方的“测试连接”,输入登陆Impala的Linux系统账户名称和密码,点击“确定”

    7.出现该提示表示成功,即可保存退出ODBC编辑

    8.打开BI管理工具,依次选择左上方的“文件”,“导入元数据”

    9.连接类型选择“ODBC 3.5”,列表中选择“Impala”,填入Linux系统登陆Impala的用户名​​,密码,点击“下一步”,再次“下一步”,

    10.选择要导入的库(默认),添加进右侧“资料档案视图”,点击“完成”,等待元数据导入完毕自动退出

    11.在“物理层”中可见刚刚导入的数据库“帕拉”,右键点击“帕拉”库中的表,选则“属性”,点击“检出”

    12.点击“外键”和“+”

    13.添加与之关联外键的另一张表(BIEE硬性规定添加的表需要外键关联,可随意关联一表来使检查通过)

    14.选择一张表,点击“选择”,在两张表中随意选择类型相同的两个列的名称进行关联,点击“确定”

    15.右键点击“羚羊”,选择“属性”,会提示“数据库具有只读属性。是否要检出它?”,点击“是”

    16.点击“功能”,点击“重置为默认值”,点击“确定”(OBIEE 12C有微小的改动,需要重置下默认功能,否则接下来会错误提示)

    17.按住物理层的“帕拉”,将其拖动至“业务模型和映射层”,再拖动至“表示层”,在这两层中可为数据库(Impaladb)和列名进行自定义名称显示

    18.点击BI管理工具左上角“检入更改”,待同步检测无误后点击保存图标进行保存

    19.表示层的数据集会以主题区域的形式出现在HTTP:// IP:9502 / DV / UI中,默认所有用户可见(有时需等待数分钟,并重新登录后可见)

    • 甲骨文数据库数据源

    1.打开BI管理工具,依次点击“文件”,“导入元数据”,连接类型选择“OCI 10g / 11g”填入数据库连接信息,点击“下一步”,“下一步”,选择要添加的表,添加,“完成”

    2.余下步骤和导入帕拉表类似,参照帕拉数据源第12-19条操作即可

    • hive数据源

    1.修改的Linux系统BIEE的obis.properties文件:

    vi /opt/oraBI/Middleware/Oracle_Home//user_projects/domains/bi/config/fmwconfig/bienv/OBIS/obis.properties

    配置如下内容(若配置过帕拉,此步可省):

    LD_LIBRARY_PATH = /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 7.1.4 / lib下,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI / bifoundation / server / bin目录,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI / bifoundation /网络/ bin中,

    /选择/ oraBI /中间件/ ORACLE_HOME / BI /客户/ Essbase的/ EssbaseRTC / bin中,

    /opt/oraBI/Middleware/Oracle_Home/bi/modules/oracle.bi.datadirect.odbc/8.0.2/lib,

    $ ORACLE_INSTANCE,

    的/ usr / lib64下,

    /选择/ oraBI /中间件/ ORACLE_HOME / lib中

    HADOOP_DLL = /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 8.0.2 / LIB / ARhive28.so

    2.修改的Linux系统BIEE的ODBC.INI文件:

    vi /opt/oraBI/Middleware/Oracle_Home/user_projects/domains/bi/config/fmwconfig/bienv/core/odbc.ini

    添加如下内容;

    [蜂巢]

    驱动器= /选择/ oraBI /中间件/ ORACLE_HOME / BI /模块/ oracle.bi.datadirect.odbc / 8.0.2 / LIB / ARhive28.so

    描述= Oracle 8.0 Apache Hive Wire协议

    ARRAYSIZE = 16384

    数据库=默认

    DefaultLongDataBuffLen = 1024

    EnableDescribeParam = 0

    主机名= xxx.xxx.x.xxx

    LoginTimeout = 30

    MaxVarcharSize = 20000

    端口号= 10000

    RemoveColumnQualifiers = 0

    StringDescribeType = 12

    TransactionMode = 0

    UseCurrentSchema = 0

    3.重启BIEE的海洋生物地理信息服务

    cd / opt / oraBI / Middleware / Oracle_Home / user_projects / domains / bi / bitools / bin

    ./stop.sh -i obis1

    ./start.sh -i obis1

    4.打开Windows系统的ODBC配置界面,选择“系统DSN”,点击“添加”,在列表中找到“Oracle 8.0 Apache Hive Wire Protocol”,使用最新版本驱动,点击“完成”

    5.添入ODBC名称(帕拉),添加蜂房的主机的IP(xxx.xxx.x.xxx),端口号(10000)和数据库名称(默认)

    6.余下步骤和帕拉类似,参照帕拉数据源6-19操作即可

    八,为用户组设置资源访问权限

    1.打开BI管理工具,点击“管理”,列表中选择“身份”

    2.点击“操作”,“同步应用程序角色”,待同步完成后点击“应用程序角色”,可见到之前新建的角色“testrole”

    3.双击该角色,在弹出的框中点击“检出”,点击“权限”

    4.其中“对象权限”可设置表和库的可见性,这里通过“数据过滤器”实现角色对表的细粒度控制,点击“数据过滤器”

    5.单击“名称”下方空白区域添加一个要控制的表(以书为例),点击“选择”

    6.点击“数据过滤器”下空白区域,然后点击“编辑表达式”

    7.选中“book”表,“id”列,添加到右侧编辑区域,添加过滤条件(这里点击“=”,输入1,如图“Impaladb”。“book”。“id”= 1),依次点击“确定”退出编辑

    8.回到BI管理工具点击“检入更改”并“保存”

    九,创建共享项目

    1.由管理员账户登录的http:// IP:9502 / DV / UI,点击“创建”,“项目”,添加数据集中的“Impaladb”主题区域,选中“书”表,数据展示效果如下:

    2.将项目“另存为”到“共享文件夹”下,可使所有用户可见

    3.使用前面新建用户“jeery”登录http:// ip:9502 / dv / ui,在共享文件夹中找到之前新建的项目,数据展示效果如下(只显示数据过滤器过滤后的数据):

    4.默认其他用户对该项目只有查看权限,没有修改和删除权限,至此权限管理功能全面实现。

     

    展开全文
  • Oracle修改用户表所属空间的步骤

    万次阅读 2018-01-24 09:32:19
    使用脚本进行修改。据目前所了解,正长情况下需要修改的空间和的索引的空间,如果涉及到BOLB字段的,修改的方式又不一样了!...查询当前用户下的所有 选择'alter table'|| table_name ||' 移动空间tablesp...

     

    使用脚本进行修改。据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!
    正常情况下的修改脚本:
    1 。修改表的空间
    alter table TABLE_NAME move tablespace TABLESPACENAME

    查询当前用户下的所有表
    选择'alter table'|| table_name ||' 移动表空间tablespacename;' 来自  user_tables;

    2.修改表的索引的空间
    alter index INDEX_NAME rebuild tablespace TABLESPACENAME

    查询当前用户下的所有索引select'alter
    index'|| index_name ||' 重建表空间tablespacename;' from  user_indexes;

    可以使用脚本执行查询的结果,这样就可以批量处理!

    在移植看注意研究了下ORACLE ALTER TABLE MOVE的语法:

           ALTER TABLE table_name MOVE [ONLINE] tablespace_name;
    通过上面的语句可以移植表到新表空间,

    如果要移植LOB字典需要参考以下语法:
    ALTER TABLE table_name LOB(lob_item)STORE AS [lob_segment]
          (
            TABLESPACE tablespace_name
                       (STORAGE .....)
               ENABLE | DISABLE STORAGE IN ROW
               CHUNK integer
               PCTVERSION integer
                RETENTION
                FREEPOOLS integer
                CACHE | NOCACHE | CACHE READS
               INDEX lobindexname

    (TABLESPACE tablesapce_name

    ((STORAGE .....))


    ....

    注:

    LOB(lob_item):表中的lob字段
    STORE AS [lob_segment]:每个lob字段在表创建后系统都会自动单独创建一个段,可以通过这个参数手动指定一个段名
       TABLESPACE_NAME:LOB字段新的存储表空间
    (STORAGE .....):指定TABLESPACE_NAME的存储属性
        ENABLE STORAGE IN ROW:如果设置了enable storage in row那么oracle会自动将小于4000bytes的数据存储在行内,这是ORACLE的默认值,对于大于4000字节的lob字段保存在lob段),在表段将保留36-84字节的控制信息。对于在行中禁用存储,Oracle将lob字段分开保存在lob段中,而仅仅在行位置保留20字节的指针。对于相当于禁用存储行的这部分(也就是单独保存在LOB段的这部分数据),UNDO仅仅是记录指针与相关高球索引改变,如果发生更新操作等DML操作,原始数据将保留在LOB段。

        DISABLE STORAGE IN ROW :如果DISABLE这个属性,那么LOB数据会在行外存储,行内只存储该吊球值得指针,这个而且在属性表
    创建³³后只能在MOVE表时才可以被改变
        CHUNK:是一个很特别的属性,对一次LOB数据的操作(插入或更新),因该分配多少存储空间,指定的值最好是数据库块的倍数,而且指定的值不能 于表空间区间中NEXT的值,要不然ORACLE会返回一个错误,如果以前已经设置这个值了,那么在后期指定的值是不能被改变的。

    存储为(CHUNK字节)表示在行对于禁用存储的这部分,最小的LOB块的大小,必须是数据库块(DB_BLOCK_SIZE)的整数倍。一个块最多只保留一行LOB数据,也就是说,如果你设置了32K的CHUNK,但是如果LOB字段大小只有4K,也将占用32K的空间

    存储为(cache | nocahce)表示是否允许lob段经过buffer cache并缓存。默认是nocache,表示直接读与直接写,不经过数据库的data buffer。所以,默认情况下,对于单独保存在LOB段的这个部分数据,在发生物理读的时候,是直接读,如直接路径读取(lob)

    存储为(nocache记录| nocache nologging),记录/ nologging属性只对nocache方式生效,默认是logging,如果是nologging方式,对于保存在行外的日志部分,在更新等DML操作时将不记录重做日志

        。PCTVERSION integer,RETENTION:都是ORACLE用来管理LOB字段镜像数据的。在LOB数据的更新过程中,
    ORACLE没有用UNDO TABLESPACE空间,而是从LOB字段所在的表空间里划分一段空间来做镜像空间的,
    这个空间的大小由PCTVERSION参数控制,默认值为10,代表划分表空间的10%作为镜像空间,
    每个镜像空间的单元大小由CHUNK参数指定,pctversion可以使用在手动撤消模式和自动撤消模式 环境中。
    保留应用了自动撤销模式中的撤销通知通过时间来管理lob镜像空间。
    pctversion和retention不能同时被指定。建议数据库在自动撤销模式下使用保留参数。
    FREEPOOLS integer:给LOG段指定free list.RAC环境下整数为实例的个数。单实例环境下为1.在自动undo模式下oracle默认采用
    FREEPOOLS来管理空闲块列表。除非我们在表的存储配置中指定了freelist groups参数。
    CACHE | NOCACHE | CACHE READS:指定lob块是否在数据库缓冲区中缓存。
    索引lobindexname(TABLESPACE tablesapce_name((STORAGE .....):给lob列指定索引存储参数
    举例:
    SQL> show parameter db_create_file_dest

    SQL> create tablespace test datafile size 100M autoextend off;
    SQL> create table test(a varchar2(100 ),b clob,d blob)pctfree 10 tablespace test;

    SQL> desc test
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name ='TEST';

    我们发现每个LOB字段单独有一个LOGSEGMENT和LOBINDEX;

    SQL> set linesize 200
    col table_name格式a5
    col column_name格式a5
    SELECT b.table_name,
    a.segment_name,
    b.index_name,
    a.segment_type,
    b.column_name,
    a.tablespace_name,
    b.chunk,
    b.cache,
    b.freepools,
    b.pctversion,
    b.retention
    FROM dba_segments a,dba_lobs b
    WHERE a.segment_name = b.segment_name
    AND a.tablespace_name ='TEST'
    /

    SQL>

    从上面的结果我们可以观察到LOB字段的各个属性。
    下面我们对LOB字段移动到另一个表空间

    SQL>创建表空间lob_test数据文件大小100M autoextend off;

    SQL> ALTER TABLE TEST MOVE LOB(B)作为TEST_B 存储(
    TABLESPACE lob_test
    禁用存储在行
    16384
    RETENTION
    FREEPOOLS 1
    NOCACHE);
    SQL> ALTER TABLE TEST MOVE LOB(D)STEST AS TEST_D(
    TABLESPACE lob_test
    DISABLE STORAGE IN ROW
    CHUNK 16384
    RETENTION
    FREEPOOLS 1
    NOCACHE);
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name ='TEST';

    SQL> set linesize 200
    col table_name format a5
    col column_name format a5
    SELECT b.table_name,
    a.segment_name,
    b.index_name,
    a.segment_type,
    b.column_name,
    a.tablespace_name,
    b.chunk,
    b.cache,
    b.freepools,
    b.pctversion,
    b.retention
    FROM dba_segments a,dba_lobs b
    WHERE a.segment_name = b.segment_name
    AND a.tablespace_name ='LOB_TEST'
    / SQL>

    在一些复杂情况下可能需要连接一起移植
    alter table table_name move [tablespace_name] lob(lob_item)store as [lobsegmentname](tablespace tablespace_name .....);
    移植分区中lob
    alter table table_name move partition [partition_name] lob(lob_item)store as [logsegmentname](tablespace_name .....);
    移植分区表
    alter table table_name move partition [partition_name] tablespace_name lob(lob_item)store as [logsegmentname]( tablespace_name .....);
    如果不需要修改lobsegmentname,可以同时移植多个列
    alter table table_name move lob(lob_item1,lob_item2,lob_item3 ...)store as [lobsegmentname](tablespace tablespace_name .....);



        LOB段也可以利用移动来重整数据,以下的语句会将表与lob字段移动到指定的表空间:

       alter table table_name move [tablespace tbs_name]

    lob(lob_field1,lob_field2)存储为(tablespace new_tbs_name);

    如果LOB字段在分区表中,则增加partition关键字,如

       alter table table_name move [partition partname] [tablespace tbs_name]

    lob(field)store as(tablespace new_tbs_name) ;



    在数据库中合理的存储LOB列,不仅可以提升性能,而且还可以有效的管理存储空间。

    展开全文
  • ORACLE修改用户表所属空间的步骤

    千次阅读 2020-12-20 17:15:38
    使用脚本进行修改。据目前所了解,正长情况下需要修改的空间和的索引...查询当前用户下的所有 select 'alter table '|| table_name ||' move tablespace tablespacename;' from user_tables; 2.修改的索引的空

    使用脚本进行修改。据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了!
    正常情况下的修改脚本:
    1.修改表的空间

    alter table TABLE_NAME move tablespace TABLESPACENAME
    

    查询当前用户下的所有表

    select 'alter table  '|| table_name ||'  move tablespace tablespacename;'  from user_tables;
    

    2.修改表的索引的空间

    alter index INDEX_NAME rebuild tablespace TABLESPACENAME
    

    查询当前用户下的所有索引

    select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes;
    

    可以使用脚本执行查询的结果,这样就可以批量处理!

    在移植看注意研究了下ORACLE ALTER TABLE MOVE 的语法:

       ALTER TABLE table_name MOVE [ONLINE] tablespace_name;
    

    通过上面的语句可以移植表到新表空间,

    如果要移植LOB字典需要参考以下语法:

    ALTER TABLE table_name LOB (lob_item) STORE AS [lob_segment]
          (
            TABLESPACE tablespace_name
                       (STORAGE.....)
               ENABLE|DISABLE STORAGE IN ROW
               CHUNK integer
               PCTVERSION integer
                RETENTION
                FREEPOOLS integer
                CACHE|NOCACHE|CACHE READS
               INDEX lobindexname
    
    (TABLESPACE tablesapce_name
    
    ((STORAGE.....))
    )
    ....
    
    

    注解:

    LOB (lob_item):表中的lob字段
    STORE AS [lob_segment]:每个lob字段在表创建后系统都会自动单独创建一个段,可以通过这个参数手动指定一个段名
    tablespace_name:LOB字段新的存储表空间
    (STORAGE…):指定tablespace_name的存储属性
    ENABLE STORAGE IN ROW:如果设置了enable storage in row 那么oracle会自动将小于4000bytes的数据存储在行内, 这是ORACLE的默认值,对于大于4000字节的lob字段保存在lob段(同disable storage in row),在表段将保留36-84字节的控制信息。对于disable storage in row,Oracle将lob字段分开保存在lob段中,而仅仅在行位置保留20字节的指针。对于相当于disable storage in row的这部分(也就是单独保存在LOB段的这部分数据),UNDO仅仅是记录指针与相关lob索引改变,如果发生更新操作等DML操作,原始数据将保留在LOB段。

    DISABLE STORAGE IN ROW:如果DISABLE这个属性,那么lob数据会在行外存储,行内只存储该lob值得指针,而且这个属性在表
    

    创建后只能在MOVE表时才可以被改变
    CHUNK:是一个很特别的属性,对一次LOB数据的操作(插入或更新),因该分配多少存储空间,指定的值最好是数据库块的倍数,而且指定的值不能大于表空间区间中NEXT的值, 要不然ORACLE会return一个错误,如果以前已经设置这个值了,那么在后期指定的值是不能被改变的。

    storage as ( CHUNK bytes )表示对于disable storage in row的这部分,最小的LOB块的大小,必须是数据库块(DB_BLOCK_SIZE)的整数倍。一个chunk最多只保留一行LOB数据,也就是说,如果你设置了32K的CHUNK,但是如果LOB字段大小只有4K,也将占用32K的空间

    storage as(cache|nocahce)表示是否允许lob段经过buffer cache并缓存。默认是nocache,表示直接读与直接写,不经过数据库的data buffer。所以,默认情况下,对于单独保存在LOB段的这部分数据,在发生物理读的时候,是直接读,如direct path read (lob)

    storage as(nocache logging |nocache nologging),logging/nologging属性只对nocache方式生效,默认是logging,如果是nologging方式,对于 保存在行外的log部分,在update等DML操作时将不记录redo日志。

    PCTVERSION integer、RETENTION:都是ORACLE用来管理LOB字段镜像数据的。在LOB 数据的更新过程中,
    

    ORACLE没有用UNDO TABLESPACE空间,而是从LOB字段所在的表空间里划分一段空间来做镜像空间的,
    这个空间的大小由PCTVERSION参数控制,默认值为10,代表划分表空间的10%作为镜像空间,
    每个镜像空间的单元大小由CHUNK参数指定,pctversion可以使用在manual undo mode和automatic undo mode 环境中.
    retention应用了automatic undo mode中的undo_retention通过时间来管理lob镜像空间.
    pctversion和retention不能同时被指定.建议数据库在automatic undo mode下使用retention参数。
    FREEPOOLS integer:给LOG segment指定free list.RAC环境下integer为实例的个数.单实例环境下为1.在automatic undo mode下oracle默认采用
    FREEPOOLS来管理空闲块列表。除非我们在表的storage配置中指定了freelist groups参数.
    CACHE|NOCACHE|CACHE READS:指定lob块是否在database buffer中缓存.
    INDEX lobindexname (TABLESPACE tablesapce_name ((STORAGE…):给lob列指定索引存储参数
    举例:

    SQL> show parameter db_create_file_dest
    
    SQL> create tablespace test datafile size 100M autoextend off;
    SQL> create table test(a varchar2(100), b clob, d blob) pctfree 10 tablespace test;
    
    SQL> desc test
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST';
    

    我们发现每个LOB字段单独有一个LOGSEGMENT和LOBINDEX;

    SQL> set linesize 200
    col table_name format a5
    col column_name format a5
    SELECT b.table_name,
    a.segment_name,
    b.index_name,
    a.segment_type,
    b.column_name,
    a.tablespace_name,
    b.chunk,
    b.cache,
    b.freepools,
    b.pctversion,
    b.retention
    FROM dba_segments a,dba_lobs b
    WHERE a.segment_name = b.segment_name
    AND a.tablespace_name = 'TEST'
    /
    
    SQL>
    

    从上面的结果我们可以观察到LOB字段的各个属性.
    下面我们对LOB字段move到另一个表空间

    SQL> create tablespace lob_test datafile size 100M autoextend off;
    
    SQL> ALTER TABLE TEST MOVE LOB(B) STORE AS TEST_B (
    TABLESPACE lob_test
    DISABLE STORAGE IN ROW
    CHUNK 16384
    RETENTION
    FREEPOOLS 1
    NOCACHE);
    SQL> ALTER TABLE TEST MOVE LOB(D) STORE AS TEST_D (
    TABLESPACE lob_test
    DISABLE STORAGE IN ROW
    CHUNK 16384
    RETENTION
    FREEPOOLS 1
    NOCACHE);
    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST';
    
    SQL> set linesize 200
    col table_name format a5
    col column_name format a5
    SELECT b.table_name,
    a.segment_name,
    b.index_name,
    a.segment_type,
    b.column_name,
    a.tablespace_name,
    b.chunk,
    b.cache,
    b.freepools,
    b.pctversion,
    b.retention
    FROM dba_segments a,dba_lobs b
    WHERE a.segment_name = b.segment_name
    AND a.tablespace_name = 'LOB_TEST'
    /SQL>
    

    在一些复杂情况下可能需要连表一起移植

    alter table table_name move [tablespace_name] lob (lob_item) store as [lobsegmentname] (tablespace tablespace_name.....);
    

    移植分区中lob

    alter table table_name move partition [partition_name] lob (lob_item) store as [logsegmentname] (tablespace_name.....);
    

    移植分区表

    alter table table_name move partition [partition_name] tablespace_name lob (lob_item) store as [logsegmentname] (tablespace_name.....);
    

    如果不需要修改lobsegmentname,可以同时移植多个列

    alter table table_name move lob (lob_item1,lob_item2,lob_item3...) store as [lobsegmentname] (tablespace tablespace_name.....);
    
    LOB段也可以利用move来重整数据,以下的语句会将表与lob字段move到指定的表空间:
    
       alter table table_name move [tablespace tbs_name]
    
    lob(lob_field1,lob_field2) store as (tablespace new_tbs_name);
    

    如果LOB字段在分区表中,则增加partition关键字,如

     alter table table_name move [partition partname] [tablespace tbs_name]
    
    lob(field) store as (tablespace new_tbs_name);
    

    在数据库中合理的存储LOB列,不仅可以提升性能,而且还可以有效的管理存储空间.

    展开全文
  • Oracle BIEE 12c用户权限系统操作文档(上) 本文涉及用户用户组和应用程序角色系统操作和对oracle 11g数据库、hive、Impala三种数据源的分用户项目视图权限细粒度权限管理操作。 以下操作均为个人研究成果,...

    Oracle BIEE 12c用户权限系统操作文档(上)

    本文涉及用户、用户组和应用程序角色系统的操作和对oracle 11g数据库、hive、Impala三种数据源的分用户项目视图权限细粒度权限管理操作。

    以下操作均为个人研究成果,研究整理不易,这里分享出来是希望能和大家共同探讨,不足之处还望指出。

    为实现Linux端BIEE的用户资源权限管理,需先创建对应用户,组合角色,然后在windows端安装BIEE,通过配置Windows端的ODBC和BI Admin Tool管理工具连接到linux上的BIEE Server,联机打开BIEE的RPD文件,添加各种数据源元数据,修改并同步BIEE权限。

    一、新建用户和组

    1.管理员账号登陆

    http://ip:9500/console 

    2.选择“安全领域” 

    3.选择“myrealm

    4.选择“用户和组”下的“用户”

     

    5.点击“新建”按钮新建用户(“提供程序”选择默认即可)

     

    6.选择“用户和组”下面的“组”

    7.点击新建按钮新建组(“提供程序”选择默认即可)

    二、添加用户到组

    1.回到“用户和组”下面的“用户”选项,点击刚刚新建的用户名(jerry为例)

    2.选择“组”选项,在左侧选中刚新建的组(test1为例)添加到右侧,保存。

    至此新建的用户已被分配到新建的组。

    三、给新建的用户组分配权限角色

    1.管理员账号登陆融合中间件控制界面

    http://ip:9500/em 

    2.点击左上角目标导航

    3.鼠标右键点击“biinstance”(Business Intelligence下),选择“安全性”,选择“应用程序角色”

    4.点击“创建”

     

    5.输入新建的角色名称(testrole为例),点击“添加”,添加test1用户组进该角色中,则该组成员均具有该角色附有的权限

     

    6.“类型”选择“组”,点击三角箭头搜索,在搜索到的组中选择“test1”并确认。

    7.新建的用户组必须要具有角色“BIContentAuthor”的权限才能查看和操作项目视图,所以重复第5步、6步,编辑系统角色“BIContentAuthor”,添加用户组“test1”为该角色成员。

    8.生产环境总大量创建用户和角色后最好导出一份数据为文件保存,操作方法为在“安全领域”下的“myrealm”选择“迁移”,选择“导出”,导出的目录设为Linux服务器上具有oracle权限的文件夹,点击“保存”即可导出为.dat文件。

    注:此时,用户组test1具有角色testrole的权限,组内用户Jerry也自动获得该组的权限,具体范围可用管理员账户登录http://ip:9502/analytics 进入右上角“管理”,点击“管理权限”查看,同时可在该界面对各角色和用户的权限进行微调。数据的权限管理操作参见Oracle BIEE 12c用户权限系统操作文档(下)

    展开全文
  • Oracle查看用户所在的空间

    万次阅读 2017-04-10 16:02:14
    oracle 查看空间有哪些 select * from dba_tables where tablespace_name='空间名',注意空间名大小写敏感。 select table_name,tablespace_name from user_tables; 查看当前用户的缺省...
  • 在弹出的界面中,我们输入空间的名中输入我们需要在oracle在物理磁盘存储的文件名,以及空间的初始大小以及单位。在“路径”选项中填写该空间所在的物理磁盘路径。“自动扩展”选项中选择“on”,...
  • oracle 查看用户所在的空间

    万次阅读 多人点赞 2011-03-17 16:35:00
    查看当前用户的缺省空间 SQL>... 查看当前用户系统权限和级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看用户下所有的 SQL>select * from user_tables; 1、用户 查
  • oracle操作系统文件的读写操作

    千次阅读 2016-11-23 15:12:44
    oracle操作系统文件的读写操作 在SQL*Plus中可以对操作系统中的文本文件进行简单的读写访问。 例如,事先将SQL语句或者PL/SQL块的代码存放在文本文件中,再把文本文件调入缓冲区中,使之执行。 或者把当前...
  • Oracle 操作和输出记录 保存

    千次阅读 2011-08-31 11:37:09
    使用Putty工具登录OMU服务器,Putty工具的使用方法请参见Putty工具操作。 执行su - oracle命令,输入“oracle用户的密码,将当前用户切换为...执行命令sqlplus / as sysdba,以系统用户登录数据库。 屏幕输
  • oracle 常用系统表

    千次阅读 2012-10-19 15:37:24
    查看当前用户的缺省空间  SQL>select username,default_tablespace from user_users;  查看当前用户的角色 ... 查看当前用户系统权限和级权限  SQL>select * from user_sys_privs;  SQL>select *
  • Oracle用户空间的关系

    千次阅读 2012-05-28 14:59:11
    在使用oracle数据库系统时经常用的到空间和用户的概念,空间又涉及到数据文件,用户又涉及到权限。     空间是数据库系统保存数据的逻辑概念;   数据文件是保存数据的的物理概念,数据文件是真实存在...
  • 1、为什么要创建空间?...若不指定用户默认空间的话,则用户每次创建数据库对象的时候,都要指定空间,显然,这并不是很合理。  另外要注意,不同的空间有不同的权限控制。用户对于空间
  • oracle查看所有用户空间

    千次阅读 2013-07-17 15:27:32
    查看当前用户的缺省空间  SQL>select username,default_tablespace from user_users;  查看当前用户的角色 ... 查看当前用户系统权限和级权限  SQL>select * from user_sys_privs;  SQL>s
  • Oracle命令行操作Oracle管理用户以及角色权限 说明: 1.SQL语言大小写不敏感。 2.SQL可以写在一行或者多行(使用时最后要以分号结尾,表示一条SQL语句)。 3.关键字不能被缩写也不能分行。 如无特别说明,[]中...
  • Oracle创建空间和

    千次阅读 2018-12-24 13:28:44
    创建空间和 ORACLE物理上是由磁盘上的...存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据。当然数据存放在磁盘最终是以文件形式,所以一盘一个数据空间包含一个以上的物理文件 数据...
  • 空间:  数据库的逻辑存储空间,可以理解为在数据库中开辟的空间用来存储数据库对象;...temporary tablespace:临时空间,存储数据库操作过程中需要保存的文件,操作完成以后就会被释放 undo tables...
  • ORACLE获取操作系统目录下文件列表

    千次阅读 2011-11-24 15:28:14
    获取操作系统目录下文件列表  很久之前写了《关于UTL_FILE包体的使用》,那个脚本需要手工维护文件名列,比较麻烦,后来一直想能否自动读取指定目录下的文件名,然后使用我那个UTL_FILE过程读取文件内容。有试过...
  • Oracle 空间详解

    万次阅读 多人点赞 2016-06-07 00:28:02
    目录目录 空间概述 空间的分类 默认空间 查看默认的永久空间 查看默认的TEMP空间 查看默认的空间类型 逻辑结构到物理结构的映射 对表空间的操作 ...用户表空间限额空间概述Oracle空间属于
  • Oracle创建用户

    万次阅读 2017-10-11 20:01:47
    在创建用户时需要指定空间并指定用户空间中能够使用的大小。因此,想要创建用户,首先需要创建数据库空间。  1、采用sqlplus工具创建空间及用户: (1)打开sqlplus工具:开始——》所有程序——》...
  • 一,Oracle用户管理 1. 创建用户oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员)的权限才能使用。 1) 创建用户 命令:create user 用户名 identified by 密码; ...
  • [ORACLE]:单个空间的数据限制 当将空间加到4GB的时候,系统提示空间不足。 原因: FAT12 单文件最大支持8M Fat16单文件最大支持2G Fat32单文件不能大于4G NTFS单...
  • Oracle用户登录

    千次阅读 2017-10-16 14:24:27
    系统用户 1.sys,system 权限较高 sys权限高于system sys必须使用系统管理员登录 2.sysman 操作企业管理器 3.scott (oracle创始人名字) 密码tiger系统用户登录 使用system用户登录 [username/password][@...
  • Oracle-分区解读

    千次阅读 2016-10-29 21:46:37
    概述Oracle-OLAP和OLTP解读Oracle-index索引解读Oracle-分区解读Oracle-锁解读Oracle-等待事件解读Oracle-procedure/cursor解读Oracle关于分区的在线文档当中的数据量不断增大,查询数据的速度就会变慢,应用...
  • 软件运行是否稳定、数据是否准确、数据是否安全,这取决于软件本身是否够健壮、服务器是否强大、服务器的操作系统是否够稳定、安全。当数据达到海量的时候就应该要考虑数据库的优化,而目前市面上用的使用最广泛的...
  • 一个SQL Server实例需要有5个系统数据库(2005之前的是4个):master, model, msdb, tempdb和resource,一个Oracle数据库则最少需要3个系统表空间才能正常操作,它们是:SYSTEM, SYSAUX和TEMP。 master和resource...
  • 数据库的运行需要依赖于操作系统而数据库本身也保存在了操作系统的磁盘上所以当用户向数据保存数据时最终数据也还是保存在了磁盘上只不过这些数据是按照固定的格式进行保存 在数据库数据和磁盘数据之间存在了两...
  • ORACLE日常操作手册

    万次阅读 2012-09-07 16:37:45
    以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语句写法,适合初学者。 因是很久之前写的,文章中可能会存在不准确的地方,希望指正。   ORACLE日常操作手册 目录 一、......数据库的启动...
  • Oracle EBS 预警系统管理

    千次阅读 2011-08-19 18:32:10
    本章主要讲述配置和设置Oracle EBS预警系统管理, 它比较方便和及时发用户系统对数据库操作情况。下面讲一操作步聚: 1.预警系统管理-->系统-->选项 名称“Unix sendmail”值来源如下: [root@test...
  • oracle系统表v$session、v$sql字段说明

    万次阅读 2011-10-09 00:47:19
    oracle系统表v$session、v$sql字段说明(转) (2011-07-21 16:12:47) 转载 标签: 杂谈 分类: Oracle oracle系统表v$session、v$sql字段说明

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,608
精华内容 49,443
关键字:

oracle保存用户操作的系统表