登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SeaRiver Blog

实力才是你一生最好的依靠!

 
 
 

日志

 
 

oracle学习笔记(yuhj_2)  

2007-03-28 07:19:51|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

第11章 管理数据文件

■创建数据文件的SQL语句及说明
  CREATE TABLESPACE  创建一个表空间和组成它的数据文件
  CREATE TEMPORARY TABLESPACE 创建一个临时表空间和组成它的临时数据文件(临时数据文件
                                是一种特殊类型的数据文件)
  ALTER TABLESPACE ... ADD DATAFILE 创建并添加一个数据文件到表空间
  ALTER TABLESPACE ... ADD TEMPFILE  创建并添加一个临时数据文件到临时表空间
  CREATE DATABASE  创建一个数据库和关联的数据文件

■创建表空间
  SQL> create tablespace myts04
  2  datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf' size 2m
  3  autoextend on
  4  next 1m
  5  maxsize 5m

■向空间里添加数据文件并指定自动增长方式
  SQL> alter tablespace myts02         
  2  add datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' size 4m 
  3  AUTOEXTEND ON
  4  NEXT 4K   
  5  MAXSIZE 5M;

■更改原有数据文件为自动增长方式
  SQL> ALTER DATABASE         
  2  DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf'                
  3  AUTOEXTEND ON                      
  4  NEXT 2K          
  5  MAXSIZE 5M;

■取消自动增长方式
  SQL> alter database                               
  2  datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf' 
  3  autoextend off;

■改变原数据文件大小
  SQL> alter database                            
  2  DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' resize 5m;
  也可以利用RESIZE子句来缩小数据文件,不过必须保证缩小后的数据文件足够容纳其中已有的数据

■在ARCHIVELOG模式下使数据文件脱胎机
  SQL> alter database            
  2  datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline;

■在NOARCHIVELOG模式中使数据文件脱机
  要注意,这会使数据文件脱机并立即删除它,所以,很可能导致丢失数据文件,这种方法一般只用于临时表空间
  的临时数据文件.

  SQL> alter database           
  2  datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline drop;
 
  在这之后,如果要使数据文件联机,必须进行介质恢复,否则会有错误提示.
 
■修改表空间中所有数据文件的可用性
  ALTER TABLESPACE ... DATAFILE { ONLINE | OFFLINE }
  ALTER TABLESPACE ... TEMPFILE { ONLINE | OFFLINE }
 
  表空间本身的联机或脱机状态不改变()
 
■修改整个表空间的可用性
  ALTER TABLESPACE ...  { ONLINE | OFFLINE }

■同一个表空间的数据文件的重命名
  当改变数据文件的位置和名称时,Oracle只是在控制文件和数据字典中改变了数据文件的指针,并没有物理
  地创建新的数据文件,也没有重定位和重命名任何操作系统文件.DBA必须自己在操作系统层复制文件,并重
  定位或重命名数据文件.
  
  SETUP1 SQL> alter tablespace myts04 offline normal;
         将表空间设置为脱机状态是为了关闭该表空间中所有的数据文件,以便在停止数据库服务时不会造成
         数据出现问题

  SETUP2 SQL> shutdown immediate
         如果不停止数据库服务就重命名数据文件,会出现错误提示.   

  SETUP3 将数据文件myts04_1.dbf重新命名为myts04_01.dbf、myts04_2.dbf重新命名为myts04_02.dbf   

  SETUP4 SQL> startup

  SETUP5 SQL> alter tablespace myts02
              rename datafile
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf',
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_2.dbf'
              to
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_01.dbf',
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_02.dbf';
  SETUP6 SQL> alter tablespace myts04 online;

■多个表空间的数据文件的重定位和重命名
  SETUP1 SQL> alter tablespace myts01 offline normal;
         SQL> alter tablespace myts02 offline normal;

  SETUP2 SQL> shutdown immediate

  SETUP3 将myts01表空间的数据文件myts01_1.dbf重新命名为myts01_01.dbf、
         将myts02表空间的数据文件myts02_1.dbf重新命名为myts02_01.dbf、

  SETUP4 SQL> startup

  SETUP5 SQL> alter database
              rename file
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_1.dbf',
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_1.dbf'
              to
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_01.dbf',
              '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_01.dbf';

  SETUP6 SQL> alter tablespace myts01 online; 
              alter tablespace myts02 online;  

■查询数据文件信息
  DBA_DATA_FILES
  DBA_TEMP_FILES
  DBA_EXTENTS
  USER_EXTENTS
  DBA_FREE_SPACE
  USER_FREE_SPACE
  V$DATAFILE
  V$DATAFILE_HEADER

