重定位数据文件的位置Oracle认证考试

文章作者 100test 发表时间 2009:07:07 22:01:42
来源 100Test.Com百考试题网


  确切的说,根据数据文件并发访问的不同,确定在各个存储空间上应该存储哪些数据文件。如果一开始表空间和数据文件位置规划不当,或者数据库部署的外部环境出现了很大的变化,此时为了提高数据库的性能,那么数据库管理员不得不重新调整数据文件的存储位置。
  不过当Oracle数据库投入生产之后,要重定位数据文件的位置不是一件简单的事情。这主要是因为当数据库启动之后,数据文件就一直处理打开状态,无法进行移动。这就好像在操作系统中,有个文件其他人正在阅读。即使这个文件的状态是只读的,只要用户打开了,那么管理员也无法移动其位置。所以,在Oracle数据库中要重定位数据文件,不光光是移动数据文件而已。而需要做很多配套的工作。大致来说,包括三个部分的内容。首先是让数据库关闭打开的数据文件。其次是在操作系统上移动数据文件的位置。第三是在数据库上重定位数据文件的位置(更改配置文件),然后启动数据库。 不要让临时表空间影响数据库性能
  第一步:让数据库关闭打开的数据文件。
  由于数据文件就是操作系统上的一个用户文件。在打开的状态下,无法移动其位置。所以数据库管理员要做的第一步,就是让数据库关闭已经打开的数据文件。一般情况下,不需要关闭数据库。而只需要进行以下三个操作即可。
  一是让相关的表空间脱机。当需要移动数据文件的时候,笔者不建议只将某个数据文件设置为脱机状态。而是需要将这个数据文件所在的表空间下面所有的数据文件都设置为脱机状态。为此,只需要将其所在的表空间设置为脱机状态,就可以把下面所有的数据文件设置为脱机状态。笔者之所以要这么操作,主要是为了避免在不关闭数据库而只停止数据库服务时可能会出现的数据出错问题。为此,在这里笔者建立读者使用ALTER TABLESPACE语句,将表空间设置为脱机。
  二是停止相关的数据库服务。虽然已经将数据文件设置为脱机了,但是在不停止相关的数据库服务的情况下,移动数据文件或者对其进行重命名,操作系统仍然会提示错误信息,拒绝类似的操作。故只有停止相关数据库服务的情况下,才能够移动数据文件的位置。以Windows操作系统为例,需要打开控制面板、管理工具、服务窗口。在这个窗口中,将Oracle数据库系统相关的服务,停止掉。虽然不一定需要停止所有的服务。不过为了简单起见,可以将所有的数据库相关服务都停用掉。
  三是在数据库级别上对数据文件进行重定位。此时需要注意,具体涉及到的表空间的不同,其采用的语句是不同的。如只是将一个表空间内的数据文件存放到另外一块硬盘上,则只需要使用ALTER TABLESPACE RENAME DATAFILE语句进行操作即可。但是如果某个数据文件位置更改涉及到多个表空间,如在移动数据位置文件的同时,将其从某个表空间移动到另外一个表空间,此时就需要使用ALTER DATEBASE RENAME FILE语句。从上面这两个语句中,可以看到两个操作的级别是不同的。对于同一个表空间内数据文件的移动,其只是在表空间的级别进行调整(ALTER TABLESPACE)。而对于将数据文件从一个表空间移动到另外一个表空间,则是在数据库级别上的操作(ALTER DATABASE)。为此两者除了采用的数据库操作语句不同之外,他们所需要的权限也是不同的。前者的话,只需要有修改表空间的系统权限即可。而后者的话,则需要具有修改数据库系统权限。为此,如果数据库比较复杂,有多个数据库管理员同时负责一个Oracle数据库时,那么在调整数据文件所属表空间位置的时候,就可能需要有总的数据库管理员才可以完成。不让链化现象影响数据库性能
  第二步:在操作系统级别上更改
  在上面这个步骤中,虽然完成了在数据库级别上的数据文件重定位。但是在数据库中起只是存储了数据文件的指针,即数据文件在硬盘中的存储位置。具体来说,就是修改了控制文件与应用字典中的数据文件位置信息。但是硬盘上数据文件存储的位置没有实际发生改变。如果此时让表空间联机的话,则数据库系统就会因为找不到对应的数据文件而发生错误。
  所以说,当改变数据文件的位置和名称时,数据库据只是在控制文件与数据字典中改变了数据文件的指针,并没有在硬盘上创建文件。也没有移动硬盘上的任何操作系统文件。数据库管理员若想重定位数据文件,除了要在数据库上更改数据文件指针外,还需要手工的移动操作系统上的文件,或者对数据文件进行重命名。为此,做好上面那几步后,接下去数据库管理员就需要将数据文件移动到特定的硬盘上。这个移动很简单,就是在操作系统的级别上对文件进行剪贴、复制即可。

相关文章


Oracle错误:ORA6544Oracle认证考试
重定位数据文件的位置Oracle认证考试
控制文件备份关键是选择备份时机Oracle认证考试
Oracle查询慢的原因总结Oracle认证考试
在Oracle中创建索引时要做到三个适当Oracle认证考试
Oracle数据库初始化参数更改的注意事项Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