多路传输控制文件
在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文件后,STARTUPMOUNT后进行)
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 实例。
2D:\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