■查看数据文件与表空间
SELECT f.tablespace_name "表空间",
Decode(d.EXTENT_MANAGEMENT,'DICTIONARY','字典','本地')  "表空间类型",
TRUNC(SUM(f.bytes/1024000),2 ) || 'MB' "自由空间",
MIN(f.bytes) "最小字节", MAX(f.bytes) "最大字节",
AVG(f.bytes) "平均字节",COUNT(f.tablespace_name) "分布在"
FROM dba_free_space f, dba_tablespaces d
Where f.tablespace_name = d.tablespace_name
GROUP BY f.tablespace_name ,d.EXTENT_MANAGEMENT
 
============================
第12章 管理重做日志文件

■日志切换
  SQL> alter system switch logfile;

■增加重做日志文件组
  SQL> alter database add logfile 
  2  group 4 ('/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/redo04.log') size 10m;

■增加重做日志文件组成员
  SQL> alter database add logfile member                                    
  2  '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/redo04_1.log' to group 4;

■查看组及成员的状态信息
  SQL> select group#,members,status from v$log;

■查看重做日志文件是否归档了
    SQL> select group#,members,status,archived from v$log;

■查看重做日志文件的状态
  SQL> select * from v$logfile;
  如果Oracle不能访问重做日志文件,那么该文件将变成INVALID状态.
  如果Oracle查出重做日志文件不完整或不正确,那么该文件将变成STALE状态(许久未用状态).当下次失效
  日志文件所属的组变成活动组时,该失效日志文件才会再次变成有效状态 

■删除重做日志文件组成员
  SQL> alter database drop logfile member           
  2  '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/redo04_1.log';

■删除重做日志文件组
  SQL> alter database drop logfile group 4;

  当从数据库中删除了重做日志文件组或成员后,实际上并没有将该成员使用的操作系统文件从磁盘中删除掉,
  也就是说,此时只是更新了相关数据库的控制文件,以便从数据库结构中删除该成员或组,所以在删除该成员
  或组后,先要确定删除操作成功完成,然后使用合适的操作系统命令来删除对应的重做日志文件或组.

■清除重做日志文件组(重新初始化重做日志文件组)
  SQL> alter database clear logfile group 4;

■清除损坏了的重做日志文件并且避免归档这些日志
  SQL> alter database clear unarchived logfile group 4;

■改变重做日志组成员的位置或名称
  SETUP1 暂停其它用户使用数据库
  SETUP2 确定重做日志组的状态,只能改变处于INACTIVE和UNUSED状态
         SQL> select group#,status from v$log;
  SETUP3 使用操作系统命令对重做日志组成员进行更名或位置变更
  SETUP4 修改控制文件中重做日志组成员的指针
         SQL> alter database rename file             
         2  '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/redo04.log'
         3  to                                
         4  '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/new_redo04.log';

■查看重做日志文件信息
  V$LOG   来自于控制文件的重做日志文件信息
  V$LOGFILE  重做日志文件组及其成员以及成员的状态
  V$LOG_HISTORY  重做日志文件的历史信息

============================
第13章 创建和删除数据库 2006.12.04

■查看使用的服务器参数文件
  SQL> show parameter spfile;

■利用服务器参数文件创建文本参数文件
  SQL> create pfile from spfile;
  SQL> create pfile[='...'] from spfile[='...'];

■创建服务器参数文件
  SQL> create spfile from pfile='...';
  不指定spfile名称,默认为:spfile$ORACLE_SID.ora
  或
  SQL> create spfile='.../new_spfile.ora' from pfile='...';

■更改初始化参数
  scope=spfile 只更改服务器参数文件中的参数.效果是:对于动态参数,这种更改将在下一次启动时
   生效并一直保留;对于静态参数,效果与动态参数一样,只有这种更改的SCOPE子句用
   于静态参数
  SCOPE=MEMORY 只更改内存中的参数.效果是:对于动态参数,这种更改立即生效,但是因为没有更新
   服务器参数文件,所以更改不能永久保留;对于静态参数,不允许这样更改
  SCOPE=BOTH  既更改服务器参数文件中的参数,也更改内存中的参数.效果是:对于动态参数,这种
   更改立即生效并且永久保留;对于静态参数,不允许这样更改

  如果服务器没有使用服务器参数文件,那么在指定SCOPE=SPFILE或SCOPE=BOTH时将会出错.
  如果使用服务器参数文件来启动例程,默认设置为SCOPE=BOTH;如果使用传统的文本初始化参数文件启动例程,
  默认设置为SCOPE=MEMORY.
  对于动态参数,可以指定DEFERRED关键字.如果指定了这个关键字,则更改将只影响将来的会话

