ORACEL多路复制及一般表空间恢复

发表于:2007-06-22来源:作者:点击数: 标签:
多路传输控制文件 在init.ora可见以下内容 control_files = ("D:\orant\control01.ctl", "D:\orant\control02.ctl", "D:\oradb\control03.ctl") 停止ORACEL的服务,复制任一控制文件(控制本身为镜像的)为"C:\mybak\control02.ctl",修改信息为 control_fil

   
  多路传输控制文件
  在init.ora可见以下内容
  control_files = ("D:\orant\control01.ctl", "D:\orant\control02.ctl", "D:\oradb\control03.ctl")

  停止ORACEL的服务,复制任一控制文件(控制本身为镜像的)为"C:\mybak\control02.ctl",修改信息为
  control_files = ("D:\orant\control01.ctl", "C:\mybak\control02.ctl", "D:\oradb\control03.ctl")
  一般问题
  在起动时
  ORA-00205: ?????????????????????的原因是控制文件丢失,可以复制一个到丢失位,或
  修改init.ora内的信息
  如
  control_files = ("D:\orant\control01.ctl", "D:\orant\control02.ctl", "D:\oradb\control03.ctl")
  变为
  control_files = ("D:\orant\control01.ctl", "D:\orant\control02.ctl", "C:\oradb\control03.ctl")
  
  多路传输归档日志文件
  在init.ora内如下设置(8I以后)
  # Uncommenting the line below will cause automatic archiving if archiving has
  # been enabled using ALTER DATABASE ARCHIVELOG.
  log_archive_start = true
  log_archive_dest_1 = "location=D:\orant\oradata\oradb\archive"
  log_archive_dest_2 = "location=D:\orant\ADMIN\oradb_bak\a"
  #log_archive_dest_n = "location=目录"
  log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
  
  多路传输redo日志文件例子
  
  注意redo日志文件是ORACEL不建议备份,有归档日志就已经足够,应通过多路传输来保护而不是备份
  SVRMGR> connect system/manager@oradb as sysdba
  连接成功。
  SVRMGR> select * from v$logfile;
  GROUP# STATUS MEMBER
  1 D:\ORANT\ORADATA\ORADB\REDO01.LOG
  2 D:\ORANT\ORADATA\ORADB\REDO02.LOG
  3 STALE D:\ORANT\ORADATA\ORADB\REDO03.LOG
  (添加)
  SVRMGR> alter database add logfile member 'd:\orant\admin\oradb_bak\redo01.log' to group 1;
  SVRMGR> alter database add logfile member 'd:\orant\admin\oradb_bak\redo02.log' to group 2;
  SVRMGR> alter database add logfile member 'd:\orant\admin\oradb_bak\redo03.log' to group 3;
  SVRMGR> select * from v$logfile;
  GROUP# STATUS MEMBER
  1 D:\ORANT\ORADATA\ORADB\REDO01.LOG
  2 D:\ORANT\ORADATA\ORADB\REDO02.LOG
  3 STALE D:\ORANT\ORADATA\ORADB\REDO03.LOG
  1 INVALID D:\ORANT\ADMIN\ORADB_BAK\REDO01.LOG
  2 INVALID D:\ORANT\ADMIN\ORADB_BAK\REDO02.LOG
  3 INVALID D:\ORANT\ADMIN\ORADB_BAK\REDO03.LOG
  已选择6行。
  SVRMGR> alter system switch logfile;
  语句已处理。(强行交换文件)
  
  附
  
  可使用以下语句查看一下数据文件状态
  SQL> select file_name,file_id,tablespace_name,bytes,status,autoextensible from dba_data_files;
  
  修改文件保存位置(一般用于文件移动,先DOWN数据库,MOVE文件后,STARTUP MOUNT后进行)
  SVRMGR> alter database rename file 'D:\USERS01.DBF' to 'D:\OUSERS01FILE.DBF'
  
  
  如何查看各个表空间占用磁盘情况?
  SQL> col tablespace format a20
  SQL> select  b.file_id,b.tablespace_name,b.bytes,(b.bytes-sum(nvl(a.bytes,0))),sum(nvl(a.bytes,0)),sum(nvl(a.bytes,0))/(b.bytes)*100 from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_id,b.bytes
  order by b.file_id
  
  
  A 如何启动ARCHIVELOG模式?
  阿木伯 著
  系统环境:
  1、操作系统:Windows 2000 Server,机器内存128M
  2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
  3、安装路径:C:\ORACLE
  实现步骤:
  1、管理器
  SVRMGR> connect internal
  SVRMGR> shutdown
  SVRMGR> startup mount [dbname]
  SVRMGR> alter database [dbname] archivelog; --起用归档模式
  SVRMGR> archive log start --启动自动归档模式,重起数据库后,按init.ora配置
  SVRMGR> alter database [dbname] open; --打开数据库
  SVRMGR> exit
  2、修改数据库初始化参数文件,定义归档模式(自动)、归档日志文件保存路径、归档日志文件命名方法
  3、重新启动数据库
  具体实例:
  C:\>svrmgrl
  Oracle Server Manager Release 3.1.6.0.0 - Production
  版权所有 (c) 1997,1999,Oracle Corporation。保留所有权利。
  Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
  With the Partitioning option
  JServer Release 8.1.6.0.0 - Production
  SVRMGR> connect internal
  连接成功。
  SVRMGR> shutdown
  已关闭数据库。
  已卸下数据库。
  已关闭 ORACLE 实例。
  SVRMGR> startup mount
  已启动 ORACLE 实例。
  系统全局区域合计有 57124108个字节
  Fixed Size 70924个字节
  Variable Size 40198144个字节
  Database Buffers 16777216个字节
  Redo Buffers 77824个字节
  已装入数据库。
  SVRMGR> alter database archivelog;
  语句已处理。
  SVRMGR> archive log start
  语句已处理。
  SVRMGR> alter database open;
  语句已处理。
  SVRMGR> alter system switch logfile; --强制系统进行日志切换,可马上观察到归档日志的产生
  语句已处理。
  SVRMGR> exit
  服务器管理程序结束。
  修改数据库参数文件c:\oracle\admin\oradb\pfile\init.ora,
  取消以下语句的#注释
  log_archive_start = true
  log_archive_dest_1 = "location=C:\Oracle\oradata\oradb\archive"
  log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
  关闭数据库,重新启动
  查看C:\Oracle\oradata\oradb\archive目录下,可以看到类似ORADBT001S01201.ARC的文件,说明归档成功
  解释init.ora参数文件中关于归档重做日志参数项的含义
  归档模式是自动还是手工,true为自动,false为手工
  log_archive_start = true
  归档日志文件所保存的路径
  log_archive_dest_1 = "location=C:\Oracle\oradata\oradb\archive"
  归档日志文件的命名方法
  log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
  归档命令:
  启动自动归档模式,系统重起后,将按init.ora中的参数log_archive_start的值设置归档方式
  SVRMGR> archive log start
  启动手工归档模式
  SVRMGR> archive log stop
  查看归档信息:重做日志是否归档方式、是自动归档还是手工归档、归档路径、最旧的联机日志循序号...
  SVRMGR> archive log list
  归档一个已满,但没有归档的联机重做日志
  SVRMGR> archive log next
  归档所有已满,但没有归档的联机重做日志
  SVRMGR> archive log all
  注意:一个事务即使不被提交,也会被写入到重做日志中
  
  //表空间的恢复,在svrmgr内执行
  1 建立测试环境
  SVRMGR> create tablespAce mytest datafile 'd:\test.dbf' size 5M;
  语句已处理。
  SVRMGR> create user test identified by test default tablespace mytest;
  语句已处理。
  SVRMGR> grant connect,resource to test;
  语句已处理。
  退出后
  D:\>sqlplus test/test@oradb
  SQL> create table t1(id number(5));
  表已创建。
  SQL> insert into t1 values(1);
  已创建 1 行。
  SQL> insert into t1 values(2);
  已创建 1 行。
  SQL> exit
  从Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
  With the Partitioning option
  JServer Release 8.1.6.0.0 - Production中断开
  
  SVRMGR中
  SVRMGR> shutdown
  已关闭数据库。
  已卸下数据库。
  已关闭 ORACLE 实例。
  
  2 D:\TEST.DBF 更名为test1.dbf
  从新启动出现如下情况
  SVRMGR> startup
  已启动 ORACLE 实例。
  系统全局区域合计有 156124428个字节
  Fixed Size 70924个字节
  Variable Size 42868736个字节
  Database Buffers 113106944个字节
  Redo Buffers 77824个字节
  已装入数据库。
  ORA-01157: ????/?????? 7 - ??? DBWR ????
  ORA-01110: ???? 7: 'D:\TEST.DBF'
  SVRMGR>
  
  3 完全通过归档文件恢复(注意归档日志要从建造表空间开始到现在是完整的)
  
  可以用以下方式
  SVRMGR> startup mount
  已启动 ORACLE 实例。
  系统全局区域合计有 156124428个字节
  Fixed Size 70924个字节
  Variable Size 42868736个字节
  Database Buffers 113106944个字节
  Redo Buffers 77824个字节
  已装入数据库。
  SVRMGR> set autorecovery on
  自动恢复 ON
  SVRMGR> alter database create datafile 'd:\test.dbf';
  语句已处理。(d:\test.dbf文件生成)
  SVRMGR> recover datafil

原文转自:http://www.ltesting.net