安装数据库时,按缺省配置把数据库数据文件、日志文件等等统统都放在了系统所在的分区,而且还是在$ORACLE_HOME下,看着总不舒服,空间使用增长不好控制,而且也不符合OFA思想,于是决定把数据做个迁移,顺便也能对数据库操作做个小小的实践。找不着PRODUCTION数据库,只能瞎折腾了。
照例动手之前先google,不出所料,相关的文章遍地皆是。唉,真不知道,如此多的人都在追捧ORACLE,相信中等水平的大有人在,自己这个ORACLE学的有多大意义?
意义先放一边,闲着也是闲着不是?
找了两篇来看,发现过程并不复杂,也让我这个新手增加了几分信心,谁让咱是初级的,当然就得从初级的事情做起。
用了大半天时间,在startup mount和shutdown之间忙活,最后startup竟然提示:datafile need media recovery. Oh my god! 还真激动了一把,这可是我有生以来遇到的第一个数据库故障,后悔没有记录下来留作纪念。
没办法,只好又改回去,又是一通晕晕乎乎的启动和关闭不知n多次,终于又可以启动了。
想不通,明明是按照人家的做法一步步操作的,却不行呢?难道是新加的虚拟硬盘格式化的问题?可是文件明明是可以正常拷贝的啊?
再试。这次把需要输入的命令写人sql 脚本,datafile一个,logfile一个,执行起来也清晰。结果成功了。猜想上次可能是在没有shutdown数据库的情况下就cp文件的,不过没法证实了。
还要显摆一下我的第一个sql脚本,自己的娃怎么看怎么舒坦。
-- This sql sript migrate db 'mytestdb' datafile and logfile
-- from its original place to a subfolder under an individual
-- partion mounted on /u02.
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/system01.dbf' to
'/u02/oradata/mytestdb/system01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/sysaux01.dbf' to
'/u02/oradata/mytestdb/sysaux01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/undotbs01.dbf' to
'/u02/oradata/mytestdb/undotbs01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/users01.dbf' to
'/u02/oradata/mytestdb/users01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/example01.dbf' to
'/u02/oradata/mytestdb/example01.dbf';
有个问题,在sql脚本中怎么定义变量用于替换,以避免打太多文字?难道要动用PL/SQL吗?也试着用shell脚本,可是因为水平问题,没能成功。
照例动手之前先google,不出所料,相关的文章遍地皆是。唉,真不知道,如此多的人都在追捧ORACLE,相信中等水平的大有人在,自己这个ORACLE学的有多大意义?
意义先放一边,闲着也是闲着不是?
找了两篇来看,发现过程并不复杂,也让我这个新手增加了几分信心,谁让咱是初级的,当然就得从初级的事情做起。
用了大半天时间,在startup mount和shutdown之间忙活,最后startup竟然提示:datafile need media recovery. Oh my god! 还真激动了一把,这可是我有生以来遇到的第一个数据库故障,后悔没有记录下来留作纪念。
没办法,只好又改回去,又是一通晕晕乎乎的启动和关闭不知n多次,终于又可以启动了。
想不通,明明是按照人家的做法一步步操作的,却不行呢?难道是新加的虚拟硬盘格式化的问题?可是文件明明是可以正常拷贝的啊?
再试。这次把需要输入的命令写人sql 脚本,datafile一个,logfile一个,执行起来也清晰。结果成功了。猜想上次可能是在没有shutdown数据库的情况下就cp文件的,不过没法证实了。
还要显摆一下我的第一个sql脚本,自己的娃怎么看怎么舒坦。
-- This sql sript migrate db 'mytestdb' datafile and logfile
-- from its original place to a subfolder under an individual
-- partion mounted on /u02.
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/system01.dbf' to
'/u02/oradata/mytestdb/system01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/sysaux01.dbf' to
'/u02/oradata/mytestdb/sysaux01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/undotbs01.dbf' to
'/u02/oradata/mytestdb/undotbs01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/users01.dbf' to
'/u02/oradata/mytestdb/users01.dbf';
alter database rename file
'/u01/app/oracle/product/10.2.0/oradata/mytestdb/example01.dbf' to
'/u02/oradata/mytestdb/example01.dbf';
有个问题,在sql脚本中怎么定义变量用于替换,以避免打太多文字?难道要动用PL/SQL吗?也试着用shell脚本,可是因为水平问题,没能成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24131851/viewspace-669937/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24131851/viewspace-669937/