发布新日志

  • Oracle数据库的一些常用操作经验总结

    2009-06-16 17:55:24

    一:数据库启动的步骤:
      ORACLE数据库分为数据库实例和数据库文件两部分,实例是一块内存区域,加些后台进程,内存区域就是平时说的数据缓存,共享池等,后台进程就是如checkpoint,log writer,dbwriter等,数据文件和SQLSERVER的在概念上没啥两样,这样数据文件,内存,进程就构成了一个数据库.
      1:首先检测参数文件init(sid).ora,就是初始化参数文件,从参数文件获取内存配置参数,数据库名称等信息,进行实例启动,这样内存就开辟了,进程也自己启动了,这个状态是nomount.其中Oracle数据库在启动时,首先查找的是orapw<sid>的口令文件,如果该文件不存在,则开始查找,orapw的口令文件。
      2:根据上步的参数文件信息,从参数文件获取控制文件的地址,加载他,获取数据库的物理文件的信息,但不会检查数据文件是否存在,这个称为mount,
      3:读取数据文件,打开数据库,执行些恢复检查点.这个状态就是open.

    二:更改实例名步骤:
      1:更改原来实例参数文件init(sid).ora,更改参数配置中实例名为新的实例名
    *.instance_name='gaogao1'
      2:更改原来参数文件为新的含有新的实例名的参数文件:
    如mv initgaogao.ora initgaogao1.ora
      3:建立新的关于新的实例的密码文件:
    orapwd file=orapw(sid) password=密码 entries=5

    三:关于数据库启动中参数文件的问题.
      1:一般数据库在打开实例的时候,oracle读取参数文件的过程是:数据库首先会找SPFILE(sid).ora,如果找不到,才去找INIT(sid).ora,在上面都找不到才会去找init.ora.
      2:一般在在创建数据库完成以后系统会生成spfile(sid).ora这个文件。如果你想改变SGA的大小。那就要手动建立PFILE才可以对SGA调整。因为spfile(sid).ora是二进值文件。无法用文本编辑器。
      3:CREATE PFILE FROM SPFILE; 这样就可以在dbs目录下自动创建一个init(sid).ora文件.
      4:如果你想用PFILE文件启动,你可以在启动时指定文件的路径,或把spfile(sid).ora改名字,就可以了.

    四:把用户对象从一个表空间gaojf导入到另外一个表空间gaojf1步骤:

      1:REVOKE UNLIMITED TABLESPACE FROM "GAOJF1";#在gaojf1的系统权限中取消掉 unlimited tablespace

      2:ALTER USER "GAOJF1"  QUOTA 20 M ON CICRO1; 给用户gaojf1资源限额20m
    或者是
     ALTER USER "GAOJF1"  QUOTA UNLIMITED ON CICRO1;给用户gaojf1资源限额为无限制使用.(非无)

      3:然后用导出语句:
    imp gaojf1/gaojf1 file=cicrotablestest.dmp fromuser=gaojf touser=gaojf1 ignore=y tablespaces=cicro1;
    或者
    imp gaojf1/gaojf1 file=cicrotablestest.dmp full=y,ignore=y;
    ok了,看看吧!
    五:关于表空间的使用
    alter user hr quota 200m on test1;  指定hr用户在表空间test1的使用限额时200兆.
    alter user hr quota 0 on example;指定hr在表空间example的使用限额为0,即没有指定限额(无).
    alter user hr quota unlimited on test1; 指定hr在表空间test1的使用限额为无限制(非无,是无限制使用).
    Only one mode (TABLES, FROMUSER, or FULL) can be specified #即为在导入的时候,只能从tables,fromuser,full中指定一种模式.

    impsales/sales@test1fromuser=zjj touser=sales rows=n ignore=n commit=y TABLESPACES=test file=D:\exp\zjj.dmp log=d:\exp\zjjimp01.log   #倒入数据的格式
    imp hr/hr file=e:\hr.dmp log=e:\hrimp.log fromuser=hr touser=test1
    alter table (tablename) move tablespace 表空间名   #把某个表移动到另外一个表空间.


    查看导入后表的表空间
    select * from  user_all_tables where table_name='表名'
    查看表空间的使用情况
    select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;
    六:更改sys和sysem的密码
     Alter  user  sys  identified  by 新的密码
     Alter  user  system  identified  by  新的密码

    IXDBA.NET技术社区

    七:更改数据库为归档模式:
    通过v$database,查看数据库是否在Archive模式下:       
    SQL> select log_mode from v$database;
    或者通过
    SQL> archive log list;
    如果不是Archive模式,则设定数据库运行于归档模式下:
    一:数据库用pfile文件时的修改方法。     
    (1):SQL>shutdown immediate
                   SQL>startup mount
                   SQL> alter database archivelog;
                   SQL> alter database open;
      如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如: 正常shutdown数据库,在参数文件中init(sid).ora中加入如下参数
                   SQL>shutdown immediate
                 修改init(sid).ora:
                   LOG_ARCHIVE_START=TRUE      
     log_archive_dest = /opt/oracle/product/9.2.0/dbs/archgaogao                              (归档日值存放位置可以自己定义)
    log_archive_format = "T%TS%S.ARC"  (存档日志文件的文件名格式)       

Open Toolbar