exp迁移数据库实例

  • 格式:txt
  • 大小:11.11 KB
  • 文档页数:5
Oracle_sid和instance_name必须是一致的, 否则用户将会受到一个错误. 在unix平台, 是oracle not available, 在winnt平台, 是tns, 协议适配器错误.
三, 数据库域名与全局数据库名
随着由多个数据库构成的分布式数据库的普及, 单一的db_name表示的数据库命名方式给数据库的管理造成了一定的负担. 因为分布式环境下的数据库名字可能一样, 造成管理上的混乱.
5, 检查修改后的结果
SQL> select name from v$database;
二, 使用oradim工具修改instance_name
执行完步骤一中的操作后, 数据库db_name变为oradb, 但instance_name依然还是orcl。 这个名称需要使用oracle的oradim工具进行修改。
在本例中,假设原来的数据库名为orcl, 要改成oradb, 原实例名(service_name, instance_name)orcl要改成oradb。
Nid是自带的工具, 在oracle_home/bin目录下, 以下方法假设登陆到需要修改db_name的数据库服务器本地处理。
1, 在mount状态下使用nid修改sid
数据库名称 db_name = orcl instance_name=orcl
操作系统版本: windows xp
实例安装位置: $oracle_base = d:\oracle
执行步骤.
一, 数据库名称和sid要求相同
1.1 数据库名称的相关概念
一, 数据库名
数据库名是数据库的身份证号码, 用于表示一个数据库. 在参数文件(?/database/initSID.ora)中用DB_NAME表示.
C:\Documents and Settings\Administrator>sqlplus sys/admin as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 3 16:23:16 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
alter database backup controlfile to trace as 'd:\controlfile.txt';
再做修改即可使用。
SQL> CREATE CONTROLFILE REUSE DATABASE "ZSTEST" RESETLOGS ARCHIVELOG
Oracle服务器版本: Oracle9.2.0.8
数据库名称 db_name = oradb instance_name=oradb
操作系统版本: windows 2003
实例安装位置: $oracle_base = e:\oracle
目标数据库
Oracle服务器版本: Oracle9.2.0.8
1, 如果是windows系统, 先要将所有的oracle服务关闭, 否则会出错。
2, 将之前的instance_name删除
C:\Documents and Settings\Administrator>oradim -delete -sid ot orapwd file=D:\oracle\ora92\database\pwdoradb.ora password=sys_47522341 entries=5;
处理过程中需要与用户执行一次交互。
Change database ID and database name ORCL to ORADB? (Y/[N]) => Y
2, 在mount状态下修改db_name
完成上述操作后需要再次启动到mount状态修改参数文件。
SQL> shutdown immediate
设置环境变量oracle_sid=oradb
C:\Documents and Settings\Administrator>set oracle_sid = oradb
修改spfile里实例信息(包含路径里的zs改为zstest,OS目录zs改为zstest)
//如果此处不修改路径中的zs到zstest则后面应无需重建控制文件
Instance_name Select instance_name from v$instance
Oracle_sid 值和instance_name相同
Db_domain Select value from v$parameter where name = ‘db_domain’;
Global_name Db_name.db_dommain
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL> conn / as sysdba
SQL> shutdown immediate
SQL> startup mount -- nid需要在mount状态下处理。
SQL> host nid target=/ dbname=oradb
文件已创建。
5)更改listener.ora和tnsnames.ora并重启listener
直接编辑这两个文件将里面的sid_name、dbname和service_name都改为zstest
6)因为更改了OS数据库目录路径(zs改为zstest)所以需要重建controlfiles
//创建控制文件的脚本可以再旧数据库的时候使用如下语句获得:
已连接到空闲例程。
//先从spfile创建pfile
SQL> create pfile='D:\oracle\product\10.2.0\admin\zs\pfile\init080703.ora' from
spfile='D:\oracle\product\10.2.0\db_1\database\SPFILEZS.ORA';
SQL> host orapwd file=D:\oracle\ora92\database\pwdorcl.ora password=sys_47522341 entries=5;
4, 开启数据库(要open resetlogs)
SQL> startup mount
SQL> alter database open resetlogs;
4, 创建一个新的sid。
C:\Documents and Settings\Administrator>oradim -new -sid oradb
C:\Documents and Settings\Administrator>oradim -new -sid oradb
5, 进入oracle并创建spfile
exp/imp属于逻辑备份;处理起来速度有点慢。
你可以尝试关机后将数据文件,控制文件,日志文件等全部copy出去备份起来,这叫冷备份。
等弄完系统后,再安装一个跟当前oracle的sid一样的oracle实例,将对应文件copy上去就可以了。
参考1: exp迁移数据库实例
环境描述:
源数据库
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='oradb'
*.instance_name='oradb'
数据库名是在安装数据库, 创建新的数据库, 创建数据控制文件, 修改数据库结构, 备份与恢复数据库时都需要使用到的.
Service_name Select value from v$parameter where name=’service_name’;
Net_service_name 检查tnsnames.ora文件
1.2 修改oracle数据库的db_name和sid
一,用oracle自带的工具nid改数据库名
为了解决这种情况, 引入了db_domain参数, 这样在数据库的标识是由db_name和db_domain两个参数共同决定的. 避免了因为数据库重名而造成管理上的混乱.
查询数据库域名.
? 使用sql命令 select value from v$parameter where name = ‘db_domain’;
查询数据库服务名的方法.
使用sql语句: select value from v$parameter where name = ‘service_name’;
使用show命令: show parameter service_name;
查看参数文件: 在参数文件initsid.ora中查询.
五, 网络服务名
? 使用show命令. Show parameter instance_name;
? 查看参数文件initsid.ora.
数据库实例名和oracle_sid两者都表示oracle实例, 但是有区别的. Instance_name是oracle数据库参数. 而oracle_sid是操作系统的环境变量. Oracle_sid用于于操作系统交互, 也就是说, 从操作系统角度访问实例名, 必须通过oracle_sid.
查询数据库名称:
? Select name, dbid from v$database;
? Show parameter db_name;
? 查看参数文件initsid.ora

下载文档原格式

  / 5