■改变实例允许的工作队列进程的最大数目,也指定了一条注释,并在内存是中进行更改
  SQL> alter system set job_queue_processes=50
       comment='temporary change on 2006.12.05'
       scope=memory;

■查看初始化参数
  show parameters
  SQL> show parameters db_recovery_file_dest;

■V$PARAMETER该视图显示当前正在使用的参数值
  SQL> select name, value from v$parameter
       where ;
■V$SPPARAMETER该视图显示服务器参数文件的当前内容.如果实例没有使用服务器参数文件,那么该视图将返回
  NULL(空)值.
  SQL> select name,value from v$spparameter
       where ;

============================
第14章 启动和关闭数据库 2006.12.05

■监听程序
  #lsnrctl start  ---> 启动
  #lsnrctl stop   ---> 停止
  #lsnrctl status ---> 状态
  #lsnrctl help   ---> 帮助

■一个例程只能访问一个数据库,而一个数据库可以由多个例程同时访问.
  例程由一组逻辑内存结构和一系列后台服务进程组成.
  在启动数据库的过程中,文件的使用顺序是:参数文件、控制文件、数据文件和重做日志文件.

■启动模式
  nomount模式  启动例程,但不装载数据库,即只完成启动步骤的第1步。(读取参数文件)
  mount模式  启动例程,并装载数据库,但不打开数据库。即,只完成启动步骤的第1和第2步。
  open模式   启动例程,装载数据、打开数据库、即完成全部3个启动步骤.

  启动语法
  startup [nomount|mount|open|force] [restrict] [PFILE=filename];

■NOMOUNT选项
  只创建例程,不装数据库,读取参数文件,为例程创建各种内存结构和后台服务进程,用户能与数据库进行通信,
  但不能使用数据库中的任何文件.

  如果要执行下列维护工作,就必须用NOMOUNT选项启动数据库
  ◆ 运行一个创建新数据的脚本
  ◆ 重建控制文件 

  在NOMOUNT启动模式下,只能访问那些与SGA区相关的数据库字典视图,如V$PARAMETER,V$SGA,V$OPTION,
  V$PROCESS,V$VERSION,V$INSTANCE等.这些视图中的信息都是从SGA区中获取的,与数据库无关.

■MOUNT选项
  MOUNT选项不仅创建例程,还装载数据库,但却不打开数据库.读取控制文件.管理员可以通过部分命令修改数据库,
  用户还无法与数据库建立连接或会话.

  如果要执行下列维护工作,就必须用MOUNT选项启动数据库
  ◆ 重命名数据文件
  ◆ 添加、删除或重命名重做日志文件
  ◆ 执行数据库完全恢复操作
  ◆ 改变数据库的归档模式

  在MOUNT启动模式下,除了可以访问那些与SGA区相关的数据字典视图之外,还可以访问到那些与控制文件相关的数据字典
  视图,如V$THREAD,V$CONTROLFILE,V$DATABASE,V$DATAFILE,V$LOGFILE等,这些视图中的信息是从控制文件中获取的.

■OPEN选项
  OPEN选项不仅创建例程,还装载数据库,并且打开数据库.这是正常启动模式.如果startup命令行上没有指定任何
  模式,默认就是start open选项启动数据库.

■FORCE选项
  如果在正常启动数据库遇到困难,可以使用force启动选项.例如服务器突然断电.
  FORCE选项与正常启动选项之间的差别还在于,无论数据库处于什么模式,都是先异常关闭数据库,然后再重新启动.
  而不需要事先用SHUTDOWN语句关闭数据库.

■RESTRICT选项
  RESTRICT选项启动数据库并把它置入OPEN模式,但些时只有拥有RESTRICTED SESSION权限的用户才能访问数据库.
 
  如果需要在数据库处于OPEN模式下执行维护任何,又要保证此时其他用户不能在数据库上建立连接和执行任何,则应该
  使用RESTRICT选项来打开数据库,以便完成如下任务:
  ◆ 执行数据库数据的导出或导入操作.
  ◆ 执行数据装载操作(用SQL*Loader)
  ◆ 暂时阻止一般的用户使用数据.
  ◆ 进行数据库移植或升级

  当工作完成后,可以用如下语句禁用RESTRICT SESSION权限,即:
  alter system disable restricted session

