zoukankan      html  css  js  c++  java
  • 数据库session立即生效(64---8192) SCOPE参数

    SCOPE=MEMORY|SPFILE|BOTH 指示了修改参数时的“作用域”:

    SCOPE=MEMORY :只在实例中修改,重启数据库后此次修改失效。 
    SCOPE=SPFILE :只修改SPFILE中的值,重启数据库后这个修改才会生效。 
    SCOPE=BOTH :在内存和SPFILE中都会完成参数修改。这个参数修改在当前实例中生效,下次以SPFILE启动数据库时也会生效。

    数据库参数文件分为二类:

    1.初始参数文件:pfile(initialization parameter file)
    2.服务器参数文件:spfile(server-side parameter file)
    主要的区别是:
    1.pfile是文本文件,spfile是二进制文件
    2.pfile可以通过文本编辑器修改,spfile主要是通过alter system set parameter=value [scope=memory|spfile|both]修改

    oracle启动时,读取参数文件的顺序是:
    1.spfile$ORACLE_SID.ORA(创建数据库时创建的spfile)
    2.spfile.ora(oracle缺省spfile文件)
    3.init$ORACLE_SID.ora(创建数据库时创建的pfile)
    4.init.ora(oracle缺省pfile文件)
    oracle会按顺序读出这些参数文件,如果在1没有找到就去找2,直到找到。

    和参数文件相关常用SQL如下:

    1.查看当前使用的spfile和pfile的位置:show parameter spfile/show parameter pfile

    2.查看参数文件的具体设置:show parameters

    3.从spfile获取pfile:

    create pfile='pfilesid.ora' from spfile

    create pfile='pfilesid.ora' from spfile='/$ORACLE_HOME/dbs/spfile.ora'

    4.修改参数

    alter system set parameter=value [scope=memory|spfile|both]
    1.修改后当前实例起作用,重启数据库不起作用:scope=memory
    2.修改后当前实例不起作用,下次重启数据库才起作用:scope=spfile
    3.修改后当前实例起作用,下次重启数据库也起作用:scope=both
    Notice:命令alter system set parameter=value在没有加scope选项时,默认值是什么呢?多数朋友可能不加思索就会回答both这答案,实际的情况是,当oracle在以spfile参数启动时,默认值是both,而以pfile启动时,默认值是memory,也就是只修改当前值。所以如果不能确定启动的参数文件,可以用show parameter spfile查看。

    5.指定初始参数文件启动数据库:startup pfile='/$ORACLE_HOME/dbs/init$ORACLE_SID.ora'
    不能以指定服务器参数文件spfile来启动数据库,可以先将spfile转换成pfile,再用这个命令来达到目的。

    6.查看系统是以pfile还是spfile启动:show parameter spfile。如果是null值,就是pfile启动的。

     

    2.参数文件的动作原理
    oracle实例在启动时,会去读取参数文件中的配置,这个过程是这样的:

    数据库的startup命令中可以指定以哪个pfile来启动,但是请注意,只能指定pfile,不 能指定spfile。

    当使用不带pfile 子句的startup 命令时,Oracle 将从平台指定的默认位置上的服务器 参数文件(spfile) 中读取初始化参数。Oracle查找spfile或者init.ora的顺序是:在平台指定的默认位置上,Oracle首先查找名为spfile$ORACLE_SID.ora的文件,如果没有就查找spfile.ora文件,还没有的话,就找init$ORACLE_SID.ora文件。

    在$ORACLE_BASEadmindb_namespfile下,你可以看到一个类似这样init.ora.1 92003215317]名字的文件,这就是初始化参数文件,只是跟上了时间戳。对于Oracle920 ,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来 ,你可以去掉这个长后缀,就是标准的pfile文件了。

     

     

    数据库中的同义词(SYNONYM)

    建立:create 【public】  synonym 同义词名称(一般可以与表名不同,这样不容易混淆) for AA.table_name;--在当前用户下建立一个同义词(去同义“AA”中的表:table_name,public的是可选参数,本人建议尽量建立公用的 同义词)
           删除:DROP   【public】   SYNONYM   同义词名称; ---------此处特别注意 关键字 public 的存在--------;
           查看:select * from    user_synonyms  sy  where sy.synonym_name ='A_CODEMAPPING';  --查看私有的同义词,自己看到自己创建的;
                select * from    all_synonyms sy  where sy.synonym_name ='A_CODEMAPPING';  --可以查看到 某某创建的 公共的 同义词
                参看信息中包括,同义词拥有者,表拥有者,是否public的等信息;
        1》同义词 分为私有的 和公共的两种;
           私有的:
                也只有 本用户使用,包括别的用户查不到 用户 “BB” 有这个同义词(这点很重哟奥);
           共有的:
                可以被其它的任何用户使用, 也可以被人家查到,看到这个同义词,当然最重要的也可以被别的用户删除;
       

    同义词相当于模式对象别名,起著连结数据库模式对象和应用程序的作用,假如模式对象需要更换,则不用修改应用程序而直接修改同义词就可以了

     

    建立一个同义词可以排除一个对象名字的限制. 
    如果你的数据库有多个用户,USER_A要访问USER_B的TABLE1,只能使用USER_B.TABLE1 
    建一个同义词abc指向USER_B.TABLE1,那你就可以select * from abc了,而且public的同义词会直接出现在所有用户的面前,开发不就方便多了

    创建同义词

    语法:

    CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.] synonym_name FOR [schema.] object_name [@dblink];

    语法说明:
    OR REPLACE: 在不使用DROP的前提下容许你重新创建(如果同义词已经存在)。

    PUBLIC: 所创建的同义词是全局的同义词,所有数据库用户都可以使用。

    schema: 要创建同义词的对象所在的schema,如果省略,则默认的应用对象在当前schema下。

    object_name: 要创建同义词的对象,它可以是以下几种类型:

    TABLE
    VIEW
    SEQUENCE
    STORED PROCEDURE
    FUNCTION
    PACKAGE
    MATERIALIZED VIEW
    JAVA CLASS SCHEMA OBJECT
    USER-DEFINED OBJECT
    SYNONYM


    示例:

    CREATE PUBLIC SYNONYM suppliers FOR app.suppliers;
    示例中创建的同义词名为suppliers,这样,其他schema下的用户可以使用该同义词来使用app下的suppliers表而不必加上app。例如:
    SELECT *
    FROM suppliers;

    删除同义词
    语法

    DROP [PUBLIC] SYNONYM [schema.] synonym_name [FORCE];
    说明:
    PUBLIC: 容许删除PUBLIC同义词, 如果使用了PUBLIC关键字,则可以省略schema。

    FORCE:用来强制删除同义词,即使它在数据库中有其它的依赖。

    示例:

    DROP PUBLIC SYNONYM suppliers;

  • 相关阅读:
    time模块
    日期和时间
    异常和函数
    finally子句
    自定义异常
    异常中的else
    全捕捉
    排序算法---希尔排序
    排序算法---直接插入排序
    排序算法---快速排序
  • 原文地址:https://www.cnblogs.com/klb561/p/10741040.html
Copyright © 2011-2022 走看看