Oracle 11G 数据库迁移手册
- 格式:docx
- 大小:208.73 KB
- 文档页数:3
Oracle11g数据迁到Oracle10g(expdp和impdp)由于客户要求,要把一个Oracle11g数据库迁移到一个Oracle10g ,由于deferred_segment_creation参数建库之初没有设置为false,并且目前存在空表,所以还是使用expdp和impdp。
1、expdp和rman相像的地方时都是在主机端(目标数据库端)生成dmp文件所以文件夹和权限等都在主机端设置。
2、由于是从11g迁移到10g,所以expdp增加了一个参数 version在需要迁移的目标数据库端执行 select * from v$version; 就知道version的值了,不然会报错。
【报错内容ORA-39001: invalid argument valueORA-39000: bad dump file specificationORA-39142: incompatible version number】expdp opsteel/opsteel dumpfile=20150923.dmp logfil e=exp20150923.logdirectory=expdp_dir schemas=opsteel version=10.2.0.1.03、impdp和 ORA-39125这个错误出现在10.2.0.4之前的版本,需要加参数exclude=statistics就可以10.2.0.4是否不需要加,忘了测试了,明天测试一把,看metalink 10.2.0.4已经修订了这个BUG【报错内容ORA-39125: KUPW$WORKER.PUT_DDLS[DBMS_METADATA.CONVERT]调用出错ORA-06502:LPX-00210:】最终的impdp的语法impdp opsteel/opsteel dumpfile=20150923.dmp logfil e=imp20150923.logDIRECTORY=impdp_dir SCHEMAS=opsteel version=10.2.0.1.0 exclude=statistics。
一次Oracle11g数据库导入Oracle10g数据库操作笔记注:导入和导出的用户名一定要一致(sybj)一、在11g服务器上,用expdp命令备份数据。
用cmd打开,dos命令输入以下:EXPDP USERID='SYS/cuc2009@cuc as sysdba' schemas=sybj directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0其中,红色文字部分是根据需要改写的地方。
例如我的sys密码是cuc2009,数据库sid是cuc,要到出的用户名是sybj,要导入到10.2.0.1.0版本的Oracle数据库中去。
aa.dmp和aa.log将会在11g的dpdump目录中生成,例如我的11g装在了E盘下面,于是aa.dmp 将会在E:/app/Administrator/admin/cuc/dpdump目录下被生成。
二、在10g服务器上,使用impdp命令恢复数据步骤:(1.建库2.建表空间3.建用户并授权)(1-3可以不按下面走单,要建立一个登陆名与导出一致就可以了)4.将dag.dmp拷贝到10g的dpdump目录下5.impdp导入数据库1、建库:是在database configuration assistant 中直接新建一个数据库(实例)。
2、建表空间:create tablespace sybj datafile'D:\oracle\product\10.2.0\oradata\orcl\oa.dbf' size 400m autoextend on next 20m online;3、建用户:create user sybj identified by sybj;授权:Alter user sybj default tablespace sybj quota unlimited on sybj;grant create session to sybj;grant connect to sybj;grant connect, resource, dba to sybj;grant create table to sybj;grant create view to sybj;grant create trigger to sybj;grant select any table to sybj;grant create sequence to sybj;grant create procedure to sybj;grant create role to sybj;grant create type to sybj;grant GRANT ANY PRIVILEGE to sybj;4、导入:首先测试机中10g装在了D:/根目录下,于是将dag.dmp文件copy到了D:\oracle\product\10.2.0\admin\daggis\udump目录下。
oracleg数据库导入导出方法教程Oracle 11g 是一种关系型数据库管理系统,它具有很多强大的功能,包括数据导入和导出。
在本教程中,我们将介绍 Oracle 11g 数据库的导入和导出方法。
导出数据的方法有两种,一种是使用 exp 工具,另一种是使用expdp 工具。
exp 工具是在 Oracle 11g 之前版本中使用的,而 expdp工具是在 Oracle 11g 之后版本中引入的。
在这个教程中,我们将使用expdp 工具来导出数据。
导出数据的步骤如下:1. 打开终端或命令提示符,并登录到您的 Oracle 数据库。
2.使用以下命令导出整个数据库:```sql```其中,username 是数据库用户名,password 是密码,connect_string 是连接字符串,directory_name 是要导出数据的目录名称,dumpfile_name 是要导出数据的文件名称。
例如,如果要导出一个用户的数据,可以使用以下命令:```sql```这将导出 hr 用户的数据到 datapump 目录,并生成一个 hr.dmp 文件。
3.数据导出完成后,您可以在指定目录下找到生成的导出文件。
导入数据的方法也有两种,一种是使用 imp 工具,另一种是使用impdp 工具。
在这个教程中,我们将使用 impdp 工具来导入数据。
导入数据的步骤如下:1. 打开终端或命令提示符,并登录到您的 Oracle 数据库。
2.使用以下命令导入数据:```sql```其中,username 是数据库用户名,password 是密码,connect_string 是连接字符串,directory_name 是导入数据的目录名称,dumpfile_name 是要导入的数据文件的名称。
例如,如果要导入一个用户的数据,可以使用以下命令:```sql```这将导入 hr 用户的数据,该数据文件位于 datapump 目录下的hr.dmp 文件。
Oracle 数据迁移方案1. 简介随着业务的发展和系统的升级,数据迁移已经成为一个不可避免的任务。
在Oracle 数据库中,数据迁移主要包括迁移数据表、迁移数据对象以及导出和导入数据等方面。
本文将介绍一些常用的 Oracle 数据迁移方案。
2. 数据表迁移2.1 导出数据表Oracle 数据表的导出可通过使用expdp命令来实现。
该命令可以将指定的数据表导出为二进制格式的文件,以供后续导入使用。
以下是导出数据表的步骤:1.打开终端或命令行窗口,登录到数据库。
2.运行以下命令导出数据表:expdp username/password@connect_string tables=table1,table2 directory=datapump_dir dumpfile=tables.dmp logfile=tables.log–username/password:登录数据库的用户名和密码。
–connect_string:数据库连接字符串。
–tables:要导出的数据表名称,多个表名之间用逗号分隔。
–directory:导出文件存储的目录。
–dumpfile:导出文件的名称。
–logfile:导出日志文件的名称。
2.2 导入数据表使用impdp命令可以将之前导出的数据表文件导入到目标数据库中。
以下是导入数据表的步骤:1.打开终端或命令行窗口,登录到目标数据库。
2.运行以下命令导入数据表:impdp username/password@connect_string directory=datapump_d ir dumpfile=tables.dmp logfile=import.log–username/password:登录目标数据库的用户名和密码。
–connect_string:目标数据库的连接字符串。
–directory:导出文件存储的目录。
–dumpfile:导出文件的名称。
–logfile:导入日志文件的名称。
oracle11g数据库导入导出方法教程oracle11g数据库导入导出:①:传统方式——exp(导出)和(imp)导入:②:数据泵方式——expdp导出和(impdp)导入;③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出?oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
.dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);二、二者优缺点描述:1.exp/imp:优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就保证了服务器上数据文件的安全性。
缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。
如果文件超过几个G,大众性能的电脑,至少需要4~5个小时左右。
2.expdp/impdp:优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。
我们都知道数据库服务器的重要性,所以在上面的操作必须慎重。
所以这种方式一般由专业的程序人员来完成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
3.PL/sql Develpoer:优点:封装了导入导出命令,无需每次都手动输入命令。
方便快捷,提高效率。
缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。
三、特别强调:目标数据库:数据即将导入的数据库(一般是项目上正式数据库);源数据库:数据导出的数据库(一般是项目上的测试数据库);1.目标数据库要与源数据库有着名称相同的表空间。
在10g服务器的D盘创建文件夹'datadump'。
将从11g服务器导出的数据库文件orcl_1(his_dp).dmp放到该目录下。
①进入到命令提示符号开始”——“运行”——输入“CMD”回车②输入“sqlplus”回车③输入“system”回车④输入密码(密码输入时是不可见的,此密码是在安装oracle10G时设置的)"orcl"⑤现在已经登陆了oracle,输入“drop user @数据库方案名 cascade;”回车⑥输入“CREATE USER @数据库方案名 identified by @数据库方案密码;”回车⑦输入“Grant dba to @数据库方案名;”回车⑧输入“Create tablespace dzh_datadatafile 'D:\oracle\dzh_data01.dbf'size 3M reuse autoextend on next 5M maxsize 4096M;”回车创建表空间⑨输入“CREATE TEMPORARY TABLESPACE dzh_temptempfile 'D:\oracle\dzh_temp.dbf'size 2M reuse autoextend on next 5M maxsize 4096M;”回车创建临时表空间⑩输入“Alter user @数据库方案名 temporary tablespace dzh_temp;”回车指定数据库方案存放表空间输入“Alter user @数据库方案名 default tablespace dzh_data;”回车指定数据库方案临时表空间11 输入“create directory dumpdir as 'D:\datadump';”回车如果要删除 drop directory dumpdir;输入“grant read,write on directory dumpdir to @数据库方案名;”回车12 输入“exit”回车,退出sqlplus命令行。
一.准备工作1.确认字符集为保证数据一致,新旧数据库的字符集必须统一。
查询语句:select * from V$NLS_PARAMETERS where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');MES 10g2.确认用户角色首先在10g数据库上查询当前用户的角色,之后在11g库中查询刚才的用户所拥有的角色在11g库中是否存在。
查询语句:select * from dba_role_privs where grantee IN ('MESPROD','LBLPROD');每个应用用户均需查询,如果发现有系统默认没有的用户自建角色,需要在11g库中新建该角色,角色创建语句可以在10g库中由plsql developer软件进行自动生成。
3.新建表空间在11g数据库中新建以下表空间:CREATE TABLESPACE "TS_MES_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_HISTORY_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_MES_IDX" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_HISTORY_IDX" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_LABEL_DAT" SIZE 1G maxsize unlimited;CREATE TABLESPACE "TS_LABEL_IDX" SIZE 1G maxsize unlimited;4.新建用户在11g数据库中新建以下用户:-- Create the usercreate user MESPROD identified by mesproddefault tablespace USERStemporary tablespace TEMPprofile DEFAULT;-- Grant/Revoke object privilegesgrant execute on SYS.DBMS_DEFER_IMPORT_INTERNAL to MESPROD;grant execute on SYS.DBMS_EXPORT_EXTENSION to MESPROD;-- Grant/Revoke role privilegesgrant connect to MESPROD;grant dba to MESPROD;grant mw_role_dba to MESPROD;grant resource to MESPROD;-- Grant/Revoke system privilegesgrant create any index to MESPROD;grant create any table to MESPROD;grant drop any table to MESPROD;grant unlimited tablespace to MESPROD;-- Create the usercreate user LBLPROD identified by lblproddefault tablespace USERStemporary tablespace TEMPprofile DEFAULT;-- Grant/Revoke role privilegesgrant connect to LBLPROD;grant dba to LBLPROD;grant mw_role_dba to LBLPROD;grant resource to LBLPROD;-- Grant/Revoke system privilegesgrant unlimited tablespace to LBLPROD;二.导出数据库导出语句:(耗时约1小时,如果在服务器上导出,需要修改路径)expmesprod/*************.10.100:1521/MESfull=yfile=e:\mesprod.dmplog=e:\mesprodlog owner=(MESPROD,LBLPROD)导出过程中,遇到的报错及解决方式:报错1:EXP-00008: ORACLE error 6550 encounteredORA-06550: line 1, column 18:PLS-00201: identifier 'SYS.DBMS_DEFER_IMPORT_INTERNAL' must be declared 解决方法:GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO mesprod ;GRANT EXECUTE ON SYS.DBMS_DEFER_IMPORT_INTERNAL TO lblprod ;报错2:EXP-00008: ORACLE error 6510 encounteredORA-06510: PL/SQL: unhandled user-defined exceptionORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 50解决方法:GRANT EXECUTE ON SYS.DBMS_EXPORT_EXTENSION TO mesprod;GRANT EXECUTE ON SYS.DBMS_EXPORT_EXTENSION TO lblprod ;PS:导出过程中的exp00091的错误,通常修改nls_lang环境变量即可解决,可以直接忽略这个错误。
oracle11g使用手册1、首先安装Oracle11g,如下图所示:Oralce不支持中文路径及空格。
切忌。
记录好相关信息2、导出数据备份:Expdp 用户名/密码@连接串dumpfile=ora11g.dmp directory=服务器路径schemas=nc56并将dmp文件从服务器上取到本机3、使用PL/SQL软件,使用system用户登录,使用如下语句,创建nc56用户-- Create the usercreate user NC56identified by "nc56"default tablespace USERStemporary tablespace TEMPprofile DEFAULTpassword expire;-- Grant/Revoke role privilegesgrant dba to NC56;-- Grant/Revoke system privilegesgrant unlimited tablespace to NC56 with admin option;--创建表空间:执行脚本前先建立db 文件夹否则报错CREATE TABLESPACE "NNC_DATA03" LOGGING DATAFILE'd:\db\nc3.ora'SIZE500M ;CREATE TABLESPACE "NNC_DATA02" LOGGING DATAFILE'd:\db\nc2.ora'SIZE500M ;CREATE TABLESPACE "NNC_DATA01" LOGGING DATAFILE'd:\db\nc1.ora'SIZE500M ;CREATE TABLESPACE "NNC_INDEX01" LOGGING DATAFILE 'd:\db\I1.ora'SIZE500M ;CREATE TABLESPACE "NNC_INDEX02" LOGGING DATAFILE 'd:\db\I2.ora'SIZE500M ;CREATE TABLESPACE "NNC_INDEX03" LOGGING DATAFILE 'd:\db\I3.ora'SIZE500M ;alter database datafile'D:\db\I1.ora'autoextend on; alter database datafile'D:\db\I2.ora'autoextend on; alter database datafile'D:\db\I3.ora'autoextend on;alter database datafile'D:\db\nc1.ora'autoextend on; alterdatabase datafile'D:\db\nc2.ora'autoextend on; alter database datafile'D:\db\nc3.ora'autoextend on;第一次使用nc56登录时需要修改密码4、导入数据,注意:一定要把网线拔掉,否则很容易覆盖正式库数据impdp nc56/nc56@nc56 dumpfile=ora11g.dmp5.配置启动NC1)在NC_HOME\BIN 目录下运行ncSysConfig.bat,首先需要建立数据源。
oracle数据库转移教程Oracle数据库转移是指将一个数据库实例移动到另一个位置或环境中的过程。
这可能是因为服务器升级、数据库版本升级、数据中心迁移等原因。
本文将介绍Oracle数据库转移的详细步骤和注意事项。
1. 数据库备份在进行数据库转移之前,首先需要对数据库进行备份。
数据库备份的目的是防止数据丢失或损坏,在转移过程中可以作为恢复的依据。
2. 建立目标环境在目标环境中建立一个新的Oracle数据库实例。
这可以通过Oracle安装程序来实现。
确保目标环境中的数据库版本和原始数据库的版本相同或兼容。
3. 目标数据库配置在目标数据库中进行必要的配置,包括数据库字符集、数据库块大小、内存参数等。
这些参数应与原始数据库保持一致,以确保数据的一致性。
4. 数据文件复制将原始数据库的数据文件复制到目标数据库的合适位置。
数据文件通常位于ORACLE_HOME/dbs目录下。
可以使用操作系统的文件复制命令来完成此步骤。
5. 控制文件和参数文件将原始数据库的控制文件和参数文件复制到目标数据库。
控制文件通常位于ORACLE_HOME/dbs目录下,参数文件通常位于ORACLE_HOME/dbs目录或ORACLE_HOME/dbs/hostname目录下。
同样,可以使用操作系统的文件复制命令来完成此步骤。
6. 导出原始数据库使用Oracle的工具,如exp或expdp工具,对原始数据库进行数据导出。
导出工具将数据库中的数据导出为一个或多个文件。
确保将这些文件保存在安全位置,以便在需要时进行导入。
7. 导入目标数据库使用Oracle的工具,如imp或impdp工具,对目标数据库进行数据导入。
按照导入工具的指导,从第6步中的导出文件中导入数据。
导入工具将会创建表、索引、视图等数据库对象,并将数据填充到这些对象中。
8. 数据库链接和用户权限在目标数据库中,确保与原始数据库相同的数据库链接和用户权限。
这可以保证在转移后的系统中可以继续使用原来的应用程序。
客户的数据库采用expdp命令导出的,这是Oracle10g以后采用的新的导出方式,比exp 执行效率上有所提高。
下面说明如何做导入导出:
1、环境变量设置(在Sqlplus中执行)
create or replace directory <dir_name> as ‘c:\tmpdir’;
注:c:\tmpdir也可以是另外的随意目录,用单引号括起来
2、导出ARADMIN库
expdp <username>/<password>@<SID> directory=<dir_name> dumpfile=xxxxxx.dat
logfile=xxxx.log schemas=ARADMIN;
3、如果需要备份(通常不需要)CMDB WebService则导出AtriumAdmin库
expdp <username>/<password>@<SID> directory=<dir_name> dumpfile=xxxxxx.dat
logfile=xxxx.log schemas=ARADMIN;
4、导出成功后,把dat和log文件都拷贝到目标数据库服务器上,记住两个文件的放
置路径
5、目标库导入前操作
create or replace directory <dir_name_1> as ‘c:\tmpdir’;
注:此处的c:\tmpdir替换成两个文件的存放路径
Sqlplus登录目标库(一定要用管理员账号);
sqlplus <username>/<password>@<SID> as sysdba;
核对连接的库名:
show parameter name; 查看连接的是哪个SID;
select username from dba_users order by created;查看所有表空间命令的最后两行应该有ARADMIN和ATRIUMADMIN表空间名;
删除目标库里面原来的表空间(删之前停AR服务):drop user ARADMIN cascade;
未停服务时报错
停服务后成功
创建新的用户并赋权限:
CREATE USER "ARADMIN" IDENTIFIED BY ARAdmin default tablespace ARSYSTEM
temporary tablespace TEMP quota unlimited on ARSYSTEM;
Grant alter session,create cluster,create database link,create sequence,create session, create synonym,create table,create view,create procedure,create trigger,query rewrite to aradmin;
6、导入库命令
Impdp <username>/<password>@<SID> directory=<dir_name_1> dumpfile=xxxx.dat logfile=xxxx.log schemas=ARADMIN。