控制文件什么时候更改oracle,oracle更改控制文件位置

平台:

# showrev

Hostname: nice

Hostid: 10543b38

Release: 5.10

Kernel architecture: i86pc

Application architecture: i386

Hardware provider:

Domain:

Kernel version: SunOS 5.10 Generic_118844-26

数据库版本:

SQL> select version from v$instance;

VERSION

-----------------

10.2.0.2.0

======================================

查看控制文件的相关信息:

select value from v$parameter where name='control_files';

VALUE

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/nice/control01.ctl,/u01/app/oracle/oradata/nice/control02.ctl,/u01/app/oracle/oradata/nice/control03.ctl

也可以用

select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/nice/control01.ctl

/u01/app/oracle/oradata/nice/control02.ctl

/u01/app/oracle/oradata/nice/control03.ctl

三个控制文件都在同一个硬盘的同一个目录中;

计划只使用两个控制文件,并将control02.ctl放在另外一块硬盘的/u03/app/oracle/下。

1.查看数据库中的所有文件信息

SQL> archive log list;

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     10

Current log sequence           12

-----------

SQL> select name from v$datafile

2  union

3  select name from v$controlfile

4  union

5  select member from v$logfile;

2.根据当前系统使用的spfile创建一个pfile文件

create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initnice.ora' from spfile;

3.进行冷备(一致性备份)

shutdown immediate

将所有的datafile,controlfile,logfile复制到/u02/oradata/nice目录下,将spfilenice.ora也复制到/u02/oradata/nice目录下。

4.修改刚创建的pfile文件的control_files='/u01/app/oracle/oradata/nice/control01.ctl','/u03/app/oracle/control02.ctl'

5.将'/u01/app/oracle/oradata/nice/目录下的control02文件移到'/u03/app/oracle/目录下,并将control03.ctl删除。

6.尝试使用刚修改过的pfile文件启动数据库

startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initnice.ora'

7.成功启动数据

查看控制文件信息:

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/nice/control01.ctl

/u03/app/oracle/control02.ctl

达到预期效果。

8.创建一个新的spfile。

create spfile from pfile;

9.备份一个controlfile,再重新冷备一份数据库。

alter database backup controlfile to ‘/u02/app/oracle/control.ctl';

10.一点思考:

对控制文件的管理,关键在于对参数文件中control_files项的设置,以及设置后,相对应目录中的控制文件的存在。

在oracle文档上强烈建议将使用多个控制文件并放置在不同的硬盘上。这样的建议和架构对控制文件的保护上没错,但是在实际的生产系统中这样的架构似乎并不合理。加入放在两个硬盘上,那么两块硬盘中有故障的概率要比一块硬盘大。而在oracle系统中,无论哪个contorlfile失效都会导致系统宕掉。这可能到增加了系统故障的可能。所以达不到高可用的要求。而一些实际的系统架构是依赖于硬件的冗余,比如raid1或者raid5/raid6的配置来保证系统的高可用运行和controlfile在硬盘出现故障时不会丢失。

另外,对controlfile的备份也需要重视。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值