■关闭选项
■NORMAL选项
  按NORMAL选项关闭数据库时,Oracle将执行如下操作:
  ◆ 阻止任何用户建立新的连接
  ◆ 等待当前所有正在连接的用户主动断开连接.正在连接的用户能够继续他们当前的工作,甚至能够提交新的事务.
  ◆ 一旦所有的用户都断开连接,才进行关闭、制裁数据库,并终止例程。
   注意:
   按NORMAL选项关闭数据库时,Oracle并不会断开当前用户的连接,而是等待当前用户主动断开连接。在这个过程中,连接的用
   户甚至可以建立新的事务。此选项关闭数据库,在下次启动数据库时不需要任何恢复操作。关闭数据库所耗费的时间完全取决
   于用户主动断开连接的时间.
  
■TRANSACTIONAL选项
  TRANSACTIONAL选项比NORMAL选项稍微主动些。它能在尽可能短的时间内关闭数据库。
  按NORMAL选项关闭数据库时,Oracle将执行如下操作:
  ◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
  ◆ 等待所有当前未提交的活动事务提交完后,然后立即断开用户的连接
  ◆ 一旦所有的用户都断开连接,立即进行关闭、制裁数据库,并终止例程
  注意:
  按TRANSACTIONAL选项关闭数据库,既能保证用户不会丢失当前工作的信息,又可以尽可能快地关闭数据库,此选项关闭数据库,在下次
  启动数据库时不需要任何恢复操作。

■IMMEDIATE选项
  IMMEDIATE选项关闭数据库,就能够在尽可能短的时间内关闭数据库。

  按IMMEDIATE选项关闭数据库时,Oracle将执行如下操作:
  ◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
  ◆ 任何当前未提交的事务均被回退
  ◆ Oracle不再等待用户主动断开连接,而是直接关闭、制裁数据库,并终止例程
  注意:
  如果存在很多未提交的事务,则按IMMEDIATE选项关闭数据库仍然会耗费很长时间。此选项关闭数据库,在下次启动数据库时不需要任何
  恢复操作。

■ABORT选项
  如果上述三种选项都无法成功关闭数据库,就说明数据库存在严重错误。这时只能使用ABORT选项来关闭数据库。
  在下面几种特殊情况中,可以考虑按ABORT选项来关闭数据库。
  ◆ 数据库本身或某个数据库应用程序发生异常,并且使用其他选项均无效
  ◆ 出现紧急情况,需要立刻关闭数据库(比如得到通知将在一分钟内发生停电)
  ◆ 在启动数据库例程的过程中产生错误。

  按IMMEDIATE选项关闭数据库时,Oracle将执行如下操作:
  ◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
  ◆ 立即结束当前正在执行的SQL语句
  ◆ 任何未提交的事务均不被回退
  ◆ 立即断开所有用户的连接,关闭、缺氧数据库,并终止全程.
  注意:
  按ABORT选项关闭数据库时,由于当前未完成的事务并不会被回退,所以可能会丢失一部分数据信息。这样数据库的完整性遭到损害,在下一次启动时需要
  进行恢复。因此建议尽量避免按ABORT选项来关闭数据库.

■在WINDOWS中启动和关闭数据库所使用的服务名称及说明
  Oracle<ORACLE_HOME_NAME>TNSListener  对应于数据库监听程序
  OracleService<SID>     对应于数据库例程
  OracleDBConsole<sid>    对应于Oracle Enterprise Manager 或 OEM
  Oracle<ORACLE_HOME_NAME>iSQL*Plus  对应于iSQL*Plus
  这几个服务之间的关系是:
  ◆ 首先启动Oracle<ORACLE_HOME_NAME>TNSListener服务,然后再启动其他服务。
  ◆ 如果不启动Oracle<ORACLE_HOME_NAME>TNSListener,则可以使用SQL*Plus,但不能使用OEM和iSQL*Plus。
  ◆ 因为OracleDBConsole<sid>依赖于OracleService<SID>,所以必须先启动OracleService<SID>,之后再启动
    OracleDBConsole<sid>.关闭反之。

============================
第15章 管理网络 2006.12.06

■提示:全局数据库名是数据库的默认服务名,由初始化参数文件中的SERVICE_NAMES参数指定.

■Oracle网络配置分为服务器端配置和客户机端配置,服务器端配置的目的就是配置监听程序的配置文件(listener.ora).
  客户机端配置的目的就是配置网络服务名的配置文件(tnsnames.ora).服务器端本身也有一个网络服务名的配置文件(
  tnsnames.ora),在服务器端,一般不需要配置tnsnames.ora文件,但如果服务器要与其他服务器连接时(如在分布式网
  络环境中),同样需要配置tnsnames.ora文件。根据网络连接的实际情况,每个listener.ora和tnsnames.ora内容都可能
  不同,以便监听不同的连接请求信息或连接到不同的数据库.

 

  评论这张
 
阅读(543)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018