数据库的搬动

[复制链接]
查看11 | 回复6 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
本想从精华贴中和书上找答案,不过耗了我很多时间,还是没有一个准确的答案,只是知道了大概
作业:
把一个数据库从A SERVER放一份到B SERVER上,并使它能B上正常的运行、服务
Linux AS3+Oracle9i2
操作:
A SERVER上:
1.关闭数据库
2.复制数据库的参数文件:
$oracle_home/dbs/spfileDBName.ora
3.复制数据文件/控制文件/日志文件(全在/usr/opt/oracle/oradata/chdb2下面):
/usr/opt/oracle/oradata/chdb2/control01.ctl
/usr/opt/oracle/oradata/chdb2/control02.ctl
/usr/opt/oracle/oradata/chdb2/control03.ctl
日志文件和归档日志/数据文件均在目录下:
/usr/opt/oracle/oradata/chdb2/
B SERVER 上
4.将前面复制的所有文件上传B SERVER
B SERVER 的oracle_home是: /opt/oracle/product/9.2.4
然后将参数据文件复制到$oracle_home/dbs/下,同时改动里面的参数文件路径(改为:/var/opt/oracle/chdb2)和归档日志路径(改为:/ftproot/oracle/chdb2/archive)
再将chdb2目录复制到/var/opt/oracle下
5.设置监听器LISTENER.ORA:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.4)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = chdb2.v2)
(SID_NAME = chdb2)
(ORACLE_HOME = /opt/oracle/product/9.2.4)
)
)
6.重建控制文件
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> STARTUP NOMOUNT
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/product/9.2.4/dbs/initchdb
2.ora'
7.我不知道该如何继续了?
问题1.我看了书上和,精华贴等里面说的冷备份,均只需要备份参数文件/控制文件/数据文件/日志文件,好像光这些文件不足以恢复一个数据库?
问题2.oracle备份与恢复一个数据库也真是麻烦,各位有没有更好的方法?
问题3.各位平常如需像我这样搬动一个数据库,是怎么个操作流程?
问题4.不知道我上面的问题在ITPUB.net出的书里面有否提供解决方法?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
你现在其实已经做得七七八八了,再搞一下就可以启动数据库啦.
首先,启动的时候你可以指定参数 PFILE='xxxx'
然后更改数据文件名
最后打开数据库,这就OK了。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
不行:
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile='/opt/oracle/product/9.2.4/dbs/spfilechdb2.ora'
LRM-00123: invalid character 0 found in the input file
ORA-01078: failure in processing system parameters
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
不要用spfile,用init参数文件试试,注意init参数文件里的文件路径要正确
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
是可以用init参数文件启动,但还是会出一些错误:
SQL> startup PFILE='/opt/oracle/admin/chdb2/pfile/initchdb2.ora'
ORACLE instance started.
Total System Global Area185668648 bytes
Fixed Size
451624 bytes
Variable Size
150994944 bytes
Database Buffers 33554432 bytes
Redo Buffers
667648 bytes
ORA-01990: error opening password file '/opt/oracle/product/9.2.4/dbs/orapw'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
为什么init参数文件可以,而spfile不可以呢?
to xjg
更改数据文件名?这步是?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
exp/imp呢?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我将orapwchdb2文件也复制过来后,再次:
SQL> startup PFILE='/opt/oracle/admin/chdb2/pfile/initchdb2.ora'
ORACLE instance started.
Total System Global Area185668648 bytes
Fixed Size
451624 bytes
Variable Size
150994944 bytes
Database Buffers 33554432 bytes
Redo Buffers
667648 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/usr/opt/oracle/oradata/chdb2/system01.dbf'
于是想到piner说的重建控制文件
(要先到原数据库server上取得控制文件副本:
alter database backup controlfile to trace

再将initchdb2.ora文件复制到$oracle_home/dbs目录下
接着:
SQL> STARTUP NOMOUNT
SQL> CREATE CONTROLFILE ......(此处取自alter database backup controlfile 命令产生的文件)
一切顺利!
然后shutdown
再startup
数据库被成功装载和打开!
在此感谢piner(在MSN上的帮助)以及楼上各位热心的朋友帮助
顺便借这个机会感谢cooly、eygle、biti_rainy、Kamus以及itpub.net
使我在这里得到了非常有用的提示和帮助,谢谢!
希望上面这些很菜的知识对初学者有所帮助!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行